TagSetLookup class

Пакет: com.hypixel.hytale.builtin.tagset

Файл: com/hypixel/hytale/builtin/tagset/TagSetPlugin.java

Поля (3)

МодификаторыТипИмя
private Int2ObjectMap<IntSet> flattenedSets
IntSet var3
TagSetLookupTable var4

Методы (5)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("Attempting to access a tagset which does not exist!")
public IntSet getSetpublic IntSet getSet(int var1)
if if(var3 == null)
public <T extends TagSet> void putAssetSetspublic <T extends TagSet> void putAssetSets(@Nonnull Map<String, T> var1, @Nonnull Object2IntMap<String> var2, @Nonnull Object2IntMap<String> var3)
public boolean tagInSetpublic boolean tagInSet(int var1, int var2)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.tagset;

class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
class="kw">import com.hypixel.hytale.builtin.tagset.config.NPCGroup;
class="kw">import com.hypixel.hytale.server.core.asset.HytaleAssetStore;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPlugin;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.ints.IntSet;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntMap;
class="kw">import java.util.Map;
class="kw">import java.util.Objects;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class TagSetPlugin class="kw">extends JavaPlugin {
   class="kw">private class="kw">static TagSetPlugin instance;
   class="kw">private class="kw">final Map<Class<? class="kw">extends TagSet>, TagSetPlugin.TagSetLookup> lookups = new ConcurrentHashMap<>();

   class="kw">public class="kw">static TagSetPlugin get() {
      class="kw">return instance;
   }

   class="kw">public TagSetPlugin(@Nonnull JavaPluginInit var1) {
      super(var1);
   }

   @Override
   class="kw">protected void setup() {
      instance = this;
      AssetRegistry.register(
         ((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(
                              NPCGroup.class, new IndexedLookupTableAssetMap<>(NPCGroup[]::new)
                           )
                           .setPath("NPC/Groups"))
                        .setCodec(NPCGroup.CODEC))
                     .setKeyFunction(NPCGroup::getId))
                  .setReplaceOnRemove(NPCGroup::new))
               .loadsBefore(Interaction.class))
            .build()
      );
      this.registerTagSetType(NPCGroup.class);
   }

   class="kw">public <T class="kw">extends TagSet> void registerTagSetType(Class<T> var1) {
      if (!this.isDisabled()) {
         this.lookups.computeIfAbsent(var1, var0 -> new TagSetPlugin.TagSetLookup());
      }
   }

   @Nonnull
   class="kw">public class="kw">static <T class="kw">extends TagSet> TagSetPlugin.TagSetLookup get(Class<T> var0) {
      class="kw">return Objects.requireNonNull(instance.lookups.get(var0), "Class is not registered with the TagSet module!");
   }

   class="kw">public class="kw">static class TagSetLookup {
      @Nonnull
      class="kw">private Int2ObjectMap<IntSet> flattenedSets = Int2ObjectMaps.unmodifiable(new Int2ObjectOpenHashMap());

      class="kw">public TagSetLookup() {
      }

      class="kw">public <T class="kw">extends TagSet> void putAssetSets(@Nonnull Map<String, T> var1, @Nonnull Object2IntMap<String> var2, @Nonnull Object2IntMap<String> var3) {
         TagSetLookupTable var4 = new TagSetLookupTable<>(var1, var2, var3);
         this.flattenedSets = Int2ObjectMaps.unmodifiable(var4.getFlattenedSet());
      }

      class="kw">public boolean tagInSet(int var1, int var2) {
         IntSet var3 = (IntSet)this.flattenedSets.get(var1);
         if (var3 == null) {
            throw new IllegalArgumentException("Attempting to access a tagset which does not exist!");
         } else {
            class="kw">return var3.contains(var2);
         }
      }

      @Nullable
      class="kw">public IntSet getSet(int var1) {
         class="kw">return (IntSet)this.flattenedSets.get(var1);
      }
   }
}