diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4016b6a --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ + +\.idea/ + +dependency-reduced-pom\.xml + +citizens-cmd\.iml + +target/ diff --git a/pom.xml b/pom.xml index 951b283..402e9c1 100644 --- a/pom.xml +++ b/pom.xml @@ -92,7 +92,7 @@ net.citizensnpcs citizensapi - 2.0.23-SNAPSHOT + 2.0.24-SNAPSHOT provided diff --git a/src/main/java/me/mattmoreira/citizenscmd/CitizensCMD.java b/src/main/java/me/mattmoreira/citizenscmd/CitizensCMD.java index b93ed44..2940a07 100644 --- a/src/main/java/me/mattmoreira/citizenscmd/CitizensCMD.java +++ b/src/main/java/me/mattmoreira/citizenscmd/CitizensCMD.java @@ -34,13 +34,11 @@ import me.mattmoreira.citizenscmd.utility.DisplayFormat; import me.mattmoreira.citizenscmd.utility.Util; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; -import org.bukkit.plugin.*; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.nio.file.Files; import java.util.HashMap; import java.util.stream.Stream; @@ -53,8 +51,6 @@ public final class CitizensCMD extends JavaPlugin { */ private final String[] REGISTERED_LANG_FILES = {"en", "pt", "ro", "bg", "no", "ch"}; - private static CitizensCMD plugin; - private static CommandHandler commandHandler = null; private static LangHandler lang = null; private static DataHandler dataHandler = null; @@ -70,43 +66,32 @@ public final class CitizensCMD extends JavaPlugin { private static HashMap waitingList; - public void onLoad() { - if (!hasCitizensFile()) { - info(color(TAG + "&cCitizens &7is needed for this plugin to work!")); - info(color(TAG + "&cCitizens.jar &7is not installed on the server!")); - info(color(TAG + "&cDownloading Citizens jar...")); - Util.downloadCitizens(); - } - } - public void onEnable() { - if (!hasCitizens()) Util.loadCitizens(); + if (!hasCitizens()) Util.disablePlugin(this); - plugin = this; - - commandHandler = new CommandHandler(); + commandHandler = new CommandHandler(this); commandHandler.enable(); - checkOldConfig(); + checkOldConfig(this); new Metrics(this); info(color(TAG + "&3Citizens&cCMD &8&o" + getDescription().getVersion() + " &8By &3Mateus Moreira &c@LichtHund")); - permissionsManager = new PermissionsManager(); + permissionsManager = new PermissionsManager(this); - dataHandler = new DataHandler(); + dataHandler = new DataHandler(this); dataHandler.initialize(); - cooldownHandler = new CooldownHandler(); + cooldownHandler = new CooldownHandler(this); Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> cooldownHandler.initialize(), 30L); saveDefaultConfig(); registerCommands(); registerEvents(); - registerLangs(); + registerLangs(this); setLang(getConfig().getString("lang")); if (hasPAPI()) { @@ -175,7 +160,7 @@ public final class CitizensCMD extends JavaPlugin { } else displayFormat = DisplayFormat.MEDIUM; - if (upCheck()) { + if (upCheck(this)) { SpigotUpdater updater = new SpigotUpdater(this, 30224); try { // If there's an update, tell the user that they can update @@ -211,8 +196,8 @@ public final class CitizensCMD extends JavaPlugin { } } - new UpdateScheduler().runTaskTimerAsynchronously(this, 72000L, 72000L); - new CooldownScheduler().runTaskTimerAsynchronously(this, 36000L, 36000L); + new UpdateScheduler(this).runTaskTimerAsynchronously(this, 72000L, 72000L); + new CooldownScheduler(this).runTaskTimerAsynchronously(this, 36000L, 36000L); } @Override @@ -221,16 +206,6 @@ public final class CitizensCMD extends JavaPlugin { cooldownHandler.saveToFile(); } - - /** - * Checks if Citizens is installed or not on the server - * - * @return Returns true if Citizens is found and false if not - */ - private boolean hasCitizensFile() { - return Util.doesCitizensExist(); - } - private boolean hasCitizens() { return Bukkit.getPluginManager().isPluginEnabled("Citizens"); } @@ -249,7 +224,7 @@ public final class CitizensCMD extends JavaPlugin { */ private void registerCommands() { getCommand("npcmd").setExecutor(commandHandler); - Stream.of(new CMDHelp(), new CMDAdd(), new CMDCooldown(), new CMDList(), new CMDReload(), new CMDRemove(), new CMDEdit(), new CMDPrice(), new CMDSound()).forEach(commandHandler::register); + Stream.of(new CMDHelp(this), new CMDAdd(this), new CMDCooldown(this), new CMDList(this), new CMDReload(this), new CMDRemove(this), new CMDEdit(this), new CMDPrice(this), new CMDSound()).forEach(commandHandler::register); } /** @@ -257,8 +232,8 @@ public final class CitizensCMD extends JavaPlugin { */ private void registerEvents() { PluginManager pm = getServer().getPluginManager(); - pm.registerEvents(new UpdateEvent(), this); - pm.registerEvents(new NPCListener(), this); + pm.registerEvents(new UpdateEvent(this), this); + pm.registerEvents(new NPCListener(this), this); } /** @@ -279,26 +254,17 @@ public final class CitizensCMD extends JavaPlugin { return economy != null; } - /** - * Gets the plugin instance - * - * @return Returns instance of the plugin - */ - public static CitizensCMD getPlugin() { - return plugin; - } - /** * Creates all the language files */ - private void registerLangs() { + private void registerLangs(CitizensCMD plugin) { File langFile; for (String registeredLangFile : REGISTERED_LANG_FILES) { - langFile = new File(CitizensCMD.getPlugin().getDataFolder(), "lang/" + registeredLangFile + ".yml"); + langFile = new File(plugin.getDataFolder(), "lang/" + registeredLangFile + ".yml"); if (!langFile.exists()) - CitizensCMD.getPlugin().saveResource("lang/" + registeredLangFile + ".yml", false); + plugin.saveResource("lang/" + registeredLangFile + ".yml", false); } } @@ -311,41 +277,41 @@ public final class CitizensCMD extends JavaPlugin { case "en": case "eng": case "english": - lang = new LangHandler("en"); + lang = new LangHandler(this, "en"); break; case "pt": case "port": case "portuguese": - lang = new LangHandler("pt"); + lang = new LangHandler(this, "pt"); break; case "ro": case "roma": case "romanian": - lang = new LangHandler("ro"); + lang = new LangHandler(this, "ro"); break; case "bg": case "bulg": case "bulgarian": - lang = new LangHandler("bg"); + lang = new LangHandler(this, "bg"); break; case "no": case "norw": case "norwegian": - lang = new LangHandler("no"); + lang = new LangHandler(this, "no"); break; case "ch": case "chi": case "chinese": - lang = new LangHandler("ch"); + lang = new LangHandler(this, "ch"); break; default: - lang = new LangHandler("en"); + lang = new LangHandler(this, "en"); break; } lang.initialize(); diff --git a/src/main/java/me/mattmoreira/citizenscmd/commands/CMDAdd.java b/src/main/java/me/mattmoreira/citizenscmd/commands/CMDAdd.java index 239ef9d..6f57f80 100644 --- a/src/main/java/me/mattmoreira/citizenscmd/commands/CMDAdd.java +++ b/src/main/java/me/mattmoreira/citizenscmd/commands/CMDAdd.java @@ -29,8 +29,11 @@ import static me.mattmoreira.citizenscmd.utility.Util.npcNotSelected; public class CMDAdd extends CommandBase { - public CMDAdd() { + private CitizensCMD plugin; + + public CMDAdd(CitizensCMD plugin) { super("add", "citizenscmd.add", false, null, 2, 512); + this.plugin = plugin; } /** @@ -42,7 +45,7 @@ public class CMDAdd extends CommandBase { @Override public void execute(Player player, String[] args) { - if (npcNotSelected(player)) return; + if (npcNotSelected(plugin, player)) return; String permission = args[0]; boolean left = false; @@ -76,7 +79,7 @@ public class CMDAdd extends CommandBase { boolean finalLeft = left; - CitizensCMD.getPlugin().getDataHandler().addCommand(getSelectedNpcId(player), permission, finalString, player, finalLeft); + plugin.getDataHandler().addCommand(getSelectedNpcId(player), permission, finalString, player, finalLeft); } } diff --git a/src/main/java/me/mattmoreira/citizenscmd/commands/CMDCooldown.java b/src/main/java/me/mattmoreira/citizenscmd/commands/CMDCooldown.java index 6bc42af..5932033 100644 --- a/src/main/java/me/mattmoreira/citizenscmd/commands/CMDCooldown.java +++ b/src/main/java/me/mattmoreira/citizenscmd/commands/CMDCooldown.java @@ -27,22 +27,25 @@ import static me.mattmoreira.citizenscmd.utility.Util.*; public class CMDCooldown extends CommandBase { - public CMDCooldown() { + private CitizensCMD plugin; + + public CMDCooldown(CitizensCMD plugin) { super("cooldown", "citizenscmd.cooldown", false, new String[]{"cd"}, 1, 1); + this.plugin = plugin; } @Override public void execute(Player player, String[] args) { - if (npcNotSelected(player)) return; + if (npcNotSelected(plugin, player)) return; if (notInteger(args[0])) { player.sendMessage(color(HEADER)); - player.sendMessage(CitizensCMD.getPlugin().getLang().getMessage(Path.INVALID_COOLDOWN)); + player.sendMessage(plugin.getLang().getMessage(Path.INVALID_COOLDOWN)); return; } - CitizensCMD.getPlugin().getDataHandler().setCooldown(getSelectedNpcId(player), Integer.valueOf(args[0]), player); + plugin.getDataHandler().setCooldown(getSelectedNpcId(player), Integer.valueOf(args[0]), player); } } diff --git a/src/main/java/me/mattmoreira/citizenscmd/commands/CMDEdit.java b/src/main/java/me/mattmoreira/citizenscmd/commands/CMDEdit.java index 57cb493..54e492c 100644 --- a/src/main/java/me/mattmoreira/citizenscmd/commands/CMDEdit.java +++ b/src/main/java/me/mattmoreira/citizenscmd/commands/CMDEdit.java @@ -30,18 +30,21 @@ import static me.mattmoreira.citizenscmd.utility.Util.*; public class CMDEdit extends CommandBase { - public CMDEdit() { + private CitizensCMD plugin; + + public CMDEdit(CitizensCMD plugin) { super("edit", "citizenscmd.edit", false, null, 4, 512); + this.plugin = plugin; } @Override public void execute(Player player, String[] args) { - if (npcNotSelected(player)) return; + if (npcNotSelected(plugin, player)) return; if (notInteger(args[2])) { player.sendMessage(color(HEADER)); - player.sendMessage(CitizensCMD.getPlugin().getLang().getMessage(Path.INVALID_ID_NUMBER)); + player.sendMessage(plugin.getLang().getMessage(Path.INVALID_ID_NUMBER)); return; } @@ -57,49 +60,49 @@ public class CMDEdit extends CommandBase { case "perm": if (args.length > 4) { player.sendMessage(color(HEADER)); - player.sendMessage(CitizensCMD.getPlugin().getLang().getMessage(Path.INVALID_PERMISSION)); + player.sendMessage(plugin.getLang().getMessage(Path.INVALID_PERMISSION)); return; } type = EnumTypes.EditType.PERM; break; default: player.sendMessage(color(HEADER)); - player.sendMessage(CitizensCMD.getPlugin().getLang().getMessage(Path.INVALID_ARGUMENTS)); + player.sendMessage(plugin.getLang().getMessage(Path.INVALID_ARGUMENTS)); return; } switch (args[1].toLowerCase()) { case "left": - int leftCommandSize = CitizensCMD.getPlugin().getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.LEFT).size(); + int leftCommandSize = plugin.getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.LEFT).size(); if (leftCommandSize == 0) { player.sendMessage(color(HEADER)); - player.sendMessage(CitizensCMD.getPlugin().getLang().getMessage(Path.NO_COMMANDS)); + player.sendMessage(plugin.getLang().getMessage(Path.NO_COMMANDS)); return; } if (commandID < 1 || commandID > leftCommandSize) { player.sendMessage(color(HEADER)); - player.sendMessage(CitizensCMD.getPlugin().getLang().getMessage(Path.INVALID_ID_NUMBER)); + player.sendMessage(plugin.getLang().getMessage(Path.INVALID_ID_NUMBER)); return; } click = EnumTypes.ClickType.LEFT; break; case "right": - int rightCommandSize = CitizensCMD.getPlugin().getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.RIGHT).size(); + int rightCommandSize = plugin.getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.RIGHT).size(); if (rightCommandSize == 0) { player.sendMessage(color(HEADER)); - player.sendMessage(CitizensCMD.getPlugin().getLang().getMessage(Path.NO_COMMANDS)); + player.sendMessage(plugin.getLang().getMessage(Path.NO_COMMANDS)); return; } if (commandID < 1 || commandID > rightCommandSize) { player.sendMessage(color(HEADER)); - player.sendMessage(CitizensCMD.getPlugin().getLang().getMessage(Path.INVALID_ID_NUMBER)); + player.sendMessage(plugin.getLang().getMessage(Path.INVALID_ID_NUMBER)); return; } click = EnumTypes.ClickType.RIGHT; break; default: player.sendMessage(color(HEADER)); - player.sendMessage(CitizensCMD.getPlugin().getLang().getMessage(Path.INVALID_CLICK_TYPE)); + player.sendMessage(plugin.getLang().getMessage(Path.INVALID_CLICK_TYPE)); return; } @@ -112,6 +115,6 @@ public class CMDEdit extends CommandBase { else stringBuilder.append(commandsArray[i]).append(" "); } - CitizensCMD.getPlugin().getDataHandler().edit(npc, commandID, click, type, stringBuilder.toString().trim(), player); + plugin.getDataHandler().edit(npc, commandID, click, type, stringBuilder.toString().trim(), player); } } diff --git a/src/main/java/me/mattmoreira/citizenscmd/commands/CMDHelp.java b/src/main/java/me/mattmoreira/citizenscmd/commands/CMDHelp.java index 016ae4c..a5222a2 100644 --- a/src/main/java/me/mattmoreira/citizenscmd/commands/CMDHelp.java +++ b/src/main/java/me/mattmoreira/citizenscmd/commands/CMDHelp.java @@ -32,23 +32,26 @@ import static me.mattmoreira.citizenscmd.utility.Util.color; */ public class CMDHelp extends CommandBase { - public CMDHelp() { + private CitizensCMD plugin; + + public CMDHelp(CitizensCMD plugin) { super("help", "citizenscmd.npcmd", false, null, 0, 0); + this.plugin = plugin; } @Override public void execute(Player player, String[] args) { JSONMessage.create(color(HEADER)).send(player); - JSONMessage.create(color(CitizensCMD.getPlugin().getLang().getUncoloredMessage(Path.HELP_VERSION) + " &c&o" + CitizensCMD.getPlugin().getDescription().getVersion())).send(player); - JSONMessage.create(color(CitizensCMD.getPlugin().getLang().getUncoloredMessage(Path.HELP_INFO))).send(player); - JSONMessage.create(color("&3/npcmd &cadd &b &6 &d[-l]")).suggestCommand("/npcmd add ").tooltip(color(CitizensCMD.getPlugin().getLang().getUncoloredMessage(Path.HELP_DESCRIPTION_ADD) + "\n" + CitizensCMD.getPlugin().getLang().getUncoloredMessage(Path.HELP_EXAMPLE) + "\n&3&o/npcmd &c&oadd &b&ossentials.heal &6&oheal")).send(player); - JSONMessage.create(color("&3/npcmd &ccooldown &6