1
0
mirror of https://github.com/GeyserMC/Geyser.git synced 2025-12-19 14:59:27 +00:00

Fix eating animations not showing

This commit is contained in:
onebeastchris
2025-02-12 14:57:26 +01:00
parent 4ca4895eb0
commit 6c59a821c9
5 changed files with 18 additions and 15 deletions

View File

@@ -33,6 +33,7 @@ import org.cloudburstmc.nbt.NbtMapBuilder;
import org.cloudburstmc.nbt.NbtType; import org.cloudburstmc.nbt.NbtType;
import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition;
import org.cloudburstmc.protocol.bedrock.data.definitions.SimpleItemDefinition; 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.GeyserImpl;
import org.geysermc.geyser.api.item.custom.CustomItemData; import org.geysermc.geyser.api.item.custom.CustomItemData;
import org.geysermc.geyser.api.item.custom.CustomRenderOffsets; import org.geysermc.geyser.api.item.custom.CustomRenderOffsets;
@@ -106,7 +107,7 @@ public class CustomItemRegistryPopulator {
public static GeyserCustomMappingData registerCustomItem(String customItemName, Item javaItem, GeyserMappingItem mapping, CustomItemData customItemData, int bedrockId, int protocolVersion) { 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); 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); return new GeyserCustomMappingData(itemDefinition, customItemName, bedrockId);
} }
@@ -143,7 +144,7 @@ public class CustomItemRegistryPopulator {
customItemData.isHat(), customItemData.displayHandheld(), protocolVersion); customItemData.isHat(), customItemData.displayHandheld(), protocolVersion);
ItemMapping customItemMapping = ItemMapping.builder() ItemMapping customItemMapping = ItemMapping.builder()
.bedrockIdentifier(customIdentifier) .bedrockIdentifier(customIdentifier)
.bedrockDefinition(new SimpleItemDefinition(customIdentifier, customItemId, 1, true, builder.build())) .bedrockDefinition(new SimpleItemDefinition(customIdentifier, customItemId, ItemVersion.DATA_DRIVEN, true, builder.build()))
.bedrockData(0) .bedrockData(0)
.bedrockBlockDefinition(null) .bedrockBlockDefinition(null)
.toolType(customItemData.toolType()) .toolType(customItemData.toolType())

View File

@@ -48,6 +48,9 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/**
* Loads default item components for all Java items.
*/
public final class DataComponentRegistryPopulator { public final class DataComponentRegistryPopulator {
public static void populate() { public static void populate() {

View File

@@ -54,6 +54,7 @@ import org.cloudburstmc.protocol.bedrock.data.definitions.SimpleItemDefinition;
import org.cloudburstmc.protocol.bedrock.data.inventory.CreativeItemData; import org.cloudburstmc.protocol.bedrock.data.inventory.CreativeItemData;
import org.cloudburstmc.protocol.bedrock.data.inventory.CreativeItemGroup; import org.cloudburstmc.protocol.bedrock.data.inventory.CreativeItemGroup;
import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 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.Constants;
import org.geysermc.geyser.GeyserBootstrap; import org.geysermc.geyser.GeyserBootstrap;
import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.GeyserImpl;
@@ -212,15 +213,13 @@ public class ItemRegistryPopulator {
nextFreeBedrockId = id + 1; nextFreeBedrockId = id + 1;
} }
NbtMap components = null; // Some items, e.g. food, are not component based but still have components
if (entry.isComponentBased()) { NbtMap components = vanillaComponents.getCompound(entry.getName());
components = vanillaComponents.getCompound(entry.getName()); if (components == null && entry.isComponentBased()) {
if (components == null) { throw new RuntimeException("Could not find vanilla components for vanilla component based item! " + entry.getName());
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); definitions.put(entry.getName(), definition);
registry.put(definition.getRuntimeId(), definition); registry.put(definition.getRuntimeId(), definition);
} }
@@ -453,7 +452,7 @@ public class ItemRegistryPopulator {
int customProtocolId = nextFreeBedrockId++; int customProtocolId = nextFreeBedrockId++;
mappingItem = mappingItem.withBedrockData(customProtocolId); mappingItem = mappingItem.withBedrockData(customProtocolId);
bedrockIdentifier = customBlockData.identifier(); 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); registry.put(customProtocolId, definition);
customBlockItemDefinitions.put(customBlockData, definition); customBlockItemDefinitions.put(customBlockData, definition);
customIdMappings.put(customProtocolId, bedrockIdentifier); customIdMappings.put(customProtocolId, bedrockIdentifier);
@@ -593,7 +592,7 @@ public class ItemRegistryPopulator {
if (customItemsAllowed) { if (customItemsAllowed) {
// Add furnace minecart // Add furnace minecart
int furnaceMinecartId = nextFreeBedrockId++; 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); definitions.put("geysermc:furnace_minecart", definition);
registry.put(definition.getRuntimeId(), definition); registry.put(definition.getRuntimeId(), definition);
componentItemData.add(definition); componentItemData.add(definition);
@@ -667,7 +666,7 @@ public class ItemRegistryPopulator {
String identifier = customBlock.identifier(); String identifier = customBlock.identifier();
// TODO verify // 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); registry.put(customProtocolId, definition);
customBlockItemDefinitions.put(customBlock, definition); customBlockItemDefinitions.put(customBlock, definition);
customIdMappings.put(customProtocolId, identifier); customIdMappings.put(customProtocolId, identifier);

View File

@@ -10,9 +10,9 @@ netty-io-uring = "0.0.25.Final-SNAPSHOT"
guava = "29.0-jre" guava = "29.0-jre"
gson = "2.3.1" # Provided by Spigot 1.8.8 gson = "2.3.1" # Provided by Spigot 1.8.8
websocket = "1.5.1" websocket = "1.5.1"
protocol-connection = "3.0.0.Beta6-20250203.121006-1" protocol-connection = "3.0.0.Beta6-20250212.131009-3"
protocol-common = "3.0.0.Beta6-20250203.121006-1" protocol-common = "3.0.0.Beta6-20250212.131009-3"
protocol-codec = "3.0.0.Beta6-20250203.121006-1" protocol-codec = "3.0.0.Beta6-20250212.131009-3"
raknet = "1.0.0.CR3-20250128.101054-17" raknet = "1.0.0.CR3-20250128.101054-17"
minecraftauth = "4.1.1" minecraftauth = "4.1.1"
mcprotocollib = "1.21.4-20250121.131208-18" mcprotocollib = "1.21.4-20250121.131208-18"