diff --git a/core/src/main/java/org/geysermc/geyser/registry/type/BlockMappings.java b/core/src/main/java/org/geysermc/geyser/registry/type/BlockMappings.java index a67011af4..ed9463a4e 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/type/BlockMappings.java +++ b/core/src/main/java/org/geysermc/geyser/registry/type/BlockMappings.java @@ -30,6 +30,7 @@ import lombok.Value; import org.cloudburstmc.nbt.NbtList; import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.protocol.bedrock.data.defintions.BlockDefinition; +import org.cloudburstmc.protocol.bedrock.data.defintions.SimpleBlockDefinition; import org.cloudburstmc.protocol.common.DefinitionRegistry; import java.util.Map; @@ -75,6 +76,10 @@ public class BlockMappings { } public boolean isItemFrame(BlockDefinition definition) { - return this.itemFrames.containsKey(definition.getRuntimeId()); + if (definition instanceof SimpleBlockDefinition def) { + return this.itemFrames.containsKey(def.getState()); + } + + return false; } } \ No newline at end of file diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/AnvilInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/AnvilInventoryTranslator.java index ab75c4868..31a0b7b11 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/AnvilInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/AnvilInventoryTranslator.java @@ -75,7 +75,7 @@ public class AnvilInventoryTranslator extends AbstractBlockInventoryTranslator { return switch (slotInfoData.getContainer()) { case ANVIL_INPUT -> 0; case ANVIL_MATERIAL -> 1; - case ANVIL_RESULT, CREATIVE_OUTPUT -> 2; + case ANVIL_RESULT, CREATED_OUTPUT -> 2; default -> super.bedrockSlotToJava(slotInfoData); }; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/CartographyInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/CartographyInventoryTranslator.java index ad05af38b..888ce26fe 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/CartographyInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/CartographyInventoryTranslator.java @@ -57,7 +57,7 @@ public class CartographyInventoryTranslator extends AbstractBlockInventoryTransl return switch (slotInfoData.getContainer()) { case CARTOGRAPHY_INPUT -> 0; case CARTOGRAPHY_ADDITIONAL -> 1; - case CARTOGRAPHY_RESULT, CREATIVE_OUTPUT -> 2; + case CARTOGRAPHY_RESULT, CREATED_OUTPUT -> 2; default -> super.bedrockSlotToJava(slotInfoData); }; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/CraftingInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/CraftingInventoryTranslator.java index f814188c1..521db494a 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/CraftingInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/CraftingInventoryTranslator.java @@ -68,7 +68,7 @@ public class CraftingInventoryTranslator extends AbstractBlockInventoryTranslato // Bedrock is the same, but it starts from 32. return slotInfoData.getSlot() - 31; } - if (slotInfoData.getContainer() == ContainerSlotType.CRAFTING_OUTPUT || slotInfoData.getContainer() == ContainerSlotType.CREATIVE_OUTPUT) { + if (slotInfoData.getContainer() == ContainerSlotType.CRAFTING_OUTPUT || slotInfoData.getContainer() == ContainerSlotType.CREATED_OUTPUT) { return 0; } return super.bedrockSlotToJava(slotInfoData); diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/EnchantingInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/EnchantingInventoryTranslator.java index bb48a191c..dbb7576d2 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/EnchantingInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/EnchantingInventoryTranslator.java @@ -137,7 +137,7 @@ public class EnchantingInventoryTranslator extends AbstractBlockInventoryTransla if (slotInfoData.getContainer() == ContainerSlotType.ENCHANTING_INPUT) { return 0; } - if (slotInfoData.getContainer() == ContainerSlotType.ENCHANTING_LAPIS) { + if (slotInfoData.getContainer() == ContainerSlotType.ENCHANTING_MATERIAL) { return 1; } return super.bedrockSlotToJava(slotInfoData); @@ -149,7 +149,7 @@ public class EnchantingInventoryTranslator extends AbstractBlockInventoryTransla return new BedrockContainerSlot(ContainerSlotType.ENCHANTING_INPUT, 14); } if (slot == 1) { - return new BedrockContainerSlot(ContainerSlotType.ENCHANTING_LAPIS, 15); + return new BedrockContainerSlot(ContainerSlotType.ENCHANTING_MATERIAL, 15); } return super.javaSlotToBedrockContainer(slot); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/Generic3X3InventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/Generic3X3InventoryTranslator.java index 9e7e45b4f..369a80282 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/Generic3X3InventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/Generic3X3InventoryTranslator.java @@ -63,7 +63,7 @@ public class Generic3X3InventoryTranslator extends AbstractBlockInventoryTransla @Override public BedrockContainerSlot javaSlotToBedrockContainer(int javaSlot) { if (javaSlot < this.size) { - return new BedrockContainerSlot(ContainerSlotType.CONTAINER, javaSlot); + return new BedrockContainerSlot(ContainerSlotType.LEVEL_ENTITY, javaSlot); } return super.javaSlotToBedrockContainer(javaSlot); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/GrindstoneInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/GrindstoneInventoryTranslator.java index 135f64978..a32b97b70 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/GrindstoneInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/GrindstoneInventoryTranslator.java @@ -41,7 +41,7 @@ public class GrindstoneInventoryTranslator extends AbstractBlockInventoryTransla return switch (slotInfoData.getContainer()) { case GRINDSTONE_INPUT -> 0; case GRINDSTONE_ADDITIONAL -> 1; - case GRINDSTONE_RESULT, CREATIVE_OUTPUT -> 2; + case GRINDSTONE_RESULT, CREATED_OUTPUT -> 2; default -> super.bedrockSlotToJava(slotInfoData); }; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/HopperInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/HopperInventoryTranslator.java index cbdb64139..dab1ee972 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/HopperInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/HopperInventoryTranslator.java @@ -41,7 +41,7 @@ public class HopperInventoryTranslator extends AbstractBlockInventoryTranslator @Override public BedrockContainerSlot javaSlotToBedrockContainer(int javaSlot) { if (javaSlot < this.size) { - return new BedrockContainerSlot(ContainerSlotType.CONTAINER, javaSlot); + return new BedrockContainerSlot(ContainerSlotType.LEVEL_ENTITY, javaSlot); } return super.javaSlotToBedrockContainer(javaSlot); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/InventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/InventoryTranslator.java index 2bfcb2c68..f54bb271b 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/InventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/InventoryTranslator.java @@ -478,7 +478,7 @@ public abstract class InventoryTranslator { } craftState = CraftState.TRANSFER; - if (transferAction.getSource().getContainer() != ContainerSlotType.CREATIVE_OUTPUT) { + if (transferAction.getSource().getContainer() != ContainerSlotType.CREATED_OUTPUT) { return rejectRequest(request); } if (transferAction.getCount() <= 0) { @@ -653,7 +653,7 @@ public abstract class InventoryTranslator { } craftState = CraftState.TRANSFER; - if (transferAction.getSource().getContainer() != ContainerSlotType.CREATIVE_OUTPUT) { + if (transferAction.getSource().getContainer() != ContainerSlotType.CREATED_OUTPUT) { return rejectRequest(request); } if (transferAction.getCount() <= 0) { diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java index 3d3eded00..325de5bab 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java @@ -186,7 +186,7 @@ public class LoomInventoryTranslator extends AbstractBlockInventoryTranslator { case LOOM_INPUT -> 0; case LOOM_DYE -> 1; case LOOM_MATERIAL -> 2; - case LOOM_RESULT, CREATIVE_OUTPUT -> 3; + case LOOM_RESULT, CREATED_OUTPUT -> 3; default -> super.bedrockSlotToJava(slotInfoData); }; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java index 92e796f03..e159827e8 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java @@ -68,8 +68,8 @@ public class MerchantInventoryTranslator extends BaseInventoryTranslator { @Override public BedrockContainerSlot javaSlotToBedrockContainer(int slot) { return switch (slot) { - case 0 -> new BedrockContainerSlot(ContainerSlotType.TRADE2_INGREDIENT1, 4); - case 1 -> new BedrockContainerSlot(ContainerSlotType.TRADE2_INGREDIENT2, 5); + case 0 -> new BedrockContainerSlot(ContainerSlotType.TRADE2_INGREDIENT_1, 4); + case 1 -> new BedrockContainerSlot(ContainerSlotType.TRADE2_INGREDIENT_2, 5); case 2 -> new BedrockContainerSlot(ContainerSlotType.TRADE2_RESULT, 50); default -> super.javaSlotToBedrockContainer(slot); }; @@ -78,9 +78,9 @@ public class MerchantInventoryTranslator extends BaseInventoryTranslator { @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { return switch (slotInfoData.getContainer()) { - case TRADE2_INGREDIENT1 -> 0; - case TRADE2_INGREDIENT2 -> 1; - case TRADE2_RESULT, CREATIVE_OUTPUT -> 2; + case TRADE2_INGREDIENT_1 -> 0; + case TRADE2_INGREDIENT_2 -> 1; + case TRADE2_RESULT, CREATED_OUTPUT -> 2; default -> super.bedrockSlotToJava(slotInfoData); }; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java index d3e93f2c7..2a17e210c 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java @@ -197,7 +197,7 @@ public class PlayerInventoryTranslator extends InventoryTranslator { return slotnum - 27; } break; - case CREATIVE_OUTPUT: + case CREATED_OUTPUT: return 0; } return slotnum; @@ -444,7 +444,7 @@ public class PlayerInventoryTranslator extends InventoryTranslator { } craftState = CraftState.TRANSFER; - if (transferAction.getSource().getContainer() != ContainerSlotType.CREATIVE_OUTPUT) { + if (transferAction.getSource().getContainer() != ContainerSlotType.CREATED_OUTPUT) { return rejectRequest(request); } @@ -477,7 +477,7 @@ public class PlayerInventoryTranslator extends InventoryTranslator { } DropAction dropAction = (DropAction) action; - if (dropAction.getSource().getContainer() != ContainerSlotType.CREATIVE_OUTPUT || dropAction.getSource().getSlot() != 50) { + if (dropAction.getSource().getContainer() != ContainerSlotType.CREATED_OUTPUT || dropAction.getSource().getSlot() != 50) { return rejectRequest(request); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/ShulkerInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/ShulkerInventoryTranslator.java index e38a0953c..b8bb2bee4 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/ShulkerInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/ShulkerInventoryTranslator.java @@ -71,7 +71,7 @@ public class ShulkerInventoryTranslator extends AbstractBlockInventoryTranslator @Override public BedrockContainerSlot javaSlotToBedrockContainer(int javaSlot) { if (javaSlot < this.size) { - return new BedrockContainerSlot(ContainerSlotType.SHULKER, javaSlot); + return new BedrockContainerSlot(ContainerSlotType.SHULKER_BOX, javaSlot); } return super.javaSlotToBedrockContainer(javaSlot); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/SmithingInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/SmithingInventoryTranslator.java index 3035c0812..243bb48c3 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/SmithingInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/SmithingInventoryTranslator.java @@ -41,7 +41,7 @@ public class SmithingInventoryTranslator extends AbstractBlockInventoryTranslato return switch (slotInfoData.getContainer()) { case SMITHING_TABLE_INPUT -> 0; case SMITHING_TABLE_MATERIAL -> 1; - case SMITHING_TABLE_RESULT, CREATIVE_OUTPUT -> 2; + case SMITHING_TABLE_RESULT, CREATED_OUTPUT -> 2; default -> super.bedrockSlotToJava(slotInfoData); }; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/StonecutterInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/StonecutterInventoryTranslator.java index f662951f5..8380be63a 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/StonecutterInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/StonecutterInventoryTranslator.java @@ -84,7 +84,7 @@ public class StonecutterInventoryTranslator extends AbstractBlockInventoryTransl public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { return switch (slotInfoData.getContainer()) { case STONECUTTER_INPUT -> 0; - case STONECUTTER_RESULT, CREATIVE_OUTPUT -> 1; + case STONECUTTER_RESULT, CREATED_OUTPUT -> 1; default -> super.bedrockSlotToJava(slotInfoData); }; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/chest/ChestInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/chest/ChestInventoryTranslator.java index d20a15ef0..070537b81 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/chest/ChestInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/chest/ChestInventoryTranslator.java @@ -45,10 +45,10 @@ public abstract class ChestInventoryTranslator extends BaseInventoryTranslator { protected boolean shouldRejectItemPlace(GeyserSession session, Inventory inventory, ContainerSlotType bedrockSourceContainer, int javaSourceSlot, ContainerSlotType bedrockDestinationContainer, int javaDestinationSlot) { // Reject any item placements that occur in the unusable inventory space - if (bedrockSourceContainer == ContainerSlotType.CONTAINER && javaSourceSlot >= this.size) { + if (bedrockSourceContainer == ContainerSlotType.LEVEL_ENTITY && javaSourceSlot >= this.size) { return true; } - return bedrockDestinationContainer == ContainerSlotType.CONTAINER && javaDestinationSlot >= this.size; + return bedrockDestinationContainer == ContainerSlotType.LEVEL_ENTITY && javaDestinationSlot >= this.size; } @Override @@ -64,7 +64,7 @@ public abstract class ChestInventoryTranslator extends BaseInventoryTranslator { @Override public BedrockContainerSlot javaSlotToBedrockContainer(int javaSlot) { if (javaSlot < this.size) { - return new BedrockContainerSlot(ContainerSlotType.CONTAINER, javaSlot); + return new BedrockContainerSlot(ContainerSlotType.LEVEL_ENTITY, javaSlot); } return super.javaSlotToBedrockContainer(javaSlot); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/furnace/AbstractFurnaceInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/furnace/AbstractFurnaceInventoryTranslator.java index fdb26f431..6cda03a19 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/furnace/AbstractFurnaceInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/furnace/AbstractFurnaceInventoryTranslator.java @@ -74,7 +74,7 @@ public abstract class AbstractFurnaceInventoryTranslator extends AbstractBlockIn return new BedrockContainerSlot(ContainerSlotType.FURNACE_FUEL, javaSlotToBedrock(slot)); } if (slot == 2) { - return new BedrockContainerSlot(ContainerSlotType.FURNACE_OUTPUT, javaSlotToBedrock(slot)); + return new BedrockContainerSlot(ContainerSlotType.FURNACE_RESULT, javaSlotToBedrock(slot)); } return super.javaSlotToBedrockContainer(slot); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/ChestedHorseInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/ChestedHorseInventoryTranslator.java index 9168732a9..f1a5723c8 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/ChestedHorseInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/ChestedHorseInventoryTranslator.java @@ -56,7 +56,7 @@ public abstract class ChestedHorseInventoryTranslator extends AbstractHorseInven if (slotInfoData.getContainer() == ContainerSlotType.HORSE_EQUIP) { return this.equipSlot; } - if (slotInfoData.getContainer() == ContainerSlotType.CONTAINER) { + if (slotInfoData.getContainer() == ContainerSlotType.LEVEL_ENTITY) { return slotInfoData.getSlot() + 1; } return super.bedrockSlotToJava(slotInfoData); @@ -68,7 +68,7 @@ public abstract class ChestedHorseInventoryTranslator extends AbstractHorseInven return new BedrockContainerSlot(ContainerSlotType.HORSE_EQUIP, 0); } if (slot <= this.size - 1) { // Accommodate for the lack of one slot (saddle or armor) - return new BedrockContainerSlot(ContainerSlotType.CONTAINER, slot - 1); + return new BedrockContainerSlot(ContainerSlotType.LEVEL_ENTITY, slot - 1); } return super.javaSlotToBedrockContainer(slot); }