From 67e1ab07091a1eacedaa375f77cef5d35362ffd7 Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Mon, 12 Jul 2021 21:53:07 -0400 Subject: [PATCH] Update to the latest Geyser version --- .../org/geysermc/connect/PacketHandler.java | 5 ++-- .../org/geysermc/connect/utils/Player.java | 24 ++++++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/geysermc/connect/PacketHandler.java b/src/main/java/org/geysermc/connect/PacketHandler.java index 988b047..3e2f810 100644 --- a/src/main/java/org/geysermc/connect/PacketHandler.java +++ b/src/main/java/org/geysermc/connect/PacketHandler.java @@ -47,8 +47,7 @@ import org.geysermc.connector.entity.attribute.GeyserAttributeType; 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.registry.Registries; import org.geysermc.connector.utils.FileUtils; import org.geysermc.cumulus.Form; import org.geysermc.cumulus.response.CustomFormResponse; @@ -205,7 +204,7 @@ public class PacketHandler implements BedrockPacketHandler { stack.setForcedToAccept(false); stack.setGameVersion("*"); - if (ItemRegistry.FURNACE_MINECART_DATA != null) { + if (Registries.ITEMS.forVersion(session.getPacketCodec().getProtocolVersion()).getFurnaceMinecartData() != null) { // Allow custom items to work stack.getExperiments().add(new ExperimentData("data_driven_items", true)); } diff --git a/src/main/java/org/geysermc/connect/utils/Player.java b/src/main/java/org/geysermc/connect/utils/Player.java index f8ba7a3..5180b21 100644 --- a/src/main/java/org/geysermc/connect/utils/Player.java +++ b/src/main/java/org/geysermc/connect/utils/Player.java @@ -44,10 +44,9 @@ import org.geysermc.connector.common.AuthType; import org.geysermc.connector.network.UpstreamPacketHandler; import org.geysermc.connector.network.session.auth.AuthData; import org.geysermc.connector.network.session.auth.BedrockClientData; -import org.geysermc.connector.network.translators.BiomeTranslator; -import org.geysermc.connector.network.translators.EntityIdentifierRegistry; -import org.geysermc.connector.network.translators.item.ItemRegistry; -import org.geysermc.connector.network.translators.world.block.BlockTranslator1_17_0; +import org.geysermc.connector.registry.BlockRegistries; +import org.geysermc.connector.registry.Registries; +import org.geysermc.connector.registry.type.ItemMappings; import org.geysermc.connector.utils.DimensionUtils; import org.geysermc.cumulus.Form; @@ -90,6 +89,8 @@ public class Player { * Send a few different packets to get the client to load in */ public void sendStartGame() { + ItemMappings itemMappings = Registries.ITEMS.forVersion(session.getPacketCodec().getProtocolVersion()); + // A lot of this likely doesn't need to be changed StartGamePacket startGamePacket = new StartGamePacket(); startGamePacket.setUniqueEntityId(1); @@ -135,7 +136,7 @@ public class Player { startGamePacket.setCurrentTick(0); startGamePacket.setEnchantmentSeed(0); startGamePacket.setMultiplayerCorrelationId(""); - startGamePacket.setItemEntries(ItemRegistry.ITEMS); + startGamePacket.setItemEntries(itemMappings.getItemEntries()); startGamePacket.setInventoriesServerAuthoritative(true); startGamePacket.setServerEngine(""); @@ -148,9 +149,9 @@ public class Player { startGamePacket.setVanillaVersion("*"); session.sendPacket(startGamePacket); - if (ItemRegistry.FURNACE_MINECART_DATA != null) { + if (itemMappings.getFurnaceMinecartData() != null) { ItemComponentPacket itemComponentPacket = new ItemComponentPacket(); - itemComponentPacket.getItems().add(ItemRegistry.FURNACE_MINECART_DATA); + itemComponentPacket.getItems().add(itemMappings.getFurnaceMinecartData()); session.sendPacket(itemComponentPacket); } @@ -165,16 +166,16 @@ public class Player { // Send the biomes BiomeDefinitionListPacket biomeDefinitionListPacket = new BiomeDefinitionListPacket(); - biomeDefinitionListPacket.setDefinitions(BiomeTranslator.BIOMES); + biomeDefinitionListPacket.setDefinitions(Registries.BIOMES.get()); session.sendPacket(biomeDefinitionListPacket); AvailableEntityIdentifiersPacket entityPacket = new AvailableEntityIdentifiersPacket(); - entityPacket.setIdentifiers(EntityIdentifierRegistry.ENTITY_IDENTIFIERS); + entityPacket.setIdentifiers(Registries.ENTITY_IDENTIFIERS.get()); session.sendPacket(entityPacket); // Send a CreativeContentPacket - required for 1.16.100 CreativeContentPacket creativeContentPacket = new CreativeContentPacket(); - creativeContentPacket.setContents(ItemRegistry.CREATIVE_ITEMS); + creativeContentPacket.setContents(itemMappings.getCreativeItems()); session.sendPacket(creativeContentPacket); // Let the client know the player can spawn @@ -232,7 +233,8 @@ public class Player { geyserSession.getUpstream().getSession().setPacketCodec(session.getPacketCodec()); // Set the block translation based off of version - geyserSession.setBlockTranslator(BlockTranslator1_17_0.INSTANCE); + geyserSession.setBlockMappings(BlockRegistries.BLOCKS.forVersion(session.getPacketCodec().getProtocolVersion())); + geyserSession.setItemMappings(Registries.ITEMS.forVersion(session.getPacketCodec().getProtocolVersion())); geyserSession.setAuthData(authData); geyserSession.setClientData(clientData);