From e82e7c7856e351c59ae3c1aac795399acaef8a60 Mon Sep 17 00:00:00 2001 From: games647 Date: Mon, 25 Jul 2022 10:27:09 +0200 Subject: [PATCH] Fix manual name change workaround for floodgate with 1.19 Fixes #854 --- .../listener/protocollib/ManualNameChange.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 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 2a36e88a..61e315ae 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 @@ -33,6 +33,8 @@ import com.comphenix.protocol.wrappers.WrappedGameProfile; import com.github.games647.fastlogin.bukkit.FastLoginBukkit; import com.github.games647.fastlogin.core.hooks.bedrock.FloodgateService; +import java.util.UUID; + import org.geysermc.floodgate.api.FloodgateApi; import static com.comphenix.protocol.PacketType.Login.Client.START; @@ -78,7 +80,15 @@ public class ManualNameChange extends PacketAdapter { packet.setMeta("original_name", originalProfile.getName()); String prefixedName = FloodgateApi.getInstance().getPlayerPrefix() + originalProfile.getName(); - WrappedGameProfile updatedProfile = originalProfile.withName(prefixedName); - packet.getGameProfiles().write(0, updatedProfile); + setUsername(packet, prefixedName); + } + + private void setUsername(PacketContainer packet, String name) { + if (packet.getGameProfiles().size() > 0) { + WrappedGameProfile updatedProfile = new WrappedGameProfile(UUID.randomUUID(), name); + packet.getGameProfiles().write(0, updatedProfile); + } else { + packet.getStrings().write(0, name); + } } }