From e6f5a53d650548d82f955eddd1257e68b251703d Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Sun, 26 May 2024 22:32:04 +0200 Subject: [PATCH] [#39] Remove old gametag logic --- .../net/minestom/server/MinecraftServer.java | 5 - .../net/minestom/server/ServerProcess.java | 6 - .../minestom/server/ServerProcessImpl.java | 8 -- .../minestom/server/gamedata/tags/Tag.java | 114 ------------------ .../server/gamedata/tags/TagManager.java | 55 --------- 5 files changed, 188 deletions(-) delete mode 100644 src/main/java/net/minestom/server/gamedata/tags/Tag.java delete mode 100644 src/main/java/net/minestom/server/gamedata/tags/TagManager.java diff --git a/src/main/java/net/minestom/server/MinecraftServer.java b/src/main/java/net/minestom/server/MinecraftServer.java index e19a6cfca2a..92809edb72b 100644 --- a/src/main/java/net/minestom/server/MinecraftServer.java +++ b/src/main/java/net/minestom/server/MinecraftServer.java @@ -8,7 +8,6 @@ import net.minestom.server.event.GlobalEventHandler; import net.minestom.server.exception.ExceptionManager; import net.minestom.server.extensions.ExtensionManager; -import net.minestom.server.gamedata.tags.TagManager; import net.minestom.server.instance.InstanceManager; import net.minestom.server.instance.block.BlockManager; import net.minestom.server.item.armor.TrimManager; @@ -264,10 +263,6 @@ public static AdvancementManager getAdvancementManager() { return serverProcess.extension(); } - public static TagManager getTagManager() { - return serverProcess.tag(); - } - public static TrimManager getTrimManager() { return serverProcess.trim(); } diff --git a/src/main/java/net/minestom/server/ServerProcess.java b/src/main/java/net/minestom/server/ServerProcess.java index 401745f5d08..0d269ae2480 100644 --- a/src/main/java/net/minestom/server/ServerProcess.java +++ b/src/main/java/net/minestom/server/ServerProcess.java @@ -7,7 +7,6 @@ import net.minestom.server.event.GlobalEventHandler; import net.minestom.server.exception.ExceptionManager; import net.minestom.server.extensions.ExtensionManager; -import net.minestom.server.gamedata.tags.TagManager; import net.minestom.server.instance.Chunk; import net.minestom.server.instance.InstanceManager; import net.minestom.server.instance.block.BlockManager; @@ -109,11 +108,6 @@ public interface ServerProcess extends Snapshotable { */ @Nullable ExtensionManager extension(); - /** - * Handles registry tags. - */ - @NotNull TagManager tag(); - @NotNull TrimManager trim(); /** diff --git a/src/main/java/net/minestom/server/ServerProcessImpl.java b/src/main/java/net/minestom/server/ServerProcessImpl.java index 5eff5ac8daf..845a144429c 100644 --- a/src/main/java/net/minestom/server/ServerProcessImpl.java +++ b/src/main/java/net/minestom/server/ServerProcessImpl.java @@ -17,7 +17,6 @@ import net.minestom.server.event.server.ServerTickMonitorEvent; import net.minestom.server.exception.ExceptionManager; import net.minestom.server.extensions.ExtensionManager; -import net.minestom.server.gamedata.tags.TagManager; import net.minestom.server.instance.Chunk; import net.minestom.server.instance.Instance; import net.minestom.server.instance.InstanceManager; @@ -71,7 +70,6 @@ final class ServerProcessImpl implements ServerProcess { private final AttributeManager attribute; private final AdvancementManager advancement; private final BossBarManager bossBar; - private final TagManager tag; private final TrimManager trim; private final Server server; private final Metrics metrics; @@ -104,7 +102,6 @@ public ServerProcessImpl() throws IOException { this.attribute = new AttributeManager(); this.advancement = new AdvancementManager(); this.bossBar = new BossBarManager(); - this.tag = new TagManager(); this.trim = new TrimManager(); this.server = new Server(packetProcessor); @@ -183,11 +180,6 @@ public ServerProcessImpl() throws IOException { return extension; } - @Override - public @NotNull TagManager tag() { - return tag; - } - @Override public @NotNull TrimManager trim() { return trim; diff --git a/src/main/java/net/minestom/server/gamedata/tags/Tag.java b/src/main/java/net/minestom/server/gamedata/tags/Tag.java deleted file mode 100644 index 7e6a665f3a2..00000000000 --- a/src/main/java/net/minestom/server/gamedata/tags/Tag.java +++ /dev/null @@ -1,114 +0,0 @@ -package net.minestom.server.gamedata.tags; - -import net.minestom.server.entity.EntityType; -import net.minestom.server.fluid.Fluid; -import net.minestom.server.instance.block.Block; -import net.minestom.server.item.Material; -import net.minestom.server.registry.Registry; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Objects; -import java.util.Set; -import java.util.function.Function; - -/** - * Represents a group of items, blocks, fluids, entity types or function. - * Immutable by design - */ -public final class Tag { - private final NamespaceID name; - private final Set values; - - /** - * Creates a new empty tag. This does not cache the tag. - */ - public Tag(NamespaceID name) { - this.name = name; - this.values = new HashSet<>(); - } - - /** - * Creates a new tag with the given values. This does not cache the tag. - */ - public Tag(NamespaceID name, Set values) { - this.name = name; - this.values = new HashSet<>(values); - } - - /** - * Checks whether the given id in inside this tag. - * - * @param id the id to check against - * @return 'true' iif this tag contains the given id - */ - public boolean contains(NamespaceID id) { - return values.contains(id); - } - - /** - * Returns an immutable set of values present in this tag - * - * @return immutable set of values present in this tag - */ - public Set getValues() { - return Collections.unmodifiableSet(values); - } - - /** - * Returns the name of this tag - */ - public NamespaceID getName() { - return name; - } - - public enum BasicType { - BLOCKS("minecraft:block", Registry.Resource.BLOCK_TAGS, - name -> Objects.requireNonNull(Block.fromNamespaceId(name)).id()), - ITEMS("minecraft:item", Registry.Resource.ITEM_TAGS, - name -> Objects.requireNonNull(Material.fromNamespaceId(name)).id()), - FLUIDS("minecraft:fluid", Registry.Resource.FLUID_TAGS, - name -> Objects.requireNonNull(Fluid.fromNamespaceId(name)).id()), - ENTITY_TYPES("minecraft:entity_type", Registry.Resource.ENTITY_TYPE_TAGS, - name -> Objects.requireNonNull(EntityType.fromNamespaceId(name)).id());/* - GAME_EVENTS("minecraft:game_event", Registry.Resource.GAMEPLAY_TAGS, - name -> Objects.requireNonNull(Fluid.fromNamespaceId(name)).id());*/ - - private final static BasicType[] VALUES = values(); - private final String identifier; - private final Registry.Resource resource; - private final Function function; - - BasicType(@NotNull String identifier, - @NotNull Registry.Resource resource, - @NotNull Function function) { - this.identifier = identifier; - this.resource = resource; - this.function = function; - } - - public @NotNull String getIdentifier() { - return identifier; - } - - public Registry.Resource getResource() { - return resource; - } - - public Function getFunction() { - return function; - } - - public static @Nullable Tag.BasicType fromIdentifer(@NotNull String identifier) { - for (BasicType value : VALUES) { - if (value.identifier.equals(identifier)) { - return value; - } - } - return null; - } - } -} diff --git a/src/main/java/net/minestom/server/gamedata/tags/TagManager.java b/src/main/java/net/minestom/server/gamedata/tags/TagManager.java deleted file mode 100644 index 79b2b3a6cf2..00000000000 --- a/src/main/java/net/minestom/server/gamedata/tags/TagManager.java +++ /dev/null @@ -1,55 +0,0 @@ -package net.minestom.server.gamedata.tags; - -import net.minestom.server.registry.Registry; -import net.minestom.server.utils.NamespaceID; -import org.jetbrains.annotations.Nullable; - -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; - -/** - * Handles loading and caching of tags. - */ -public final class TagManager { - private final Map> tagMap = new ConcurrentHashMap<>(); - - public TagManager() { - // Load required tags from files - for (var type : Tag.BasicType.values()) { - final var json = Registry.load(type.getResource()); - final var tagIdentifierMap = tagMap.computeIfAbsent(type, s -> new CopyOnWriteArrayList<>()); - json.keySet().forEach(tagName -> { - final var tag = new Tag(NamespaceID.from(tagName), getValues(json, tagName)); - tagIdentifierMap.add(tag); - }); - } - } - - public @Nullable Tag getTag(Tag.BasicType type, String namespace) { - final var tags = tagMap.get(type); - for (var tag : tags) { - if (tag.getName().asString().equals(namespace)) - return tag; - } - return null; - } - - public Map> getTagMap() { - return Collections.unmodifiableMap(tagMap); - } - - private Set getValues(Map> main, String value) { - Map tagObject = main.get(value); - final List tagValues = (List) tagObject.get("values"); - Set result = new HashSet<>(tagValues.size()); - tagValues.forEach(tagString -> { - if (tagString.startsWith("#")) { - result.addAll(getValues(main, tagString.substring(1))); - } else { - result.add(NamespaceID.from(tagString)); - } - }); - return result; - } -}