HyCodeYourTale
classpublicPriority 3

UniquePrefabCache

com.hypixel.hytale.server.worldgen.cache.UniquePrefabCache

1

Methods

1

Public Methods

1

Fields

1

Constructors

Constructors

public
UniquePrefabCache(UniquePrefabCache.UniquePrefabFunction function, int maxSize, long expireAfterSeconds)

Methods

Public Methods (1)

public
UniquePrefabContainer.UniquePrefabEntry[] get(int seed)
@Nullable

Fields

Protected Fields (1)

protectedSizedTimeoutCache<Integer, UniquePrefabContainer.UniquePrefabEntry[]> cache

Related Classes

Source Code

package com.hypixel.hytale.server.worldgen.cache;

import com.hypixel.hytale.server.worldgen.container.UniquePrefabContainer;
import com.hypixel.hytale.server.worldgen.util.cache.SizedTimeoutCache;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class UniquePrefabCache {
   @Nonnull
   protected final SizedTimeoutCache<Integer, UniquePrefabContainer.UniquePrefabEntry[]> cache;

   public UniquePrefabCache(@Nonnull UniquePrefabCache.UniquePrefabFunction function, int maxSize, long expireAfterSeconds) {
      this.cache = new SizedTimeoutCache<>(expireAfterSeconds, TimeUnit.SECONDS, maxSize, function::get, null);
   }

   @Nullable
   public UniquePrefabContainer.UniquePrefabEntry[] get(int seed) {
      try {
         return this.cache.get(seed);
      } catch (Exception var3) {
         throw new Error("Failed to receive UniquePrefabEntry for " + seed, var3);
      }
   }

   @FunctionalInterface
   public interface UniquePrefabFunction {
      UniquePrefabContainer.UniquePrefabEntry[] get(int var1);
   }
}