Use IllegalArgumentException instead of asserting and make TagRegistry#getVanillaTags return original map

This commit is contained in:
Eclipse 2024-07-19 14:42:00 +00:00
parent 7fa4f27c5a
commit 1c5819328a
No known key found for this signature in database
GPG key ID: 95E6998F82EC938A
2 changed files with 14 additions and 6 deletions

View file

@ -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());
}

View file

@ -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<Key, Tag> vanillaTags;
TagRegistry(String registry) {
@ -61,10 +69,6 @@ public enum TagRegistry {
return tag;
}
public Map<Key, Tag> getVanillaTags() {
return Map.copyOf(vanillaTags);
}
@Nullable
public static TagRegistry fromKey(Key registryKey) {
for (TagRegistry registry : TagRegistry.values()) {