diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistries.java b/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistries.java index f6a3b4c4e..9440bfb09 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistries.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistries.java @@ -68,8 +68,13 @@ public class JavaRegistries { public static final JavaRegistryKey ITEM = createHardcoded("item", Registries.JAVA_ITEMS, Item::javaId, Item::javaKey, key -> Optional.ofNullable(Registries.JAVA_ITEM_IDENTIFIERS.get(key.asString())).map(Item::javaId).orElse(-1)); public static JavaRegistryKey ENTITY_TYPE = createHardcoded("entity_type", Arrays.asList(EntityType.values()), EntityType::ordinal, - type -> MinecraftKey.key(type.name().toLowerCase(Locale.ROOT)), - key -> EntityType.valueOf(key.value().toUpperCase(Locale.ROOT)).ordinal()); + type -> MinecraftKey.key(type.name().toLowerCase(Locale.ROOT)), key -> { + try { + return EntityType.valueOf(key.value().toUpperCase(Locale.ROOT)).ordinal(); + } catch (IllegalArgumentException exception) { + return -1; // Non-existent entity type + } + }); public static final JavaRegistryKey CHAT_TYPE = create("chat_type"); public static final JavaRegistryKey DIMENSION_TYPE = create("dimension_type");