diff --git a/pom.xml b/pom.xml index f6c33ef..3f53ca6 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ net.t2code Alias - 1.2.2 + 1.2.3_beta-1 jar T2C-Alias @@ -71,7 +71,8 @@ net.t2code T2CodeLib - 15.4 + 15.6 + dev-3 provided @@ -92,5 +93,11 @@ 1.13r1 provided + + org.projectlombok + lombok + RELEASE + compile + diff --git a/src/main/java/net/t2code/alias/Spigot/Cache.java b/src/main/java/net/t2code/alias/Spigot/Cache.java new file mode 100644 index 0000000..a046c0d --- /dev/null +++ b/src/main/java/net/t2code/alias/Spigot/Cache.java @@ -0,0 +1,12 @@ +package net.t2code.alias.Spigot; + +import net.t2code.alias.Spigot.objects.AliasStorageObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.UUID; + +public class Cache { + public static ArrayList openPlayers = new ArrayList(); + public static HashMap aliasStorage = new HashMap<>(); +} diff --git a/src/main/java/net/t2code/alias/Spigot/Main.java b/src/main/java/net/t2code/alias/Spigot/Main.java index 8db05f2..137d0c4 100644 --- a/src/main/java/net/t2code/alias/Spigot/Main.java +++ b/src/main/java/net/t2code/alias/Spigot/Main.java @@ -1,5 +1,6 @@ package net.t2code.alias.Spigot; +import lombok.Getter; import net.t2code.alias.Spigot.objects.AliasObject; import net.t2code.alias.Spigot.objects.SubAliasObject; import net.t2code.alias.Spigot.system.BukkitCommandWrap; @@ -7,6 +8,7 @@ import net.t2code.alias.Spigot.system.BukkitCommandWrap_Useless; import net.t2code.alias.Spigot.system.Load; import net.t2code.alias.Util; import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate; +import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; @@ -21,9 +23,14 @@ public final class Main extends JavaPlugin { return plugin.getDataFolder(); } + @Getter private static String version; + @Getter private static List autor; + @Getter private static Main plugin; + @Getter + private static String guiCode; public static HashMap aliasHashMap = new HashMap<>(); public static HashMap loadAliasHashMap = new HashMap<>(); public static HashMap subAliasHashMap = new HashMap<>(); @@ -31,6 +38,14 @@ public final class Main extends JavaPlugin { public static ArrayList allSubAliases = new ArrayList<>(); public static ArrayList allForSubAliases = new ArrayList<>(); + private BukkitCommandWrap bukkitCommandWrap = null; + + public BukkitCommandWrap getBukkitCommandWrap() { + return this.bukkitCommandWrap; + } + + + @Override public void onEnable() { // Plugin startup logic @@ -44,6 +59,9 @@ public final class Main extends JavaPlugin { } catch (ClassNotFoundException | NoClassDefFoundError e) { this.bukkitCommandWrap = new BukkitCommandWrap_Useless(); } + if (T2CmcVersion.isMc1_13()) { + guiCode = ""; + } else guiCode = "§6§8§9§r"; Load.onLoad(Util.getPrefix(), autor, version, Util.getSpigot(), Util.getDiscord(), Util.getBstatsID()); } @@ -88,22 +106,4 @@ public final class Main extends JavaPlugin { return false; } } - - public static Main getPlugin() { - return plugin; - } - - public static String getVersion() { - return version; - } - - public static List getAutor() { - return autor; - } - - private BukkitCommandWrap bukkitCommandWrap = null; - - public BukkitCommandWrap getBukkitCommandWrap() { - return this.bukkitCommandWrap; - } } diff --git a/src/main/java/net/t2code/alias/Spigot/cmdManagement/AliasCmdExecuter.java b/src/main/java/net/t2code/alias/Spigot/cmdManagement/AliasCmdExecuter.java index 79f4507..0e42bee 100644 --- a/src/main/java/net/t2code/alias/Spigot/cmdManagement/AliasCmdExecuter.java +++ b/src/main/java/net/t2code/alias/Spigot/cmdManagement/AliasCmdExecuter.java @@ -1,6 +1,8 @@ package net.t2code.alias.Spigot.cmdManagement; -import net.t2code.alias.Spigot.config.languages.SelectMessages; +import net.t2code.alias.Spigot.config.config.Config; +import net.t2code.alias.Spigot.config.config.Language; +import net.t2code.alias.Spigot.enums.Confirm; import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -23,7 +25,7 @@ public class AliasCmdExecuter implements CommandExecutor, TabCompleter { // Command if (sender.hasPermission("t2code.alias.command.info")) { Commands.info(sender); - } else T2Csend.sender(sender, SelectMessages.noPermissionForCommand.replace("[cmd]", "/t2code-alias info") + } else T2Csend.sender(sender, Language.noPermission.value.replace("[cmd]", "/t2code-alias info") .replace("[perm]", "t2code.alias.command.info")); } else { switch (args[0].toLowerCase()) { @@ -31,11 +33,11 @@ public class AliasCmdExecuter implements CommandExecutor, TabCompleter { case "rl": if (sender.hasPermission("t2code.alias.command.reload") || sender.isOp()) { Commands.reload(sender); - } else T2Csend.sender(sender, SelectMessages.noPermissionForCommand.replace("[cmd]", "/t2code-alias reload") + } else T2Csend.sender(sender, Language.noPermission.value.replace("[cmd]", "/t2code-alias reload") .replace("[perm]", "t2code.alias.command.reload")); break; case "confirm": - ExecuteAlias.storage(sender, true); + if (Config.buyConfirmDefault.value == Confirm.COMMAND) ExecuteAlias.storage(sender, true); break; case "cancel": ExecuteAlias.storage(sender, false); @@ -45,7 +47,7 @@ public class AliasCmdExecuter implements CommandExecutor, TabCompleter { case "version": if (sender.hasPermission("t2code.alias.command.info")) { Commands.info(sender); - } else T2Csend.sender(sender, SelectMessages.noPermissionForCommand.replace("[cmd]", "/t2code-alias info") + } else T2Csend.sender(sender, Language.noPermission.value.replace("[cmd]", "/t2code-alias info") .replace("[perm]", "t2code.alias.command.info")); break; diff --git a/src/main/java/net/t2code/alias/Spigot/cmdManagement/Commands.java b/src/main/java/net/t2code/alias/Spigot/cmdManagement/Commands.java index f6c5a33..93719ef 100644 --- a/src/main/java/net/t2code/alias/Spigot/cmdManagement/Commands.java +++ b/src/main/java/net/t2code/alias/Spigot/cmdManagement/Commands.java @@ -1,7 +1,7 @@ package net.t2code.alias.Spigot.cmdManagement; import net.t2code.alias.Spigot.Main; -import net.t2code.alias.Spigot.config.languages.SelectMessages; +import net.t2code.alias.Spigot.config.config.Language; import net.t2code.alias.Spigot.system.Load; import net.t2code.alias.Util; import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; @@ -15,12 +15,12 @@ public class Commands { } public static void reload(CommandSender sender) { - if (sender instanceof Player) T2Csend.player((Player) sender, SelectMessages.reloadStart); + if (sender instanceof Player) T2Csend.player((Player) sender, Language.reloadStart.value); T2Csend.console(Util.getPrefix() + "§8-------------------------------"); T2Csend.console(Util.getPrefix() + " §6Plugin reload..."); T2Csend.console(Util.getPrefix() + "§8-------------------------------"); Load.loadReload(); - if (sender instanceof Player) T2Csend.player((Player) sender, SelectMessages.reloadEnd); + if (sender instanceof Player) T2Csend.player((Player) sender, Language.reloadEnd.value); T2Csend.console(Util.getPrefix() + "§8-------------------------------"); T2Csend.console(Util.getPrefix() + " §2Plugin successfully reloaded."); T2Csend.console(Util.getPrefix() + "§8-------------------------------"); diff --git a/src/main/java/net/t2code/alias/Spigot/cmdManagement/ExecuteAlias.java b/src/main/java/net/t2code/alias/Spigot/cmdManagement/ExecuteAlias.java index 49dfda1..0fc5a9c 100644 --- a/src/main/java/net/t2code/alias/Spigot/cmdManagement/ExecuteAlias.java +++ b/src/main/java/net/t2code/alias/Spigot/cmdManagement/ExecuteAlias.java @@ -1,7 +1,10 @@ package net.t2code.alias.Spigot.cmdManagement; -import net.t2code.alias.Spigot.config.config.SelectConfig; -import net.t2code.alias.Spigot.config.languages.SelectMessages; +import net.t2code.alias.Spigot.Cache; +import net.t2code.alias.Spigot.config.config.Config; +import net.t2code.alias.Spigot.config.config.Language; +import net.t2code.alias.Spigot.confirm.gui.ConfirmGUI; +import net.t2code.alias.Spigot.enums.Confirm; import net.t2code.alias.Spigot.objects.AliasObject; import net.t2code.alias.Spigot.objects.AliasStorageObject; import net.t2code.alias.Spigot.objects.SubAliasObject; @@ -17,30 +20,26 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.Arrays; -import java.util.HashMap; import java.util.List; -import java.util.UUID; import java.util.stream.Collectors; public class ExecuteAlias { - public static HashMap aliasStorage = new HashMap<>(); - private static final String prefix = Util.getPrefix(); - protected static void storage(CommandSender sender, boolean confirm) { + public static void storage(CommandSender sender, boolean confirm) { Player player = (Player) sender; - if (!aliasStorage.containsKey(player.getUniqueId())) { - T2Csend.player(player, SelectMessages.buyConfirmNotPossible); + if (!Cache.aliasStorage.containsKey(player.getUniqueId())) { + T2Csend.player(player, Language.confirmNotPossible.value); return; } - AliasStorageObject object = aliasStorage.get(player.getUniqueId()); - aliasStorage.remove(player.getUniqueId()); + AliasStorageObject object = Cache.aliasStorage.get(player.getUniqueId()); + Cache.aliasStorage.remove(player.getUniqueId()); if (!confirm) { - T2Csend.player(player, SelectMessages.buyCancel); + T2Csend.player(player, Language.confirmCancel.value); return; } @@ -68,7 +67,7 @@ public class ExecuteAlias { if (!(player.hasPermission(aliasObject.permission.replace("", alias.toLowerCase())) || player.hasPermission("t2code.alias.admin"))) { String npmsg; if (aliasObject.permissionMSG == null || aliasObject.permissionMSG.equals("")) { - npmsg = SelectMessages.noPermissionForCommand; + npmsg = Language.noPermission.value; } else npmsg = aliasObject.permissionMSG; T2Csend.player(player, npmsg.replace("[cmd]", "/" + alias.toLowerCase()) .replace("[perm]", aliasObject.permission.replace("", alias.toLowerCase())).replace("[alias]", alias)); @@ -77,8 +76,21 @@ public class ExecuteAlias { } if (aliasObject.costEnable && aliasObject.costConfirm) { if (!(aliasObject.costAllowBypass && player.hasPermission("t2code.alias.buy.bypass"))) { - T2Csend.player(player, SelectMessages.buyConfirm.replace("[price]", aliasObject.costPrice.toString() + " " + SelectConfig.getBuyCurrency())); - aliasStorage.put(player.getUniqueId(), new AliasStorageObject(aliasObject, alias, args, false)); + Cache.aliasStorage.put(player.getUniqueId(), new AliasStorageObject(aliasObject, alias, args, false)); + switch ((Confirm) Config.buyConfirmDefault.value) { + case GUI: + ConfirmGUI.open(player, aliasObject.costPrice, alias); + break; + + case CHAT: + T2Csend.player(player, Language.confirmChat.value.replace("[price]", aliasObject.costPrice.toString() + " " + Config.buyCurrency.value)); + break; + + case COMMAND: + default: + T2Csend.player(player, Language.confirmCommand.value.replace("[price]", aliasObject.costPrice.toString() + " " + Config.buyCurrency.value)); + break; + } return; } } @@ -90,11 +102,11 @@ public class ExecuteAlias { if (aliasObject.costEnable) { if (!(aliasObject.costAllowBypass && player.hasPermission("t2code.alias.buy.bypass"))) { if (!T2Ceco.moneyRemove(prefix, player, aliasObject.costPrice)) { - T2Csend.player(player, SelectMessages.noMoney); + T2Csend.player(player, Language.noMoney.value); return; } - if (SelectConfig.getBuyMessage()) - T2Csend.player(player, SelectMessages.buy.replace("[price]", aliasObject.costPrice.toString() + " " + SelectConfig.getBuyCurrency())); + if ((Boolean) Config.buyMessage.value) + T2Csend.player(player, Language.buy.value.replace("[price]", aliasObject.costPrice.toString() + " " + Config.buyCurrency.value)); } } if (aliasObject.commandEnable) { @@ -107,7 +119,7 @@ public class ExecuteAlias { protected static void subAliasPlayer(CommandSender sender, SubAliasObject aliasObject, String alias, String[] args) { if (!aliasObject.subAliasEnable) { - T2Csend.sender(sender, SelectMessages.aliasDisabled); + T2Csend.sender(sender, Language.aliasDisabled.value); return; } @@ -130,7 +142,7 @@ public class ExecuteAlias { if (!(player.hasPermission(aliasObject.permission.replace("", alias.toLowerCase())) || player.hasPermission("t2code.alias.admin"))) { String npmsg; if (aliasObject.permissionMSG == null || aliasObject.permissionMSG.equals("")) { - npmsg = SelectMessages.noPermissionForCommand; + npmsg = Language.noPermission.value; } else npmsg = aliasObject.permissionMSG; T2Csend.player(player, npmsg.replace("[cmd]", "/" + alias.toLowerCase()) .replace("[perm]", aliasObject.permission.replace("", alias.toLowerCase())).replace("[alias]", alias)); @@ -139,8 +151,21 @@ public class ExecuteAlias { } if (aliasObject.costEnable && aliasObject.costConfirm) { if (!(aliasObject.costAllowBypass && player.hasPermission("t2code.alias.buy.bypass"))) { - T2Csend.player(player, SelectMessages.buyConfirm.replace("[price]", aliasObject.costPrice.toString() + " " + SelectConfig.getBuyCurrency())); - aliasStorage.put(player.getUniqueId(), new AliasStorageObject(aliasObject, alias, args, true)); + Cache.aliasStorage.put(player.getUniqueId(), new AliasStorageObject(aliasObject, alias, args, true)); + switch ((Confirm) Config.buyConfirmDefault.value) { + case GUI: + ConfirmGUI.open(player, aliasObject.costPrice, alias); + break; + + case CHAT: + T2Csend.player(player, Language.confirmChat.value.replace("[price]", aliasObject.costPrice.toString() + " " + Config.buyCurrency.value)); + break; + + case COMMAND: + default: + T2Csend.player(player, Language.confirmCommand.value.replace("[price]", aliasObject.costPrice.toString() + " " + Config.buyCurrency.value)); + break; + } return; } } @@ -149,7 +174,7 @@ public class ExecuteAlias { } else { if (aliasObject.consoleEnable) { subAliasConsole(aliasObject, alias, sender, args); - } else T2Csend.sender(sender, SelectMessages.onlyForPlayer); + } else T2Csend.sender(sender, Language.onlyForPlayer.value); } } @@ -157,11 +182,11 @@ public class ExecuteAlias { if (aliasObject.costEnable) { if (!(aliasObject.costAllowBypass && player.hasPermission("t2code.alias.buy.bypass"))) { if (!T2Ceco.moneyRemove(prefix, player, aliasObject.costPrice)) { - T2Csend.player(player, SelectMessages.noMoney); + T2Csend.player(player, Language.noMoney.value); return; } - if (SelectConfig.getBuyMessage()) - T2Csend.player(player, SelectMessages.buy.replace("[price]", aliasObject.costPrice.toString() + " " + SelectConfig.getBuyCurrency())); + if ((Boolean) Config.buyMessage.value) + T2Csend.player(player, Language.buy.value.replace("[price]", aliasObject.costPrice.toString() + " " + Config.buyCurrency.value)); } } if (aliasObject.commandEnable) { diff --git a/src/main/java/net/t2code/alias/Spigot/cmdManagement/RegisterCommands.java b/src/main/java/net/t2code/alias/Spigot/cmdManagement/RegisterCommands.java index 0786c95..81cf081 100644 --- a/src/main/java/net/t2code/alias/Spigot/cmdManagement/RegisterCommands.java +++ b/src/main/java/net/t2code/alias/Spigot/cmdManagement/RegisterCommands.java @@ -1,20 +1,15 @@ package net.t2code.alias.Spigot.cmdManagement; import net.t2code.alias.Spigot.Main; -import net.t2code.alias.Spigot.config.languages.SelectMessages; +import net.t2code.alias.Spigot.config.config.Language; import net.t2code.alias.Spigot.objects.AliasObject; import net.t2code.alias.Spigot.objects.SubAliasObject; import net.t2code.alias.Util; import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; -import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - public class RegisterCommands extends Command { private String alias; private String prefix = Util.getPrefix(); @@ -33,7 +28,7 @@ public class RegisterCommands extends Command { return false; } if (!alias.aliasEnable) { - T2Csend.sender(sender, SelectMessages.aliasDisabled); + T2Csend.sender(sender, Language.aliasDisabled.value); return true; } if (args.length == 0 || args.length == 1 && args[0].contains("-p:")) { @@ -42,7 +37,7 @@ public class RegisterCommands extends Command { } else { if (alias.consoleEnable) { ExecuteAlias.aliasConsole(alias, sender, prefix); - } else T2Csend.sender(sender, SelectMessages.onlyForPlayer); + } else T2Csend.sender(sender, Language.onlyForPlayer.value); } } else { if (!Main.allForSubAliases.contains(this.alias)) { @@ -59,7 +54,7 @@ public class RegisterCommands extends Command { } } } - T2Csend.sender(sender, SelectMessages.noSubCommand); + T2Csend.sender(sender, Language.noSubCommand.value); } return true; } diff --git a/src/main/java/net/t2code/alias/Spigot/config/config/Config.java b/src/main/java/net/t2code/alias/Spigot/config/config/Config.java new file mode 100644 index 0000000..e4c6705 --- /dev/null +++ b/src/main/java/net/t2code/alias/Spigot/config/config/Config.java @@ -0,0 +1,45 @@ +package net.t2code.alias.Spigot.config.config; + +import net.t2code.alias.Spigot.enums.ConfigParam; +import net.t2code.alias.Spigot.enums.Confirm; +import net.t2code.alias.Util; +import net.t2code.t2codelib.SPIGOT.api.items.T2CitemBuilder; +import net.t2code.t2codelib.SPIGOT.api.items.T2CitemVersion; +import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2CmcVersion; +import org.bukkit.Sound; + +public enum Config { + configVersion("configVersion", Util.getConfigVersion(), ConfigParam.INTEGER), + language("plugin.language", "english", ConfigParam.STRING), + updateCheckOnJoin("plugin.updateCheck.onJoin", true, ConfigParam.BOOLEAN), + updateCheckSeePreReleaseUpdates("plugin.updateCheck.seePreReleaseUpdates", true, ConfigParam.BOOLEAN), + updateCheckTimeInterval("plugin.updateCheck.timeInterval", 60, ConfigParam.INTEGER), + + buyMessage("buy.message", true, ConfigParam.BOOLEAN), + buyCurrency("buy.currency", "$", ConfigParam.STRING), + buyConfirmDefault("buy.confirm.default", Confirm.COMMAND, ConfigParam.CONFIRMENUM), + buyConfirmGuiFillItemEnabled("buy.confirm.gui.fillItem.enabled", true, ConfigParam.BOOLEAN), + buyConfirmGuiFillItem("buy.confirm.gui.fillItem.material", T2CitemVersion.getBlackStainedGlassPane().getType().toString(), ConfigParam.STRING), + buyConfirmGuiConfirm("buy.confirm.gui.confirm.material", T2CitemVersion.getGreenWool().getType().toString(), ConfigParam.STRING), + buyConfirmGuiCancel("buy.confirm.gui.cancel.material", T2CitemVersion.getRedWool().getType().toString(), ConfigParam.STRING), + subAliasTab("subAlias.tabComplete", true, ConfigParam.BOOLEAN); + + public String path; + public Object value; + public Sound sound; + public ConfigParam configParam; + + Config(String path, Object value, ConfigParam cEnum) { + this.path = path; + this.value = value; + this.configParam = cEnum; + } + + public static Sound sound() { + if (T2CmcVersion.isMc1_8()) { + return Sound.valueOf("NOTE_PIANO"); + } else if (T2CmcVersion.isMc1_9() || T2CmcVersion.isMc1_10() || T2CmcVersion.isMc1_11() || T2CmcVersion.isMc1_12()) { + return Sound.valueOf("BLOCK_NOTE_HARP"); + } else return Sound.valueOf("BLOCK_NOTE_BLOCK_HARP"); + } +} diff --git a/src/main/java/net/t2code/alias/Spigot/config/config/Convert.java b/src/main/java/net/t2code/alias/Spigot/config/config/Convert.java new file mode 100644 index 0000000..aa02cc2 --- /dev/null +++ b/src/main/java/net/t2code/alias/Spigot/config/config/Convert.java @@ -0,0 +1,99 @@ +package net.t2code.alias.Spigot.config.config; + +import com.google.common.base.Preconditions; +import net.t2code.alias.Spigot.Main; +import net.t2code.alias.Util; +import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; +import org.apache.commons.io.FileUtils; +import org.bukkit.Bukkit; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.logging.Level; + +public class Convert { + protected static void convert() { + convertTo4(); + } + + private static void convertTo4() { + // File dir = new File(Main.getPath(), "languages"); + // File newDir = new File(Main.getPath() + "/languages/old/configVersion3"); + // + // try { + // FileUtils.moveDirectory(dir, newDir); + // } catch (IOException e) { + // e.printStackTrace(); + // } + File config = new File(Main.getPath(), "config.yml"); + YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); + + if (yamlConfiguration.get(Config.configVersion.path) == null || ((Integer) Config.configVersion.value) < Util.getConfigVersion() && new File(Main.getPath(), "config.yml").exists()) { + System.out.println("convert"); + + yamlConfiguration.set("ConfigVersion", null); + try { + yamlConfiguration.save(config); + } catch (IOException e) { + e.printStackTrace(); + } + + File dir = new File(Main.getPath() + "/languages"); + File newDir = new File(Main.getPath() + "/OldConfig/Version3/languages"); + try { + FileUtils.moveDirectory(dir, newDir); + } catch (IOException e) { + e.printStackTrace(); + } + + File f = new File(Main.getPath() + "/OldConfig/Version3/languages/"); + File[] fileArray = f.listFiles(); + for (File file : fileArray) { + String sub = file.getName().substring(file.getName().length() - 4); + if (sub.equals(".yml")) { + YamlConfiguration yamlConfigurationOld; + try { + Preconditions.checkArgument(file != null, "File cannot be null"); + YamlConfiguration language = new YamlConfiguration(); + language.load(file); + yamlConfigurationOld = language; + } catch (FileNotFoundException var3) { + continue; + } catch (IOException var4) { + Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, var4); + continue; + } catch (InvalidConfigurationException var5) { + Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, var5); + continue; + } + File newFile = new File(Main.getPath(), "languages/" + file.getName().replace("_messages.yml", "") + ".yml"); + YamlConfiguration yamlConfigurationNew = YamlConfiguration.loadConfiguration(newFile); + + yamlConfigurationNew.set("plugin.onlyForPlayer", yamlConfigurationOld.getString("Plugin.OnlyForPlayer")); + yamlConfigurationNew.set("plugin.aliasDisabled", yamlConfigurationOld.getString("Plugin.AliasDisabled")); + yamlConfigurationNew.set("plugin.reload.start", yamlConfigurationOld.getString("Plugin.Reload.Start")); + yamlConfigurationNew.set("plugin.reload.end", yamlConfigurationOld.getString("Plugin.Reload.End")); + yamlConfigurationNew.set("plugin.noPermissionForCommand", yamlConfigurationOld.getString("Plugin.ForCommand")); + yamlConfigurationNew.set("plugin.noSubCommand", yamlConfigurationOld.getString("Plugin.NoSubCommand")); + yamlConfigurationNew.set("cost.buy", yamlConfigurationOld.getString("Cost.Buy")); + yamlConfigurationNew.set("cost.noMoney", yamlConfigurationOld.getString("Cost.NoMoney")); + yamlConfigurationNew.set("cost.confirm.command", yamlConfigurationOld.getString("Cost.BuyConfirm")); + yamlConfigurationNew.set("cost.confirm.cancel", yamlConfigurationOld.getString("Cost.BuyCancel")); + yamlConfigurationNew.set("cost.confirm.notPossible", yamlConfigurationOld.getString("Cost.BuyConfirmNotPossible")); + + try { + yamlConfigurationNew.save(newFile); + } catch (IOException e) { + T2Csend.warning(Main.getPlugin(), e.getMessage()); + e.printStackTrace(); + } + } + } + } else System.out.println("not convert"); + } + + +} diff --git a/src/main/java/net/t2code/alias/Spigot/config/config/CreateConfig.java b/src/main/java/net/t2code/alias/Spigot/config/config/CreateConfig.java deleted file mode 100644 index 6b6696f..0000000 --- a/src/main/java/net/t2code/alias/Spigot/config/config/CreateConfig.java +++ /dev/null @@ -1,67 +0,0 @@ -package net.t2code.alias.Spigot.config.config; - -import net.t2code.alias.Spigot.Main; -import net.t2code.alias.Util; -import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; -import net.t2code.t2codelib.SPIGOT.api.yaml.T2Cconfig; -import org.bukkit.configuration.file.YamlConfiguration; - -import java.io.File; -import java.io.IOException; - -public class CreateConfig { - - public static void configCreate() { - long long_ = System.currentTimeMillis(); - if (new File(Main.getPath(), "config.yml").exists()) { - if (Main.getPlugin().getConfig().getBoolean("Plugin.Debug")) T2Csend.console(Util.getPrefix() + " §5DEBUG: §6" + " §4config.yml are created / updated..."); - } else T2Csend.console(Util.getPrefix() + " §4config.yml are created..."); - - File config = new File(Main.getPath(), "config.yml"); - YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); - - - T2Cconfig.set("plugin.language", "english", yamlConfiguration); - T2Cconfig.set("plugin.updateCheck.onJoin", true, yamlConfiguration); - T2Cconfig.set("plugin.updateCheck.seePreReleaseUpdates", true, yamlConfiguration); - T2Cconfig.set("plugin.updateCheck.timeInterval", 60, yamlConfiguration); - - T2Cconfig.set("buy.message", true, yamlConfiguration); - T2Cconfig.set("buy.currency", "$", yamlConfiguration); - T2Cconfig.set("subAlias.tabComplete", true, yamlConfiguration); - - - try { - yamlConfiguration.save(config); - } catch (IOException e) { - e.printStackTrace(); - } - T2Csend.console(Util.getPrefix() + " §2config.yml were successfully created / updated." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); - } - - private static void convert() { - File configOld = new File(Main.getPath(), "config.yml"); - configOld.renameTo(new File(Main.getPath(), "configV3.yml")); - configOld = new File(Main.getPath(), "configV3.yml"); - YamlConfiguration yamlConfigurationOld = YamlConfiguration.loadConfiguration(configOld); - - File config = new File(Main.getPath(), "config.yml"); - YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); - - T2Cconfig.set("plugin.language", yamlConfigurationOld.getString("Plugin.language"), yamlConfiguration); - T2Cconfig.set("plugin.updateCheck.onJoin", yamlConfigurationOld.getBoolean("Plugin.updateCheck.onJoin"), yamlConfiguration); - T2Cconfig.set("plugin.updateCheck.seePreReleaseUpdates", yamlConfigurationOld.getBoolean("Plugin.updateCheck.seePreReleaseUpdates"), yamlConfiguration); - T2Cconfig.set("plugin.updateCheck.timeInterval", yamlConfigurationOld.getInt("Plugin.updateCheck.timeInterval"), yamlConfiguration); - - T2Cconfig.set("buy.message", yamlConfigurationOld.getBoolean("Buy.Message"), yamlConfiguration); - T2Cconfig.set("subAlias.tabComplete", yamlConfigurationOld.getBoolean("SubAlias.TabComplete"), yamlConfiguration); - - try { - yamlConfiguration.save(config); - } catch (IOException e) { - e.printStackTrace(); - } - - configCreate(); - } -} diff --git a/src/main/java/net/t2code/alias/Spigot/config/config/FileSelect.java b/src/main/java/net/t2code/alias/Spigot/config/config/FileSelect.java new file mode 100644 index 0000000..aceb8a4 --- /dev/null +++ b/src/main/java/net/t2code/alias/Spigot/config/config/FileSelect.java @@ -0,0 +1,147 @@ +package net.t2code.alias.Spigot.config.config; + +import net.t2code.alias.Spigot.Main; +import net.t2code.alias.Spigot.enums.Confirm; +import net.t2code.alias.Util; +import net.t2code.t2codelib.SPIGOT.api.debug.T2Cdebug; +import net.t2code.t2codelib.SPIGOT.api.messages.T2Creplace; +import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; +import net.t2code.t2codelib.SPIGOT.system.config.languages.SelectLibMsg; +import org.bukkit.Sound; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class FileSelect { + + public static void config() { + Convert.convert(); + + File config = new File(Main.getPath(), "config.yml"); + YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); + for (Config value : Config.values()) { + switch (value.configParam) { + case STRING: + if (!yamlConfiguration.contains(value.path)) { + yamlConfiguration.set(value.path, value.value); + } + value.value = T2Creplace.replace(Util.getPrefix(), yamlConfiguration.getString(value.path)); + break; + case SOUND: + if (!yamlConfiguration.contains(value.path)) { + yamlConfiguration.set(value.path, value.sound.toString()); + } + try { + value.sound = Sound.valueOf(yamlConfiguration.getString(value.path)); + } catch (Exception ex) { + T2Csend.console("§4\n§4\n§4\n" + SelectLibMsg.soundNotFound.replace("[prefix]", Util.getPrefix()) + .replace("[sound]", "§8" + value.path + ": §6" + yamlConfiguration.getString(value.path)) + "§4\n§4\n§4\n"); + } + break; + case BOOLEAN: + case INTEGER: + if (!yamlConfiguration.contains(value.path)) { + yamlConfiguration.set(value.path, value.value); + } + value.value = yamlConfiguration.get(value.path); + break; + + case CONFIRMENUM: + if (!yamlConfiguration.contains(value.path)) { + yamlConfiguration.set(value.path, value.value.toString()); + } + try { + value.value = Confirm.valueOf(yamlConfiguration.getString(value.path).toUpperCase()); + } catch (Exception ex) { + value.value = Confirm.COMMAND; + T2Csend.console(("[prefix] The value in the config.yml at the path [path] ([value]) must be one of these values!" + + " COMMAND, CHAT, GUI
[prefix] The default option COMMAND is used!") + .replace("[prefix]", Util.getPrefix()).replace("[path]", value.path).replace("[value]", yamlConfiguration.getString(value.path))); + } + break; + } + } + try { + yamlConfiguration.save(config); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private static ArrayList defaultLanguages = new ArrayList<>(Arrays.asList("german", "english")); + + public static void language() { + long long_ = System.currentTimeMillis(); + for (String language : defaultLanguages) { + File config = new File(Main.getPath(), "languages/" + language + ".yml"); + YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); + for (Language value : Language.values()) { + if (!yamlConfiguration.contains(value.path)) { + switch (value.configParam) { + case STRING: + switch (language) { + case "german": + yamlConfiguration.set(value.path, value.german); + break; + case "english": + yamlConfiguration.set(value.path, value.english); + break; + } + break; + + case LIST: + switch (language) { + case "german": + yamlConfiguration.set(value.path, value.germanList); + break; + case "english": + yamlConfiguration.set(value.path, value.englishList); + break; + } + break; + } + } + } + T2Cdebug.debug(Main.getPlugin(), "save: " + language); + try { + yamlConfiguration.save(config); + } catch (IOException e) { + e.printStackTrace(); + } + } + + String selectMSG; + File config = new File(Main.getPath(), "languages/" + Config.language.value + ".yml"); + T2Cdebug.debug(Main.getPlugin(), config.getAbsolutePath()); + if (!config.isFile()) { + T2Csend.console(Util.getPrefix()); + T2Csend.console(Util.getPrefix() + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + T2Csend.console(Util.getPrefix() + " §4The selected §c" + Config.language.value + " §4language file was not found."); + T2Csend.console(Util.getPrefix() + " §6The default language §eEnglish §6is used!"); + T2Csend.console(Util.getPrefix() + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + T2Csend.console(Util.getPrefix()); + config = new File(Main.getPath(), "languages/" + "english.yml"); + selectMSG = "english"; + } else selectMSG = (String) Config.language.value; + YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); + for (Language value : Language.values()) { + switch (value.configParam) { + case STRING: + T2Cdebug.debug(Main.getPlugin(), "Select: File: " + config.getName() + " Path: " + value.path); + value.value = T2Creplace.replace(Util.getPrefix(), yamlConfiguration.getString(value.path)); + break; + + case LIST: + T2Cdebug.debug(Main.getPlugin(), "Select: File: " + config.getName() + " Path: " + value.path); + value.valueList = T2Creplace.replace(Util.getPrefix(), (List) yamlConfiguration.getList(value.path)); + break; + } + } + T2Csend.console(Util.getPrefix() + " §2Language successfully selected to: §6" + selectMSG + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); + } + +} diff --git a/src/main/java/net/t2code/alias/Spigot/config/config/Language.java b/src/main/java/net/t2code/alias/Spigot/config/config/Language.java new file mode 100644 index 0000000..52d4de6 --- /dev/null +++ b/src/main/java/net/t2code/alias/Spigot/config/config/Language.java @@ -0,0 +1,71 @@ +package net.t2code.alias.Spigot.config.config; + +import net.t2code.alias.Spigot.enums.ConfigParam; + +import java.util.Arrays; +import java.util.List; + +public enum Language { + + onlyForPlayer("plugin.onlyForPlayer", null, "[prefix] Dieser Command ist nur f[ue]r Spieler!", + "[prefix] This command is for players only!", ConfigParam.STRING), + + aliasDisabled("plugin.aliasDisabled", null, "Unknown command. Type ''/help'' for help.", + "Unknown command. Type ''/help'' for help.", ConfigParam.STRING), + + reloadStart("plugin.reload.start", null, "[prefix] Plugin wird neu geladen...", + "[prefix] Plugin is reloaded...", ConfigParam.STRING), + + reloadEnd("plugin.reload.end", null, "[prefix] Plugin wurde erfolgreich neu geladen.", + "[prefix] Plugin was successfully reloaded.", ConfigParam.STRING), + + noPermission("plugin.noPermissionForCommand", null, "[prefix] F[ue]r [cmd] fehlt dir die Permission [perm]!", + "[prefix] For [cmd] you lack the permission [perm]!", ConfigParam.STRING), + + noSubCommand("plugin.noSubCommand", null, "[prefix] Diesen Befehl gibt es nicht!", + "[prefix] This command does not exist!", ConfigParam.STRING), + buy("cost.buy", null, "[prefix] Du hast f[ue]r diesen Command [price] bezahlt.", + "[prefix] You have paid [price] for this command.", ConfigParam.STRING), + noMoney("cost.noMoney", null, "[prefix] Du hast nicht gen[ue]gend Geld für diesen Command!", "[prefix] You don't have enough money for this command!", ConfigParam.STRING), + confirmCommand("cost.confirm.command", null, "[prefix] Für diesen Befehl musst du [price] bezahlen!
[prefix] Klicke zum bestätigen'>Bestätigen - Klicke zum abbrechen'>Abbrechen", + "[prefix] For this command you have to pay [price]!
[prefix] Click to confirm'>Confirm - click to cancel'>Cancel", ConfigParam.STRING), + confirmChat("cost.confirm.chat", null, "[prefix] Für diesen Befehl musst du [price] bezahlen!
[prefix] Klicke zum bestätigen'>Bestätigen - Klicke zum abbrechen'>Abbrechen", + "[prefix] For this command you have to pay [price]!
[prefix] Click to confirm'>Confirm - click to cancel'>Cancel", ConfigParam.STRING), + + confirmGuiTitle("cost.confirm.gui.title", null, "&2Bestätige den Zahlvorgang für: &6/[alias]", "Confirm the payment process for: &6/[alias]", ConfigParam.STRING), + confirmGuiConfirm("cost.confirm.gui.confirm.displayName", null, "&2Bestätigen", "&2Confirm", ConfigParam.STRING), + confirmGuiConfirmLore("cost.confirm.gui.confirm.lore", null, Arrays.asList("&aDieser Befehl kostet", "&6[price]"), + Arrays.asList("&aThis command costs","&6[price]"), ConfigParam.LIST), + confirmGuiCancel("cost.confirm.gui.cancel.displayName", null, "&cAbbrechen", "&cCancel", ConfigParam.STRING), + confirmGuiCancelLore("cost.confirm.gui.cancel.lore", null, Arrays.asList(""), Arrays.asList(""), ConfigParam.LIST), + confirmCancel("cost.confirm.cancel", null, "[prefix] Der befehl wurde abgebrochen und du musst nichts bezahlen!", + "[prefix] The command was canceled and you do not have to pay anything!", ConfigParam.STRING), + confirmNotPossible("cost.confirm.notPossible", null, "[prefix] Bestätigen nicht möglich, du hast keinen bezahlungspflichtigen befehl ausgeführt.", + "[prefix] Confirmation not possible, you have not executed a payable command.", ConfigParam.STRING); + + + public String path; + public String value; + public List valueList; + public String german; + public List germanList; + public String english; + public List englishList; + public ConfigParam configParam; + + Language(String path, String value, String german, String english, ConfigParam cEnum) { + this.path = path; + this.value = value; + this.german = german; + this.english = english; + this.configParam = cEnum; + } + + Language(String path, List valueList, List german, List english, ConfigParam cEnum) { + this.path = path; + this.valueList = valueList; + this.germanList = german; + this.englishList = english; + this.configParam = cEnum; + } +} diff --git a/src/main/java/net/t2code/alias/Spigot/config/config/SelectConfig.java b/src/main/java/net/t2code/alias/Spigot/config/config/SelectConfig.java deleted file mode 100644 index b4666df..0000000 --- a/src/main/java/net/t2code/alias/Spigot/config/config/SelectConfig.java +++ /dev/null @@ -1,85 +0,0 @@ -package net.t2code.alias.Spigot.config.config; - -import net.t2code.alias.Spigot.Main; -import net.t2code.t2codelib.SPIGOT.api.yaml.T2Cconfig; -import org.bukkit.configuration.file.YamlConfiguration; - -import java.io.File; -import java.io.IOException; - -public class SelectConfig { - private static Integer ConfigVersion = 3; - private static Integer isConfigVersion; - private static Boolean updateCheckOnJoin; - private static Boolean updateCheckSeePreReleaseUpdates; - private static Integer updateCheckTimeInterval; - private static String language; - - private static Boolean buyMessage; - private static String buyCurrency; - private static Boolean subAliasTab; - - public static void onSelect() { - File config = new File(Main.getPath(), "config.yml"); - YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); - - isConfigVersion = yamlConfiguration.getInt("ConfigVersion"); - - updateCheckOnJoin = yamlConfiguration.getBoolean("plugin.updateCheck.onJoin"); - updateCheckSeePreReleaseUpdates = yamlConfiguration.getBoolean("plugin.updateCheck.seePreReleaseUpdates"); - updateCheckTimeInterval = yamlConfiguration.getInt("plugin.updateCheck.timeInterval"); - - language = yamlConfiguration.getString("plugin.language"); - - buyMessage = yamlConfiguration.getBoolean("buy.message"); - buyCurrency = yamlConfiguration.getString("buy.currency"); - subAliasTab = yamlConfiguration.getBoolean("subAlias.tabComplete"); - } - public static void setConfigVersion() { - File config = new File(Main.getPath(), "config.yml"); - YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); - yamlConfiguration.set("ConfigVersion", ConfigVersion); - try { - yamlConfiguration.save(config); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public static Integer getConfigVersion() { - return ConfigVersion; - } - - public static Integer getIsConfigVersion() { - return isConfigVersion; - } - - public static Boolean getUpdateCheckOnJoin() { - return updateCheckOnJoin; - } - - public static Boolean getUpdateCheckSeePreReleaseUpdates() { - return updateCheckSeePreReleaseUpdates; - } - - public static Integer getUpdateCheckTimeInterval() { - return updateCheckTimeInterval; - } - - public static String getLanguage() { - return language; - } - - - public static Boolean getBuyMessage() { - return buyMessage; - } - - public static String getBuyCurrency() { - return buyCurrency; - } - - public static Boolean getSubAliasTab() { - return subAliasTab; - } -} diff --git a/src/main/java/net/t2code/alias/Spigot/config/languages/LanguagesCreate.java b/src/main/java/net/t2code/alias/Spigot/config/languages/LanguagesCreate.java deleted file mode 100644 index 44cf998..0000000 --- a/src/main/java/net/t2code/alias/Spigot/config/languages/LanguagesCreate.java +++ /dev/null @@ -1,81 +0,0 @@ -package net.t2code.alias.Spigot.config.languages; - -import net.t2code.alias.Spigot.Main; -import net.t2code.alias.Util; -import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; -import net.t2code.t2codelib.SPIGOT.api.yaml.T2Cconfig; -import org.bukkit.configuration.file.YamlConfiguration; - -import java.io.File; -import java.io.IOException; - -public class LanguagesCreate { - - public static void langCreate() { - T2Csend.debug(Main.getPlugin(),"§4Language files are created / updated..."); - long long_ = System.currentTimeMillis(); - - /** - * - * ENGLISH - * - */ - - File messagesEN = new File(Main.getPath(), "languages/english_messages.yml"); - YamlConfiguration yamlConfigurationEN = YamlConfiguration.loadConfiguration(messagesEN); - - T2Cconfig.set("Plugin.OnlyForPlayer", MSG.EN_OnlyForPlayer, yamlConfigurationEN); - T2Cconfig.set("Plugin.AliasDisabled", MSG.EN_Disabled, yamlConfigurationEN); - T2Cconfig.set("Plugin.Reload.Start", MSG.EN_ReloadStart, yamlConfigurationEN); - T2Cconfig.set("Plugin.Reload.End", MSG.EN_ReloadEnd, yamlConfigurationEN); - T2Cconfig.set("Plugin.ForCommand", MSG.EN_NoPermissionForCommand, yamlConfigurationEN); - T2Cconfig.set("Plugin.NoSubCommand", MSG.EN_NoSubCommand, yamlConfigurationEN); - - T2Cconfig. set("Cost.Buy", MSG.EN_Buy, yamlConfigurationEN); - T2Cconfig. set("Cost.BuyConfirm", MSG.EN_BuyConfirm, yamlConfigurationEN); - T2Cconfig. set("Cost.BuyCancel", MSG.EN_BuyCancel, yamlConfigurationEN); - T2Cconfig. set("Cost.BuyConfirmNotPossible", MSG.EN_BuyConfirmNotPossible, yamlConfigurationEN); - T2Cconfig.set("Cost.NoMoney", MSG.EN_NoMoney, yamlConfigurationEN); - - try { - yamlConfigurationEN.save(messagesEN); - } catch (IOException e) { - T2Csend.warning(Main.getPlugin(),e.getMessage()); - e.printStackTrace(); - } - - /** - * - * GERMAN - * - */ - - - File messagesDE = new File(Main.getPath(), "languages/german_messages.yml"); - YamlConfiguration yamlConfigurationDE = YamlConfiguration.loadConfiguration(messagesDE); - - T2Cconfig.set("Plugin.OnlyForPlayer", MSG.DE_OnlyForPlayer, yamlConfigurationDE); - T2Cconfig.set("Plugin.AliasDisabled", MSG.DE_Disabled, yamlConfigurationDE); - T2Cconfig.set("Plugin.Reload.Start", MSG.DE_ReloadStart, yamlConfigurationDE); - T2Cconfig.set("Plugin.Reload.End", MSG.DE_ReloadEnd, yamlConfigurationDE); - T2Cconfig.set("Plugin.ForCommand", MSG.DE_NoPermissionForCommand, yamlConfigurationDE); - T2Cconfig.set("Plugin.NoSubCommand", MSG.DE_NoSubCommand, yamlConfigurationDE); - - T2Cconfig.set("Cost.Buy", MSG.DE_Buy, yamlConfigurationDE); - T2Cconfig.set("Cost.BuyConfirm", MSG.DE_BuyConfirm, yamlConfigurationDE); - T2Cconfig.set("Cost.BuyCancel", MSG.DE_BuyCancel, yamlConfigurationDE); - T2Cconfig.set("Cost.BuyConfirmNotPossible", MSG.DE_BuyConfirmNotPossible, yamlConfigurationDE); - T2Cconfig.set("Cost.NoMoney", MSG.DE_NoMoney, yamlConfigurationDE); - - try { - yamlConfigurationDE.save(messagesDE); - } catch (IOException e) { - T2Csend.warning(Main.getPlugin(),e.getMessage()); - e.printStackTrace(); - } - - - T2Csend.console(Util.getPrefix() + " §2Language files were successfully created / updated." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); - } - -} diff --git a/src/main/java/net/t2code/alias/Spigot/config/languages/MSG.java b/src/main/java/net/t2code/alias/Spigot/config/languages/MSG.java deleted file mode 100644 index f12d511..0000000 --- a/src/main/java/net/t2code/alias/Spigot/config/languages/MSG.java +++ /dev/null @@ -1,55 +0,0 @@ -// This claas was created by JaTiTV - -// ----------------------------- -// _____ _____ _ _ _____ -// / ____/ ____| | | |_ _| -// | | | | __| | | | | | -// | | | | |_ | | | | | | -// | |___| |__| | |__| |_| |_ -// \_____\_____|\____/|_____| -// ----------------------------- - -package net.t2code.alias.Spigot.config.languages; - -public class MSG { - - // EN - - public static String EN_OnlyForPlayer = "[prefix] This command is for players only!"; - - public static String EN_Disabled = "Unknown command. Type ''/help'' for help."; - - public static String EN_ReloadStart = "[prefix] Plugin is reloaded..."; - public static String EN_ReloadEnd = "[prefix] Plugin was successfully reloaded."; - - public static String EN_NoPermissionForCommand = "[prefix] For [cmd] you lack the permission [perm]!"; - - public static String EN_Buy = "[prefix] You have paid [price] for this command."; - public static String EN_BuyConfirm = "[prefix] For this command you have to pay [price]!
[prefix] " + - "Click to confirm'>Confirm - click to cancel'>Cancel"; - public static String EN_BuyCancel = "[prefix] The command was canceled and you do not have to pay anything!"; - public static String EN_BuyConfirmNotPossible = "[prefix] Confirmation not possible, you have not executed a payable command."; - public static String EN_NoMoney = "[prefix] You don't have enough money for this command!"; - public static String EN_NoSubCommand = "[prefix] This command does not exist!"; - - - // DE - public static String DE_OnlyForPlayer = "[prefix] Dieser Command ist nur f[ue]r Spieler!"; - - public static String DE_Disabled = "Unknown command. Type ''/help'' for help."; - - public static String DE_ReloadStart = "[prefix] Plugin wird neu geladen..."; - public static String DE_ReloadEnd = "[prefix] Plugin wurde erfolgreich neu geladen."; - - public static String DE_NoPermissionForCommand = "[prefix] F[ue]r [cmd] fehlt dir die Permission [perm]!"; - - public static String DE_Buy = "[prefix] Du hast f[ue]r diesen Command [price] bezahlt."; - public static String DE_BuyConfirm = "[prefix] Für diesen Befehl musst du [price] bezahlen!
[prefix] " + - "Klicke zum bestätigen'>Bestätigen - Klicke zum abbrechen'>Abbrechen"; - public static String DE_BuyCancel = "[prefix] Der befehl wurde abgebrochen und du musst nichts bezahlen!"; - public static String DE_BuyConfirmNotPossible = "[prefix] Bestätigen nicht möglich, du hast keinen bezahlungspflichtigen befehl ausgeführt."; - public static String DE_NoMoney = "[prefix] Du hast nicht gen[ue]gend Geld für diesen Command!"; - - public static String DE_NoSubCommand = "[prefix] Diesen Befehl gibt es nicht!"; - -} diff --git a/src/main/java/net/t2code/alias/Spigot/config/languages/SelectMessages.java b/src/main/java/net/t2code/alias/Spigot/config/languages/SelectMessages.java deleted file mode 100644 index 97f8135..0000000 --- a/src/main/java/net/t2code/alias/Spigot/config/languages/SelectMessages.java +++ /dev/null @@ -1,71 +0,0 @@ -package net.t2code.alias.Spigot.config.languages; - -import net.t2code.alias.Spigot.Main; -import net.t2code.alias.Spigot.config.config.SelectConfig; -import net.t2code.alias.Util; -import net.t2code.t2codelib.SPIGOT.api.messages.T2Creplace; -import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; -import org.bukkit.configuration.file.YamlConfiguration; - -import java.io.File; - -public class SelectMessages { - public static String selectMSG; - - public static String onlyForPlayer; - public static String reloadStart; - public static String reloadEnd; - - public static String noPermissionForCommand; - public static String noSubCommand; - public static String aliasDisabled; - - public static String buy; - public static String buyConfirm; - public static String buyCancel; - public static String buyConfirmNotPossible; - public static String noMoney; - - - public static void onSelect(String Prefix) { - - T2Csend.debug(Main.getPlugin(), "§4Select language..."); - long long_ = System.currentTimeMillis(); - - File msg; - - msg = new File(Main.getPath(), "languages/" + SelectConfig.getLanguage() + "_messages.yml"); - if (!msg.isFile()) { - T2Csend.console(Prefix); - T2Csend.console(Prefix + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); - T2Csend.console(Prefix + " §4The selected §c" + SelectConfig.getLanguage() + " §4language file was not found."); - T2Csend.console(Prefix + " §6The default language §eEnglish §6is used!"); - T2Csend.console(Prefix + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); - T2Csend.console(Prefix); - msg = new File(Main.getPath(), "languages/" + "english_messages.yml"); - selectMSG = "english"; - } else selectMSG = SelectConfig.getLanguage(); - YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(msg); - - if (yamlConfiguration.get("Plugin.Prefix") != null) { - Util.setPrefix(replace(yamlConfiguration.getString("Plugin.Prefix"))); - } - onlyForPlayer = replace(yamlConfiguration.getString("Plugin.OnlyForPlayer")); - aliasDisabled = replace(yamlConfiguration.getString("Plugin.AliasDisabled")); - reloadStart = replace(yamlConfiguration.getString("Plugin.Reload.Start")); - reloadEnd = replace(yamlConfiguration.getString("Plugin.Reload.End")); - noPermissionForCommand = replace(yamlConfiguration.getString("Plugin.ForCommand")); - noSubCommand = replace(yamlConfiguration.getString("Plugin.NoSubCommand")); - buy = replace(yamlConfiguration.getString("Cost.Buy")); - buyConfirm = replace(yamlConfiguration.getString("Cost.BuyConfirm")); - buyCancel = replace(yamlConfiguration.getString("Cost.BuyCancel")); - buyConfirmNotPossible = replace(yamlConfiguration.getString("Cost.BuyConfirmNotPossible")); - noMoney = replace(yamlConfiguration.getString("Cost.NoMoney")); - - T2Csend.console(Prefix + " §2Language successfully selected to: §6" + selectMSG + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); - } - - private static String replace(String text) { - return T2Creplace.replace(Util.getPrefix(), text); - } -} diff --git a/src/main/java/net/t2code/alias/Spigot/confirm/ChatConfirm.java b/src/main/java/net/t2code/alias/Spigot/confirm/ChatConfirm.java new file mode 100644 index 0000000..8fa71c9 --- /dev/null +++ b/src/main/java/net/t2code/alias/Spigot/confirm/ChatConfirm.java @@ -0,0 +1,42 @@ +package net.t2code.alias.Spigot.confirm; + +import net.t2code.alias.Spigot.Main; +import net.t2code.alias.Spigot.cmdManagement.ExecuteAlias; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.AsyncPlayerChatEvent; + +public class ChatConfirm implements Listener { + + @EventHandler + public void onChat(AsyncPlayerChatEvent e) { + String[] args = e.getMessage().split(" "); + if (args.length == 0) { + return; + } + Player player = e.getPlayer(); + switch (args[0].toLowerCase()) { + case "t2code-alias-confirm": + e.setCancelled(true); + Bukkit.getScheduler().runTask(Main.getPlugin(), new Runnable() { + @Override + public void run() { + ExecuteAlias.storage(player, true); + } + }); + + break; + case "t2code-alias-cancel": + e.setCancelled(true); + Bukkit.getScheduler().runTask(Main.getPlugin(), new Runnable() { + @Override + public void run() { + ExecuteAlias.storage(player, false); + } + }); + break; + } + } +} diff --git a/src/main/java/net/t2code/alias/Spigot/confirm/gui/ConfirmGUI.java b/src/main/java/net/t2code/alias/Spigot/confirm/gui/ConfirmGUI.java new file mode 100644 index 0000000..79af5bc --- /dev/null +++ b/src/main/java/net/t2code/alias/Spigot/confirm/gui/ConfirmGUI.java @@ -0,0 +1,32 @@ +package net.t2code.alias.Spigot.confirm.gui; + +import net.t2code.alias.Spigot.Cache; +import net.t2code.alias.Spigot.Main; +import net.t2code.alias.Spigot.config.config.Config; +import net.t2code.alias.Spigot.config.config.Language; +import net.t2code.alias.Util; +import net.t2code.t2codelib.SPIGOT.api.items.T2CitemBuilder; +import net.t2code.t2codelib.SPIGOT.api.messages.T2Creplace; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; + +import java.util.List; + +public class ConfirmGUI { + + public static void open(Player player, Double price, String alias) { + Inventory inventory = Bukkit.createInventory((InventoryHolder) null, 9 * 3, (T2Creplace.replace(Util.getPrefix(), player, + Main.getGuiCode() + Language.confirmGuiTitle.value.replace("[price]",price+ " "+Config.buyCurrency.value).replace("[alias]", alias)))); + + T2CitemBuilder.fillItem((boolean) Config.buyConfirmGuiFillItemEnabled.value, (String) Config.buyConfirmGuiFillItem.value, 3, inventory); + + T2CitemBuilder.setItem(12, 1, (String) Config.buyConfirmGuiConfirm.value, Language.confirmGuiConfirm.value, + (List) T2Creplace.replace(Language.confirmGuiConfirmLore.valueList, "[price]", price + " " + Config.buyCurrency.value), inventory); + T2CitemBuilder.setItem(14, 1, (String) Config.buyConfirmGuiCancel.value, Language.confirmGuiCancel.value, + (List) T2Creplace.replace(Language.confirmGuiCancelLore.valueList, "[price]", price + " " + Config.buyCurrency.value), inventory); + Cache.openPlayers.add(player.getUniqueId()); + player.openInventory(inventory); + } +} diff --git a/src/main/java/net/t2code/alias/Spigot/confirm/gui/GuiListener.java b/src/main/java/net/t2code/alias/Spigot/confirm/gui/GuiListener.java new file mode 100644 index 0000000..0de035b --- /dev/null +++ b/src/main/java/net/t2code/alias/Spigot/confirm/gui/GuiListener.java @@ -0,0 +1,40 @@ +package net.t2code.alias.Spigot.confirm.gui; + +import net.t2code.alias.Spigot.Cache; +import net.t2code.alias.Spigot.cmdManagement.ExecuteAlias; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; + +public class GuiListener implements Listener { + @EventHandler + public void onInventoryClick(InventoryClickEvent e) { + Player player = (Player) e.getWhoClicked(); + if (e.getInventory() == null) return; + if (e.getCurrentItem() == null) return; + + if (!Cache.openPlayers.contains(player.getUniqueId())) return; + e.setCancelled(true); + if (e.getClickedInventory() != e.getWhoClicked().getOpenInventory().getTopInventory()) return; + switch (e.getSlot()) { + case 12: + ExecuteAlias.storage(player, true); + break; + case 14: + ExecuteAlias.storage(player, false); + break; + default: + return; + } + Cache.openPlayers.remove(player.getUniqueId()); + player.closeInventory(); + } + + @EventHandler + public void onInventoryCloseEvent(InventoryCloseEvent e) { + Player player = (Player) e.getPlayer(); + Cache.openPlayers.remove(player.getUniqueId()); + } +} diff --git a/src/main/java/net/t2code/alias/Spigot/enums/ConfigParam.java b/src/main/java/net/t2code/alias/Spigot/enums/ConfigParam.java new file mode 100644 index 0000000..41b8721 --- /dev/null +++ b/src/main/java/net/t2code/alias/Spigot/enums/ConfigParam.java @@ -0,0 +1,10 @@ +package net.t2code.alias.Spigot.enums; + +public enum ConfigParam { + STRING, + INTEGER, + LIST, + BOOLEAN, + CONFIRMENUM, + SOUND +} diff --git a/src/main/java/net/t2code/alias/Spigot/enums/Confirm.java b/src/main/java/net/t2code/alias/Spigot/enums/Confirm.java new file mode 100644 index 0000000..c81e85e --- /dev/null +++ b/src/main/java/net/t2code/alias/Spigot/enums/Confirm.java @@ -0,0 +1,7 @@ +package net.t2code.alias.Spigot.enums; + +public enum Confirm { + COMMAND, + CHAT, + GUI +} diff --git a/src/main/java/net/t2code/alias/Spigot/system/Load.java b/src/main/java/net/t2code/alias/Spigot/system/Load.java index aa386b2..ff3f86c 100644 --- a/src/main/java/net/t2code/alias/Spigot/system/Load.java +++ b/src/main/java/net/t2code/alias/Spigot/system/Load.java @@ -5,18 +5,20 @@ import net.t2code.alias.Spigot.cmdManagement.AliasCmdExecuter; import net.t2code.alias.Spigot.cmdManagement.TabEvent; import net.t2code.alias.Spigot.config.alias.CreateExampleAliasConfig; import net.t2code.alias.Spigot.config.alias.SelectAlias; -import net.t2code.alias.Spigot.config.config.*; -import net.t2code.alias.Spigot.config.languages.LanguagesCreate; -import net.t2code.alias.Spigot.config.languages.SelectMessages; +import net.t2code.alias.Spigot.config.config.Config; +import net.t2code.alias.Spigot.config.config.FileSelect; import net.t2code.alias.Spigot.config.subAlias.CreateExampleSubAliasConfig; import net.t2code.alias.Spigot.config.subAlias.SelectSubAlias; -import net.t2code.alias.Spigot.listener.PluginEvents; +import net.t2code.alias.Spigot.confirm.ChatConfirm; +import net.t2code.alias.Spigot.confirm.gui.GuiListener; +import net.t2code.alias.Spigot.enums.Confirm; import net.t2code.alias.Util; import net.t2code.t2codelib.SPIGOT.api.messages.T2Ctemplate; import net.t2code.t2codelib.SPIGOT.api.register.T2Cregister; import net.t2code.t2codelib.SPIGOT.api.update.T2CupdateAPI; import net.t2code.t2codelib.SPIGOT.api.yaml.T2CLibConfig; import org.bukkit.Bukkit; +import org.bukkit.event.HandlerList; import java.io.File; import java.util.List; @@ -29,14 +31,19 @@ public class Load { plugin.getCommand("t2code-alias").setExecutor(new AliasCmdExecuter()); loadReload(); T2CupdateAPI.onUpdateCheck(plugin, prefix, Util.getGit(), Util.getSpigotID(), Util.getDiscord(), - SelectConfig.getUpdateCheckOnJoin(), SelectConfig.getUpdateCheckSeePreReleaseUpdates(), SelectConfig.getUpdateCheckTimeInterval()); + (Boolean) Config.updateCheckOnJoin.value, (Boolean) Config.updateCheckSeePreReleaseUpdates.value, (Integer) Config.updateCheckTimeInterval.value); T2Ctemplate.onLoadFooter(prefix, long_); T2Cregister.listener(new PluginEvents(), plugin); Metrics.Bstats(plugin, bstatsID); } + private static ChatConfirm chatListener; + private static GuiListener guiListener; + public static void loadReload() { + HandlerList.unregisterAll(chatListener); + HandlerList.unregisterAll(guiListener); if (!new File(Main.getPath(), "config.yml").exists()) { try { CreateExampleAliasConfig.configCreate(); @@ -59,19 +66,20 @@ public class Load { } catch (Exception e) { e.printStackTrace(); } - CreateConfig.configCreate(); - LanguagesCreate.langCreate(); - SelectConfig.onSelect(); - SelectMessages.onSelect(Util.getPrefix()); + + FileSelect.config(); + FileSelect.language(); T2Ctemplate.onLoadSeparateStroke(Util.getPrefix()); SelectAlias.onSelect(); T2Ctemplate.onLoadSeparateStroke(Util.getPrefix()); SelectSubAlias.onSelect(); - SelectConfig.setConfigVersion(); - if (SelectConfig.getSubAliasTab()) { + if ((Boolean) Config.subAliasTab.value) { T2Cregister.listener(new TabEvent(), plugin); } - + chatListener = new ChatConfirm(); + if (Config.buyConfirmDefault.value == Confirm.CHAT) T2Cregister.listener(chatListener, plugin); + guiListener = new GuiListener(); + if (Config.buyConfirmDefault.value == Confirm.GUI) T2Cregister.listener(guiListener, plugin); if (T2CLibConfig.getBungee()) { Bukkit.getMessenger().registerOutgoingPluginChannel(plugin, "t2c:bcmd"); } diff --git a/src/main/java/net/t2code/alias/Spigot/system/Metrics.java b/src/main/java/net/t2code/alias/Spigot/system/Metrics.java index 2d405f2..7564769 100644 --- a/src/main/java/net/t2code/alias/Spigot/system/Metrics.java +++ b/src/main/java/net/t2code/alias/Spigot/system/Metrics.java @@ -3,7 +3,6 @@ package net.t2code.alias.Spigot.system; -import net.t2code.alias.Spigot.config.config.SelectConfig; import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; diff --git a/src/main/java/net/t2code/alias/Spigot/listener/PluginEvents.java b/src/main/java/net/t2code/alias/Spigot/system/PluginEvents.java similarity index 76% rename from src/main/java/net/t2code/alias/Spigot/listener/PluginEvents.java rename to src/main/java/net/t2code/alias/Spigot/system/PluginEvents.java index ffd51ba..2b15b1c 100644 --- a/src/main/java/net/t2code/alias/Spigot/listener/PluginEvents.java +++ b/src/main/java/net/t2code/alias/Spigot/system/PluginEvents.java @@ -1,7 +1,9 @@ -package net.t2code.alias.Spigot.listener; +package net.t2code.alias.Spigot.system; +import net.t2code.alias.Spigot.Cache; import net.t2code.alias.Spigot.Main; import net.t2code.alias.Spigot.cmdManagement.ExecuteAlias; +import net.t2code.alias.Spigot.confirm.gui.ConfirmGUI; import net.t2code.alias.Util; import net.t2code.t2codelib.SPIGOT.api.update.T2CupdateAPI; import org.bukkit.entity.Player; @@ -14,7 +16,8 @@ public class PluginEvents implements Listener { @EventHandler public void onJoinEvent(PlayerQuitEvent event) { Player player = event.getPlayer(); - ExecuteAlias.aliasStorage.remove(player.getUniqueId()); + Cache.aliasStorage.remove(player.getUniqueId()); + Cache.openPlayers.remove(player.getUniqueId()); } @EventHandler diff --git a/src/main/java/net/t2code/alias/Util.java b/src/main/java/net/t2code/alias/Util.java index 0a7fc9c..d0b85f8 100644 --- a/src/main/java/net/t2code/alias/Util.java +++ b/src/main/java/net/t2code/alias/Util.java @@ -8,7 +8,7 @@ public class Util { } public static String getRequiredT2CodeLibVersion() { - return "15.0"; + return "15.6"; } public static String getPrefix() { @@ -40,4 +40,8 @@ public class Util { } private static String prefix = "§8[§4T2Code§7-§aAlias§8]"; + + public static Integer getConfigVersion() { + return 4; + } } diff --git a/src/main/resources/Alias/X_aliasDeclaration_X.yml b/src/main/resources/Alias/X_aliasDeclaration_X.yml index bab26fe..3362c53 100644 --- a/src/main/resources/Alias/X_aliasDeclaration_X.yml +++ b/src/main/resources/Alias/X_aliasDeclaration_X.yml @@ -28,6 +28,9 @@ Alias: Price: 0.0 # Here you define if the bypass is activated or if you have to pay despite the bypass (t2code.alias.buy.bypass). AllowByPass: true + # Here you can set if you have to confirm if you want to pay before executing the command + # In the config.yml you can set at 'buy.confirm.command' if a command or a chatListener should be used for confirming the command. + Confirm: true Command: # Here you can tell the alias to execute one or more commands Enable: false diff --git a/src/main/resources/SubAlias/X_subAliasDeclaration_X.yml b/src/main/resources/SubAlias/X_subAliasDeclaration_X.yml index 4afc5de..b6bfe23 100644 --- a/src/main/resources/SubAlias/X_subAliasDeclaration_X.yml +++ b/src/main/resources/SubAlias/X_subAliasDeclaration_X.yml @@ -27,6 +27,9 @@ SubAlias: Price: 0.0 # Here you define if the bypass is activated or if you have to pay despite the bypass (t2code.alias.buy.bypass). AllowByPass: true + # Here you can set if you have to confirm if you want to pay before executing the command + # In the config.yml you can set at 'buy.confirm.command' if a command or a chatListener should be used for confirming the command. + Confirm: true Command: # Here you can tell the alias to execute one or more commands Enable: false