TagSetPlugin class
Пакет: com.hypixel.hytale.builtin.tagset
Файл: com/hypixel/hytale/builtin/tagset/TagSetPlugin.java
extends: JavaPlugin
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private Int2ObjectMap<IntSet> |
flattenedSets |
static |
TagSetPlugin |
instance |
|
|
instance |
|
IntSet |
var3 |
|
TagSetLookupTable |
var4 |
Методы (9)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("Attempting to access a tagset which does not exist!") |
|
public |
TagSetLookuppublic TagSetLookup() |
static |
TagSetPlugin |
getTagSetPlugin get() |
|
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 |
<T extends TagSet> void |
registerTagSetType<T extends TagSet> void registerTagSetType(Class<T> var1) |
abstract |
|
super super(var1) |
|
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);
}
}
}