From c217db98e83462faa56e313e0ca60bdc96c23d4e Mon Sep 17 00:00:00 2001 From: aroooo Date: Thu, 3 Nov 2022 09:17:50 +0100 Subject: [PATCH] fix: replace vavr's either with in-house implementation --- .../nicko/disguise/AppearanceManager.java | 4 +- .../nicko/disguise/UpdateResult.java | 25 +++++++++++ .../nicko/event/PlayerJoinListener.java | 10 ++++- .../net/artelnatif/nicko/impl/Internals.java | 3 +- .../net/artelnatif/nicko/impl/v1_18_R1.java | 11 +++-- .../net/artelnatif/nicko/impl/v1_18_R2.java | 11 +++-- .../net/artelnatif/nicko/impl/v1_19_R1.java | 41 ++++++++++--------- 7 files changed, 74 insertions(+), 31 deletions(-) create mode 100644 nicko-core/src/main/java/net/artelnatif/nicko/disguise/UpdateResult.java diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/disguise/AppearanceManager.java b/nicko-core/src/main/java/net/artelnatif/nicko/disguise/AppearanceManager.java index 654a906..801fec5 100644 --- a/nicko-core/src/main/java/net/artelnatif/nicko/disguise/AppearanceManager.java +++ b/nicko-core/src/main/java/net/artelnatif/nicko/disguise/AppearanceManager.java @@ -65,7 +65,7 @@ public class AppearanceManager { updatePlayer(true); } - public void updatePlayer(boolean skinChange) { - NickoBukkit.getInstance().getInternals().updateProfile(player, profile, skinChange); + public UpdateResult updatePlayer(boolean skinChange) { + return NickoBukkit.getInstance().getInternals().updateProfile(player, profile, skinChange); } } diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/disguise/UpdateResult.java b/nicko-core/src/main/java/net/artelnatif/nicko/disguise/UpdateResult.java new file mode 100644 index 0000000..dfe60ce --- /dev/null +++ b/nicko-core/src/main/java/net/artelnatif/nicko/disguise/UpdateResult.java @@ -0,0 +1,25 @@ +package net.artelnatif.nicko.disguise; + +import net.artelnatif.nicko.i18n.I18NDict; + +public class UpdateResult { + private final I18NDict.Error errorMessage; + private boolean error = false; + + public UpdateResult(I18NDict.Error errorMessage) { + this.error = true; + this.errorMessage = errorMessage; + } + + public UpdateResult() { + this.errorMessage = null; + } + + public boolean isError() { + return error; + } + + public I18NDict.Error getErrorMessage() { + return errorMessage; + } +} diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/event/PlayerJoinListener.java b/nicko-core/src/main/java/net/artelnatif/nicko/event/PlayerJoinListener.java index 71ff57d..4667b28 100644 --- a/nicko-core/src/main/java/net/artelnatif/nicko/event/PlayerJoinListener.java +++ b/nicko-core/src/main/java/net/artelnatif/nicko/event/PlayerJoinListener.java @@ -2,6 +2,9 @@ package net.artelnatif.nicko.event; import net.artelnatif.nicko.NickoBukkit; import net.artelnatif.nicko.disguise.AppearanceManager; +import net.artelnatif.nicko.disguise.UpdateResult; +import net.artelnatif.nicko.i18n.I18N; +import net.artelnatif.nicko.i18n.I18NDict; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -17,7 +20,12 @@ public class PlayerJoinListener implements Listener { if (appearanceManager.hasData()) { final boolean skinChange = !player.getName().equals(appearanceManager.getSkin()); - appearanceManager.updatePlayer(skinChange); + final UpdateResult updateResult = appearanceManager.updatePlayer(skinChange); + if (updateResult.isError()) { + player.sendMessage(I18N.translate(player, I18NDict.Event.DISGUISE_FAIL.getKey(), I18N.translate(player, updateResult.getErrorMessage().getKey()))); + } else { + player.sendMessage(I18N.translate(player, I18NDict.Event.DISGUISE_SUCCESS.getKey())); + } } }, 20L); } diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/impl/Internals.java b/nicko-core/src/main/java/net/artelnatif/nicko/impl/Internals.java index a68ff93..5e93f19 100644 --- a/nicko-core/src/main/java/net/artelnatif/nicko/impl/Internals.java +++ b/nicko-core/src/main/java/net/artelnatif/nicko/impl/Internals.java @@ -1,6 +1,7 @@ package net.artelnatif.nicko.impl; import net.artelnatif.nicko.disguise.NickoProfile; +import net.artelnatif.nicko.disguise.UpdateResult; import org.bukkit.entity.Player; public interface Internals { @@ -8,5 +9,5 @@ public interface Internals { void updateOthers(Player player); - void updateProfile(Player player, NickoProfile profile, boolean skinChange); + UpdateResult updateProfile(Player player, NickoProfile profile, boolean skinChange); } 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 20a67bb..de59e93 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 @@ -5,6 +5,8 @@ import com.mojang.authlib.properties.Property; import com.mojang.authlib.properties.PropertyMap; import net.artelnatif.nicko.NickoBukkit; import net.artelnatif.nicko.disguise.NickoProfile; +import net.artelnatif.nicko.disguise.UpdateResult; +import net.artelnatif.nicko.i18n.I18NDict; import net.artelnatif.nicko.mojang.MojangSkin; import net.minecraft.network.chat.IChatBaseComponent; import net.minecraft.network.protocol.game.*; @@ -82,7 +84,7 @@ public class v1_18_R1 implements Internals { } @Override - public void updateProfile(Player player, NickoProfile profile, boolean skinChange) { + public UpdateResult updateProfile(Player player, NickoProfile profile, boolean skinChange) { final CraftPlayer craftPlayer = (CraftPlayer) player; final EntityPlayer entityPlayer = craftPlayer.getHandle(); Optional skin; @@ -103,13 +105,13 @@ public class v1_18_R1 implements Internals { properties.put("textures", new Property("textures", skin.get().value(), skin.get().signature())); updateSelf(player); } else { - return; + return new UpdateResult(I18NDict.Error.SKIN_FAIL_MOJANG); } } else { - return; + return new UpdateResult(I18NDict.Error.NAME_FAIL_MOJANG); } } catch (IOException | ExecutionException e) { - return; + return new UpdateResult(I18NDict.Error.UNEXPECTED_ERROR); } } @@ -125,5 +127,6 @@ public class v1_18_R1 implements Internals { onlineEntityPlayer.b.a(add); }); updateOthers(player); + return new UpdateResult(); } } 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 a06d305..0aaca60 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 @@ -5,6 +5,8 @@ import com.mojang.authlib.properties.Property; import com.mojang.authlib.properties.PropertyMap; import net.artelnatif.nicko.NickoBukkit; import net.artelnatif.nicko.disguise.NickoProfile; +import net.artelnatif.nicko.disguise.UpdateResult; +import net.artelnatif.nicko.i18n.I18NDict; import net.artelnatif.nicko.mojang.MojangSkin; import net.minecraft.core.Holder; import net.minecraft.network.chat.IChatBaseComponent; @@ -82,7 +84,7 @@ public class v1_18_R2 implements Internals { } @Override - public void updateProfile(Player player, NickoProfile profile, boolean skinChange) { + public UpdateResult updateProfile(Player player, NickoProfile profile, boolean skinChange) { final CraftPlayer craftPlayer = (CraftPlayer) player; final EntityPlayer entityPlayer = craftPlayer.getHandle(); Optional skin; @@ -103,13 +105,13 @@ public class v1_18_R2 implements Internals { properties.put("textures", new Property("textures", skin.get().value(), skin.get().signature())); updateSelf(player); } else { - return; + return new UpdateResult(I18NDict.Error.SKIN_FAIL_MOJANG); } } else { - return; + return new UpdateResult(I18NDict.Error.NAME_FAIL_MOJANG); } } catch (IOException | ExecutionException e) { - return; + return new UpdateResult(I18NDict.Error.UNEXPECTED_ERROR); } } @@ -125,5 +127,6 @@ public class v1_18_R2 implements Internals { onlineEntityPlayer.b.a(add); }); updateOthers(player); + return new UpdateResult(); } } 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 b1858d9..ae2b3f9 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 @@ -5,6 +5,8 @@ import com.mojang.authlib.properties.Property; import com.mojang.authlib.properties.PropertyMap; import net.artelnatif.nicko.NickoBukkit; import net.artelnatif.nicko.disguise.NickoProfile; +import net.artelnatif.nicko.disguise.UpdateResult; +import net.artelnatif.nicko.i18n.I18NDict; import net.artelnatif.nicko.mojang.MojangSkin; import net.minecraft.network.chat.IChatBaseComponent; import net.minecraft.network.protocol.game.*; @@ -83,7 +85,7 @@ public class v1_19_R1 implements Internals { } @Override - public void updateProfile(Player player, NickoProfile profile, boolean skinChange) { + public UpdateResult updateProfile(Player player, NickoProfile profile, boolean skinChange) { final CraftPlayer craftPlayer = (CraftPlayer) player; final EntityPlayer entityPlayer = craftPlayer.getHandle(); Optional skin; @@ -104,29 +106,30 @@ public class v1_19_R1 implements Internals { properties.put("textures", new Property("textures", skin.get().value(), skin.get().signature())); updateSelf(player); } else { - return; + return new UpdateResult(I18NDict.Error.SKIN_FAIL_MOJANG); } } else { - return; + return new UpdateResult(I18NDict.Error.NAME_FAIL_MOJANG); } } catch (IOException | ExecutionException e) { - return; + return new UpdateResult(I18NDict.Error.UNEXPECTED_ERROR); } - - add.b().clear(); - add.b().add(new PacketPlayOutPlayerInfo.PlayerInfoData(gameProfile, - player.getPing(), - EnumGamemode.a(player.getGameMode().ordinal()), - IChatBaseComponent.a(profile.getName()), - entityPlayer.fz().b())); - entityPlayer.b.a(add); - - Bukkit.getOnlinePlayers().forEach(online -> { - EntityPlayer onlineEntityPlayer = ((CraftPlayer) online).getHandle(); - onlineEntityPlayer.b.a(remove); - onlineEntityPlayer.b.a(add); - }); - updateOthers(player); } + + add.b().clear(); + add.b().add(new PacketPlayOutPlayerInfo.PlayerInfoData(gameProfile, + player.getPing(), + EnumGamemode.a(player.getGameMode().ordinal()), + IChatBaseComponent.a(profile.getName()), + entityPlayer.fz().b())); + entityPlayer.b.a(add); + + Bukkit.getOnlinePlayers().forEach(online -> { + EntityPlayer onlineEntityPlayer = ((CraftPlayer) online).getHandle(); + onlineEntityPlayer.b.a(remove); + onlineEntityPlayer.b.a(add); + }); + updateOthers(player); + return new UpdateResult(); } }