From 4407ba83fde1965294f24f73a4af8a196496ade6 Mon Sep 17 00:00:00 2001 From: TangJin <55261514+tangjin0418@users.noreply.github.com> Date: Thu, 2 Jan 2025 17:37:18 +0800 Subject: [PATCH] Add "GetPlayerServer". --- .../backend/BungeeCordMessageResponder.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/backend/BungeeCordMessageResponder.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/backend/BungeeCordMessageResponder.java index b047d1868d..6161c4c216 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/backend/BungeeCordMessageResponder.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/backend/BungeeCordMessageResponder.java @@ -301,6 +301,21 @@ private void processForwardToServer(ByteBufDataInput in) { } } + private void processGetPlayerServer(ByteBufDataInput in) { + proxy.getPlayer(in.readUTF()).ifPresent(player -> { + player.getCurrentServer().ifPresent(server -> { + ByteBuf buf = Unpooled.buffer(); + ByteBufDataOutput out = new ByteBufDataOutput(buf); + + out.writeUTF("GetPlayerServer"); + out.writeUTF(player.getUsername()); + out.writeUTF(server.getServerInfo().getName()); + + sendResponseOnConnection(buf); + }); + }); + } + static String getBungeeCordChannel(ProtocolVersion version) { return version.noLessThan(ProtocolVersion.MINECRAFT_1_13) ? MODERN_CHANNEL.getId() : LEGACY_CHANNEL.getId(); @@ -331,6 +346,9 @@ boolean process(PluginMessagePacket message) { ByteBufDataInput in = new ByteBufDataInput(message.content()); String subChannel = in.readUTF(); switch (subChannel) { + case "GetPlayerServer": + this.processGetPlayerServer(in); + break; case "ForwardToPlayer": this.processForwardToPlayer(in); break;