From a0f5903862a66f2437c230e11d5fd38656d8a2cc Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Sat, 11 Mar 2023 10:25:49 -0700 Subject: [PATCH] Fix possible error with sending plugin message without a player name --- .../main/java/us/ajg0702/queue/api/players/AdaptedPlayer.java | 3 ++- .../us/ajg0702/queue/platforms/bungeecord/BungeeMethods.java | 4 +++- .../us/ajg0702/queue/platforms/velocity/VelocityMethods.java | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/us/ajg0702/queue/api/players/AdaptedPlayer.java b/api/src/main/java/us/ajg0702/queue/api/players/AdaptedPlayer.java index e66789e..2ed2baa 100644 --- a/api/src/main/java/us/ajg0702/queue/api/players/AdaptedPlayer.java +++ b/api/src/main/java/us/ajg0702/queue/api/players/AdaptedPlayer.java @@ -3,6 +3,7 @@ package us.ajg0702.queue.api.players; import net.kyori.adventure.audience.Audience; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import us.ajg0702.queue.api.server.AdaptedServer; import us.ajg0702.queue.api.util.Handle; @@ -76,7 +77,7 @@ public interface AdaptedPlayer extends Handle, Audience { * Gets the player's username * @return the player's username */ - String getName(); + @Nullable String getName(); /** * Kick a player from the proxy diff --git a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeMethods.java b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeMethods.java index 7ebbd6e..31da45b 100644 --- a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeMethods.java +++ b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeMethods.java @@ -35,9 +35,11 @@ public class BungeeMethods implements PlatformMethods { public void sendPluginMessage(AdaptedPlayer player, String channel, String... data) { Collection networkPlayers = ProxyServer.getInstance().getPlayers(); if (networkPlayers != null && !networkPlayers.isEmpty()) { + String playerName = player.getName(); + if(playerName == null) return; ByteArrayDataOutput out = ByteStreams.newDataOutput(); out.writeUTF(channel); - out.writeUTF(player.getName()); + out.writeUTF(playerName); for (String s : data) { out.writeUTF(s); diff --git a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityMethods.java b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityMethods.java index a7e5f05..1be9456 100644 --- a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityMethods.java +++ b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/VelocityMethods.java @@ -41,8 +41,10 @@ public class VelocityMethods implements PlatformMethods { if(player == null) return; Player velocityPlayer = ((VelocityPlayer) player).getHandle(); @SuppressWarnings("UnstableApiUsage") ByteArrayDataOutput out = ByteStreams.newDataOutput(); + String playerName = player.getName(); + if(playerName == null) return; out.writeUTF( channel ); - out.writeUTF(player.getName()); + out.writeUTF(playerName); for(String s : data) { out.writeUTF( s ); }