From 6c59a821c97d91befd03e2868ccaedb061f87099 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Wed, 12 Feb 2025 14:57:26 +0100 Subject: [PATCH] Fix eating animations not showing --- .../CustomItemRegistryPopulator.java | 5 +++-- .../DataComponentRegistryPopulator.java | 3 +++ .../populator/ItemRegistryPopulator.java | 19 +++++++++--------- .../resources/bedrock/item_components.nbt | Bin 12649 -> 14202 bytes gradle/libs.versions.toml | 6 +++--- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java index cd19ab14718..d1cec32312f 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java @@ -33,6 +33,7 @@ import org.cloudburstmc.nbt.NbtType; import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; import org.cloudburstmc.protocol.bedrock.data.definitions.SimpleItemDefinition; +import org.cloudburstmc.protocol.bedrock.data.inventory.ItemVersion; import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.api.item.custom.CustomItemData; import org.geysermc.geyser.api.item.custom.CustomRenderOffsets; @@ -106,7 +107,7 @@ public boolean register(@NonNull NonVanillaCustomItemData customItemData) { public static GeyserCustomMappingData registerCustomItem(String customItemName, Item javaItem, GeyserMappingItem mapping, CustomItemData customItemData, int bedrockId, int protocolVersion) { NbtMapBuilder builder = createComponentNbt(customItemData, javaItem, mapping, customItemName, bedrockId, protocolVersion); - ItemDefinition itemDefinition = new SimpleItemDefinition(customItemName, bedrockId, 1, true, builder.build()); + ItemDefinition itemDefinition = new SimpleItemDefinition(customItemName, bedrockId, ItemVersion.DATA_DRIVEN, true, builder.build()); return new GeyserCustomMappingData(itemDefinition, customItemName, bedrockId); } @@ -143,7 +144,7 @@ public static NonVanillaItemRegistration registerCustomItem(NonVanillaCustomItem customItemData.isHat(), customItemData.displayHandheld(), protocolVersion); ItemMapping customItemMapping = ItemMapping.builder() .bedrockIdentifier(customIdentifier) - .bedrockDefinition(new SimpleItemDefinition(customIdentifier, customItemId, 1, true, builder.build())) + .bedrockDefinition(new SimpleItemDefinition(customIdentifier, customItemId, ItemVersion.DATA_DRIVEN, true, builder.build())) .bedrockData(0) .bedrockBlockDefinition(null) .toolType(customItemData.toolType()) diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java index 742564a390e..829e8719e10 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java @@ -48,6 +48,9 @@ import java.util.List; import java.util.Map; +/** + * Loads default item components for all Java items. + */ public final class DataComponentRegistryPopulator { public static void populate() { diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java index 6e269b5a382..08f3226f9e2 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java @@ -54,6 +54,7 @@ import org.cloudburstmc.protocol.bedrock.data.inventory.CreativeItemData; import org.cloudburstmc.protocol.bedrock.data.inventory.CreativeItemGroup; import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; +import org.cloudburstmc.protocol.bedrock.data.inventory.ItemVersion; import org.geysermc.geyser.Constants; import org.geysermc.geyser.GeyserBootstrap; import org.geysermc.geyser.GeyserImpl; @@ -212,15 +213,13 @@ public static void populate() { nextFreeBedrockId = id + 1; } - NbtMap components = null; - if (entry.isComponentBased()) { - components = vanillaComponents.getCompound(entry.getName()); - if (components == null) { - throw new RuntimeException("Could not find vanilla components for vanilla component based item! " + entry.getName()); - } + // Some items, e.g. food, are not component based but still have components + NbtMap components = vanillaComponents.getCompound(entry.getName()); + if (components == null && entry.isComponentBased()) { + throw new RuntimeException("Could not find vanilla components for vanilla component based item! " + entry.getName()); } - ItemDefinition definition = new SimpleItemDefinition(entry.getName().intern(), id, entry.getVersion(), entry.isComponentBased(), components); + ItemDefinition definition = new SimpleItemDefinition(entry.getName().intern(), id, ItemVersion.from(entry.getVersion()), entry.isComponentBased(), components); definitions.put(entry.getName(), definition); registry.put(definition.getRuntimeId(), definition); } @@ -453,7 +452,7 @@ public static void populate() { int customProtocolId = nextFreeBedrockId++; mappingItem = mappingItem.withBedrockData(customProtocolId); bedrockIdentifier = customBlockData.identifier(); - definition = new SimpleItemDefinition(bedrockIdentifier, customProtocolId, 1, false, null); + definition = new SimpleItemDefinition(bedrockIdentifier, customProtocolId, ItemVersion.DATA_DRIVEN, true, NbtMap.EMPTY); registry.put(customProtocolId, definition); customBlockItemDefinitions.put(customBlockData, definition); customIdMappings.put(customProtocolId, bedrockIdentifier); @@ -593,7 +592,7 @@ public static void populate() { if (customItemsAllowed) { // Add furnace minecart int furnaceMinecartId = nextFreeBedrockId++; - ItemDefinition definition = new SimpleItemDefinition("geysermc:furnace_minecart", furnaceMinecartId, 1, true, registerFurnaceMinecart(furnaceMinecartId)); + ItemDefinition definition = new SimpleItemDefinition("geysermc:furnace_minecart", furnaceMinecartId, ItemVersion.DATA_DRIVEN, true, registerFurnaceMinecart(furnaceMinecartId)); definitions.put("geysermc:furnace_minecart", definition); registry.put(definition.getRuntimeId(), definition); componentItemData.add(definition); @@ -667,7 +666,7 @@ public static void populate() { String identifier = customBlock.identifier(); // TODO verify - final ItemDefinition definition = new SimpleItemDefinition(identifier, customProtocolId, 1, false, null); + final ItemDefinition definition = new SimpleItemDefinition(identifier, customProtocolId, ItemVersion.DATA_DRIVEN, false, null); registry.put(customProtocolId, definition); customBlockItemDefinitions.put(customBlock, definition); customIdMappings.put(customProtocolId, identifier); diff --git a/core/src/main/resources/bedrock/item_components.nbt b/core/src/main/resources/bedrock/item_components.nbt index 34d2ac7f0ca1bf5fafda5891c7666b562aa6922f..b34ebf881463170f79c3bde3343aa0761bc4d1e7 100644 GIT binary patch literal 14202 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 Xkr#9y(Pfc{?&ALgn8T(o6b}Ia*2(6l diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4616ab96dda..1d993bf60a1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,9 +10,9 @@ netty-io-uring = "0.0.25.Final-SNAPSHOT" guava = "29.0-jre" gson = "2.3.1" # Provided by Spigot 1.8.8 websocket = "1.5.1" -protocol-connection = "3.0.0.Beta6-20250203.121006-1" -protocol-common = "3.0.0.Beta6-20250203.121006-1" -protocol-codec = "3.0.0.Beta6-20250203.121006-1" +protocol-connection = "3.0.0.Beta6-20250212.131009-3" +protocol-common = "3.0.0.Beta6-20250212.131009-3" +protocol-codec = "3.0.0.Beta6-20250212.131009-3" raknet = "1.0.0.CR3-20250128.101054-17" minecraftauth = "4.1.1" mcprotocollib = "1.21.4-20250121.131208-18"