Skip to content

Instantly share code, notes, and snippets.

@Camotoy
Camotoy / updating.md
Last active March 23, 2023 14:04
Updating MCProtocolLib to 1.18

MCProtocolLib is moving to the same packet names that Minecraft: Java Edition uses internally. There is some steps involved, but hopefully this guide helps.

This guide is not perfect and is only based on updating Geyser to the new packet names. Please reach out in the comments or on Geyser's Discord (https://discord.gg/geysermc) for assistance.

Handshake packet: com.github.steveice10.mc.protocol.packet.handshake.client.HandshakePacket -> com.github.steveice10.mc.protocol.packet.handshake.serverbound.ClientIntentionPacket

Login packets

Rename com.github.steveice10.mc.protocol.packet.login.server. to com.github.steveice10.mc.protocol.packet.login.clientbound. Rename com.github.steveice10.mc.protocol.packet.login.client. to com.github.steveice10.mc.protocol.packet.login.serverbound.

Object2IntMap<String> map = new Object2IntOpenHashMap<>();
Path baseDir = Paths.get(".").toAbsolutePath();
try (InputStream stream = Files.newInputStream(baseDir.resolve("biomes.json"))) {
JsonNode biomes;
try {
biomes = GeyserConnector.JSON_MAPPER.readTree(stream);
} catch (Exception e) {
throw new AssertionError(LanguageUtils.getLocaleStringLog("geyser.toolbox.fail.runtime_java"), e);
}