From 1c5819328ac0388a999d0eca444cc601ce475065 Mon Sep 17 00:00:00 2001 From: Eclipse Date: Fri, 19 Jul 2024 14:42:00 +0000 Subject: [PATCH] Use IllegalArgumentException instead of asserting and make TagRegistry#getVanillaTags return original map --- .../org/geysermc/geyser/session/cache/TagCache.java | 8 ++++++-- .../geyser/session/cache/tags/TagRegistry.java | 12 ++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java index e235a72fd..4c312b416 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java @@ -118,7 +118,9 @@ public final class TagCache { * @return true if the block tag is present and contains this block mapping's Java ID. */ public boolean is(Tag tag, Block block) { - assert tag.registry() == TagRegistry.BLOCK; + if (tag.registry() != TagRegistry.BLOCK) { + throw new IllegalArgumentException("Given tag is not a block tag! (tag registry=%s)".formatted(tag.registry())); + } return contains(get(tag), block.javaId()); } @@ -133,7 +135,9 @@ public final class TagCache { * @return true if the item tag is present and contains this item's Java ID. */ public boolean is(Tag tag, Item item) { - assert tag.registry() == TagRegistry.ITEM; + if (tag.registry() != TagRegistry.ITEM) { + throw new IllegalArgumentException("Given tag is not an item tag! (tag registry=%s)".formatted(tag.registry())); + } return contains(get(tag), item.javaId()); } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/tags/TagRegistry.java b/core/src/main/java/org/geysermc/geyser/session/cache/tags/TagRegistry.java index 9e57ea5ab..37c6b6aba 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/tags/TagRegistry.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/tags/TagRegistry.java @@ -27,6 +27,7 @@ package org.geysermc.geyser.session.cache.tags; import java.util.HashMap; import java.util.Map; +import lombok.Getter; import net.kyori.adventure.key.Key; import org.checkerframework.checker.nullness.qual.Nullable; import org.geysermc.geyser.util.MinecraftKey; @@ -44,6 +45,13 @@ public enum TagRegistry { ENCHANTMENT("enchantment"); private final Key registryKey; + + /** + * A map mapping vanilla tag keys in this registry to a {@link Tag} instance (this is a {@link VanillaTag}). + * + * Keys should never be manually added to this map. Rather, {@link TagRegistry#registerVanillaTag} should be used, during Geyser init. + */ + @Getter private final Map vanillaTags; TagRegistry(String registry) { @@ -61,10 +69,6 @@ public enum TagRegistry { return tag; } - public Map getVanillaTags() { - return Map.copyOf(vanillaTags); - } - @Nullable public static TagRegistry fromKey(Key registryKey) { for (TagRegistry registry : TagRegistry.values()) {