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:
@@ -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())
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Binary file not shown.
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user