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.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 class CustomItemRegistryPopulator {
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 class CustomItemRegistryPopulator {
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())

View File

@@ -48,6 +48,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Loads default item components for all Java items.
*/
public final class DataComponentRegistryPopulator {
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.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 class ItemRegistryPopulator {
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 class ItemRegistryPopulator {
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 class ItemRegistryPopulator {
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 class ItemRegistryPopulator {
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);

View File

@@ -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"