From ea4fb0b88dc0710fe75554a58b2188cc216cbf61 Mon Sep 17 00:00:00 2001 From: JaTiTV Date: Fri, 4 Aug 2023 16:36:29 +0200 Subject: [PATCH] 1.2 - T2CodeLib 15.9 is required! - Strings and lists can now be used for the message Examples: String: message: 'test List: message: - test 1 - test 2 --- pom.xml | 9 ++--- .../net/t2code/automatedMessages/Util.java | 2 +- .../config/messages/MessagesSelect.java | 3 +- .../messages/SendMessage.java | 35 ++++++++++++++++--- .../automatedMessages/objects/Message.java | 4 +-- 5 files changed, 41 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index 751397f..5f4fbc8 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ net.t2code AutomatedMessages - 1.1 + 1.2 @@ -27,8 +27,8 @@ maven-compiler-plugin 3.8.1 - ${java.version} - ${java.version} + 9 + 9 @@ -84,7 +84,8 @@ net.t2code T2CodeLib - 15.3 + 15.9 + dev-2 provided diff --git a/src/main/java/net/t2code/automatedMessages/Util.java b/src/main/java/net/t2code/automatedMessages/Util.java index 67bff67..3129c7f 100644 --- a/src/main/java/net/t2code/automatedMessages/Util.java +++ b/src/main/java/net/t2code/automatedMessages/Util.java @@ -8,7 +8,7 @@ public class Util { private static String infoText = ""; @Getter - private static String requiredT2CodeLibVersion = "15.3"; + private static String requiredT2CodeLibVersion = "15.9"; @Getter private static String prefix = "[T2C-AutomatedMessages]"; diff --git a/src/main/java/net/t2code/automatedMessages/config/messages/MessagesSelect.java b/src/main/java/net/t2code/automatedMessages/config/messages/MessagesSelect.java index 7546644..cdc4bf1 100644 --- a/src/main/java/net/t2code/automatedMessages/config/messages/MessagesSelect.java +++ b/src/main/java/net/t2code/automatedMessages/config/messages/MessagesSelect.java @@ -9,6 +9,7 @@ import org.bukkit.configuration.file.YamlConfiguration; import java.io.File; import java.util.HashMap; +import java.util.Objects; public class MessagesSelect { @@ -47,7 +48,7 @@ public class MessagesSelect { for (Messages value : Messages.values()) { Boolean enable = yamlConfiguration.getBoolean(value.msgEnablePath); - String message = yamlConfiguration.getString(value.msgMsgPath); + Object message = yamlConfiguration.get(value.msgMsgPath); Boolean soundEnable = yamlConfiguration.getBoolean(value.soundEnablePath); Sound sound; diff --git a/src/main/java/net/t2code/automatedMessages/messages/SendMessage.java b/src/main/java/net/t2code/automatedMessages/messages/SendMessage.java index ebcadde..509186b 100644 --- a/src/main/java/net/t2code/automatedMessages/messages/SendMessage.java +++ b/src/main/java/net/t2code/automatedMessages/messages/SendMessage.java @@ -7,17 +7,44 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; import java.text.SimpleDateFormat; -import java.util.Calendar; +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) T2Csend.console(message.message.replace("[time]", timeStamp).replace("[prefix]",Config.prefix.valueString)); + if (Config.sendConsole.valueBoolean) { + T2Csend.console(replace(message.message, Map.entry("[time]", timeStamp), Map.entry("[prefix]", Config.prefix.valueString))); + } for (Player player : Bukkit.getOnlinePlayers()) { - if (player.hasPermission(message.permission) || !message.permissionNeededToSeeMessage){ - T2Csend.player(player, message.message.replace("[time]", timeStamp).replace("[prefix]",Config.prefix.valueString).replace("[player]",player.getName())); + if (player.hasPermission(message.permission) || !message.permissionNeededToSeeMessage) { + T2Csend.player(player, replace(message.message, Map.entry("[time]", timeStamp), Map.entry("[prefix]", Config.prefix.valueString), Map.entry("[player]", player.getName()))); player.playSound(player.getLocation(), message.sound, 3, 1); } } } + + @SafeVarargs + private static Object replace(Object object, Map.Entry... map) { + Object o = null; + if (object instanceof List) { + ArrayList res = (ArrayList) object; + ArrayList out = new ArrayList<>(); + for (String s : res) { + String re = s; + for (Map.Entry placeholder : map) { + re = re.replace(placeholder.getKey(), placeholder.getValue()); + } + out.add(re); + } + o = out; + } + if (object instanceof String) { + String res = (String) object; + for (Map.Entry placeholder : map) { + res = res.replace(placeholder.getKey(), placeholder.getValue()); + } + o = res; + } + return o; + } } diff --git a/src/main/java/net/t2code/automatedMessages/objects/Message.java b/src/main/java/net/t2code/automatedMessages/objects/Message.java index 9054254..cee8044 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 String message; + public Object message; public Boolean soundEnable; public Sound sound; @@ -25,7 +25,7 @@ public class Message { public Message(String key, Boolean enable, - String message, + Object message, Boolean soundEnable, Sound sound, Boolean permissionNeededToSeeMessage,