Fix reading username with 1.19 and Floodgate

Related #856
This commit is contained in:
games647
2022-07-27 09:34:36 +02:00
parent 564f713fce
commit 94979a3cf6

View File

@ -71,15 +71,15 @@ public class ManualNameChange extends PacketAdapter {
@Override @Override
public void onPacketReceiving(PacketEvent packetEvent) { public void onPacketReceiving(PacketEvent packetEvent) {
PacketContainer packet = packetEvent.getPacket(); 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 //not a Floodgate player, no need to add a prefix
return; return;
} }
packet.setMeta("original_name", originalProfile.getName()); packet.setMeta("original_name", username);
String prefixedName = FloodgateApi.getInstance().getPlayerPrefix() + originalProfile.getName(); String prefixedName = FloodgateApi.getInstance().getPlayerPrefix() + username;
setUsername(packet, prefixedName); setUsername(packet, prefixedName);
} }
@ -91,4 +91,12 @@ public class ManualNameChange extends PacketAdapter {
packet.getStrings().write(0, name); 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);
}
}
} }