From 94979a3cf6aa1981c1a05077e5caa60c4e5925eb Mon Sep 17 00:00:00 2001 From: games647 Date: Wed, 27 Jul 2022 09:34:36 +0200 Subject: [PATCH] Fix reading username with 1.19 and Floodgate Related #856 --- .../listener/protocollib/ManualNameChange.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ManualNameChange.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ManualNameChange.java index cc085602..d62dbf03 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ManualNameChange.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ManualNameChange.java @@ -71,15 +71,15 @@ public class ManualNameChange extends PacketAdapter { @Override public void onPacketReceiving(PacketEvent packetEvent) { PacketContainer packet = packetEvent.getPacket(); - WrappedGameProfile originalProfile = packet.getGameProfiles().read(0); + String username = readUsername(packet); - if (floodgate.getBedrockPlayer(originalProfile.getName()) == null) { + if (floodgate.getBedrockPlayer(username) == null) { //not a Floodgate player, no need to add a prefix return; } - packet.setMeta("original_name", originalProfile.getName()); - String prefixedName = FloodgateApi.getInstance().getPlayerPrefix() + originalProfile.getName(); + packet.setMeta("original_name", username); + String prefixedName = FloodgateApi.getInstance().getPlayerPrefix() + username; setUsername(packet, prefixedName); } @@ -91,4 +91,12 @@ public class ManualNameChange extends PacketAdapter { packet.getStrings().write(0, name); } } + + private String readUsername(PacketContainer packet) { + if (packet.getGameProfiles().size() > 0) { + return packet.getGameProfiles().read(0).getName(); + } else { + return packet.getStrings().read(0); + } + } }