forked from TuxCoding/FastLogin
@@ -179,7 +179,8 @@ public class ProtocolLibListener extends PacketAdapter {
|
|||||||
private boolean verifyNonce(Player sender, PacketContainer packet,
|
private boolean verifyNonce(Player sender, PacketContainer packet,
|
||||||
ClientPublicKey clientPublicKey, byte[] expectedToken) {
|
ClientPublicKey clientPublicKey, byte[] expectedToken) {
|
||||||
try {
|
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<byte[], ?> either = packet.getSpecificModifier(Either.class).read(0);
|
Either<byte[], ?> either = packet.getSpecificModifier(Either.class).read(0);
|
||||||
if (clientPublicKey == null) {
|
if (clientPublicKey == null) {
|
||||||
Optional<byte[]> left = either.left();
|
Optional<byte[]> left = either.left();
|
||||||
@@ -222,10 +223,15 @@ public class ProtocolLibListener extends PacketAdapter {
|
|||||||
plugin.removeSession(player.getAddress());
|
plugin.removeSession(player.getAddress());
|
||||||
|
|
||||||
PacketContainer packet = packetEvent.getPacket();
|
PacketContainer packet = packetEvent.getPacket();
|
||||||
|
Optional<ClientPublicKey> 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())
|
val profileKey = packet.getOptionals(BukkitConverters.getWrappedPublicKeyDataConverter())
|
||||||
.optionRead(0);
|
.optionRead(0);
|
||||||
|
|
||||||
val clientKey = profileKey.flatMap(Function.identity()).flatMap(data -> {
|
clientKey = profileKey.flatMap(Function.identity()).flatMap(data -> {
|
||||||
Instant expires = data.getExpireTime();
|
Instant expires = data.getExpireTime();
|
||||||
PublicKey key = data.getKey();
|
PublicKey key = data.getKey();
|
||||||
byte[] signature = data.getSignature();
|
byte[] signature = data.getSignature();
|
||||||
@@ -242,6 +248,8 @@ public class ProtocolLibListener extends PacketAdapter {
|
|||||||
plugin.getLog().warn("Invalid public key from player {}", username);
|
plugin.getLog().warn("Invalid public key from player {}", username);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
plugin.getLog().trace("GameProfile {} with {} connecting", sessionKey, username);
|
plugin.getLog().trace("GameProfile {} with {} connecting", sessionKey, username);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user