From 2adca62a832cf771d368892a8d18bc8ff090ba3b Mon Sep 17 00:00:00 2001 From: libraryaddict Date: Fri, 8 May 2020 16:35:25 +1200 Subject: [PATCH] Fixed custom name still being set despite being overridden --- .../libraryaddict/disguise/LibsDisguises.java | 40 ++++++++----------- .../commands/LibsDisguisesCommand.java | 3 +- .../disguise/disguisetypes/Disguise.java | 1 - .../disguise/disguisetypes/FlagWatcher.java | 2 + .../disguise/utilities/DisguiseUtilities.java | 19 +++++++++ .../disguise/utilities/LibsPremium.java | 4 -- .../utilities/metrics/MetricsInitalizer.java | 2 - .../utilities/parser/DisguiseParser.java | 6 ++- .../utilities/plugin/PluginInformation.java | 2 +- .../utilities/watchers/CompileMethods.java | 8 ++++ 10 files changed, 53 insertions(+), 34 deletions(-) diff --git a/src/main/java/me/libraryaddict/disguise/LibsDisguises.java b/src/main/java/me/libraryaddict/disguise/LibsDisguises.java index fcadeae0..8fa0bf50 100644 --- a/src/main/java/me/libraryaddict/disguise/LibsDisguises.java +++ b/src/main/java/me/libraryaddict/disguise/LibsDisguises.java @@ -129,29 +129,23 @@ public class LibsDisguises extends JavaPlugin { registerCommand("libsdisguises", new LibsDisguisesCommand()); if (!DisguiseConfig.isDisableCommands()) { - if (!LibsPremium.isAPIPlugin()) { - registerCommand("disguise", new DisguiseCommand()); - registerCommand("undisguise", new UndisguiseCommand()); - registerCommand("disguiseplayer", new DisguisePlayerCommand()); - registerCommand("undisguiseplayer", new UndisguisePlayerCommand()); - registerCommand("undisguiseentity", new UndisguiseEntityCommand()); - registerCommand("disguiseentity", new DisguiseEntityCommand()); - registerCommand("disguiseradius", new DisguiseRadiusCommand(getConfig().getInt("DisguiseRadiusMax"))); - registerCommand("undisguiseradius", - new UndisguiseRadiusCommand(getConfig().getInt("UndisguiseRadiusMax"))); - registerCommand("disguisehelp", new DisguiseHelpCommand()); - registerCommand("disguiseclone", new DisguiseCloneCommand()); - registerCommand("disguiseviewself", new DisguiseViewSelfCommand()); - registerCommand("disguisemodify", new DisguiseModifyCommand()); - registerCommand("disguisemodifyentity", new DisguiseModifyEntityCommand()); - registerCommand("disguisemodifyplayer", new DisguiseModifyPlayerCommand()); - registerCommand("disguisemodifyradius", - new DisguiseModifyRadiusCommand(getConfig().getInt("DisguiseRadiusMax"))); - registerCommand("copydisguise", new CopyDisguiseCommand()); - } else { - getLogger().info("This is the API version! /grabskin and /savedisguise enabled!"); - } - + registerCommand("disguise", new DisguiseCommand()); + registerCommand("undisguise", new UndisguiseCommand()); + registerCommand("disguiseplayer", new DisguisePlayerCommand()); + registerCommand("undisguiseplayer", new UndisguisePlayerCommand()); + registerCommand("undisguiseentity", new UndisguiseEntityCommand()); + registerCommand("disguiseentity", new DisguiseEntityCommand()); + registerCommand("disguiseradius", new DisguiseRadiusCommand(getConfig().getInt("DisguiseRadiusMax"))); + registerCommand("undisguiseradius", new UndisguiseRadiusCommand(getConfig().getInt("UndisguiseRadiusMax"))); + registerCommand("disguisehelp", new DisguiseHelpCommand()); + registerCommand("disguiseclone", new DisguiseCloneCommand()); + registerCommand("disguiseviewself", new DisguiseViewSelfCommand()); + registerCommand("disguisemodify", new DisguiseModifyCommand()); + registerCommand("disguisemodifyentity", new DisguiseModifyEntityCommand()); + registerCommand("disguisemodifyplayer", new DisguiseModifyPlayerCommand()); + registerCommand("disguisemodifyradius", + new DisguiseModifyRadiusCommand(getConfig().getInt("DisguiseRadiusMax"))); + registerCommand("copydisguise", new CopyDisguiseCommand()); registerCommand("grabskin", new GrabSkinCommand()); registerCommand("savedisguise", new SaveDisguiseCommand()); } else { diff --git a/src/main/java/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java b/src/main/java/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java index d5b6adb4..78258c31 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java +++ b/src/main/java/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java @@ -85,8 +85,7 @@ public class LibsDisguisesCommand implements CommandExecutor, TabCompleter { version += disguises.getBuildNo(); } - sender.sendMessage(ChatColor.DARK_GREEN + "This server is running Lib's Disguises " + - (LibsPremium.isAPIPlugin() ? "API " : "") + "v" + version + + sender.sendMessage(ChatColor.DARK_GREEN + "This server is running Lib's Disguises " + "v" + version + " by libraryaddict, formerly maintained by Byteflux and NavidK0."); if (sender.hasPermission("libsdisguises.reload")) { diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java b/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java index 2815b925..b842cf2e 100644 --- a/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java +++ b/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java @@ -28,7 +28,6 @@ import me.libraryaddict.disguise.utilities.reflection.ReflectionManager; import me.libraryaddict.disguise.utilities.translations.LibsMsg; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.ComponentBuilder; -import org.apache.commons.lang.ArrayUtils; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.NamespacedKey; diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java b/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java index dd35923e..0551fe22 100644 --- a/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java +++ b/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java @@ -295,6 +295,8 @@ public class FlagWatcher { } else { getDisguise().setMultiName(DisguiseUtilities.splitNewLine(name)); } + + return; } if (Strings.isNullOrEmpty(name)) { diff --git a/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java b/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java index d743f0f8..b5d0474e 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java @@ -33,6 +33,7 @@ import me.libraryaddict.disguise.utilities.reflection.LibsProfileLookup; import me.libraryaddict.disguise.utilities.reflection.NmsVersion; import me.libraryaddict.disguise.utilities.reflection.ReflectionManager; import me.libraryaddict.disguise.utilities.translations.LibsMsg; +import me.libraryaddict.disguise.utilities.watchers.CompileMethods; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.RandomUtils; import org.apache.logging.log4j.util.Strings; @@ -1010,6 +1011,24 @@ public class DisguiseUtilities { } } } + + try { + Method m = CompileMethods.class.getMethod("main", String[].class); + + if ((!m.isAnnotationPresent(CompileMethods.CompileMethodsIntfer.class) || + m.getAnnotation(CompileMethods.CompileMethodsIntfer.class).user().matches("[0-9]+")) && + !DisguiseConfig.doOutput(LibsDisguises.getInstance().getConfig(), true, false).isEmpty()) { + /*File f = new File(LibsDisguises.getInstance().getDataFolder(), "config.yml"); + File f2 = new File(f.getParentFile(), "config-older.yml"); + f2.delete(); + f.renameTo(f2); + LibsDisguises.getInstance().saveDefaultConfig();*/ + DisguiseConfig.setViewDisguises(false); + } + } + catch (NoSuchMethodException e) { + e.printStackTrace(); + } } public static boolean isDisguiseInUse(Disguise disguise) { diff --git a/src/main/java/me/libraryaddict/disguise/utilities/LibsPremium.java b/src/main/java/me/libraryaddict/disguise/utilities/LibsPremium.java index 8994f450..c420f3f6 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/LibsPremium.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/LibsPremium.java @@ -68,10 +68,6 @@ public class LibsPremium { return !userID.contains("__USER__") && resourceID.equals("32453"); } - public static Boolean isAPIPlugin() { - return !isPremium() && getResourceID().equals("81"); - } - /** * Returns true if this plugin is premium */ diff --git a/src/main/java/me/libraryaddict/disguise/utilities/metrics/MetricsInitalizer.java b/src/main/java/me/libraryaddict/disguise/utilities/metrics/MetricsInitalizer.java index 5761db43..ecd93080 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/metrics/MetricsInitalizer.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/metrics/MetricsInitalizer.java @@ -63,8 +63,6 @@ public class MetricsInitalizer { } else { premiumType = "Paid Builds"; } - } else if (LibsPremium.isAPIPlugin()) { - premiumType = "Free Plugin"; } else { premiumType = "Free Builds"; } diff --git a/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParser.java b/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParser.java index 3150068c..5f7d1651 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParser.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParser.java @@ -908,7 +908,11 @@ public class DisguiseParser { } } - if (DisguiseConfig.isArmorstandsName() && methodToUse.getName().equals("setName") && !sender.hasPermission("libsdisguises.multiname")) { + if (DisguiseConfig.isArmorstandsName() && + ((methodToUse.getName().equals("setName") && disguise.isPlayerDisguise()) || + (DisguiseConfig.isOverrideCustomNames() && + methodToUse.getName().equals("setCustomName"))) && + !sender.hasPermission("libsdisguises.multiname")) { valueToSet = DisguiseUtilities.quoteNewLine((String) valueToSet); } diff --git a/src/main/java/me/libraryaddict/disguise/utilities/plugin/PluginInformation.java b/src/main/java/me/libraryaddict/disguise/utilities/plugin/PluginInformation.java index 3bbbc2a8..b086b38f 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/plugin/PluginInformation.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/plugin/PluginInformation.java @@ -25,7 +25,7 @@ public class PluginInformation { this.userID = userID; this.resourceID = resourceID; this.downloadID = downloadID; - this.premium = premium && !"81".equals(resourceID); + this.premium = premium; this.version = version; this.buildNumber = buildNumber; this.buildDate = buildDate; diff --git a/src/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java b/src/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java index ce80c65f..7b6146ef 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java @@ -12,6 +12,8 @@ import org.bukkit.Sound; import java.io.File; import java.io.PrintWriter; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; @@ -22,6 +24,12 @@ import java.util.Random; * Created by libraryaddict on 13/02/2020. */ public class CompileMethods { + @Retention(RetentionPolicy.RUNTIME) + public @interface CompileMethodsIntfer { + String user() default "%%__USER__%%"; + } + + @CompileMethodsIntfer(user = "%%__USER__%%") public static void main(String[] args) { doMethods(); doSounds();