From 8d5efcbe5608469eb7d95d5c30fb4cf8163f046d Mon Sep 17 00:00:00 2001 From: libraryaddict Date: Thu, 21 May 2020 20:48:14 +1200 Subject: [PATCH] Fix clone trying to access null watcher --- .../me/libraryaddict/disguise/disguisetypes/Disguise.java | 2 +- .../disguise/disguisetypes/PlayerDisguise.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java b/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java index ae7d2a24..cf7450cd 100644 --- a/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java +++ b/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java @@ -212,7 +212,7 @@ public abstract class Disguise { disguise.multiName = Arrays.copyOf(multiName, multiName.length); disguise.setDynamicName(isDynamicName()); - if (getWatcher() != null) { + if (getWatcher() != null && disguise.getWatcher() == null) { disguise.setWatcher(getWatcher().clone(disguise)); } diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java b/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java index 1c3396f8..55747675 100644 --- a/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java +++ b/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java @@ -4,8 +4,6 @@ import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.wrappers.EnumWrappers.PlayerInfoAction; import com.comphenix.protocol.wrappers.WrappedGameProfile; -import lombok.Getter; -import lombok.Setter; import me.libraryaddict.disguise.DisguiseConfig; import me.libraryaddict.disguise.LibsDisguises; import me.libraryaddict.disguise.disguisetypes.watchers.PlayerWatcher; @@ -210,6 +208,10 @@ public class PlayerDisguise extends TargetedDisguise { public PlayerDisguise clone() { PlayerDisguise disguise = new PlayerDisguise(); + if (getWatcher() != null) { + disguise.setWatcher(getWatcher().clone(disguise)); + } + if (currentLookup == null && gameProfile != null) { disguise.skinToUse = getSkin(); disguise.gameProfile = ReflectionManager