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