From 7675ed1ff6804aba83500efecd28e2accc81d0be Mon Sep 17 00:00:00 2001 From: rtm516 Date: Fri, 2 Apr 2021 19:39:08 +0100 Subject: [PATCH 1/3] Assign xuid for users to chat messages --- .../translators/java/JavaChatTranslator.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java index a5988050975..d017f42ec54 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java @@ -27,6 +27,7 @@ import com.github.steveice10.mc.protocol.packet.ingame.server.ServerChatPacket; import com.nukkitx.protocol.bedrock.packet.TextPacket; +import org.geysermc.connector.GeyserConnector; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.translators.PacketTranslator; import org.geysermc.connector.network.translators.Translator; @@ -40,7 +41,17 @@ public void translate(ServerChatPacket packet, GeyserSession session) { TextPacket textPacket = new TextPacket(); textPacket.setPlatformChatId(""); textPacket.setSourceName(""); - textPacket.setXuid(session.getAuthData().getXboxUUID()); + + // This attempts to find the XUID of the player so users can be muted/blocked + String xuid = ""; + GeyserSession playerSession = GeyserConnector.getInstance().getPlayerByUuid(packet.getSenderUuid()); + + if (playerSession != null) { + xuid = playerSession.getAuthData().getXboxUUID(); + } + + textPacket.setXuid(xuid); + switch (packet.getType()) { case CHAT: textPacket.setType(TextPacket.Type.CHAT); From 61355ff1ba0dd2468b6ae8524abac7c01178799b Mon Sep 17 00:00:00 2001 From: rtm516 Date: Fri, 2 Apr 2021 19:52:47 +0100 Subject: [PATCH 2/3] Ignore the empty uuid --- .../network/translators/java/JavaChatTranslator.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java index d017f42ec54..15c700ab349 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java @@ -44,10 +44,12 @@ public void translate(ServerChatPacket packet, GeyserSession session) { // This attempts to find the XUID of the player so users can be muted/blocked String xuid = ""; - GeyserSession playerSession = GeyserConnector.getInstance().getPlayerByUuid(packet.getSenderUuid()); + if (packet.getSenderUuid().getMostSignificantBits() != 0l && packet.getSenderUuid().getLeastSignificantBits() != 0l) { + GeyserSession playerSession = GeyserConnector.getInstance().getPlayerByUuid(packet.getSenderUuid()); - if (playerSession != null) { - xuid = playerSession.getAuthData().getXboxUUID(); + if (playerSession != null) { + xuid = playerSession.getAuthData().getXboxUUID(); + } } textPacket.setXuid(xuid); From 11ca49a3dfeac75cc5ab7b0bc764fba5ee928658 Mon Sep 17 00:00:00 2001 From: rtm516 Date: Fri, 2 Apr 2021 20:02:39 +0100 Subject: [PATCH 3/3] Fix logic --- .../connector/network/translators/java/JavaChatTranslator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java index 15c700ab349..fd48ac4ed9a 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaChatTranslator.java @@ -44,7 +44,7 @@ public void translate(ServerChatPacket packet, GeyserSession session) { // This attempts to find the XUID of the player so users can be muted/blocked String xuid = ""; - if (packet.getSenderUuid().getMostSignificantBits() != 0l && packet.getSenderUuid().getLeastSignificantBits() != 0l) { + if (packet.getSenderUuid().getMostSignificantBits() != 0l || packet.getSenderUuid().getLeastSignificantBits() != 0l) { GeyserSession playerSession = GeyserConnector.getInstance().getPlayerByUuid(packet.getSenderUuid()); if (playerSession != null) {