diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java b/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java index e89ab4f7..7481f2fa 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java @@ -25,7 +25,6 @@ package org.geysermc.connector.network.translators; -import com.github.steveice10.mc.protocol.data.game.window.WindowType; import com.github.steveice10.mc.protocol.packet.ingame.server.*; import com.github.steveice10.mc.protocol.packet.ingame.server.entity.*; import com.github.steveice10.mc.protocol.packet.ingame.server.entity.player.ServerPlayerActionAckPacket; @@ -51,17 +50,14 @@ import org.geysermc.connector.network.translators.block.BlockTranslator; import org.geysermc.connector.network.translators.inventory.GenericInventoryTranslator; import org.geysermc.connector.network.translators.inventory.InventoryTranslator; import org.geysermc.connector.network.translators.item.ItemTranslator; -import org.geysermc.connector.network.translators.java.JavaChatTranslator; -import org.geysermc.connector.network.translators.java.JavaDifficultyTranslator; -import org.geysermc.connector.network.translators.java.JavaJoinGameTranslator; -import org.geysermc.connector.network.translators.java.JavaRespawnTranslator; -import org.geysermc.connector.network.translators.java.JavaTitleTranslator; +import org.geysermc.connector.network.translators.java.*; import org.geysermc.connector.network.translators.java.entity.*; import org.geysermc.connector.network.translators.java.entity.player.JavaPlayerActionAckTranslator; import org.geysermc.connector.network.translators.java.entity.player.JavaPlayerHealthTranslator; import org.geysermc.connector.network.translators.java.entity.player.JavaPlayerPositionRotationTranslator; import org.geysermc.connector.network.translators.java.entity.player.JavaPlayerSetExperienceTranslator; import org.geysermc.connector.network.translators.java.entity.spawn.*; +import org.geysermc.connector.network.translators.java.inventory.OpenWindowPacketTranslator; import org.geysermc.connector.network.translators.java.scoreboard.JavaDisplayScoreboardTranslator; import org.geysermc.connector.network.translators.java.scoreboard.JavaScoreboardObjectiveTranslator; import org.geysermc.connector.network.translators.java.scoreboard.JavaUpdateScoreTranslator; @@ -72,8 +68,6 @@ import org.geysermc.connector.network.translators.java.world.*; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.util.HashMap; -import java.util.Map; public class TranslatorsInit { @@ -84,7 +78,7 @@ public class TranslatorsInit { private static BlockTranslator blockTranslator; @Getter - private static Map inventoryTranslators = new HashMap(); + private static InventoryTranslator inventoryTranslator = new GenericInventoryTranslator(); private static final CompoundTag EMPTY_TAG = CompoundTagBuilder.builder().buildRootTag(); public static final byte[] EMPTY_LEVEL_CHUNK_DATA; @@ -147,6 +141,9 @@ public class TranslatorsInit { Registry.registerJava(ServerBlockChangePacket.class, new JavaBlockChangeTranslator()); Registry.registerJava(ServerMultiBlockChangePacket.class, new JavaMultiBlockChangeTranslator()); + + Registry.registerJava(ServerOpenWindowPacket.class, new OpenWindowPacketTranslator()); + Registry.registerBedrock(AnimatePacket.class, new BedrockAnimateTranslator()); Registry.registerBedrock(CommandRequestPacket.class, new BedrockCommandRequestTranslator()); Registry.registerBedrock(TextPacket.class, new BedrockTextTranslator()); @@ -162,11 +159,11 @@ public class TranslatorsInit { } private static void registerInventoryTranslators() { - inventoryTranslators.put(WindowType.GENERIC_9X1, new GenericInventoryTranslator()); + /*inventoryTranslators.put(WindowType.GENERIC_9X1, new GenericInventoryTranslator()); inventoryTranslators.put(WindowType.GENERIC_9X2, new GenericInventoryTranslator()); inventoryTranslators.put(WindowType.GENERIC_9X3, new GenericInventoryTranslator()); inventoryTranslators.put(WindowType.GENERIC_9X4, new GenericInventoryTranslator()); inventoryTranslators.put(WindowType.GENERIC_9X5, new GenericInventoryTranslator()); - inventoryTranslators.put(WindowType.GENERIC_9X6, new GenericInventoryTranslator()); + inventoryTranslators.put(WindowType.GENERIC_9X6, new GenericInventoryTranslator());*/ } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockInventoryTransactionTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockInventoryTransactionTranslator.java index dd6b9c07..adb73d4a 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockInventoryTransactionTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockInventoryTransactionTranslator.java @@ -25,12 +25,16 @@ package org.geysermc.connector.network.translators.bedrock; +import com.flowpowered.math.vector.Vector3f; import com.github.steveice10.mc.protocol.data.game.entity.metadata.Position; import com.github.steveice10.mc.protocol.data.game.entity.player.Hand; +import com.github.steveice10.mc.protocol.data.game.entity.player.InteractAction; import com.github.steveice10.mc.protocol.data.game.entity.player.PlayerAction; import com.github.steveice10.mc.protocol.data.game.world.block.BlockFace; import com.github.steveice10.mc.protocol.packet.ingame.client.player.ClientPlayerActionPacket; +import com.github.steveice10.mc.protocol.packet.ingame.client.player.ClientPlayerInteractEntityPacket; import com.github.steveice10.mc.protocol.packet.ingame.client.player.ClientPlayerUseItemPacket; +import com.nukkitx.protocol.bedrock.data.InventoryAction; import com.nukkitx.protocol.bedrock.packet.InventoryTransactionPacket; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.translators.PacketTranslator; @@ -52,6 +56,20 @@ public class BedrockInventoryTransactionTranslator extends PacketTranslator { + @Override + public void translate(ServerOpenWindowPacket packet, GeyserSession session) { + System.out.println("debug: " + packet.getType()); + InventoryTranslator translator = TranslatorsInit.getInventoryTranslator(); + + translator.openInventory(session, new Inventory(packet.getName(), packet.getWindowId(), packet.getType(), 54)); + + } +} diff --git a/connector/src/main/java/org/geysermc/connector/utils/InventoryUtils.java b/connector/src/main/java/org/geysermc/connector/utils/InventoryUtils.java index e1bb2c44..0e0d9c85 100644 --- a/connector/src/main/java/org/geysermc/connector/utils/InventoryUtils.java +++ b/connector/src/main/java/org/geysermc/connector/utils/InventoryUtils.java @@ -49,7 +49,7 @@ public class InventoryUtils { session.getInventoryCache().getInventories().put(packet.getWindowId(), inventory); session.getInventoryCache().setOpenInventory(inventory); - InventoryTranslator translator = TranslatorsInit.getInventoryTranslators().get(inventory.getWindowType()); + InventoryTranslator translator = TranslatorsInit.getInventoryTranslator(); translator.prepareInventory(session, inventory); Geyser.getGeneralThreadPool().schedule(() -> { List packets = session.getInventoryCache().getCachedPackets().get(inventory.getId()); @@ -74,7 +74,7 @@ public class InventoryUtils { if (packet.getWindowId() != openInventory.getId()) return; - InventoryTranslator translator = TranslatorsInit.getInventoryTranslators().get(openInventory.getWindowType()); + InventoryTranslator translator = TranslatorsInit.getInventoryTranslator(); if (translator == null) { session.getDownstream().getSession().send(new ClientCloseWindowPacket(packet.getWindowId())); return; @@ -95,7 +95,7 @@ public class InventoryUtils { if (packet.getWindowId() != openInventory.getId()) return; - InventoryTranslator translator = TranslatorsInit.getInventoryTranslators().get(openInventory.getWindowType()); + InventoryTranslator translator = TranslatorsInit.getInventoryTranslator(); if (translator == null) { session.getDownstream().getSession().send(new ClientCloseWindowPacket(packet.getWindowId())); return;