diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockItemFrameDropItemTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockItemFrameDropItemTranslator.java
deleted file mode 100644
index dff4631b0..000000000
--- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockItemFrameDropItemTranslator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2019-2022 GeyserMC. http://geysermc.org
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * @author GeyserMC
- * @link https://github.com/GeyserMC/Geyser
- */
-
-package org.geysermc.geyser.translator.protocol.bedrock;
-
-import org.cloudburstmc.protocol.bedrock.packet.ItemFrameDropItemPacket;
-import org.geysermc.geyser.entity.type.Entity;
-import org.geysermc.geyser.entity.type.ItemFrameEntity;
-import org.geysermc.geyser.session.GeyserSession;
-import org.geysermc.geyser.translator.protocol.PacketTranslator;
-import org.geysermc.geyser.translator.protocol.Translator;
-import org.geysermc.mcprotocollib.protocol.data.game.entity.player.Hand;
-import org.geysermc.mcprotocollib.protocol.data.game.entity.player.InteractAction;
-import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundInteractPacket;
-
-/**
- * Pre-1.16.210: used for both survival and creative item frame item removal
- *
- * 1.16.210: only used in creative.
- * 1.20.70: no longer used.
- */
-@Translator(packet = ItemFrameDropItemPacket.class)
-public class BedrockItemFrameDropItemTranslator extends PacketTranslator {
-
- // TODO: Remove when 1.20.60 is no longer supported
- @Override
- public void translate(GeyserSession session, ItemFrameDropItemPacket packet) {
- Entity entity = ItemFrameEntity.getItemFrameEntity(session, packet.getBlockPosition());
- if (entity != null) {
- ServerboundInteractPacket interactPacket = new ServerboundInteractPacket(entity.getEntityId(),
- InteractAction.ATTACK, Hand.MAIN_HAND, session.isSneaking());
- session.sendDownstreamGamePacket(interactPacket);
- }
- }
-}
diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockLecternUpdateTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockLecternUpdateTranslator.java
index e6d3d4dce..31a2d74cf 100644
--- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockLecternUpdateTranslator.java
+++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockLecternUpdateTranslator.java
@@ -25,11 +25,6 @@
package org.geysermc.geyser.translator.protocol.bedrock;
-import org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction;
-import org.geysermc.mcprotocollib.protocol.data.game.entity.player.Hand;
-import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundContainerButtonClickPacket;
-import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundContainerClosePacket;
-import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundUseItemOnPacket;
import org.cloudburstmc.protocol.bedrock.packet.LecternUpdatePacket;
import org.geysermc.geyser.inventory.Inventory;
import org.geysermc.geyser.inventory.LecternContainer;
@@ -38,6 +33,8 @@ import org.geysermc.geyser.translator.inventory.LecternInventoryTranslator;
import org.geysermc.geyser.translator.protocol.PacketTranslator;
import org.geysermc.geyser.translator.protocol.Translator;
import org.geysermc.geyser.util.InventoryUtils;
+import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundContainerButtonClickPacket;
+import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundContainerClosePacket;
/**
* Used to translate moving pages, or closing the inventory
@@ -47,61 +44,44 @@ public class BedrockLecternUpdateTranslator extends PacketTranslator currentJavaPage) {
+ for (int i = currentJavaPage; i < newJavaPage; i++) {
+ ServerboundContainerButtonClickPacket clickButtonPacket = new ServerboundContainerButtonClickPacket(session.getOpenInventory().getJavaId(), 2);
+ session.sendDownstreamGamePacket(clickButtonPacket);
}
-
- // 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 when transmitted over the network and therefore this stops us at 128
- if (newJavaPage > currentJavaPage) {
- for (int i = currentJavaPage; i < newJavaPage; i++) {
- ServerboundContainerButtonClickPacket clickButtonPacket = new ServerboundContainerButtonClickPacket(session.getOpenInventory().getJavaId(), 2);
- session.sendDownstreamGamePacket(clickButtonPacket);
- }
- } else {
- for (int i = currentJavaPage; i > newJavaPage; i--) {
- ServerboundContainerButtonClickPacket clickButtonPacket = new ServerboundContainerButtonClickPacket(session.getOpenInventory().getJavaId(), 1);
- session.sendDownstreamGamePacket(clickButtonPacket);
- }
+ } else {
+ for (int i = currentJavaPage; i > newJavaPage; i--) {
+ ServerboundContainerButtonClickPacket clickButtonPacket = new ServerboundContainerButtonClickPacket(session.getOpenInventory().getJavaId(), 1);
+ session.sendDownstreamGamePacket(clickButtonPacket);
}
}
}