Update to the latest Geyser version

This commit is contained in:
Camotoy 2021-07-12 21:53:07 -04:00
parent 15b8160f08
commit 67e1ab0709
No known key found for this signature in database
GPG key ID: 7EEFB66FE798081F
2 changed files with 15 additions and 14 deletions

View file

@ -47,8 +47,7 @@ import org.geysermc.connector.entity.attribute.GeyserAttributeType;
import org.geysermc.connector.network.BedrockProtocol; import org.geysermc.connector.network.BedrockProtocol;
import org.geysermc.connector.network.session.auth.AuthData; import org.geysermc.connector.network.session.auth.AuthData;
import org.geysermc.connector.network.session.auth.BedrockClientData; import org.geysermc.connector.network.session.auth.BedrockClientData;
import org.geysermc.connector.network.translators.item.ItemRegistry; import org.geysermc.connector.registry.Registries;
import org.geysermc.connector.utils.AttributeUtils;
import org.geysermc.connector.utils.FileUtils; import org.geysermc.connector.utils.FileUtils;
import org.geysermc.cumulus.Form; import org.geysermc.cumulus.Form;
import org.geysermc.cumulus.response.CustomFormResponse; import org.geysermc.cumulus.response.CustomFormResponse;
@ -205,7 +204,7 @@ public class PacketHandler implements BedrockPacketHandler {
stack.setForcedToAccept(false); stack.setForcedToAccept(false);
stack.setGameVersion("*"); stack.setGameVersion("*");
if (ItemRegistry.FURNACE_MINECART_DATA != null) { if (Registries.ITEMS.forVersion(session.getPacketCodec().getProtocolVersion()).getFurnaceMinecartData() != null) {
// Allow custom items to work // Allow custom items to work
stack.getExperiments().add(new ExperimentData("data_driven_items", true)); stack.getExperiments().add(new ExperimentData("data_driven_items", true));
} }

View file

@ -44,10 +44,9 @@ import org.geysermc.connector.common.AuthType;
import org.geysermc.connector.network.UpstreamPacketHandler; import org.geysermc.connector.network.UpstreamPacketHandler;
import org.geysermc.connector.network.session.auth.AuthData; import org.geysermc.connector.network.session.auth.AuthData;
import org.geysermc.connector.network.session.auth.BedrockClientData; import org.geysermc.connector.network.session.auth.BedrockClientData;
import org.geysermc.connector.network.translators.BiomeTranslator; import org.geysermc.connector.registry.BlockRegistries;
import org.geysermc.connector.network.translators.EntityIdentifierRegistry; import org.geysermc.connector.registry.Registries;
import org.geysermc.connector.network.translators.item.ItemRegistry; import org.geysermc.connector.registry.type.ItemMappings;
import org.geysermc.connector.network.translators.world.block.BlockTranslator1_17_0;
import org.geysermc.connector.utils.DimensionUtils; import org.geysermc.connector.utils.DimensionUtils;
import org.geysermc.cumulus.Form; import org.geysermc.cumulus.Form;
@ -90,6 +89,8 @@ public class Player {
* Send a few different packets to get the client to load in * Send a few different packets to get the client to load in
*/ */
public void sendStartGame() { public void sendStartGame() {
ItemMappings itemMappings = Registries.ITEMS.forVersion(session.getPacketCodec().getProtocolVersion());
// A lot of this likely doesn't need to be changed // A lot of this likely doesn't need to be changed
StartGamePacket startGamePacket = new StartGamePacket(); StartGamePacket startGamePacket = new StartGamePacket();
startGamePacket.setUniqueEntityId(1); startGamePacket.setUniqueEntityId(1);
@ -135,7 +136,7 @@ public class Player {
startGamePacket.setCurrentTick(0); startGamePacket.setCurrentTick(0);
startGamePacket.setEnchantmentSeed(0); startGamePacket.setEnchantmentSeed(0);
startGamePacket.setMultiplayerCorrelationId(""); startGamePacket.setMultiplayerCorrelationId("");
startGamePacket.setItemEntries(ItemRegistry.ITEMS); startGamePacket.setItemEntries(itemMappings.getItemEntries());
startGamePacket.setInventoriesServerAuthoritative(true); startGamePacket.setInventoriesServerAuthoritative(true);
startGamePacket.setServerEngine(""); startGamePacket.setServerEngine("");
@ -148,9 +149,9 @@ public class Player {
startGamePacket.setVanillaVersion("*"); startGamePacket.setVanillaVersion("*");
session.sendPacket(startGamePacket); session.sendPacket(startGamePacket);
if (ItemRegistry.FURNACE_MINECART_DATA != null) { if (itemMappings.getFurnaceMinecartData() != null) {
ItemComponentPacket itemComponentPacket = new ItemComponentPacket(); ItemComponentPacket itemComponentPacket = new ItemComponentPacket();
itemComponentPacket.getItems().add(ItemRegistry.FURNACE_MINECART_DATA); itemComponentPacket.getItems().add(itemMappings.getFurnaceMinecartData());
session.sendPacket(itemComponentPacket); session.sendPacket(itemComponentPacket);
} }
@ -165,16 +166,16 @@ public class Player {
// Send the biomes // Send the biomes
BiomeDefinitionListPacket biomeDefinitionListPacket = new BiomeDefinitionListPacket(); BiomeDefinitionListPacket biomeDefinitionListPacket = new BiomeDefinitionListPacket();
biomeDefinitionListPacket.setDefinitions(BiomeTranslator.BIOMES); biomeDefinitionListPacket.setDefinitions(Registries.BIOMES.get());
session.sendPacket(biomeDefinitionListPacket); session.sendPacket(biomeDefinitionListPacket);
AvailableEntityIdentifiersPacket entityPacket = new AvailableEntityIdentifiersPacket(); AvailableEntityIdentifiersPacket entityPacket = new AvailableEntityIdentifiersPacket();
entityPacket.setIdentifiers(EntityIdentifierRegistry.ENTITY_IDENTIFIERS); entityPacket.setIdentifiers(Registries.ENTITY_IDENTIFIERS.get());
session.sendPacket(entityPacket); session.sendPacket(entityPacket);
// Send a CreativeContentPacket - required for 1.16.100 // Send a CreativeContentPacket - required for 1.16.100
CreativeContentPacket creativeContentPacket = new CreativeContentPacket(); CreativeContentPacket creativeContentPacket = new CreativeContentPacket();
creativeContentPacket.setContents(ItemRegistry.CREATIVE_ITEMS); creativeContentPacket.setContents(itemMappings.getCreativeItems());
session.sendPacket(creativeContentPacket); session.sendPacket(creativeContentPacket);
// Let the client know the player can spawn // Let the client know the player can spawn
@ -232,7 +233,8 @@ public class Player {
geyserSession.getUpstream().getSession().setPacketCodec(session.getPacketCodec()); geyserSession.getUpstream().getSession().setPacketCodec(session.getPacketCodec());
// Set the block translation based off of version // 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.setAuthData(authData);
geyserSession.setClientData(clientData); geyserSession.setClientData(clientData);