diff --git a/connector/src/main/java/org/geysermc/connector/inventory/Generic3X3Container.java b/connector/src/main/java/org/geysermc/connector/inventory/Generic3X3Container.java index 8c89cdeb6d2..080e1198291 100644 --- a/connector/src/main/java/org/geysermc/connector/inventory/Generic3X3Container.java +++ b/connector/src/main/java/org/geysermc/connector/inventory/Generic3X3Container.java @@ -27,10 +27,13 @@ import com.github.steveice10.mc.protocol.data.game.window.WindowType; import lombok.Getter; +import org.geysermc.connector.network.session.GeyserSession; public class Generic3X3Container extends Container { /** - * Whether we need to set the container type as {@link com.nukkitx.protocol.bedrock.data.inventory.ContainerType#DROPPER} + * Whether we need to set the container type as {@link com.nukkitx.protocol.bedrock.data.inventory.ContainerType#DROPPER}. + * + * Used at {@link org.geysermc.connector.network.translators.inventory.translators.Generic3X3InventoryTranslator#openInventory(GeyserSession, Inventory)} */ @Getter private boolean isDropper = false; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockLecternUpdateTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockLecternUpdateTranslator.java index 99dcebed9d3..10af0b6102e 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockLecternUpdateTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockLecternUpdateTranslator.java @@ -56,7 +56,7 @@ public void translate(LecternUpdatePacket packet, GeyserSession session) { new Position(packet.getBlockPosition().getX(), packet.getBlockPosition().getY(), packet.getBlockPosition().getZ()), BlockFace.values()[0], Hand.MAIN_HAND, - packet.getBlockPosition().getX(), packet.getBlockPosition().getY(), packet.getBlockPosition().getZ(), //TODO + 0, 0, 0, // Java doesn't care about these when dealing with a lectern false); session.sendDownstreamPacket(blockPacket); } else { @@ -78,7 +78,7 @@ public void translate(LecternUpdatePacket packet, GeyserSession session) { int currentJavaPage = (lecternContainer.getCurrentBedrockPage() * 2); // Send as many click button packets as we need to // Java has the option to specify exact page numbers by adding 100 to the number, but buttonId variable - // is a byte and therefore this stops us at 128 + // is a byte when transmitted over the network and therefore this stops us at 128 if (newJavaPage > currentJavaPage) { for (int i = currentJavaPage; i < newJavaPage; i++) { ClientClickWindowButtonPacket clickButtonPacket = new ClientClickWindowButtonPacket(session.getOpenInventory().getId(), 2); diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/InventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/InventoryTranslator.java index 6ef214067b8..6ec90d24dac 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/InventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/InventoryTranslator.java @@ -108,8 +108,8 @@ public abstract class InventoryTranslator { public abstract void updateInventory(GeyserSession session, Inventory inventory); public abstract void updateSlot(GeyserSession session, Inventory inventory, int slot); public abstract int bedrockSlotToJava(StackRequestSlotInfoData slotInfoData); - public abstract int javaSlotToBedrock(int javaSlot); //TODO - public abstract BedrockContainerSlot javaSlotToBedrockContainer(int javaSlot); //TODO + public abstract int javaSlotToBedrock(int javaSlot); + public abstract BedrockContainerSlot javaSlotToBedrockContainer(int javaSlot); public abstract SlotType getSlotType(int javaSlot); public abstract Inventory createInventory(String name, int windowId, WindowType windowType, PlayerInventory playerInventory); @@ -138,7 +138,7 @@ public boolean shouldHandleRequestFirst(StackRequestActionData action, Inventory * If {@link #shouldHandleRequestFirst(StackRequestActionData, Inventory)} returns true, this will be called */ public ItemStackResponsePacket.Response translateSpecialRequest(GeyserSession session, Inventory inventory, ItemStackRequest request) { - return null; + return rejectRequest(request); } public void translateRequests(GeyserSession session, Inventory inventory, List requests) { @@ -151,15 +151,22 @@ public void translateRequests(GeyserSession session, Inventory inventory, List javaIdentifierToBedrockTag; - private static final int BLOCK_STATE_VERSION = 17825808; - /** * Stores the raw blocks JSON until it is no longer needed. */ @@ -413,6 +411,10 @@ public int getBedrockWaterId() { return bedrockWaterId; } + /** + * @return the "block state version" generated in the Bedrock block palette that completes an NBT indication of a + * block state. + */ public abstract int getBlockStateVersion(); public byte[] getEmptyChunkData() {