From af401dddc8d66e0a4d799aea9316318202fa35b2 Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Sat, 19 Jun 2021 23:44:37 -0400 Subject: [PATCH] Fix inventory issues and furnace minecart item visibility --- src/main/java/org/geysermc/connect/PacketHandler.java | 8 ++++++++ src/main/java/org/geysermc/connect/utils/Player.java | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/main/java/org/geysermc/connect/PacketHandler.java b/src/main/java/org/geysermc/connect/PacketHandler.java index e53bfcc..34c4422 100644 --- a/src/main/java/org/geysermc/connect/PacketHandler.java +++ b/src/main/java/org/geysermc/connect/PacketHandler.java @@ -35,6 +35,7 @@ import com.nukkitx.network.util.DisconnectReason; import com.nukkitx.protocol.bedrock.BedrockPacketCodec; import com.nukkitx.protocol.bedrock.BedrockServerSession; import com.nukkitx.protocol.bedrock.data.AttributeData; +import com.nukkitx.protocol.bedrock.data.ExperimentData; import com.nukkitx.protocol.bedrock.handler.BedrockPacketHandler; import com.nukkitx.protocol.bedrock.packet.*; import com.nukkitx.protocol.bedrock.util.EncryptionUtils; @@ -46,6 +47,7 @@ import org.geysermc.connector.entity.attribute.AttributeType; import org.geysermc.connector.network.BedrockProtocol; import org.geysermc.connector.network.session.auth.AuthData; import org.geysermc.connector.network.session.auth.BedrockClientData; +import org.geysermc.connector.network.translators.item.ItemRegistry; import org.geysermc.connector.utils.AttributeUtils; import org.geysermc.connector.utils.FileUtils; import org.geysermc.cumulus.Form; @@ -202,6 +204,12 @@ public class PacketHandler implements BedrockPacketHandler { stack.setExperimentsPreviouslyToggled(false); stack.setForcedToAccept(false); stack.setGameVersion("*"); + + if (ItemRegistry.FURNACE_MINECART_DATA != null) { + // Allow custom items to work + stack.getExperiments().add(new ExperimentData("data_driven_items", true)); + } + session.sendPacket(stack); break; default: diff --git a/src/main/java/org/geysermc/connect/utils/Player.java b/src/main/java/org/geysermc/connect/utils/Player.java index 5531d36..f8ba7a3 100644 --- a/src/main/java/org/geysermc/connect/utils/Player.java +++ b/src/main/java/org/geysermc/connect/utils/Player.java @@ -135,6 +135,8 @@ public class Player { startGamePacket.setCurrentTick(0); startGamePacket.setEnchantmentSeed(0); startGamePacket.setMultiplayerCorrelationId(""); + startGamePacket.setItemEntries(ItemRegistry.ITEMS); + startGamePacket.setInventoriesServerAuthoritative(true); startGamePacket.setServerEngine(""); SyncedPlayerMovementSettings settings = new SyncedPlayerMovementSettings(); @@ -146,6 +148,12 @@ public class Player { startGamePacket.setVanillaVersion("*"); session.sendPacket(startGamePacket); + if (ItemRegistry.FURNACE_MINECART_DATA != null) { + ItemComponentPacket itemComponentPacket = new ItemComponentPacket(); + itemComponentPacket.getItems().add(ItemRegistry.FURNACE_MINECART_DATA); + session.sendPacket(itemComponentPacket); + } + // Send an empty chunk LevelChunkPacket data = new LevelChunkPacket(); data.setChunkX(0);