From 2aedb22959cc4ef793378ec745d692a6d7d716f6 Mon Sep 17 00:00:00 2001 From: JaTiTV Date: Thu, 11 Jul 2024 13:26:32 +0200 Subject: [PATCH] T2CodeLib API 16.7 and new Config --- pom.xml | 4 +- .../net/t2code/automatedMessages/Util.java | 10 + .../automatedMessages/command/Commands.java | 17 +- .../automatedMessages/config/Config.java | 128 ++++++++--- .../automatedMessages/config/ConfigParam.java | 7 - .../automatedMessages/config/FileBuild.java | 47 ---- .../automatedMessages/config/Languages.java | 85 ++++++++ .../automatedMessages/config/Messages.java | 201 ++++++++++++++++++ .../config/messages/Messages.java | 105 --------- .../config/messages/MessagesSelect.java | 92 -------- .../messages/Management.java | 5 +- .../messages/SendMessage.java | 8 +- .../automatedMessages/objects/Message.java | 4 +- .../t2code/automatedMessages/system/Load.java | 13 +- .../resources/Messages/exampleDiscord.yml | 16 -- src/main/resources/Messages/exampleTime.yml | 16 -- .../Messages/xx_messagesDeclaration_xx.yml | 58 ----- 17 files changed, 423 insertions(+), 393 deletions(-) delete mode 100644 src/main/java/net/t2code/automatedMessages/config/ConfigParam.java delete mode 100644 src/main/java/net/t2code/automatedMessages/config/FileBuild.java create mode 100644 src/main/java/net/t2code/automatedMessages/config/Languages.java create mode 100644 src/main/java/net/t2code/automatedMessages/config/Messages.java delete mode 100644 src/main/java/net/t2code/automatedMessages/config/messages/Messages.java delete mode 100644 src/main/java/net/t2code/automatedMessages/config/messages/MessagesSelect.java delete mode 100644 src/main/resources/Messages/exampleDiscord.yml delete mode 100644 src/main/resources/Messages/exampleTime.yml delete mode 100644 src/main/resources/Messages/xx_messagesDeclaration_xx.yml diff --git a/pom.xml b/pom.xml index 45c854a..a311886 100644 --- a/pom.xml +++ b/pom.xml @@ -27,8 +27,8 @@ maven-compiler-plugin 3.8.1 - 9 - 9 + 11 + 11 diff --git a/src/main/java/net/t2code/automatedMessages/Util.java b/src/main/java/net/t2code/automatedMessages/Util.java index 6359a93..ccfd679 100644 --- a/src/main/java/net/t2code/automatedMessages/Util.java +++ b/src/main/java/net/t2code/automatedMessages/Util.java @@ -1,6 +1,10 @@ package net.t2code.automatedMessages; import lombok.Getter; +import net.t2code.t2codelib.util.T2C_Util; + +import java.util.ArrayList; +import java.util.Arrays; public class Util { @@ -28,4 +32,10 @@ public class Util { @Getter private static String discord = "http://dc.t2code.net"; + public static String[] getConfigLogo() { + ArrayList arrayList = new ArrayList<>(T2C_Util.getConfigT2CodeLogo()); + arrayList.addAll(Arrays.asList("", "# Spigot: " + spigot)); + return arrayList.toArray(new String[0]); + } + } diff --git a/src/main/java/net/t2code/automatedMessages/command/Commands.java b/src/main/java/net/t2code/automatedMessages/command/Commands.java index 0c3fe48..0e67bef 100644 --- a/src/main/java/net/t2code/automatedMessages/command/Commands.java +++ b/src/main/java/net/t2code/automatedMessages/command/Commands.java @@ -2,8 +2,8 @@ package net.t2code.automatedMessages.command; import net.t2code.automatedMessages.Util; import net.t2code.automatedMessages.config.Config; -import net.t2code.automatedMessages.config.FileBuild; -import net.t2code.automatedMessages.config.messages.MessagesSelect; +import net.t2code.automatedMessages.config.Languages; +import net.t2code.automatedMessages.config.Messages; import net.t2code.automatedMessages.messages.Management; import net.t2code.automatedMessages.system.Main; import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Send; @@ -13,16 +13,17 @@ import org.bukkit.entity.Player; public class Commands { public static void reload(CommandSender sender) { - T2C_Send.console(Config.msgReloadStart.valueString); - if (sender instanceof Player) T2C_Send.sender(sender, Config.msgReloadStart.valueString); + T2C_Send.console(Languages.VALUES.msgReloadStart.getValue().toString()); + if (sender instanceof Player) T2C_Send.sender(sender, Languages.VALUES.msgReloadStart.getValue().toString()); Management.end(); - FileBuild.selectConfig(); - MessagesSelect.select(); + Config.set(true); + Languages.set(true); + Messages.set(true); Management.start(); - if (sender instanceof Player) T2C_Send.sender(sender, Config.msgReloadEnd.valueString); - T2C_Send.console(Config.msgReloadEnd.valueString); + if (sender instanceof Player) T2C_Send.sender(sender, Languages.VALUES.msgReloadEnd.getValue().toString()); + T2C_Send.console(Languages.VALUES.msgReloadEnd.getValue().toString()); } public static void info(CommandSender sender) { diff --git a/src/main/java/net/t2code/automatedMessages/config/Config.java b/src/main/java/net/t2code/automatedMessages/config/Config.java index 16743c8..0ef213f 100644 --- a/src/main/java/net/t2code/automatedMessages/config/Config.java +++ b/src/main/java/net/t2code/automatedMessages/config/Config.java @@ -1,41 +1,115 @@ package net.t2code.automatedMessages.config; -public enum Config { +import net.t2code.automatedMessages.Util; +import net.t2code.automatedMessages.system.Main; +import net.t2code.t2codelib.SPIGOT.api.yaml.T2C_ConfigWriter; +import net.t2code.t2codelib.util.T2C_ConfigItem; +import net.t2code.t2codelib.util.T2C_LanguageEnum; - updateCheckOnJoin("plugin.updateCheck.onJoin", true, ConfigParam.BOOLEAN), - updateCheckSeePreReleaseUpdates("plugin.updateCheck.seePreReleaseUpdates", true, ConfigParam.BOOLEAN), - updateCheckTimeInterval("plugin.updateCheck.timeInterval", 60, ConfigParam.INTEGER), +import java.io.File; +import java.util.HashMap; +import java.util.List; - prefix("plugin.prefix", "[T2C-AutomatedMessages]", ConfigParam.STRING), - sendConsole("plugin.broadcastInConsole", true, ConfigParam.BOOLEAN), +public class Config { - timeFormat("plugin.timeFormat", "HH:mm:ss yyyy/MM/dd", ConfigParam.STRING), + public enum VALUES implements T2C_ConfigItem { + language("plugin.language", T2C_LanguageEnum.english, true, + new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + updateCheckOnJoin("plugin.updateCheck.onJoin", true, true, + new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + updateCheckSeePreReleaseUpdates("plugin.updateCheck.seePreReleaseUpdates", true, true, + new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + updateCheckTimeInterval("plugin.updateCheck.timeInterval", 60, true, + new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), - msgReloadStart("plugin.messages.reloadStart", "[prefix] Reload starting...", ConfigParam.STRING), - msgReloadEnd("plugin.messages.reloadEnd", "[prefix] Reload successful.", ConfigParam.STRING); + prefix("plugin.prefix", "[T2C-AutomatedMessages]", true, + new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + sendConsole("plugin.broadcastInConsole", true, true, + new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + + timeFormat("plugin.timeFormat", "HH:mm:ss yyyy/MM/dd",true, + new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + + msgReloadStart("plugin.messages.reloadStart", "[prefix] Reload starting...", true, + new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + msgReloadEnd("plugin.messages.reloadEnd", "[prefix] Reload successful.", true, + new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), - public String path; - public String valueString; - public Boolean valueBoolean; - public Integer valueInteger; - public ConfigParam configParam; + ; - Config(String path, String value, ConfigParam cEnum) { - this.path = path; - this.valueString = value; - this.configParam = cEnum; + private final String path; + private Object value; + private final boolean forceSet; + private final HashMap> comments; + + VALUES(String path, Object value, boolean forceSet, HashMap> comments) { + this.path = path; + this.value = value; + this.forceSet = forceSet; + this.comments = comments; + } + + @Override + public String getPath() { + return path; + } + + @Override + public Object getValue() { + return value; + } + + @Override + public boolean getForceSet() { + return forceSet; + } + + @Override + public HashMap> getComments() { + return comments; + } + + @Override + public String getLanguagePath() { + return language.path; + } + + @Override + public void setValue(Object newValue) { + value = newValue; + } } - Config(String path, Integer value, ConfigParam cEnum) { - this.path = path; - this.valueInteger = value; - this.configParam = cEnum; + public static void set(boolean isReload) { + T2C_ConfigWriter.createConfig(Util.getPrefix(), new File(Main.getPath(), "config.yml"), VALUES.values(), isReload, Util.getConfigLogo()); } - Config(String path, Boolean value, ConfigParam cEnum) { - this.path = path; - this.valueBoolean = value; - this.configParam = cEnum; - } } diff --git a/src/main/java/net/t2code/automatedMessages/config/ConfigParam.java b/src/main/java/net/t2code/automatedMessages/config/ConfigParam.java deleted file mode 100644 index e99dcf5..0000000 --- a/src/main/java/net/t2code/automatedMessages/config/ConfigParam.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.t2code.automatedMessages.config; - -public enum ConfigParam { - STRING, - INTEGER, - BOOLEAN -} diff --git a/src/main/java/net/t2code/automatedMessages/config/FileBuild.java b/src/main/java/net/t2code/automatedMessages/config/FileBuild.java deleted file mode 100644 index ac9c164..0000000 --- a/src/main/java/net/t2code/automatedMessages/config/FileBuild.java +++ /dev/null @@ -1,47 +0,0 @@ -package net.t2code.automatedMessages.config; - -import net.t2code.automatedMessages.Util; -import net.t2code.automatedMessages.system.Main; -import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Replace; -import org.bukkit.configuration.file.YamlConfiguration; - -import java.io.File; -import java.io.IOException; -import java.util.Objects; - -public class FileBuild { - - public static void selectConfig() { - - 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.valueString); - } - value.valueString = T2C_Replace.replace(Util.getPrefix(), Objects.requireNonNull(yamlConfiguration.getString(value.path))); - break; - case BOOLEAN: - if (!yamlConfiguration.contains(value.path)) { - yamlConfiguration.set(value.path, value.valueBoolean); - } - value.valueBoolean = yamlConfiguration.getBoolean(value.path); - break; - - case INTEGER: - if (!yamlConfiguration.contains(value.path)) { - yamlConfiguration.set(value.path, value.valueInteger); - } - value.valueInteger = yamlConfiguration.getInt(value.path); - break; - } - } - try { - yamlConfiguration.save(config); - } catch (IOException e) { - e.printStackTrace(); - } - } -} diff --git a/src/main/java/net/t2code/automatedMessages/config/Languages.java b/src/main/java/net/t2code/automatedMessages/config/Languages.java new file mode 100644 index 0000000..6a626f3 --- /dev/null +++ b/src/main/java/net/t2code/automatedMessages/config/Languages.java @@ -0,0 +1,85 @@ +// This class was created by JaTiTV. + +package net.t2code.automatedMessages.config; + +import net.t2code.automatedMessages.Util; +import net.t2code.automatedMessages.system.Main; +import net.t2code.t2codelib.SPIGOT.api.yaml.T2C_LanguageWriter; +import net.t2code.t2codelib.util.T2C_ConfigItemLanguages; +import net.t2code.t2codelib.util.T2C_LanguageEnum; + +import java.util.HashMap; +import java.util.List; + +public class Languages { + + public enum VALUES implements T2C_ConfigItemLanguages { + otherLang("plugin", null, new HashMap<>() {{ + put(T2C_LanguageEnum.german, null); + put(T2C_LanguageEnum.english, null); + }}, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of("Wenn du eine Eigene Sprache hinzufügen magst, dann kopiere einfach eine Sprachdatei und benenne sie in deine Sprache, dies kannst du dann in der config.yml einstellen.", "")); + put(T2C_LanguageEnum.english, List.of("If you want to add your own language, simply copy a language file and rename it to your language, you can then set this in config.yml.", "")); + }}), + msgReloadStart("plugin.reloadStart", null, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of("[prefix] Plugin wird neu geladen...")); + put(T2C_LanguageEnum.english, List.of("[prefix] Plugin is reloaded...")); + }}, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of("Wenn du eine Eigene Sprache hinzufügen magst, dann kopiere einfach eine Sprachdatei und benenne sie in deine Sprache, dies kannst du dann in der config.yml einstellen.", "")); + put(T2C_LanguageEnum.english, List.of("If you want to add your own language, simply copy a language file and rename it to your language, you can then set this in config.yml.", "")); + }}), + msgReloadEnd("plugin.reloadEnd", null, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + + + ; + private final String path; + private Object value; + private final HashMap> lang; + private final HashMap> comments; + + VALUES(String path, Object value, HashMap> lang, HashMap> comments) { + this.path = path; + this.value = value; + this.lang = lang; + this.comments = comments; + } + + @Override + public String getPath() { + return path; + } + + @Override + public Object getValue() { + if (value == null) { + return lang.get(T2C_LanguageEnum.english); + } + return value; + } + + @Override + public HashMap> getLanguage() { + return lang; + } + + @Override + public HashMap> getComments() { + return comments; + } + + @Override + public void setValue(Object newValue) { + value = newValue; + } + } + + public static void set(boolean isReload) { + T2C_LanguageWriter.createConfig(Util.getPrefix(), Main.getPath(), VALUES.values(), Config.VALUES.language.getValue().toString(), isReload, Util.getConfigLogo()); + } +} diff --git a/src/main/java/net/t2code/automatedMessages/config/Messages.java b/src/main/java/net/t2code/automatedMessages/config/Messages.java new file mode 100644 index 0000000..a703c75 --- /dev/null +++ b/src/main/java/net/t2code/automatedMessages/config/Messages.java @@ -0,0 +1,201 @@ +// This class was created by JaTiTV. + +package net.t2code.automatedMessages.config; + +import lombok.Getter; +import net.t2code.automatedMessages.Util; +import net.t2code.automatedMessages.objects.Message; +import net.t2code.automatedMessages.system.Main; +import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2C_McVersion; +import net.t2code.t2codelib.SPIGOT.api.yaml.T2C_ConfigWriter; +import net.t2code.t2codelib.util.T2C_ConfigItem; +import net.t2code.t2codelib.util.T2C_LanguageEnum; +import org.bukkit.Sound; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.List; + +public class Messages { + + @Getter + private static HashMap messageHashMap = new HashMap<>(); + + public enum VALUES implements T2C_ConfigItem { + enable("enable", false, true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + message("message", "", true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + soundEnable("sound.enable", true, true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + sound("sound.sound", sound(), true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + interval("permissionNeededToSeeMessage.enable", false, true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + permissionNeededToSeeMessage("permissionNeededToSeeMessage.permission", "", true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + permission("intervalInMin", 0, true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + exactTime("exactTime.enable", false, true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + timeMinute("exactTime.timeMinute", "*/5", true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + timeHour("exactTime.timeHour", "*", true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + timeDayOfMonth("exactTime.timeDayOfMonth", "*", true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + timeMonth("exactTime.timeMonth", "*", true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + timeDayOfWeek("exactTime.timeDayOfWeek", "*", true, new HashMap<>() {{ + put(T2C_LanguageEnum.german, List.of()); + put(T2C_LanguageEnum.english, List.of()); + }}), + ; + private final String path; + private Object value; + private final boolean forceSet; + private final HashMap> comments; + + VALUES(String path, Object value, boolean forceSet, HashMap> comments) { + this.path = path; + this.value = value; + this.forceSet = forceSet; + this.comments = comments; + } + + @Override + public String getPath() { + return path; + } + + @Override + public Object getValue() { + return value; + } + + @Override + public boolean getForceSet() { + return forceSet; + } + + @Override + public HashMap> getComments() { + return comments; + } + + @Override + public String getLanguagePath() { + return Config.VALUES.language.getValue().toString(); + } + + @Override + public void setValue(Object newValue) { + value = newValue; + } + } + + public static void set(boolean isReload) { + messageHashMap.clear(); + File fo = new File(Main.getPath() + "/Messages/"); + File f = new File(Main.getPath() + "/messages/"); + if (!fo.exists()) { + try { + Files.move(Paths.get(fo.getAbsolutePath()), Paths.get(f.getAbsolutePath())); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + if (!f.exists()) { + createDefault("exampleTime.yml", "[prefix] Es ist jetzt [time]", sound(), 0, "t2c.automatedmessages.messages.exampletime", true, "0/15/30/45"); + createDefault("exampleDiscord.yml", "[prefix] If you need help, just contact us on our dc.t2code.net''>T2Code Support Discord server.", sound(), 20, "t2c.automatedmessages.messages.examplediscord", false, "*"); + } + + File[] fileArray = f.listFiles(); + for (File file : fileArray) { + String sub = file.getName().substring(file.getName().length() - 4); + if (sub.equals(".yml")) { + String key = file.getName().replace(".yml", ""); + T2C_ConfigWriter.createConfig(Util.getPrefix(), file, VALUES.values(), false, Util.getConfigLogo()); + + Boolean enable = (boolean) VALUES.enable.value; + String message = VALUES.message.value.toString(); + Boolean soundEnable = (boolean) VALUES.soundEnable.value; + + Sound sound; + try { + sound = Sound.valueOf(VALUES.sound.value.toString()); + } catch (Exception e) { + sound = sound(); + } + + Integer interval = (int) VALUES.interval.value; + + Boolean permissionNeededToSeeMessage = (boolean) VALUES.permissionNeededToSeeMessage.value; + String permission = VALUES.permission.value.toString(); + + Boolean exactTime = (boolean) VALUES.exactTime.value; + String timeMinute = VALUES.timeMinute.value.toString(); + String timeHour = VALUES.timeHour.value.toString(); + String timeDayOfMonth = VALUES.timeDayOfMonth.value.toString(); + String timeMonth = VALUES.timeMonth.value.toString(); + String timeDayOfWeek = VALUES.timeDayOfWeek.value.toString(); + Message msg = new Message(key, enable, message, soundEnable, sound, permissionNeededToSeeMessage, permission, interval, + exactTime, timeMinute, timeHour, timeDayOfMonth, timeMonth, timeDayOfWeek); + messageHashMap.put(key, msg); + } + } + } + + private static void createDefault(String fileName, String message, Sound sound, Integer interval, String permission, Boolean exactTime, String timeMinute) { + VALUES.enable.setValue(true); + VALUES.message.setValue(message); + VALUES.soundEnable.setValue(true); + VALUES.sound.setValue(sound.toString()); + VALUES.interval.setValue(interval); + VALUES.permissionNeededToSeeMessage.setValue(false); + VALUES.permission.setValue(permission); + VALUES.exactTime.setValue(exactTime); + VALUES.timeMinute.setValue(timeMinute); + VALUES.timeHour.setValue("*"); + VALUES.timeDayOfMonth.setValue("*"); + VALUES.timeMonth.setValue("*"); + VALUES.timeDayOfWeek.setValue("*"); + T2C_ConfigWriter.createConfig(Util.getPrefix(), new File(Main.getPath() + "/Messages/" + fileName), VALUES.values(), false, Util.getConfigLogo()); + } + + private static Sound sound() { + if (T2C_McVersion.isMc1_8()) { + return Sound.valueOf("NOTE_PIANO"); + } else if (T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12()) { + return Sound.valueOf("BLOCK_NOTE_HARP"); + } else return Sound.BLOCK_NOTE_BLOCK_HARP; + } +} diff --git a/src/main/java/net/t2code/automatedMessages/config/messages/Messages.java b/src/main/java/net/t2code/automatedMessages/config/messages/Messages.java deleted file mode 100644 index e5f99ad..0000000 --- a/src/main/java/net/t2code/automatedMessages/config/messages/Messages.java +++ /dev/null @@ -1,105 +0,0 @@ -package net.t2code.automatedMessages.config.messages; - -import org.bukkit.Sound; - -public enum Messages { - - message("enable", false, - "message", "", - "sound.enable", true, - "sound.sound", MessagesSelect.sound(), - "permissionNeededToSeeMessage.enable", false, - "permissionNeededToSeeMessage.permission", "", - "intervalInMin", 0, - "exactTime.enable", false, - "exactTime.timeMinute", "*/5", - "exactTime.timeHour", "*", - "exactTime.timeDayOfMonth", "*", - "exactTime.timeMonth", "*", - "exactTime.timeDayOfWeek", "*" - ); - - public String msgEnablePath; - public Boolean msgEnable; - - public String msgMsgPath; - public String msgMsg; - - public String soundEnablePath; - public Boolean soundEnable; - - public String soundPath; - public Sound sound; - - public String permissionNeededToSeeMessagePath; - public Boolean permissionNeededToSeeMessage; - - public String permissionPath; - public String permission; - - public String msgIntervalPath; - public Integer msgInterval; - - public String exactTimePath; - public Boolean exactTime; - - public String timeMinutePath; - public String timeMinute; - - public String timeHourPath; - public String timeHour; - - public String timeDayOfMonthPath; - public String timeDayOfMonth; - - public String timeMonthPath; - public String timeMonth; - - public String timeDayOfWeekPath; - public String timeDayOfWeek; - - Messages(String msgEnablePath, Boolean msgEnable, - String msgMsgPath, String msgMsg, - String soundEnablePath, Boolean soundEnable, - String soundPath, Sound sound, - String permissionNeededToSeeMessagePath, Boolean permissionNeededToSeeMessage, - String permissionPath, String permission, - String msgIntervalPath, Integer msgInterval, - String exactTimePath, Boolean exactTime, String timeMinutePath, String timeMinute, - String timeHourPath, String timeHour, - String timeDayOfMonthPath, String timeDayOfMonth, - String timeMonthPath, String timeMonth, - String timeDayOfWeekPath, String timeDayOfWeek) { - - this.msgEnablePath = msgEnablePath; - this.msgEnable = msgEnable; - this.msgMsgPath = msgMsgPath; - this.msgMsg = msgMsg; - - this.soundEnablePath = soundEnablePath; - this.soundEnable = soundEnable; - this.soundPath = soundPath; - this.sound = sound; - - this.permissionNeededToSeeMessagePath = permissionNeededToSeeMessagePath; - this.permissionNeededToSeeMessage = permissionNeededToSeeMessage; - this.permissionPath = permissionPath; - this.permission = permission; - - this.msgIntervalPath = msgIntervalPath; - this.msgInterval = msgInterval; - this.exactTimePath = exactTimePath; - this.exactTime = exactTime; - this.timeMinutePath = timeMinutePath; - this.timeMinute = timeMinute; - this.timeHourPath = timeHourPath; - this.timeHour = timeHour; - - this.timeDayOfMonthPath = timeDayOfMonthPath; - this.timeDayOfMonth = timeDayOfMonth; - this.timeMonthPath = timeMonthPath; - this.timeMonth = timeMonth; - this.timeDayOfWeekPath = timeDayOfWeekPath; - this.timeDayOfWeek = timeDayOfWeek; - } -} diff --git a/src/main/java/net/t2code/automatedMessages/config/messages/MessagesSelect.java b/src/main/java/net/t2code/automatedMessages/config/messages/MessagesSelect.java deleted file mode 100644 index 7d6e8df..0000000 --- a/src/main/java/net/t2code/automatedMessages/config/messages/MessagesSelect.java +++ /dev/null @@ -1,92 +0,0 @@ -package net.t2code.automatedMessages.config.messages; - -import lombok.Getter; -import net.t2code.automatedMessages.objects.Message; -import net.t2code.automatedMessages.system.Main; -import net.t2code.t2codelib.SPIGOT.api.minecraftVersion.T2C_McVersion; -import org.bukkit.Sound; -import org.bukkit.configuration.file.YamlConfiguration; - -import java.io.File; -import java.util.HashMap; - -public class MessagesSelect { - - @Getter - private static HashMap messageHashMap = new HashMap<>(); - - public static void select() { - messageHashMap.clear(); - - File f = new File(Main.getPath() + "/Messages/"); - if (!f.exists()){ - try { - Main.getPlugin().saveResource("Messages/exampleDiscord.yml", false); - } catch (Exception e) { - e.printStackTrace(); - } - try { - Main.getPlugin().saveResource("Messages/exampleTime.yml", false); - } catch (Exception e) { - e.printStackTrace(); - } - } - try { - Main.getPlugin().saveResource("Messages/xx_messagesDeclaration_xx.yml", true); - } catch (Exception e) { - e.printStackTrace(); - } - File[] fileArray = f.listFiles(); - for (File config : fileArray) { - try { - if (config.getName().equals("xx_messagesDeclaration_xx.yml")) continue; - String sub = config.getName().substring(config.getName().length() - 4); - if (sub.equals(".yml")) { - String key = config.getName().replace(".yml", ""); - YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); - - for (Messages value : Messages.values()) { - Boolean enable = yamlConfiguration.getBoolean(value.msgEnablePath); - Object message = yamlConfiguration.get(value.msgMsgPath); - Boolean soundEnable = yamlConfiguration.getBoolean(value.soundEnablePath); - - Sound sound; - try { - sound = Sound.valueOf(yamlConfiguration.getString(value.soundPath)); - } catch (Exception e) { - sound = sound(); - } - - Integer interval = yamlConfiguration.getInt(value.msgIntervalPath); - - Boolean permissionNeededToSeeMessage = yamlConfiguration.getBoolean(value.permissionNeededToSeeMessagePath); - String permission = yamlConfiguration.getString(value.permissionPath); - - Boolean exactTime = yamlConfiguration.getBoolean(value.exactTimePath); - String timeMinute = yamlConfiguration.getString(value.timeMinutePath); - String timeHour = yamlConfiguration.getString(value.timeHourPath); - String timeDayOfMonth = yamlConfiguration.getString(value.timeDayOfMonthPath); - String timeMonth = yamlConfiguration.getString(value.timeMonthPath); - String timeDayOfWeek = yamlConfiguration.getString(value.timeDayOfWeekPath); - Message msg = new Message(key, enable, message, soundEnable, sound, permissionNeededToSeeMessage, permission, interval, - exactTime, timeMinute, timeHour, timeDayOfMonth, timeMonth, timeDayOfWeek); - messageHashMap.put(key, msg); - - - } - } - } catch (Exception e) { - Main.sendTryCatch(MessagesSelect.class, e.getStackTrace()[0]); - e.printStackTrace(); - } - } - } - - static Sound sound() { - if (T2C_McVersion.isMc1_8()) { - return Sound.valueOf("NOTE_PIANO"); - } else if (T2C_McVersion.isMc1_9() || T2C_McVersion.isMc1_10() || T2C_McVersion.isMc1_11() || T2C_McVersion.isMc1_12()) { - return Sound.valueOf("BLOCK_NOTE_HARP"); - } else return Sound.BLOCK_NOTE_BLOCK_HARP; - } -} diff --git a/src/main/java/net/t2code/automatedMessages/messages/Management.java b/src/main/java/net/t2code/automatedMessages/messages/Management.java index 6890ef2..b025a0b 100644 --- a/src/main/java/net/t2code/automatedMessages/messages/Management.java +++ b/src/main/java/net/t2code/automatedMessages/messages/Management.java @@ -1,7 +1,6 @@ package net.t2code.automatedMessages.messages; -import net.t2code.automatedMessages.config.FileBuild; -import net.t2code.automatedMessages.config.messages.MessagesSelect; +import net.t2code.automatedMessages.config.Messages; import net.t2code.automatedMessages.objects.Message; import java.util.ArrayList; @@ -13,7 +12,7 @@ public class Management { private static final List cronJobs = new ArrayList<>(); public static void start() { - for (Map.Entry value : MessagesSelect.getMessageHashMap().entrySet()) { + for (Map.Entry value : Messages.getMessageHashMap().entrySet()) { Message message = value.getValue(); if (!message.enable) continue; if (message.exactTime) { diff --git a/src/main/java/net/t2code/automatedMessages/messages/SendMessage.java b/src/main/java/net/t2code/automatedMessages/messages/SendMessage.java index c9efcb3..7104dc8 100644 --- a/src/main/java/net/t2code/automatedMessages/messages/SendMessage.java +++ b/src/main/java/net/t2code/automatedMessages/messages/SendMessage.java @@ -11,13 +11,13 @@ import java.util.*; public class SendMessage { public static void send(Message message) { - String timeStamp = new SimpleDateFormat(Config.timeFormat.valueString).format(Calendar.getInstance().getTime()); - if (Config.sendConsole.valueBoolean) { - T2C_Send.console(replace(message.message, Map.entry("[time]", timeStamp), Map.entry("[prefix]", Config.prefix.valueString))); + String timeStamp = new SimpleDateFormat(Config.VALUES.timeFormat.getValue().toString()).format(Calendar.getInstance().getTime()); + if ((boolean)Config.VALUES.sendConsole.getValue()) { + T2C_Send.console(replace(message.message, Map.entry("[time]", timeStamp), Map.entry("[prefix]", Config.VALUES.prefix.getValue().toString()))); } for (Player player : Bukkit.getOnlinePlayers()) { if (player.hasPermission(message.permission) || !message.permissionNeededToSeeMessage) { - T2C_Send.player(player, replace(message.message, Map.entry("[time]", timeStamp), Map.entry("[prefix]", Config.prefix.valueString), Map.entry("[player]", player.getName()))); + T2C_Send.player(player, replace(message.message, Map.entry("[time]", timeStamp), Map.entry("[prefix]", Config.VALUES.prefix.getValue().toString()), Map.entry("[player]", player.getName()))); player.playSound(player.getLocation(), message.sound, 3, 1); } } diff --git a/src/main/java/net/t2code/automatedMessages/objects/Message.java b/src/main/java/net/t2code/automatedMessages/objects/Message.java index cee8044..9054254 100644 --- a/src/main/java/net/t2code/automatedMessages/objects/Message.java +++ b/src/main/java/net/t2code/automatedMessages/objects/Message.java @@ -9,7 +9,7 @@ public class Message { public String key; public Boolean enable; - public Object message; + public String message; public Boolean soundEnable; public Sound sound; @@ -25,7 +25,7 @@ public class Message { public Message(String key, Boolean enable, - Object message, + String message, Boolean soundEnable, Sound sound, Boolean permissionNeededToSeeMessage, diff --git a/src/main/java/net/t2code/automatedMessages/system/Load.java b/src/main/java/net/t2code/automatedMessages/system/Load.java index 9d9f5a8..8ae7e08 100644 --- a/src/main/java/net/t2code/automatedMessages/system/Load.java +++ b/src/main/java/net/t2code/automatedMessages/system/Load.java @@ -3,8 +3,8 @@ package net.t2code.automatedMessages.system; import net.t2code.automatedMessages.Util; import net.t2code.automatedMessages.command.CmdExecuter; import net.t2code.automatedMessages.config.Config; -import net.t2code.automatedMessages.config.FileBuild; -import net.t2code.automatedMessages.config.messages.MessagesSelect; +import net.t2code.automatedMessages.config.Languages; +import net.t2code.automatedMessages.config.Messages; import net.t2code.automatedMessages.messages.Management; import net.t2code.t2codelib.SPIGOT.api.messages.T2C_Template; import net.t2code.t2codelib.SPIGOT.api.update.T2C_UpdateAPI; @@ -17,13 +17,14 @@ public class Load { long long_ = T2C_Template.onLoadHeader(Util.getPrefix(), autor, version, Util.getSpigot(), Util.getDiscord()); plugin.getCommand("t2c-automatedmessages").setExecutor(new CmdExecuter()); - FileBuild.selectConfig(); - MessagesSelect.select(); + Config.set(false); + Languages.set(false); + Messages.set(false); Management.start(); - T2C_UpdateAPI.onUpdateCheck(plugin, Util.getPrefix(), Util.getGit(), Util.getSpigotID(), Util.getDiscord(), Config.updateCheckOnJoin.valueBoolean, - Config.updateCheckSeePreReleaseUpdates.valueBoolean, Config.updateCheckTimeInterval.valueInteger); + T2C_UpdateAPI.onUpdateCheck(plugin, Util.getPrefix(), Util.getGit(), Util.getSpigotID(), Util.getDiscord(), (boolean) Config.VALUES.updateCheckOnJoin.getValue(), + (boolean) Config.VALUES.updateCheckSeePreReleaseUpdates.getValue(), (int) Config.VALUES.updateCheckTimeInterval.getValue()); Metrics.Bstats(plugin, Util.getBstatsID()); T2C_Template.onLoadFooter(Util.getPrefix(), long_); diff --git a/src/main/resources/Messages/exampleDiscord.yml b/src/main/resources/Messages/exampleDiscord.yml deleted file mode 100644 index 09dc2e4..0000000 --- a/src/main/resources/Messages/exampleDiscord.yml +++ /dev/null @@ -1,16 +0,0 @@ -enable: true -message: "[prefix] If you need help, just contact us on our dc.t2code.net''>T2Code Support Discord server." -sound: - enable: true - sound: BLOCK_NOTE_BLOCK_HARP -permissionNeededToSeeMessage: - enable: false - permission: t2c.automatedmessages.messages.examplediscord -intervalInMin: 20 -exactTime: - enable: false - timeMinute: '*' - timeHour: '*' - timeDayOfMonth: '*' - timeMonth: '*' - timeDayOfWeek: '*' \ No newline at end of file diff --git a/src/main/resources/Messages/exampleTime.yml b/src/main/resources/Messages/exampleTime.yml deleted file mode 100644 index 063ff63..0000000 --- a/src/main/resources/Messages/exampleTime.yml +++ /dev/null @@ -1,16 +0,0 @@ -enable: true -message: "[prefix] Es ist jetzt [time]" -sound: - enable: true - sound: BLOCK_NOTE_BLOCK_HARP -permissionNeededToSeeMessage: - enable: false - permission: t2c.automatedmessages.messages.exampletime -intervalInMin: 0 -exactTime: - enable: true - timeMinute: 0/15/30/45 - timeHour: '*' - timeDayOfMonth: '*' - timeMonth: '*' - timeDayOfWeek: '*' \ No newline at end of file diff --git a/src/main/resources/Messages/xx_messagesDeclaration_xx.yml b/src/main/resources/Messages/xx_messagesDeclaration_xx.yml deleted file mode 100644 index 2242437..0000000 --- a/src/main/resources/Messages/xx_messagesDeclaration_xx.yml +++ /dev/null @@ -1,58 +0,0 @@ -##################################################### -## To add another Function just create a new file. ## -##################################################### - -# Here you can set whether the message should be activated or deactivated. -enable: false -# Specify here the message that the player should get. -# -# Placeholder: -# [player] = the player name of the recipient of the message. -# [time] = The current system time. -# [prefix] = The prefix set from config.yml. -# -# You can use Minecraft custom color codes: https://minecraft.fandom.com/de/wiki/Formatierungscodes -# You can use the hover module from T2Code: -# You can add a hover and/or clickable feature to all messages sent to players. -# Use /*/ to separate the message. -# Use [nl] to set a line break in a message or hover. -# Hover message: /*/ -# Message with hover and click function: /*//*//*/ -# Message only with click function: /*//*//*/ -# Action: -# - OPEN_URL - Opens a URL under the path specified in ActionValue. -# - OPEN_FILE - Opens a file under the path specified by ActionValue. -# - RUN_COMMAND - Runs the command specified by ActionValue. -# - SUGGEST_COMMAND - Inserts the string specified in ActionValue into the player text box. -# - CHANGE_PAGE - Changes to the page number in a book specified by ActionValue. -# - COPY_TO_CLIPBOARD - Copies the string specified by ActionValue to the player's clipboard. -# You can also use MiniMessage: -# Wiki: https://docs.adventure.kyori.net/minimessage/format.html -# WebUI: https://webui.adventure.kyori.net -message: '' -sound: - # Here you can set whether a sound should be played with the message. - enable: true - # Here you can set which sound should be played. - sound: BLOCK_NOTE_BLOCK_HARP -permissionNeededToSeeMessage: - # Here you can set whether the players need a permission to receive the message. - enable: false - # Here you can set if the players need which permission to receive the message. - permission: t2c.automatedmessages.messages.exampletime -# Here you can set the time interval (in minutes) at which the message should be sent. -intervalInMin: 1 -exactTime: - # Here you can set whether the message should be sent at certain times. - # If this option is used, then the intervalInMin option is disabled! - enable: false - # In these settings you can set at which minute, hour, day of the month, which month and on which day of the week the message should be sent. - # Time format examples: - # One: 5 - # At several times: 5/10/15 - # Every minute, hour, etc.: '*' - timeMinute: 0 - timeHour: '*' - timeDayOfMonth: '*' - timeMonth: '*' - timeDayOfWeek: '*' \ No newline at end of file