Fixed price NPC not working anymore. Changed package name.

This commit is contained in:
Mateus 2019-07-06 23:14:23 +01:00
parent 280f484bae
commit 49fb50090c
33 changed files with 245 additions and 194 deletions

View File

@ -6,7 +6,7 @@
<groupId>me.mattmoreira.plugins</groupId>
<artifactId>citizens-cmd</artifactId>
<version>2.3</version>
<version>2.3.1</version>
<packaging>jar</packaging>
<name>CitizensCMD</name>

View File

@ -16,25 +16,26 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd;
package me.mattstudios.citizenscmd;
import lombok.Getter;
import lombok.Setter;
import me.mattmoreira.citizenscmd.API.CitizensCMDAPI;
import me.mattmoreira.citizenscmd.commands.*;
import me.mattmoreira.citizenscmd.commands.base.CommandHandler;
import me.mattmoreira.citizenscmd.files.CooldownHandler;
import me.mattmoreira.citizenscmd.files.DataHandler;
import me.mattmoreira.citizenscmd.files.LangHandler;
import me.mattmoreira.citizenscmd.listeners.NPCListener;
import me.mattmoreira.citizenscmd.listeners.UpdateEvent;
import me.mattmoreira.citizenscmd.metrics.Metrics;
import me.mattmoreira.citizenscmd.permissions.PermissionsManager;
import me.mattmoreira.citizenscmd.schedulers.CooldownScheduler;
import me.mattmoreira.citizenscmd.schedulers.UpdateScheduler;
import me.mattmoreira.citizenscmd.updater.SpigotUpdater;
import me.mattmoreira.citizenscmd.utility.DisplayFormat;
import me.mattmoreira.citizenscmd.utility.Util;
import me.mattstudios.citizenscmd.api.CitizensCMDAPI;
import me.mattstudios.citizenscmd.commands.*;
import me.mattstudios.citizenscmd.commands.base.CommandHandler;
import me.mattstudios.citizenscmd.files.CooldownHandler;
import me.mattstudios.citizenscmd.files.DataHandler;
import me.mattstudios.citizenscmd.files.LangHandler;
import me.mattstudios.citizenscmd.listeners.NPCClickListener;
import me.mattstudios.citizenscmd.listeners.NPCListener;
import me.mattstudios.citizenscmd.listeners.UpdateEvent;
import me.mattstudios.citizenscmd.metrics.Metrics;
import me.mattstudios.citizenscmd.permissions.PermissionsManager;
import me.mattstudios.citizenscmd.schedulers.CooldownScheduler;
import me.mattstudios.citizenscmd.schedulers.UpdateScheduler;
import me.mattstudios.citizenscmd.updater.SpigotUpdater;
import me.mattstudios.citizenscmd.utility.DisplayFormat;
import me.mattstudios.citizenscmd.utility.Util;
import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
@ -46,8 +47,6 @@ import java.util.HashMap;
import java.util.Objects;
import java.util.stream.Stream;
import static me.mattmoreira.citizenscmd.utility.Util.*;
@Getter
@Setter
public final class CitizensCMD extends JavaPlugin {
@ -80,7 +79,7 @@ public final class CitizensCMD extends JavaPlugin {
public void onEnable() {
checkOldConfig(this);
Util.checkOldConfig(this);
saveDefaultConfig();
if (!hasCitizens() && getConfig().getBoolean("citizens-check")) {
@ -93,7 +92,7 @@ public final class CitizensCMD extends JavaPlugin {
new Metrics(this);
info(color(TAG + "&3Citizens&cCMD &8&o" + getDescription().getVersion() + " &8By &3Mateus Moreira &c@LichtHund"));
Util.info(Util.color(Util.TAG + "&3Citizens&cCMD &8&o" + getDescription().getVersion() + " &8By &3Mateus Moreira &c@LichtHund"));
permissionsManager = new PermissionsManager(this);
@ -112,22 +111,22 @@ public final class CitizensCMD extends JavaPlugin {
if (hasPAPI()) {
switch (lang.getLanguage()) {
case "en":
info(color(TAG + "&7Using &aPlaceholderAPI&7!"));
Util.info(Util.color(Util.TAG + "&7Using &aPlaceholderAPI&7!"));
break;
case "pt":
info(color(TAG + "&7Usando &aPlaceholderAPI&7!"));
Util.info(Util.color(Util.TAG + "&7Usando &aPlaceholderAPI&7!"));
break;
case "ro":
info(color(TAG + "&7Folositi &aPlaceholderAPI&7!"));
Util.info(Util.color(Util.TAG + "&7Folositi &aPlaceholderAPI&7!"));
break;
case "bg":
info(color(TAG + "&7Използвайки &aPlaceholderAPI&7!"));
Util.info(Util.color(Util.TAG + "&7Използвайки &aPlaceholderAPI&7!"));
break;
case "no":
info(color(TAG + "&7Bruk &aPlaceholderAPI&7!"));
Util.info(Util.color(Util.TAG + "&7Bruk &aPlaceholderAPI&7!"));
break;
case "ch":
info(color(TAG + "&7运用 &aPlaceholderAPI&7!"));
Util.info(Util.color(Util.TAG + "&7运用 &aPlaceholderAPI&7!"));
break;
}
papi = true;
@ -136,22 +135,22 @@ public final class CitizensCMD extends JavaPlugin {
if (setupEconomy()) {
switch (lang.getLanguage()) {
case "en":
info(color(TAG + "&7Using &aVault&7!"));
Util.info(Util.color(Util.TAG + "&7Using &aVault&7!"));
break;
case "pt":
info(color(TAG + "&7Usando &aVault&7!"));
Util.info(Util.color(Util.TAG + "&7Usando &aVault&7!"));
break;
case "ro":
info(color(TAG + "&7Folositi &aVault&7!"));
Util.info(Util.color(Util.TAG + "&7Folositi &aVault&7!"));
break;
case "bg":
info(color(TAG + "&7Използвайки &aVault&7!"));
Util.info(Util.color(Util.TAG + "&7Използвайки &aVault&7!"));
break;
case "no":
info(color(TAG + "&7Bruk &aVault&7!"));
Util.info(Util.color(Util.TAG + "&7Bruk &aVault&7!"));
break;
case "ch":
info(color(TAG + "&7运用 &aVault&7!"));
Util.info(Util.color(Util.TAG + "&7运用 &aVault&7!"));
break;
}
}
@ -172,7 +171,7 @@ public final class CitizensCMD extends JavaPlugin {
} else
displayFormat = DisplayFormat.MEDIUM;
if (upCheck(this)) {
if (Util.upCheck(this)) {
SpigotUpdater updater = new SpigotUpdater(this, 30224);
try {
// If there's an update, tell the user that they can update
@ -181,29 +180,29 @@ public final class CitizensCMD extends JavaPlugin {
newVersion = updater.getLatestVersion();
switch (lang.getLanguage()) {
case "en":
info(color(TAG + "&cA new version of CitizensCMD is now available:"));
Util.info(Util.color(Util.TAG + "&cA new version of CitizensCMD is now available:"));
break;
case "pt":
info(color(TAG + "&cA nova versão de CitizensCMD está disponivel:"));
Util.info(Util.color(Util.TAG + "&cA nova versão de CitizensCMD está disponivel:"));
break;
case "ro":
info(color(TAG + "&cO noua versiune a CitizensCMD este acum valabila:"));
Util.info(Util.color(Util.TAG + "&cO noua versiune a CitizensCMD este acum valabila:"));
break;
case "bg":
info(color(TAG + "&cНалична е нова версия на CitizensCMD:"));
Util.info(Util.color(Util.TAG + "&cНалична е нова версия на CitizensCMD:"));
break;
case "no":
info(color(TAG + "&cEn ny versjon av CitizensCMD er nå tilgjengelig:"));
Util.info(Util.color(Util.TAG + "&cEn ny versjon av CitizensCMD er nå tilgjengelig:"));
break;
case "ch":
info(color(TAG + "&cCitizensCMD的新版本现已推出:"));
Util.info(Util.color(Util.TAG + "&cCitizensCMD的新版本现已推出:"));
break;
}
info(color(TAG + "&b&o" + updater.getResourceURL()));
Util.info(Util.color(Util.TAG + "&b&o" + updater.getResourceURL()));
}
} catch (Exception e) {
// If it can't check for an update, tell the user and throw an error.
info("Could not check for updates! Stacktrace:");
Util.info("Could not check for updates! Stacktrace:");
e.printStackTrace();
}
}
@ -259,7 +258,13 @@ public final class CitizensCMD extends JavaPlugin {
private void registerEvents() {
PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new UpdateEvent(this), this);
pm.registerEvents(new NPCListener(this), this);
pm.registerEvents(new NPCClickListener(this), this);
try {
pm.registerEvents(new NPCListener(this), this);
} catch (Exception ex) {
Util.info(Util.color("&cCould not register clone event, please update your Citizens."));
}
}
/**

View File

@ -1,6 +1,6 @@
package me.mattmoreira.citizenscmd.API;
package me.mattstudios.citizenscmd.api;
import me.mattmoreira.citizenscmd.files.DataHandler;
import me.mattstudios.citizenscmd.files.DataHandler;
public class CitizensCMDAPI {

View File

@ -16,16 +16,16 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands;
package me.mattstudios.citizenscmd.commands;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.commands.base.CommandBase;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.utility.Path;
import org.bukkit.entity.Player;
import java.util.Arrays;
import static me.mattmoreira.citizenscmd.utility.Util.*;
import static me.mattstudios.citizenscmd.utility.Util.*;
public class CMDAdd extends CommandBase {

View File

@ -16,14 +16,14 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands;
package me.mattstudios.citizenscmd.commands;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.commands.base.CommandBase;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.utility.Path;
import org.bukkit.entity.Player;
import static me.mattmoreira.citizenscmd.utility.Util.*;
import static me.mattstudios.citizenscmd.utility.Util.*;
public class CMDCooldown extends CommandBase {

View File

@ -16,17 +16,17 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands;
package me.mattstudios.citizenscmd.commands;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.commands.base.CommandBase;
import me.mattmoreira.citizenscmd.utility.EnumTypes;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.utility.EnumTypes;
import me.mattstudios.citizenscmd.utility.Path;
import org.bukkit.entity.Player;
import java.util.Arrays;
import static me.mattmoreira.citizenscmd.utility.Util.*;
import static me.mattstudios.citizenscmd.utility.Util.*;
public class CMDEdit extends CommandBase {

View File

@ -16,16 +16,16 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands;
package me.mattstudios.citizenscmd.commands;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.commands.base.CommandBase;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.utility.Path;
import me.rayzr522.jsonmessage.JSONMessage;
import org.bukkit.entity.Player;
import static me.mattmoreira.citizenscmd.utility.Util.HEADER;
import static me.mattmoreira.citizenscmd.utility.Util.color;
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
import static me.mattstudios.citizenscmd.utility.Util.color;
/**
* Thank you GlareMasters for creating this class as an example!

View File

@ -16,19 +16,19 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands;
package me.mattstudios.citizenscmd.commands;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.commands.base.CommandBase;
import me.mattmoreira.citizenscmd.utility.EnumTypes;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.utility.EnumTypes;
import me.mattstudios.citizenscmd.utility.Path;
import me.rayzr522.jsonmessage.JSONMessage;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
import static me.mattmoreira.citizenscmd.utility.Util.*;
import static me.mattstudios.citizenscmd.utility.Util.*;
public class CMDList extends CommandBase {

View File

@ -16,14 +16,14 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands;
package me.mattstudios.citizenscmd.commands;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.commands.base.CommandBase;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.utility.Path;
import org.bukkit.entity.Player;
import static me.mattmoreira.citizenscmd.utility.Util.*;
import static me.mattstudios.citizenscmd.utility.Util.*;
public class CMDPermission extends CommandBase {

View File

@ -16,14 +16,14 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands;
package me.mattstudios.citizenscmd.commands;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.commands.base.CommandBase;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.utility.Path;
import org.bukkit.entity.Player;
import static me.mattmoreira.citizenscmd.utility.Util.*;
import static me.mattstudios.citizenscmd.utility.Util.*;
public class CMDPrice extends CommandBase {

View File

@ -16,19 +16,19 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands;
package me.mattstudios.citizenscmd.commands;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.commands.base.CommandBase;
import me.mattmoreira.citizenscmd.utility.DisplayFormat;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.utility.DisplayFormat;
import me.mattstudios.citizenscmd.utility.Path;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.Objects;
import static me.mattmoreira.citizenscmd.utility.Util.HEADER;
import static me.mattmoreira.citizenscmd.utility.Util.color;
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
import static me.mattstudios.citizenscmd.utility.Util.color;
public class CMDReload extends CommandBase {

View File

@ -16,15 +16,15 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands;
package me.mattstudios.citizenscmd.commands;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.commands.base.CommandBase;
import me.mattmoreira.citizenscmd.utility.EnumTypes;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.utility.EnumTypes;
import me.mattstudios.citizenscmd.utility.Path;
import org.bukkit.entity.Player;
import static me.mattmoreira.citizenscmd.utility.Util.*;
import static me.mattstudios.citizenscmd.utility.Util.*;
public class CMDRemove extends CommandBase {

View File

@ -16,7 +16,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands.base;
package me.mattstudios.citizenscmd.commands.base;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

View File

@ -16,11 +16,11 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.commands.base;
package me.mattstudios.citizenscmd.commands.base;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.utility.IHandler;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.utility.IHandler;
import me.mattstudios.citizenscmd.utility.Path;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
@ -34,7 +34,7 @@ import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import static me.mattmoreira.citizenscmd.utility.Util.*;
import static me.mattstudios.citizenscmd.utility.Util.*;
/**
* Thank you GlareMasters for creating this class!

View File

@ -16,9 +16,10 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.files;
package me.mattstudios.citizenscmd.files;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.utility.Util;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
@ -28,8 +29,6 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Objects;
import static me.mattmoreira.citizenscmd.utility.Util.*;
public class CooldownHandler {
private CitizensCMD plugin;
@ -71,7 +70,7 @@ public class CooldownHandler {
try {
cooldownsFile.createNewFile();
} catch (IOException e) {
info(color("&cError creating cooldowns file.."));
Util.info(Util.color("&cError creating cooldowns file.."));
}
}
}
@ -90,7 +89,7 @@ public class CooldownHandler {
for (String parent : Objects.requireNonNull(cooldownsConfigurator.getConfigurationSection("cooldown-data")).getKeys(false)) {
for (String child : Objects.requireNonNull(cooldownsConfigurator.getConfigurationSection("cooldown-data." + parent)).getKeys(false)) {
for (String npc : cachedDataFromSaves.keySet()) {
if (npc.equalsIgnoreCase(parent) && ((getSecondsDifference(cooldownsConfigurator.getLong("cooldown-data." + parent + "." + child)) < cachedDataFromSaves.get(npc)) || cachedDataFromSaves.get(npc) == -1))
if (npc.equalsIgnoreCase(parent) && ((Util.getSecondsDifference(cooldownsConfigurator.getLong("cooldown-data." + parent + "." + child)) < cachedDataFromSaves.get(npc)) || cachedDataFromSaves.get(npc) == -1))
cooldownData.put("cooldown-data." + parent + "." + child, cooldownsConfigurator.getLong("cooldown-data." + parent + "." + child));
}
@ -143,7 +142,7 @@ public class CooldownHandler {
* @return returns in seconds the time left
*/
public long getTimeLeft(int npc, String uuid) {
return plugin.getDataHandler().getNPCCooldown(npc) - getSecondsDifference(cooldownData.get("cooldown-data.npc-" + npc + "." + uuid));
return plugin.getDataHandler().getNPCCooldown(npc) - Util.getSecondsDifference(cooldownData.get("cooldown-data.npc-" + npc + "." + uuid));
}
/**
@ -158,7 +157,7 @@ public class CooldownHandler {
if (plugin.getDataHandler().getNPCCooldown(npc) == -1)
return true;
else
return getSecondsDifference(cooldownData.get("cooldown-data.npc-" + npc + "." + uuid)) < plugin.getDataHandler().getNPCCooldown(npc);
return Util.getSecondsDifference(cooldownData.get("cooldown-data.npc-" + npc + "." + uuid)) < plugin.getDataHandler().getNPCCooldown(npc);
}
return false;
}

View File

@ -16,11 +16,12 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.files;
package me.mattstudios.citizenscmd.files;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.utility.EnumTypes;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.utility.EnumTypes;
import me.mattstudios.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.utility.Util;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
@ -33,8 +34,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import static me.mattmoreira.citizenscmd.utility.Util.*;
@SuppressWarnings("unchecked")
public class DataHandler {
@ -76,7 +75,7 @@ public class DataHandler {
try {
savesFile.createNewFile();
} catch (IOException e) {
info(color("&cError creating saves file.."));
Util.info(Util.color("&cError creating saves file.."));
}
}
}
@ -142,8 +141,8 @@ public class DataHandler {
List<String> commandListLeft = data.containsKey("npc-data.npc-" + npc + ".left-click-commands") ? (List<String>) data.get("npc-data.npc-" + npc + ".left-click-commands") : new ArrayList<>();
if (!data.containsKey("npc-data.npc-" + npc + ".cooldown")) {
data.put("npc-data.npc-" + npc + ".cooldown", getDefaultCooldown(plugin));
dataConfigurator.set("npc-data.npc-" + npc + ".cooldown", getDefaultCooldown(plugin));
data.put("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
dataConfigurator.set("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
}
if (left) commandListLeft.add("[" + permission + "] " + command);
@ -166,12 +165,12 @@ public class DataHandler {
dataConfigurator.set("npc-data.npc-" + npc + ".price", 0);
}
player.sendMessage(color(HEADER));
player.sendMessage(Util.color(Util.HEADER));
player.sendMessage(plugin.getLang().getMessage(Path.NPC_ADDED));
dataConfigurator.save(savesFile);
} catch (IOException | InvalidConfigurationException e) {
player.sendMessage(color(HEADER));
player.sendMessage(Util.color(Util.HEADER));
player.sendMessage(plugin.getLang().getMessage(Path.NPC_ADD_FAIL));
}
}).start();
@ -195,8 +194,8 @@ public class DataHandler {
List<String> commandListLeft = data.containsKey("npc-data.npc-" + npc + ".left-click-commands") ? (List<String>) data.get("npc-data.npc-" + npc + ".left-click-commands") : new ArrayList<>();
if (!data.containsKey("npc-data.npc-" + npc + ".cooldown")) {
data.put("npc-data.npc-" + npc + ".cooldown", getDefaultCooldown(plugin));
dataConfigurator.set("npc-data.npc-" + npc + ".cooldown", getDefaultCooldown(plugin));
data.put("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
dataConfigurator.set("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
}
if (left) commandListLeft.add("[" + permission + "] " + command);
@ -242,12 +241,12 @@ public class DataHandler {
data.replace("npc-data.npc-" + npc + ".cooldown", cooldown);
player.sendMessage(color(HEADER));
player.sendMessage(Util.color(Util.HEADER));
player.sendMessage(plugin.getLang().getMessage(Path.NPC_COOLDOWN_SET));
dataConfigurator.save(savesFile);
} catch (IOException | InvalidConfigurationException e) {
player.sendMessage(color(HEADER));
player.sendMessage(Util.color(Util.HEADER));
player.sendMessage(plugin.getLang().getMessage(Path.NPC_COOLDOWN_SET_ERROR));
}
}).start();
@ -270,7 +269,7 @@ public class DataHandler {
data.replace("npc-data.npc-" + npc + ".price", price);
player.sendMessage(color(HEADER));
player.sendMessage(Util.color(Util.HEADER));
player.sendMessage(plugin.getLang().getMessage(Path.NPC_PRICE_SET));
dataConfigurator.save(savesFile);
@ -283,9 +282,9 @@ public class DataHandler {
/**
* Sets the permission of the NPC
*
* @param npc The NPC id
* @param permission The permission to be added
* @param player The player who run the command
* @param npc The NPC id
* @param permission The permission to be added
* @param player The player who run the command
*/
public void setCustomPermission(int npc, String permission, Player player) {
new Thread(() -> {
@ -297,7 +296,7 @@ public class DataHandler {
data.replace("npc-data.npc-" + npc + ".permission", permission);
player.sendMessage(color(HEADER));
player.sendMessage(Util.color(Util.HEADER));
player.sendMessage(plugin.getLang().getMessage(Path.PERMISSION_SET));
dataConfigurator.save(savesFile);
@ -324,7 +323,7 @@ public class DataHandler {
data.remove("npc-data.npc-" + npc + ".permission");
player.sendMessage(color(HEADER));
player.sendMessage(Util.color(Util.HEADER));
player.sendMessage(plugin.getLang().getMessage(Path.PERMISSION_REMOVED));
dataConfigurator.save(savesFile);
@ -388,6 +387,7 @@ public class DataHandler {
* @param npc The NPC ID.
* @return True or false depending if it has or not.
*/
@SuppressWarnings("BooleanMethodIsAlwaysInverted")
public boolean hasNPCData(int npc) {
for (String key : data.keySet()) {
if (key.contains("npc-" + npc)) return true;
@ -437,7 +437,7 @@ public class DataHandler {
data.replace(key, commands);
dataConfigurator.set(key, commands);
player.sendMessage(color(HEADER));
player.sendMessage(Util.color(Util.HEADER));
player.sendMessage(plugin.getLang().getMessage(Path.REMOVED_COMMAND));
dataConfigurator.save(savesFile);
@ -486,7 +486,7 @@ public class DataHandler {
data.replace(key, commandsData);
dataConfigurator.set(key, commandsData);
player.sendMessage(color(HEADER));
player.sendMessage(Util.color(Util.HEADER));
player.sendMessage(plugin.getLang().getMessage(Path.EDITED_COMMAND).replace("{type}", typeText));
dataConfigurator.save(savesFile);
@ -507,13 +507,40 @@ public class DataHandler {
createBasics();
dataConfigurator.load(savesFile);
if (dataConfigurator.contains("npc-data.npc-" + npc))
dataConfigurator.set("npc-data.npc-" + npc, null);
if (dataConfigurator.contains("npc-data.npc-" + npc)) dataConfigurator.set("npc-data.npc-" + npc, null);
data.keySet().removeIf(key -> key.contains("npc-data.npc-" + npc));
dataConfigurator.save(savesFile);
} catch (IOException | InvalidConfigurationException e) {
e.printStackTrace();
}
}).start();
}
/**
* Clones the NPC data to the new NPC when /npc copy.
*
* @param npc The NPC ID to copy.
* @param npcClone The ID of the new NPC.
*/
public void cloneData(int npc, int npcClone) {
new Thread(() -> {
try {
createBasics();
dataConfigurator.load(savesFile);
HashMap<String, Object> newNpcData = new HashMap<>();
for (String key : data.keySet()) {
if (key.contains("npc-data.npc-" + npc)) data.remove(key);
if (key.contains("npc-" + npc)) {
String newKey = key.replace("npc-" + npc, "npc-" + npcClone);
newNpcData.put(newKey, data.get(key));
dataConfigurator.set(newKey, data.get(key));
}
}
data.putAll(newNpcData);
dataConfigurator.save(savesFile);
} catch (IOException | InvalidConfigurationException e) {
e.printStackTrace();

View File

@ -16,10 +16,11 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.files;
package me.mattstudios.citizenscmd.files;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.utility.Util;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
@ -29,8 +30,6 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Objects;
import static me.mattmoreira.citizenscmd.utility.Util.*;
public class LangHandler {
private CitizensCMD plugin;
@ -49,25 +48,25 @@ public class LangHandler {
public void initialize() {
switch (lang) {
case "en":
info(color(TAG + "&7Using &aEnglish &7messages!"));
Util.info(Util.color(Util.TAG + "&7Using &aEnglish &7messages!"));
break;
case "pt":
info(color(TAG + "&7Usando mensagens em Portugues!"));
Util.info(Util.color(Util.TAG + "&7Usando mensagens em Portugues!"));
break;
case "ro":
info(color(TAG + "&7Folositi mesajele in Limba &aRomana&7!"));
Util.info(Util.color(Util.TAG + "&7Folositi mesajele in Limba &aRomana&7!"));
break;
case "bg":
info(color(TAG + "&7Използване на &aбългарски &7език!"));
Util.info(Util.color(Util.TAG + "&7Използване на &aбългарски &7език!"));
break;
case "no":
info(color(TAG + "&aNorsk &7Oversettelse!"));
Util.info(Util.color(Util.TAG + "&aNorsk &7Oversettelse!"));
break;
case "ch":
info(color(TAG + "&7使用&a中文&7消息!"));
Util.info(Util.color(Util.TAG + "&7使用&a中文&7消息!"));
break;
}
@ -300,7 +299,7 @@ public class LangHandler {
* @return Returns String with colored message from file
*/
public String getMessage(String path) {
return color(messages.get(path));
return Util.color(messages.get(path));
}
/**

View File

@ -16,12 +16,14 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.listeners;
package me.mattstudios.citizenscmd.listeners;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.schedulers.ConfirmScheduler;
import me.mattmoreira.citizenscmd.utility.EnumTypes;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.schedulers.ConfirmScheduler;
import me.mattstudios.citizenscmd.utility.EnumTypes;
import me.mattstudios.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.utility.TimeUtil;
import me.mattstudios.citizenscmd.utility.Util;
import net.citizensnpcs.api.event.NPCLeftClickEvent;
import net.citizensnpcs.api.event.NPCRemoveEvent;
import net.citizensnpcs.api.event.NPCRightClickEvent;
@ -32,14 +34,11 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import static me.mattmoreira.citizenscmd.utility.TimeUtil.getFormattedTime;
import static me.mattmoreira.citizenscmd.utility.Util.doCommands;
public class NPCListener implements Listener {
public class NPCClickListener implements Listener {
private CitizensCMD plugin;
public NPCListener(CitizensCMD plugin) {
public NPCClickListener(CitizensCMD plugin) {
this.plugin = plugin;
Bukkit.getMessenger().registerOutgoingPluginChannel(plugin, "BungeeCord");
}
@ -63,7 +62,7 @@ public class NPCListener implements Listener {
cooldownMessage = plugin.getLang().getMessage(Path.ONE_TIME_CLICK);
else
cooldownMessage = plugin.getLang().getMessage(Path.ON_COOLDOWN);
player.sendMessage(cooldownMessage.replace("{time}", getFormattedTime(plugin, plugin.getCooldownHandler().getTimeLeft(npc.getId(), player.getUniqueId().toString()), plugin.getDisplayFormat())));
player.sendMessage(cooldownMessage.replace("{time}", TimeUtil.getFormattedTime(plugin, plugin.getCooldownHandler().getTimeLeft(npc.getId(), player.getUniqueId().toString()), plugin.getDisplayFormat())));
return;
}
}
@ -84,12 +83,14 @@ public class NPCListener implements Listener {
messageConfirm = messageConfirm.replace("{shift}", "Shift ");
messageConfirm = messageConfirm.replace("{price}", String.valueOf(price));
player.sendMessage(messageConfirm);
plugin.getWaitingList().put(player.getUniqueId().toString() + "." + npc, true);
plugin.getWaitingList().put(player.getUniqueId().toString() + "." + npc.getId(), true);
new ConfirmScheduler(plugin, player, npc.getId()).runTaskLaterAsynchronously(plugin, 300L);
return;
}
if (plugin.isShift() && !player.isSneaking()) return;
if (plugin.isShift() && !player.isSneaking()) {
return;
}
if (CitizensCMD.getEconomy().getBalance(player) < price) {
player.sendMessage(plugin.getLang().getMessage(Path.PAY_NO_MONEY));
@ -103,7 +104,7 @@ public class NPCListener implements Listener {
}
}
doCommands(plugin, npc, player, EnumTypes.ClickType.RIGHT);
Util.doCommands(plugin, npc, player, EnumTypes.ClickType.RIGHT);
if (!player.hasPermission("citizenscmd.bypass") || plugin.getDataHandler().getNPCCooldown(npc.getId()) != 0) {
plugin.getCooldownHandler().addInteraction(npc.getId(), player.getUniqueId().toString(), System.currentTimeMillis());
@ -130,7 +131,7 @@ public class NPCListener implements Listener {
cooldownMessage = plugin.getLang().getMessage(Path.ONE_TIME_CLICK);
else
cooldownMessage = plugin.getLang().getMessage(Path.ON_COOLDOWN);
player.sendMessage(cooldownMessage.replace("{time}", getFormattedTime(plugin, plugin.getCooldownHandler().getTimeLeft(npc.getId(), player.getUniqueId().toString()), plugin.getDisplayFormat())));
player.sendMessage(cooldownMessage.replace("{time}", TimeUtil.getFormattedTime(plugin, plugin.getCooldownHandler().getTimeLeft(npc.getId(), player.getUniqueId().toString()), plugin.getDisplayFormat())));
return;
}
}
@ -164,7 +165,7 @@ public class NPCListener implements Listener {
}
}
doCommands(plugin, npc, player, EnumTypes.ClickType.LEFT);
Util.doCommands(plugin, npc, player, EnumTypes.ClickType.LEFT);
if (!player.hasPermission("citizenscmd.bypass") || plugin.getDataHandler().getNPCCooldown(npc.getId()) != 0) {
plugin.getCooldownHandler().addInteraction(npc.getId(), player.getUniqueId().toString(), System.currentTimeMillis());

View File

@ -0,0 +1,22 @@
package me.mattstudios.citizenscmd.listeners;
import lombok.AllArgsConstructor;
import me.mattstudios.citizenscmd.CitizensCMD;
import net.citizensnpcs.api.event.NPCCloneEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@AllArgsConstructor
public class NPCListener implements Listener {
private CitizensCMD plugin;
@EventHandler(priority = EventPriority.HIGHEST)
public void on(NPCCloneEvent event) {
if (!plugin.getDataHandler().hasNPCData(event.getNPC().getId())) return;
plugin.getDataHandler().cloneData(event.getNPC().getId(), event.getClone().getId());
}
}

View File

@ -16,19 +16,17 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.listeners;
package me.mattstudios.citizenscmd.listeners;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.utility.Util;
import me.rayzr522.jsonmessage.JSONMessage;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import static me.mattmoreira.citizenscmd.utility.Util.HEADER;
import static me.mattmoreira.citizenscmd.utility.Util.color;
public class UpdateEvent implements Listener {
private CitizensCMD plugin;
@ -40,9 +38,9 @@ public class UpdateEvent implements Listener {
@EventHandler (priority = EventPriority.NORMAL)
public void onPlayerJoin(PlayerJoinEvent event) {
if (plugin.isUpdateStatus() && event.getPlayer().hasPermission("citizenscmd.update")) {
JSONMessage.create(color(HEADER)).send(event.getPlayer());
JSONMessage.create(color(plugin.getLang().getUncoloredMessage(Path.NEW_VERSION) + plugin.getNewVersion())).send(event.getPlayer());
JSONMessage.create(color(plugin.getLang().getUncoloredMessage(Path.DOWNLOAD_AT) + " spigotmc.org/resources/citizens-CMD.30224/")).openURL("https://spigotmc.org/resources/citizens-CMD.30224/").send(event.getPlayer());
JSONMessage.create(Util.color(Util.HEADER)).send(event.getPlayer());
JSONMessage.create(Util.color(plugin.getLang().getUncoloredMessage(Path.NEW_VERSION) + plugin.getNewVersion())).send(event.getPlayer());
JSONMessage.create(Util.color(plugin.getLang().getUncoloredMessage(Path.DOWNLOAD_AT) + " spigotmc.org/resources/citizens-CMD.30224/")).openURL("https://spigotmc.org/resources/citizens-CMD.30224/").send(event.getPlayer());
}
}

View File

@ -1,4 +1,4 @@
package me.mattmoreira.citizenscmd.metrics;
package me.mattstudios.citizenscmd.metrics;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;

View File

@ -16,10 +16,10 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.permissions;
package me.mattstudios.citizenscmd.permissions;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.CitizensCMD;
import org.bukkit.entity.Player;
import org.bukkit.permissions.PermissionAttachment;

View File

@ -16,10 +16,10 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.schedulers;
package me.mattstudios.citizenscmd.schedulers;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.utility.Path;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.utility.Path;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;

View File

@ -16,9 +16,9 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.schedulers;
package me.mattstudios.citizenscmd.schedulers;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.CitizensCMD;
import org.bukkit.scheduler.BukkitRunnable;
public class CooldownScheduler extends BukkitRunnable {

View File

@ -16,10 +16,10 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.schedulers;
package me.mattstudios.citizenscmd.schedulers;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattmoreira.citizenscmd.updater.SpigotUpdater;
import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.updater.SpigotUpdater;
import org.bukkit.scheduler.BukkitRunnable;
public class UpdateScheduler extends BukkitRunnable {

View File

@ -1,4 +1,4 @@
package me.mattmoreira.citizenscmd.updater;
package me.mattstudios.citizenscmd.updater;
import org.bukkit.plugin.java.JavaPlugin;

View File

@ -16,7 +16,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.utility;
package me.mattstudios.citizenscmd.utility;
public enum DisplayFormat {
SHORT,

View File

@ -16,7 +16,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.utility;
package me.mattstudios.citizenscmd.utility;
public class EnumTypes {

View File

@ -16,7 +16,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.utility;
package me.mattstudios.citizenscmd.utility;
/**
* Created by GlareMasters on 5/30/2018.

View File

@ -16,7 +16,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.utility;
package me.mattstudios.citizenscmd.utility;
public class Path {

View File

@ -22,9 +22,9 @@
A special thanks to @ExtendedClip for letting me use and modify this class from PlaceholderAPI
*/
package me.mattmoreira.citizenscmd.utility;
package me.mattstudios.citizenscmd.utility;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.CitizensCMD;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;

View File

@ -16,10 +16,10 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.mattmoreira.citizenscmd.utility;
package me.mattstudios.citizenscmd.utility;
import me.clip.placeholderapi.PlaceholderAPI;
import me.mattmoreira.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.CitizensCMD;
import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC;
import org.bukkit.Bukkit;

View File

@ -4,7 +4,7 @@
# GitHub: https://github.com/ipsk/CitizensCMD
# Spigot: https://www.spigotmc.org/resources/citizens-cmd.30224/
main: me.mattmoreira.citizenscmd.CitizensCMD
main: me.mattstudios.citizenscmd.CitizensCMD
version: ${project.version}
name: CitizensCMD
author: Mateus Moreira