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