From 593e69c797cff0cc0219a9e610cdf7f22a462a9a Mon Sep 17 00:00:00 2001 From: aro Date: Sun, 15 Jan 2023 18:29:07 +0100 Subject: [PATCH] fix: prevent npe on empty profile name --- .../src/main/java/net/artelnatif/nicko/impl/v1_17_R1.java | 5 +++-- .../src/main/java/net/artelnatif/nicko/impl/v1_18_R1.java | 5 +++-- .../src/main/java/net/artelnatif/nicko/impl/v1_18_R2.java | 5 +++-- .../src/main/java/net/artelnatif/nicko/impl/v1_19_R1.java | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/v1_17_R1/src/main/java/net/artelnatif/nicko/impl/v1_17_R1.java b/v1_17_R1/src/main/java/net/artelnatif/nicko/impl/v1_17_R1.java index 519ee75..651607c 100644 --- a/v1_17_R1/src/main/java/net/artelnatif/nicko/impl/v1_17_R1.java +++ b/v1_17_R1/src/main/java/net/artelnatif/nicko/impl/v1_17_R1.java @@ -86,11 +86,12 @@ public class v1_17_R1 implements Internals { final CraftPlayer craftPlayer = (CraftPlayer) player; final EntityPlayer entityPlayer = craftPlayer.getHandle(); final boolean changeOnlyName = profile.getSkin() != null && !profile.getSkin().equalsIgnoreCase(player.getName()); + final String profileName = profile.getName() == null ? player.getName() : profile.getName(); Optional skin; final PacketPlayOutPlayerInfo remove = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.e, entityPlayer); final PacketPlayOutPlayerInfo add = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.a); - final GameProfile gameProfile = new GameProfile(player.getUniqueId(), profile.getName()); + final GameProfile gameProfile = new GameProfile(player.getUniqueId(), profileName); if (skinChange || changeOnlyName) { try { @@ -117,7 +118,7 @@ public class v1_17_R1 implements Internals { add.b().clear(); add.b().add(new PacketPlayOutPlayerInfo.PlayerInfoData(gameProfile, player.getPing(), - EnumGamemode.getById(player.getGameMode().ordinal()), IChatBaseComponent.a(profile.getName()))); + EnumGamemode.getById(player.getGameMode().ordinal()), IChatBaseComponent.a(profileName))); entityPlayer.b.sendPacket(remove); entityPlayer.b.sendPacket(add); diff --git a/v1_18_R1/src/main/java/net/artelnatif/nicko/impl/v1_18_R1.java b/v1_18_R1/src/main/java/net/artelnatif/nicko/impl/v1_18_R1.java index 39f4ceb..04c6546 100644 --- a/v1_18_R1/src/main/java/net/artelnatif/nicko/impl/v1_18_R1.java +++ b/v1_18_R1/src/main/java/net/artelnatif/nicko/impl/v1_18_R1.java @@ -88,11 +88,12 @@ public class v1_18_R1 implements Internals { final CraftPlayer craftPlayer = (CraftPlayer) player; final EntityPlayer entityPlayer = craftPlayer.getHandle(); final boolean changeOnlyName = profile.getSkin() != null && !profile.getSkin().equalsIgnoreCase(player.getName()); + final String profileName = profile.getName() == null ? player.getName() : profile.getName(); Optional skin; final PacketPlayOutPlayerInfo remove = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.e, entityPlayer); final PacketPlayOutPlayerInfo add = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.a); - final GameProfile gameProfile = new GameProfile(player.getUniqueId(), profile.getName()); + final GameProfile gameProfile = new GameProfile(player.getUniqueId(), profileName); if (skinChange || changeOnlyName) { try { @@ -119,7 +120,7 @@ public class v1_18_R1 implements Internals { add.b().clear(); add.b().add(new PacketPlayOutPlayerInfo.PlayerInfoData(gameProfile, player.getPing(), - EnumGamemode.a(player.getGameMode().ordinal()), IChatBaseComponent.a(profile.getName()))); + EnumGamemode.a(player.getGameMode().ordinal()), IChatBaseComponent.a(profileName))); entityPlayer.b.a(remove); entityPlayer.b.a(add); diff --git a/v1_18_R2/src/main/java/net/artelnatif/nicko/impl/v1_18_R2.java b/v1_18_R2/src/main/java/net/artelnatif/nicko/impl/v1_18_R2.java index 18693fc..8889153 100644 --- a/v1_18_R2/src/main/java/net/artelnatif/nicko/impl/v1_18_R2.java +++ b/v1_18_R2/src/main/java/net/artelnatif/nicko/impl/v1_18_R2.java @@ -88,11 +88,12 @@ public class v1_18_R2 implements Internals { final CraftPlayer craftPlayer = (CraftPlayer) player; final EntityPlayer entityPlayer = craftPlayer.getHandle(); final boolean changeOnlyName = profile.getSkin() != null && !profile.getSkin().equalsIgnoreCase(player.getName()); + final String profileName = profile.getName() == null ? player.getName() : profile.getName(); Optional skin; final PacketPlayOutPlayerInfo remove = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.e, entityPlayer); final PacketPlayOutPlayerInfo add = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.a); - final GameProfile gameProfile = new GameProfile(player.getUniqueId(), profile.getName()); + final GameProfile gameProfile = new GameProfile(player.getUniqueId(), profileName); if (skinChange || changeOnlyName) { try { @@ -119,7 +120,7 @@ public class v1_18_R2 implements Internals { add.b().clear(); add.b().add(new PacketPlayOutPlayerInfo.PlayerInfoData(gameProfile, player.getPing(), - EnumGamemode.a(player.getGameMode().ordinal()), IChatBaseComponent.a(profile.getName()))); + EnumGamemode.a(player.getGameMode().ordinal()), IChatBaseComponent.a(profileName))); entityPlayer.b.a(remove); entityPlayer.b.a(add); diff --git a/v1_19_R1/src/main/java/net/artelnatif/nicko/impl/v1_19_R1.java b/v1_19_R1/src/main/java/net/artelnatif/nicko/impl/v1_19_R1.java index 0b282b4..8146e59 100644 --- a/v1_19_R1/src/main/java/net/artelnatif/nicko/impl/v1_19_R1.java +++ b/v1_19_R1/src/main/java/net/artelnatif/nicko/impl/v1_19_R1.java @@ -90,6 +90,7 @@ public class v1_19_R1 implements Internals { final CraftPlayer craftPlayer = (CraftPlayer) player; final EntityPlayer entityPlayer = craftPlayer.getHandle(); final boolean changeOnlyName = profile.getSkin() != null && !profile.getSkin().equalsIgnoreCase(player.getName()); + final String profileName = profile.getName() == null ? player.getName() : profile.getName(); Optional skin; final PacketPlayOutPlayerInfo add = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.a); @@ -97,7 +98,7 @@ public class v1_19_R1 implements Internals { // "It's a Surprise Tool That Will Help Us Later!" final ProfilePublicKey.a key = remove.b().get(0).e(); - final GameProfile gameProfile = new GameProfile(player.getUniqueId(), profile.getName()); + final GameProfile gameProfile = new GameProfile(player.getUniqueId(), profileName); if (skinChange || changeOnlyName) { try { @@ -126,7 +127,7 @@ public class v1_19_R1 implements Internals { add.b().add(new PacketPlayOutPlayerInfo.PlayerInfoData(gameProfile, player.getPing(), EnumGamemode.a(player.getGameMode().ordinal()), - IChatBaseComponent.a(profile.getName()), + IChatBaseComponent.a(profileName), key)); // f mojang entityPlayer.b.a(remove);