From 58b80e9eaf1101218a9b31d50656b9b0f3b7ec6e Mon Sep 17 00:00:00 2001 From: Len <40720638+destro174@users.noreply.github.com> Date: Tue, 27 Sep 2022 13:42:03 +0200 Subject: [PATCH] Fork NickNameAccepted to update nickname on proxy before forwarding. --- .../listeners/PluginMessageListener.java | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/velocity/src/main/java/com/alttd/velocitychat/listeners/PluginMessageListener.java b/velocity/src/main/java/com/alttd/velocitychat/listeners/PluginMessageListener.java index 076a5f5..b8686c0 100755 --- a/velocity/src/main/java/com/alttd/velocitychat/listeners/PluginMessageListener.java +++ b/velocity/src/main/java/com/alttd/velocitychat/listeners/PluginMessageListener.java @@ -1,5 +1,7 @@ package com.alttd.velocitychat.listeners; +import com.alttd.chat.managers.ChatUserManager; +import com.alttd.chat.objects.ChatUser; import com.alttd.chat.objects.channels.CustomChannel; import com.alttd.chat.util.ALogger; import com.alttd.velocitychat.VelocityChat; @@ -14,6 +16,8 @@ import com.velocitypowered.api.proxy.messages.ChannelIdentifier; import com.velocitypowered.api.proxy.server.RegisteredServer; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; import java.util.UUID; public class PluginMessageListener { @@ -55,7 +59,6 @@ public class PluginMessageListener { ProxyServer proxy = VelocityChat.getPlugin().getProxy(); chatChannel.getServers().forEach(server -> proxy.getServer(server).ifPresent(registeredServer -> registeredServer.sendPluginMessage(VelocityChat.getPlugin().getChannelIdentifier(), event.getData()))); - break; } case "party" -> { VelocityChat.getPlugin().getChatHandler().sendPartyMessage( @@ -63,16 +66,33 @@ public class PluginMessageListener { in.readUTF(), GsonComponentSerializer.gson().deserialize(in.readUTF()), serverConnection); - break; } // nicknames WIP -// case "NickNameRequest", "NickNameAccepted", "NickNameSet", "NickNameDenied" -> { -// ProxyServer proxy = VelocityChat.getPlugin().getProxy(); -// proxy.getAllServers().forEach(registeredServer -> -// registeredServer.sendPluginMessage(VelocityChat.getPlugin().getChannelIdentifier(), event.getData())); -// break; -// } + case "NickNameAccepted" -> { + try { + short len = in.readShort(); + byte[] msgbytes = new byte[len]; + in.readFully(msgbytes); + + DataInputStream msgin = new DataInputStream(new ByteArrayInputStream(msgbytes)); + UUID uuid = UUID.fromString(msgin.readUTF()); + ChatUser chatUser = ChatUserManager.getChatUser(uuid); + chatUser.reloadDisplayName(); + + } catch (Exception e) { + e.printStackTrace(); + return; + } + ProxyServer proxy = VelocityChat.getPlugin().getProxy(); + proxy.getAllServers().forEach(registeredServer -> + registeredServer.sendPluginMessage(VelocityChat.getPlugin().getChannelIdentifier(), event.getData())); + } + case "NickNameRequest", "NickNameSet", "NickNameDenied" -> { + ProxyServer proxy = VelocityChat.getPlugin().getProxy(); + proxy.getAllServers().forEach(registeredServer -> + registeredServer.sendPluginMessage(VelocityChat.getPlugin().getChannelIdentifier(), event.getData())); + } default -> { VelocityChat.getPlugin().getLogger().info("server " + event.getSource()); ProxyServer proxy = VelocityChat.getPlugin().getProxy();