Skip to content

Commit

Permalink
Fix eating animations not showing
Browse files Browse the repository at this point in the history
  • Loading branch information
onebeastchris committed Feb 12, 2025
1 parent 4ca4895 commit 6c59a82
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
Expand Down Expand Up @@ -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())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down
Binary file modified core/src/main/resources/bedrock/item_components.nbt
Binary file not shown.
6 changes: 3 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down

0 comments on commit 6c59a82

Please sign in to comment.