TagSetPlugin.java
package com.hypixel.hytale.builtin.tagset;
import com.hypixel.hytale.assetstore.AssetRegistry;
import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
import com.hypixel.hytale.builtin.tagset.config.NPCGroup;
import com.hypixel.hytale.server.core.asset.HytaleAssetStore;
import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.ints.IntSet;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class TagSetPlugin extends JavaPlugin {
private static TagSetPlugin instance;
private final Map<Class<? extends TagSet>, TagSetLookup> lookups = new ConcurrentHashMap();
public TagSetPlugin {
instance;
}
{
(init);
}
{
instance = ;
AssetRegistry.register(((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(NPCGroup.class, ((x$) -> [x$])).setPath()).setCodec(NPCGroup.CODEC)).setKeyFunction(NPCGroup::getId)).setReplaceOnRemove(NPCGroup::)).loadsBefore( []{Interaction.class})).build());
.registerTagSetType(NPCGroup.class);
}
<T > {
(!.isDisabled()) {
.lookups.computeIfAbsent(clazz, (c) -> ());
}
}
<T > TagSetLookup {
(TagSetLookup)Objects.requireNonNull((TagSetLookup)instance.lookups.get(clazz), );
}
{
Int2ObjectMap<IntSet> flattenedSets = Int2ObjectMaps.<IntSet>unmodifiable( ());
{
}
<T > {
TagSetLookupTable<T> lookupTable = <T>(tagSetAssets, tagSetIndexMap, tagIndexMap);
.flattenedSets = Int2ObjectMaps.<IntSet>unmodifiable(lookupTable.getFlattenedSet());
}
{
(IntSet).flattenedSets.get(tagSet);
(set == ) {
();
} {
set.contains(tagIndex);
}
}
IntSet {
(IntSet).flattenedSets.get(tagSet);
}
}
}