Better messages system. Code clean up.

This commit is contained in:
Mateus 2019-07-25 13:19:24 +01:00
parent b6a166739b
commit 0a346e9a6d
23 changed files with 98 additions and 452 deletions

View File

@ -19,7 +19,7 @@
<papi.version>2.10.2</papi.version> <papi.version>2.10.2</papi.version>
<vault.version>da407c0059</vault.version> <vault.version>da407c0059</vault.version>
<jsonmsg.version>1.0.0</jsonmsg.version> <jsonmsg.version>1.0.0</jsonmsg.version>
<utils.version>636229e</utils.version> <utils.version>c3166ac</utils.version>
</properties> </properties>
<build> <build>

View File

@ -41,7 +41,7 @@ import me.mattstudios.citizenscmd.schedulers.CooldownScheduler;
import me.mattstudios.citizenscmd.schedulers.UpdateScheduler; import me.mattstudios.citizenscmd.schedulers.UpdateScheduler;
import me.mattstudios.citizenscmd.updater.SpigotUpdater; import me.mattstudios.citizenscmd.updater.SpigotUpdater;
import me.mattstudios.citizenscmd.utility.DisplayFormat; import me.mattstudios.citizenscmd.utility.DisplayFormat;
import me.mattstudios.citizenscmd.utility.Util; import me.mattstudios.citizenscmd.utility.paths.Path;
import net.milkbowl.vault.economy.Economy; import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
@ -53,27 +53,25 @@ import java.util.HashMap;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Stream; import java.util.stream.Stream;
import static me.mattstudios.citizenscmd.utility.Util.TAG;
import static me.mattstudios.citizenscmd.utility.Util.disablePlugin;
import static me.mattstudios.citizenscmd.utility.Util.upCheck;
import static me.mattstudios.utils.MessageUtils.color; import static me.mattstudios.utils.MessageUtils.color;
import static me.mattstudios.utils.MessageUtils.info; import static me.mattstudios.utils.MessageUtils.info;
import static me.mattstudios.utils.YamlUtils.copyDefaults; import static me.mattstudios.utils.YamlUtils.copyDefaults;
public final class CitizensCMD extends JavaPlugin { public final class CitizensCMD extends JavaPlugin {
/** private LangHandler lang;
* Supported languages private DataHandler dataHandler;
*/ private CooldownHandler cooldownHandler;
private final String[] REGISTERED_LANG_FILES = {"en", "pt", "ro", "bg", "no", "ch"}; private PermissionsManager permissionsManager ;
private LangHandler lang = null;
private DataHandler dataHandler = null;
private CooldownHandler cooldownHandler = null;
private PermissionsManager permissionsManager = null;
private static CitizensCMDAPI api; private static CitizensCMDAPI api;
private static Economy economy = null; private static Economy economy;
private boolean papi = false; private boolean papi = false;
private CommandHandler commandHandler = null; private CommandHandler commandHandler;
private boolean updateStatus = false; private boolean updateStatus = false;
private boolean shift = false; private boolean shift = false;
@ -88,8 +86,10 @@ public final class CitizensCMD extends JavaPlugin {
saveDefaultConfig(); saveDefaultConfig();
copyDefaults(getClassLoader().getResourceAsStream("config.yml"), new File(getDataFolder().getPath(), "config.yml")); copyDefaults(getClassLoader().getResourceAsStream("config.yml"), new File(getDataFolder().getPath(), "config.yml"));
setLang(Objects.requireNonNull(getConfig().getString("lang")));
if (!hasCitizens() && getConfig().getBoolean("citizens-check")) { if (!hasCitizens() && getConfig().getBoolean("citizens-check")) {
Util.disablePlugin(this); disablePlugin(this);
return; return;
} }
@ -98,7 +98,7 @@ public final class CitizensCMD extends JavaPlugin {
new Metrics(this); new Metrics(this);
info(color(Util.TAG + "&3Citizens&cCMD &8&o" + getDescription().getVersion() + " &8By &3Mateus Moreira &c@LichtHund")); info(color(TAG + "&3Citizens&cCMD &8&o" + getDescription().getVersion() + " &8By &3Mateus Moreira &c@LichtHund"));
permissionsManager = new PermissionsManager(this); permissionsManager = new PermissionsManager(this);
@ -111,54 +111,13 @@ public final class CitizensCMD extends JavaPlugin {
registerCommands(); registerCommands();
registerEvents(); registerEvents();
registerLangs(this);
setLang(Objects.requireNonNull(getConfig().getString("lang")));
if (hasPAPI()) { if (hasPAPI()) {
switch (lang.getLanguage()) { info(color(TAG + lang.getMessage(Path.PAPI_AVAILABLE)));
case "en":
info(color(Util.TAG + "&7Using &aPlaceholderAPI&7!"));
break;
case "pt":
info(color(Util.TAG + "&7Usando &aPlaceholderAPI&7!"));
break;
case "ro":
info(color(Util.TAG + "&7Folositi &aPlaceholderAPI&7!"));
break;
case "bg":
info(color(Util.TAG + "&7Използвайки &aPlaceholderAPI&7!"));
break;
case "no":
info(color(Util.TAG + "&7Bruk &aPlaceholderAPI&7!"));
break;
case "ch":
info(color(Util.TAG + "&7运用 &aPlaceholderAPI&7!"));
break;
}
papi = true; papi = true;
} }
if (setupEconomy()) { if (setupEconomy()) {
switch (lang.getLanguage()) { info(color(TAG + lang.getUncoloredMessage(Path.VAULT_AVAILABLE)));
case "en":
info(color(Util.TAG + "&7Using &aVault&7!"));
break;
case "pt":
info(color(Util.TAG + "&7Usando &aVault&7!"));
break;
case "ro":
info(color(Util.TAG + "&7Folositi &aVault&7!"));
break;
case "bg":
info(color(Util.TAG + "&7Използвайки &aVault&7!"));
break;
case "no":
info(color(Util.TAG + "&7Bruk &aVault&7!"));
break;
case "ch":
info(color(Util.TAG + "&7运用 &aVault&7!"));
break;
}
} }
waitingList = new HashMap<>(); waitingList = new HashMap<>();
@ -174,37 +133,19 @@ public final class CitizensCMD extends JavaPlugin {
default: default:
displayFormat = DisplayFormat.MEDIUM; displayFormat = DisplayFormat.MEDIUM;
} }
} else } else {
displayFormat = DisplayFormat.MEDIUM; displayFormat = DisplayFormat.MEDIUM;
}
if (Util.upCheck(this)) { if (upCheck(this)) {
SpigotUpdater updater = new SpigotUpdater(this, 30224); SpigotUpdater updater = new SpigotUpdater(this, 30224);
try { try {
// If there's an update, tell the user that they can update // If there's an update, tell the user that they can update
if (updater.checkForUpdates()) { if (updater.checkForUpdates()) {
updateStatus = true; updateStatus = true;
newVersion = updater.getLatestVersion(); newVersion = updater.getLatestVersion();
switch (lang.getLanguage()) {
case "en": info(color(TAG + "&b&o" + updater.getResourceURL()));
info(color(Util.TAG + "&cA new version of CitizensCMD is now available:"));
break;
case "pt":
info(color(Util.TAG + "&cA nova versão de CitizensCMD está disponivel:"));
break;
case "ro":
info(color(Util.TAG + "&cO noua versiune a CitizensCMD este acum valabila:"));
break;
case "bg":
info(color(Util.TAG + "&cНалична е нова версия на CitizensCMD:"));
break;
case "no":
info(color(Util.TAG + "&cEn ny versjon av CitizensCMD er nå tilgjengelig:"));
break;
case "ch":
info(color(Util.TAG + "&cCitizensCMD的新版本现已推出:"));
break;
}
info(color(Util.TAG + "&b&o" + updater.getResourceURL()));
} }
} catch (Exception e) { } catch (Exception e) {
// If it can't check for an update, tell the user and throw an error. // If it can't check for an update, tell the user and throw an error.
@ -291,61 +232,11 @@ public final class CitizensCMD extends JavaPlugin {
return economy != null; return economy != null;
} }
/**
* Creates all the language files
*/
private void registerLangs(CitizensCMD plugin) {
File langFile;
for (String registeredLangFile : REGISTERED_LANG_FILES) {
langFile = new File(plugin.getDataFolder(), "lang/" + registeredLangFile + ".yml");
if (!langFile.exists())
plugin.saveResource("lang/" + registeredLangFile + ".yml", false);
}
}
/** /**
* Sets the language that is supposed to be used * Sets the language that is supposed to be used
*/ */
public void setLang(String language) { public void setLang(String language) {
switch (language.toLowerCase()) { lang = new LangHandler(this, language);
case "pt":
case "port":
case "portuguese":
lang = new LangHandler(this, "pt");
break;
case "ro":
case "roma":
case "romanian":
lang = new LangHandler(this, "ro");
break;
case "bg":
case "bulg":
case "bulgarian":
lang = new LangHandler(this, "bg");
break;
case "no":
case "norw":
case "norwegian":
lang = new LangHandler(this, "no");
break;
case "ch":
case "chi":
case "chinese":
lang = new LangHandler(this, "ch");
break;
default:
lang = new LangHandler(this, "en");
break;
}
lang.initialize();
} }
/** /**

View File

@ -20,7 +20,7 @@ package me.mattstudios.citizenscmd.commands;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase; import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.paths.Path; import me.mattstudios.citizenscmd.utility.paths.Path;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.Arrays; import java.util.Arrays;

View File

@ -20,7 +20,7 @@ package me.mattstudios.citizenscmd.commands;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase; import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.paths.Path; import me.mattstudios.citizenscmd.utility.paths.Path;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import static me.mattstudios.citizenscmd.utility.Util.HEADER; import static me.mattstudios.citizenscmd.utility.Util.HEADER;

View File

@ -20,8 +20,8 @@ package me.mattstudios.citizenscmd.commands;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase; import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.paths.Path;
import me.mattstudios.citizenscmd.utility.EnumTypes; import me.mattstudios.citizenscmd.utility.EnumTypes;
import me.mattstudios.citizenscmd.utility.paths.Path;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.Arrays; import java.util.Arrays;

View File

@ -20,7 +20,7 @@ package me.mattstudios.citizenscmd.commands;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase; import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.paths.Path; import me.mattstudios.citizenscmd.utility.paths.Path;
import me.rayzr522.jsonmessage.JSONMessage; import me.rayzr522.jsonmessage.JSONMessage;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -20,8 +20,8 @@ package me.mattstudios.citizenscmd.commands;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase; import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.paths.Path;
import me.mattstudios.citizenscmd.utility.EnumTypes; import me.mattstudios.citizenscmd.utility.EnumTypes;
import me.mattstudios.citizenscmd.utility.paths.Path;
import me.rayzr522.jsonmessage.JSONMessage; import me.rayzr522.jsonmessage.JSONMessage;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -20,7 +20,7 @@ package me.mattstudios.citizenscmd.commands;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase; import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.paths.Path; import me.mattstudios.citizenscmd.utility.paths.Path;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import static me.mattstudios.citizenscmd.utility.Util.HEADER; import static me.mattstudios.citizenscmd.utility.Util.HEADER;

View File

@ -20,7 +20,7 @@ package me.mattstudios.citizenscmd.commands;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase; import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.paths.Path; import me.mattstudios.citizenscmd.utility.paths.Path;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import static me.mattstudios.citizenscmd.utility.Util.HEADER; import static me.mattstudios.citizenscmd.utility.Util.HEADER;

View File

@ -20,8 +20,8 @@ package me.mattstudios.citizenscmd.commands;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase; import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.paths.Path;
import me.mattstudios.citizenscmd.utility.DisplayFormat; import me.mattstudios.citizenscmd.utility.DisplayFormat;
import me.mattstudios.citizenscmd.utility.paths.Path;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -20,8 +20,8 @@ package me.mattstudios.citizenscmd.commands;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.commands.base.CommandBase; import me.mattstudios.citizenscmd.commands.base.CommandBase;
import me.mattstudios.citizenscmd.paths.Path;
import me.mattstudios.citizenscmd.utility.EnumTypes; import me.mattstudios.citizenscmd.utility.EnumTypes;
import me.mattstudios.citizenscmd.utility.paths.Path;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import static me.mattstudios.citizenscmd.utility.Util.HEADER; import static me.mattstudios.citizenscmd.utility.Util.HEADER;

View File

@ -19,8 +19,8 @@
package me.mattstudios.citizenscmd.commands.base; package me.mattstudios.citizenscmd.commands.base;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.paths.Path;
import me.mattstudios.citizenscmd.utility.IHandler; import me.mattstudios.citizenscmd.utility.IHandler;
import me.mattstudios.citizenscmd.utility.paths.Path;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -66,21 +66,21 @@ public class CommandHandler implements CommandExecutor, TabCompleter, IHandler {
} }
@Override @Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] aguments) {
if (!cmd.getName().equalsIgnoreCase("npcmd")) { if (!cmd.getName().equalsIgnoreCase("npcmd")) {
return true; return true;
} }
if (args.length == 0 || args[0].isEmpty()) { if (aguments.length == 0 || aguments[0].isEmpty()) {
if (sender.hasPermission("citizenscmd.npcmd") && sender instanceof Player) { if (sender.hasPermission("citizenscmd.npcmd") && sender instanceof Player) {
getCommand().execute((Player) sender, args); getCommand().execute((Player) sender, aguments);
} }
return true; return true;
} }
for (CommandBase command : commands) { for (CommandBase command : commands) {
if (!command.getName().equalsIgnoreCase(args[0]) && !command.getAliases() if (!command.getName().equalsIgnoreCase(aguments[0]) && !command.getAliases()
.contains(args[0].toLowerCase())) { .contains(aguments[0].toLowerCase())) {
continue; continue;
} }
@ -96,11 +96,11 @@ public class CommandHandler implements CommandExecutor, TabCompleter, IHandler {
return true; return true;
} }
args = Arrays.copyOfRange(args, 1, args.length); aguments = Arrays.copyOfRange(aguments, 1, aguments.length);
if ((command.getMinimumArguments() != -1 && command.getMinimumArguments() > args.length) if ((command.getMinimumArguments() != -1 && command.getMinimumArguments() > aguments.length)
|| (command.getMaximumArguments() != -1 || (command.getMaximumArguments() != -1
&& command.getMaximumArguments() < args.length)) { && command.getMaximumArguments() < aguments.length)) {
sender.sendMessage(color(HEADER)); sender.sendMessage(color(HEADER));
sender.sendMessage(plugin.getLang().getMessage(Path.WRONG_USAGE)); sender.sendMessage(plugin.getLang().getMessage(Path.WRONG_USAGE));
return true; return true;
@ -108,12 +108,12 @@ public class CommandHandler implements CommandExecutor, TabCompleter, IHandler {
if (command.allowConsole()) { if (command.allowConsole()) {
if (sender instanceof Player) if (sender instanceof Player)
command.execute((Player) sender, args); command.execute((Player) sender, aguments);
else else
command.execute(sender, args); command.execute(sender, aguments);
return true; return true;
} else { } else {
command.execute((Player) sender, args); command.execute((Player) sender, aguments);
return true; return true;
} }
} }

View File

@ -19,9 +19,9 @@
package me.mattstudios.citizenscmd.files; package me.mattstudios.citizenscmd.files;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.paths.Path;
import me.mattstudios.citizenscmd.utility.EnumTypes; import me.mattstudios.citizenscmd.utility.EnumTypes;
import me.mattstudios.citizenscmd.utility.Util; import me.mattstudios.citizenscmd.utility.Util;
import me.mattstudios.citizenscmd.utility.paths.Path;
import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;

View File

@ -19,20 +19,20 @@
package me.mattstudios.citizenscmd.files; package me.mattstudios.citizenscmd.files;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.paths.Path;
import me.mattstudios.citizenscmd.utility.Util;
import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap; import java.util.HashMap;
import java.util.Objects; import java.util.Objects;
import static me.mattstudios.utils.MessageUtils.color; import static me.mattstudios.utils.MessageUtils.color;
import static me.mattstudios.utils.MessageUtils.info; import static me.mattstudios.utils.YamlUtils.copyPathDefaults;
@SuppressWarnings("ResultOfMethodCallIgnored")
public class LangHandler { public class LangHandler {
private CitizensCMD plugin; private CitizensCMD plugin;
@ -43,35 +43,6 @@ public class LangHandler {
public LangHandler(CitizensCMD plugin, String lang) { public LangHandler(CitizensCMD plugin, String lang) {
this.plugin = plugin; this.plugin = plugin;
this.lang = lang; this.lang = lang;
}
/**
* Send message to the console saying this is the language selected
*/
public void initialize() {
switch (lang) {
case "en":
info(color(Util.TAG + "&7Using &aEnglish &7messages!"));
break;
case "pt":
info(color(Util.TAG + "&7Usando mensagens em Portugues!"));
break;
case "ro":
info(color(Util.TAG + "&7Folositi mesajele in Limba &aRomana&7!"));
break;
case "bg":
info(color(Util.TAG + "&7Използване на &aбългарски &7език!"));
break;
case "no":
info(color(Util.TAG + "&aNorsk &7Oversettelse!"));
break;
case "ch":
info(color(Util.TAG + "&7使用&a中文&7消息!"));
break;
}
messages = new HashMap<>(); messages = new HashMap<>();
cacheMessage(); cacheMessage();
@ -81,218 +52,38 @@ public class LangHandler {
* Caches all messages into a HashMap for easier access * Caches all messages into a HashMap for easier access
*/ */
private void cacheMessage() { private void cacheMessage() {
new Thread(() -> { try {
File langFile; File langFile = new File(plugin.getDataFolder(), "lang/" + lang + ".yml");
FileConfiguration langConf; FileConfiguration langConf = new YamlConfiguration();
try { InputStream langStream = CitizensCMD.class.getClassLoader().getResourceAsStream("lang/" + lang + ".yml");
langFile = new File(plugin.getDataFolder(), "lang/" + lang + ".yml");
langConf = new YamlConfiguration();
if (!langFile.exists()) plugin.saveResource("lang/" + lang + ".yml", false); if (!langFile.exists()) {
if (langStream == null) {
langConf.load(langFile); langFile.createNewFile();
copyPathDefaults(CitizensCMD.class.getClassLoader().getResourceAsStream("lang/en.yml"), langFile, "messages");
if (!langConf.contains(Path.MESSAGE_DISPLAY)) } else {
langConf.set(Path.MESSAGE_DISPLAY, "{name}:&r"); plugin.saveResource("lang/" + lang + ".yml", false);
if (!langConf.contains(Path.HELP_DESCRIPTION_SOUND)) {
switch (lang) {
case "en":
langConf.set(Path.HELP_DESCRIPTION_SOUND, "&7Adds a sound to an NPC.");
break;
case "pt":
langConf.set(Path.HELP_DESCRIPTION_SOUND, "&7Adiciona um som a um NPC.");
break;
case "ro":
langConf.set(Path.HELP_DESCRIPTION_SOUND, "&7Adaugă un sunet unui NPC.");
break;
case "bg":
langConf.set(Path.HELP_DESCRIPTION_SOUND, "&7Добавя звук към NPC.");
break;
case "no":
langConf.set(Path.HELP_DESCRIPTION_SOUND, "&7Legger til en lyd til en NPC.");
break;
case "ch":
langConf.set(Path.HELP_DESCRIPTION_SOUND, "&7向NPC添加声音.");
break;
}
} }
} else {
if (!langConf.contains(Path.NPC_ADD_DELAY_FAIL)) { if (langStream == null) {
switch (lang) { copyPathDefaults(CitizensCMD.class.getClassLoader().getResourceAsStream("lang/en.yml"), langFile, "messages");
case "en": } else {
langConf.set(Path.NPC_ADD_DELAY_FAIL, "&cWhen adding &d-d &cthe delay must be a number!"); copyPathDefaults(langStream, langFile, "messages");
break;
case "pt":
langConf.set(Path.NPC_ADD_DELAY_FAIL, "&cAo adicionar &d-d &co atraso deve ser um número!");
break;
case "ro":
langConf.set(Path.NPC_ADD_DELAY_FAIL, "&cCând adăugați &d-d &cdelay-ul trebuie să fie un număr!");
break;
case "bg":
langConf.set(Path.NPC_ADD_DELAY_FAIL, "&cПри добавяне &d-d &cзакъснението трябва да бъде число!");
break;
case "no":
langConf.set(Path.NPC_ADD_DELAY_FAIL, "&cNår du legger til &d-d &cforsinkelsen må være et tall!");
break;
case "ch":
langConf.set(Path.NPC_ADD_DELAY_FAIL, "&c添加&d-d&c时延迟必须是数字!");
break;
case "fr":
langConf.set(Path.NPC_ADD_DELAY_FAIL, "&cLors de l'ajout de &d-d &cle délai doit être un nombre!");
break;
}
} }
if (!langConf.contains(Path.LIST_COUNT_RIGHT)) {
switch (lang) {
case "en":
langConf.set(Path.LIST_COUNT_RIGHT, "&c&o{count} &7&o- Right click commands:");
break;
case "pt":
langConf.set(Path.LIST_COUNT_RIGHT, "&c&o{count} &7&o- Comandos de clique direito:");
break;
case "ro":
langConf.set(Path.LIST_COUNT_RIGHT, "&c&o{count} &7&o- Comenzile cu click dreapta:");
break;
case "bg":
langConf.set(Path.LIST_COUNT_RIGHT, "&c&o{count} &7&o- Команди с Десен Клик:");
break;
case "no":
langConf.set(Path.LIST_COUNT_RIGHT, "&c&o{count} &7&o- Høyre klikk:");
break;
case "ch":
langConf.set(Path.LIST_COUNT_RIGHT, "&c&o{count} &7&o- 右鍵指令:");
break;
case "fr":
langConf.set(Path.LIST_COUNT_RIGHT, "&c&o{count} &7&o- Commandes de clic droit:");
break;
}
}
if (!langConf.contains(Path.LIST_COUNT_LEFT)) {
switch (lang) {
case "en":
langConf.set(Path.LIST_COUNT_LEFT, "&c&o{count} &7&o- left click commands:");
break;
case "pt":
langConf.set(Path.LIST_COUNT_LEFT, "&c&o{count} &7&o- Comandos de clique esquerdo:");
break;
case "ro":
langConf.set(Path.LIST_COUNT_LEFT, "&c&o{count} &7&o- Comenzile cu click stanga:");
break;
case "bg":
langConf.set(Path.LIST_COUNT_LEFT, "&c&o{count} &7&o- Команди с Ляв Клик:");
break;
case "no":
langConf.set(Path.LIST_COUNT_LEFT, "&c&o{count} &7&o- Venstre klikk:");
break;
case "ch":
langConf.set(Path.LIST_COUNT_RIGHT, "&c&o{count} &7&o- 左鍵指令:");
break;
case "fr":
langConf.set(Path.LIST_COUNT_RIGHT, "&c&o{count} &7&o- Commandes de clic gauche:");
break;
}
}
if (!langConf.contains(Path.PERMISSION_SET)) {
switch (lang) {
case "en":
langConf.set(Path.PERMISSION_SET, "&aPermission set successfully!");
break;
case "pt":
langConf.set(Path.PERMISSION_SET, "&aPermissão definida com sucesso!");
break;
case "ro":
langConf.set(Path.PERMISSION_SET, "&aPermisiunea este setată cu succes!");
break;
case "bg":
langConf.set(Path.PERMISSION_SET, "&aРазрешението е успешно!");
break;
case "no":
langConf.set(Path.PERMISSION_SET, "&aTillatelse vellykket!");
break;
case "ch":
langConf.set(Path.PERMISSION_SET, "&a权限设置成功!");
break;
case "fr":
langConf.set(Path.PERMISSION_SET, "&aPermission définie avec succès!");
break;
}
}
if (!langConf.contains(Path.PERMISSION_REMOVED)) {
switch (lang) {
case "en":
langConf.set(Path.PERMISSION_REMOVED, "&aPermission removed successfully!");
break;
case "pt":
langConf.set(Path.PERMISSION_REMOVED, "&aPermissão removida com sucesso!");
break;
case "ro":
langConf.set(Path.PERMISSION_REMOVED, "&aPermisiunea a fost eliminată cu succes!");
break;
case "bg":
langConf.set(Path.PERMISSION_REMOVED, "&aРазрешението бе премахнато успешно!");
break;
case "no":
langConf.set(Path.PERMISSION_REMOVED, "&aTillatelse fjernet vellykket!");
break;
case "ch":
langConf.set(Path.PERMISSION_REMOVED, "&a权限已成功删除!");
break;
case "fr":
langConf.set(Path.PERMISSION_REMOVED, "&aPermission supprimée avec succès!");
break;
}
}
for (String parent : Objects.requireNonNull(langConf.getConfigurationSection("messages")).getKeys(false)) {
for (String child : Objects.requireNonNull(langConf.getConfigurationSection("messages." + parent)).getKeys(false))
messages.put("messages." + parent + "." + child, langConf.getString("messages." + parent + "." + child));
}
} catch (IOException | InvalidConfigurationException e) {
e.printStackTrace();
} }
}).start();
langConf.load(langFile);
for (String parent : Objects.requireNonNull(langConf.getConfigurationSection("messages")).getKeys(false)) {
for (String child : Objects.requireNonNull(langConf.getConfigurationSection("messages." + parent)).getKeys(false)) {
messages.put("messages." + parent + "." + child, langConf.getString("messages." + parent + "." + child));
}
}
} catch (IOException | InvalidConfigurationException e) {
e.printStackTrace();
}
} }
/** /**

View File

@ -19,11 +19,11 @@
package me.mattstudios.citizenscmd.listeners; package me.mattstudios.citizenscmd.listeners;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.paths.Path;
import me.mattstudios.citizenscmd.schedulers.ConfirmScheduler; import me.mattstudios.citizenscmd.schedulers.ConfirmScheduler;
import me.mattstudios.citizenscmd.utility.EnumTypes; import me.mattstudios.citizenscmd.utility.EnumTypes;
import me.mattstudios.citizenscmd.utility.TimeUtil; import me.mattstudios.citizenscmd.utility.TimeUtil;
import me.mattstudios.citizenscmd.utility.Util; import me.mattstudios.citizenscmd.utility.Util;
import me.mattstudios.citizenscmd.utility.paths.Path;
import net.citizensnpcs.api.event.NPCLeftClickEvent; import net.citizensnpcs.api.event.NPCLeftClickEvent;
import net.citizensnpcs.api.event.NPCRemoveEvent; import net.citizensnpcs.api.event.NPCRemoveEvent;
import net.citizensnpcs.api.event.NPCRightClickEvent; import net.citizensnpcs.api.event.NPCRightClickEvent;

View File

@ -19,8 +19,8 @@
package me.mattstudios.citizenscmd.listeners; package me.mattstudios.citizenscmd.listeners;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.paths.Path;
import me.mattstudios.citizenscmd.utility.Util; import me.mattstudios.citizenscmd.utility.Util;
import me.mattstudios.citizenscmd.utility.paths.Path;
import me.rayzr522.jsonmessage.JSONMessage; import me.rayzr522.jsonmessage.JSONMessage;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;

View File

@ -19,7 +19,7 @@
package me.mattstudios.citizenscmd.schedulers; package me.mattstudios.citizenscmd.schedulers;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.paths.Path; import me.mattstudios.citizenscmd.utility.paths.Path;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;

View File

@ -25,7 +25,7 @@
package me.mattstudios.citizenscmd.utility; package me.mattstudios.citizenscmd.utility;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.paths.Path; import me.mattstudios.citizenscmd.utility.paths.Path;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher; import java.util.regex.Matcher;

View File

@ -20,20 +20,16 @@ package me.mattstudios.citizenscmd.utility;
import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.PlaceholderAPI;
import me.mattstudios.citizenscmd.CitizensCMD; import me.mattstudios.citizenscmd.CitizensCMD;
import me.mattstudios.citizenscmd.paths.Path; import me.mattstudios.citizenscmd.utility.paths.Path;
import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -167,52 +163,6 @@ public class Util {
return TimeUnit.SECONDS.convert((System.currentTimeMillis() - storedTime), TimeUnit.MILLISECONDS); return TimeUnit.SECONDS.convert((System.currentTimeMillis() - storedTime), TimeUnit.MILLISECONDS);
} }
/**
* Checks for old config and renames it
*/
@SuppressWarnings("ResultOfMethodCallIgnored")
public static void checkOldConfig(CitizensCMD plugin) {
File configFile;
File configFileNew;
FileConfiguration configConf;
boolean isNew = true;
boolean[] contains = new boolean[5];
for (int i = 0; i < contains.length; i++) {
contains[i] = false;
}
try {
configFile = new File(plugin.getDataFolder(), "config.yml");
configFileNew = new File(plugin.getDataFolder(), "config_old.yml");
configConf = new YamlConfiguration();
if (configFile.exists()) {
configConf.load(configFile);
if (configConf.contains("check-updates")) contains[0] = true;
if (configConf.contains("lang")) contains[1] = true;
if (configConf.contains("default-cooldown")) contains[2] = true;
if (configConf.contains("shift-confirm")) contains[3] = true;
if (configConf.contains("cooldown-time-display")) contains[4] = true;
}
for (boolean bool : contains) {
if (!bool) {
isNew = false;
}
}
if (!isNew) {
configFile.renameTo(configFileNew);
}
} catch (IOException | InvalidConfigurationException e) {
e.printStackTrace();
}
}
/** /**
* Disables the plugin if Citizens is not present. * Disables the plugin if Citizens is not present.
* *

View File

@ -16,10 +16,20 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package me.mattstudios.citizenscmd.paths; package me.mattstudios.citizenscmd.utility.paths;
public class Path { public class Path {
/**
* START UP
*/
private static final String MAIN_PATH_STARTUP = "messages.start-up.";
public static final String USING_LANGUAGE = MAIN_PATH_STARTUP + "using-language";
public static final String STARTUP_NEW_VERSION = MAIN_PATH_STARTUP + "new-version";
public static final String PAPI_AVAILABLE = MAIN_PATH_STARTUP + "papi-available";
public static final String VAULT_AVAILABLE = MAIN_PATH_STARTUP + "vault-available";
/** /**
* COMMANDS * COMMANDS
*/ */

View File

@ -7,6 +7,11 @@
# Some placeholders can be removed but might not work correctly # Some placeholders can be removed but might not work correctly
# Cooldown placeholder is safe to be deleted # Cooldown placeholder is safe to be deleted
messages: messages:
start-up:
using-language: "&7Using &aEnglish &7messages!"
new-version: "&cA new version of CitizensCMD is now available:"
papi-available: "&7Using &aPlaceholderAPI&7!"
vault-available: "&7Using &aVault&7!"
commands: commands:
npc-add-command-added: "&aYou have successfully added a command to the NPC!" npc-add-command-added: "&aYou have successfully added a command to the NPC!"
npc-add-command-failed: "&cFailed to add command to the NPC!" npc-add-command-failed: "&cFailed to add command to the NPC!"

View File

@ -65,4 +65,3 @@ messages:
minutes: "[m], [min(s)], [minuto(s)]" minutes: "[m], [min(s)], [minuto(s)]"
hours: "[h], [hora(s)], [hora(s)]" hours: "[h], [hora(s)], [hora(s)]"
days: "[d], [dia(s)], [dia(s)]" days: "[d], [dia(s)], [dia(s)]"