From ca17c3f3778acb98fff59f587b78c11b5231bb65 Mon Sep 17 00:00:00 2001 From: games647 Date: Sun, 18 Dec 2022 14:03:49 +0100 Subject: [PATCH 1/3] Fix project building --- bukkit/pom.xml | 12 +++++++----- bungee/pom.xml | 12 +++++++----- core/pom.xml | 12 +++++++----- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/bukkit/pom.xml b/bukkit/pom.xml index 824a0af2..6660b0a5 100644 --- a/bukkit/pom.xml +++ b/bukkit/pom.xml @@ -233,11 +233,7 @@ provided - io.netty - * - - - org.geysermc.cumulus + * * @@ -263,6 +259,12 @@ api ${geyser.version} provided + + + * + * + + diff --git a/bungee/pom.xml b/bungee/pom.xml index 40f605c9..b66ad319 100644 --- a/bungee/pom.xml +++ b/bungee/pom.xml @@ -174,11 +174,7 @@ provided - io.netty - * - - - org.geysermc.cumulus + * * @@ -204,6 +200,12 @@ api ${geyser.version} provided + + + * + * + + diff --git a/core/pom.xml b/core/pom.xml index edfee70b..e48203fb 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -109,11 +109,7 @@ provided - io.netty - * - - - org.geysermc.cumulus + * * @@ -139,6 +135,12 @@ api ${geyser.version} provided + + + * + * + + From 1038453469aa1d17567f738cbb3b2b4259b2a9fb Mon Sep 17 00:00:00 2001 From: games647 Date: Sun, 18 Dec 2022 14:04:43 +0100 Subject: [PATCH 2/3] Fix 1.19.3 compat of removed public key on login Fixes #951 --- .../protocollib/ProtocolLibListener.java | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ProtocolLibListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ProtocolLibListener.java index 85645720..122f5027 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ProtocolLibListener.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ProtocolLibListener.java @@ -179,7 +179,8 @@ public class ProtocolLibListener extends PacketAdapter { private boolean verifyNonce(Player sender, PacketContainer packet, ClientPublicKey clientPublicKey, byte[] expectedToken) { try { - if (MinecraftVersion.atOrAbove(new MinecraftVersion(1, 19, 0))) { + if (MinecraftVersion.atOrAbove(new MinecraftVersion(1, 19, 0)) + && !MinecraftVersion.atOrAbove(new MinecraftVersion(1, 19, 3))) { Either either = packet.getSpecificModifier(Either.class).read(0); if (clientPublicKey == null) { Optional left = either.left(); @@ -222,27 +223,34 @@ public class ProtocolLibListener extends PacketAdapter { plugin.removeSession(player.getAddress()); PacketContainer packet = packetEvent.getPacket(); - val profileKey = packet.getOptionals(BukkitConverters.getWrappedPublicKeyDataConverter()) - .optionRead(0); + Optional clientKey = Optional.empty(); + if (MinecraftVersion.atOrAbove(new MinecraftVersion(1, 19, 3))) { + // public key sent separate + clientKey = Optional.empty(); + } else { + val profileKey = packet.getOptionals(BukkitConverters.getWrappedPublicKeyDataConverter()) + .optionRead(0); - val clientKey = profileKey.flatMap(Function.identity()).flatMap(data -> { - Instant expires = data.getExpireTime(); - PublicKey key = data.getKey(); - byte[] signature = data.getSignature(); - return Optional.of(ClientPublicKey.of(expires, key, signature)); - }); + clientKey = profileKey.flatMap(Function.identity()).flatMap(data -> { + Instant expires = data.getExpireTime(); + PublicKey key = data.getKey(); + byte[] signature = data.getSignature(); + return Optional.of(ClientPublicKey.of(expires, key, signature)); + }); - // start reading from index 1, because 0 is already used by the public key - Optional sessionUUID = packet.getOptionals(Converters.passthrough(UUID.class)).readSafely(1); - if (verifyClientKeys && sessionUUID.isPresent() && clientKey.isPresent() - && verifyPublicKey(clientKey.get(), sessionUUID.get())) { - // missing or incorrect - // expired always not allowed - player.kickPlayer(plugin.getCore().getMessage("invalid-public-key")); - plugin.getLog().warn("Invalid public key from player {}", username); - return; + // start reading from index 1, because 0 is already used by the public key + Optional sessionUUID = packet.getOptionals(Converters.passthrough(UUID.class)).readSafely(1); + if (verifyClientKeys && sessionUUID.isPresent() && clientKey.isPresent() + && verifyPublicKey(clientKey.get(), sessionUUID.get())) { + // missing or incorrect + // expired always not allowed + player.kickPlayer(plugin.getCore().getMessage("invalid-public-key")); + plugin.getLog().warn("Invalid public key from player {}", username); + return; + } } + plugin.getLog().trace("GameProfile {} with {} connecting", sessionKey, username); packetEvent.getAsyncMarker().incrementProcessingDelay(); From 96be14cc731695f7cdc7fbc285e3b253f764a981 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Dec 2022 07:01:09 +0000 Subject: [PATCH 3/3] Bump slf4j-jdk14 from 2.0.0 to 2.0.6 Bumps [slf4j-jdk14](https://github.com/qos-ch/slf4j) from 2.0.0 to 2.0.6. - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](https://github.com/qos-ch/slf4j/compare/v_2.0.0...v_2.0.6) --- updated-dependencies: - dependency-name: org.slf4j:slf4j-jdk14 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- core/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/pom.xml b/core/pom.xml index e48203fb..8d562371 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -85,7 +85,7 @@ org.slf4j slf4j-jdk14 - 2.0.0 + 2.0.6