From c575805c72850f1b64a8a709e643ab135a438b25 Mon Sep 17 00:00:00 2001 From: CarmJos Date: Fri, 14 Jan 2022 18:41:16 +0800 Subject: [PATCH] =?UTF-8?q?[v1.3.5]=20=E6=B6=88=E6=81=AF=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=9B=B8=E5=85=B3=E6=9B=B4=E6=96=B0=20-=20[U?= =?UTF-8?q?]=20=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF=E5=8F=91=E9=80=81?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E4=B8=8D=E5=86=8D=E5=90=91=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E5=8F=91=E9=80=81=E7=A9=BA=E6=B6=88=E6=81=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- easyplugin-all/pom.xml | 2 +- easyplugin-bom/pom.xml | 2 +- easyplugin-command/pom.xml | 2 +- easyplugin-common/pom.xml | 2 +- easyplugin-configuration/pom.xml | 2 +- .../configuration/language/EasyMessage.java | 40 ++-- .../language/EasyMessageList.java | 20 +- .../configuration/message/ConfigMessage.java | 79 ++++--- .../message/ConfigMessageList.java | 59 +++--- easyplugin-database/pom.xml | 2 +- easyplugin-gui/pom.xml | 2 +- easyplugin-lp/pom.xml | 2 +- easyplugin-main/pom.xml | 2 +- .../lib/easyplugin/utils/MessageUtils.java | 198 ++++++++++-------- easyplugin-placeholderapi/pom.xml | 2 +- easyplugin-vault/pom.xml | 2 +- pom.xml | 2 +- 17 files changed, 240 insertions(+), 180 deletions(-) diff --git a/easyplugin-all/pom.xml b/easyplugin-all/pom.xml index bac7149..43fe07b 100644 --- a/easyplugin-all/pom.xml +++ b/easyplugin-all/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/easyplugin-bom/pom.xml b/easyplugin-bom/pom.xml index 2a7b15d..69f50d3 100644 --- a/easyplugin-bom/pom.xml +++ b/easyplugin-bom/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/easyplugin-command/pom.xml b/easyplugin-command/pom.xml index 01949d0..0357cca 100644 --- a/easyplugin-command/pom.xml +++ b/easyplugin-command/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/easyplugin-common/pom.xml b/easyplugin-common/pom.xml index ceee368..be7a6d2 100644 --- a/easyplugin-common/pom.xml +++ b/easyplugin-common/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/easyplugin-configuration/pom.xml b/easyplugin-configuration/pom.xml index 43e302a..6113506 100644 --- a/easyplugin-configuration/pom.xml +++ b/easyplugin-configuration/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/language/EasyMessage.java b/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/language/EasyMessage.java index e0cb4df..8a9a8e5 100644 --- a/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/language/EasyMessage.java +++ b/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/language/EasyMessage.java @@ -4,13 +4,14 @@ import cc.carm.lib.easyplugin.configuration.file.FileConfig; import cc.carm.lib.easyplugin.configuration.values.ConfigValue; import cc.carm.lib.easyplugin.utils.ColorParser; import cc.carm.lib.easyplugin.utils.MessageUtils; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Collections; - public class EasyMessage { @Nullable ConfigValue configValue; @@ -65,12 +66,11 @@ public class EasyMessage { } public @NotNull String get(@Nullable CommandSender sender, @Nullable String[] params, @Nullable Object[] values) { - if (sender == null) return getMessages(); - if (params == null || values == null) { - return ColorParser.parse(MessageUtils.setPlaceholders(sender, getMessages())); - } else { - return ColorParser.parse(MessageUtils.setPlaceholders(sender, getMessages(), params, values)); - } + String messages = getMessages(); + if (sender == null || messages.length() < 1) return messages; + params = params == null ? new String[0] : params; + values = values == null ? new Object[0] : values; + return ColorParser.parse(MessageUtils.setPlaceholders(sender, messages, params, values)); } public void send(@Nullable CommandSender sender) { @@ -82,11 +82,25 @@ public class EasyMessage { } public void send(@Nullable CommandSender sender, @Nullable String[] params, @Nullable Object[] values) { - if (params == null || values == null) { - MessageUtils.sendWithPlaceholders(sender, getMessages()); - } else { - MessageUtils.sendWithPlaceholders(sender, Collections.singletonList(getMessages()), params, values); - } + String message = get(sender, params, values); + if (message.length() < 1) return; + MessageUtils.send(sender, message); + } + + public void sendBar(@Nullable Player player) { + sendBar(player, null); + } + + public void sendBar(@Nullable Player player, @Nullable Object[] values) { + sendBar(player, getMessageParams(), values); + } + + public void sendBar(@Nullable Player player, @Nullable String[] params, @Nullable Object[] values) { + if (player == null) return; + String message = get(player, params, values); + + if (message.length() < 1) return; + player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(get(player, params, values))); } public void sendToAll() { diff --git a/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/language/EasyMessageList.java b/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/language/EasyMessageList.java index 9fb202e..8d5f2c3 100644 --- a/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/language/EasyMessageList.java +++ b/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/language/EasyMessageList.java @@ -2,6 +2,7 @@ package cc.carm.lib.easyplugin.configuration.language; import cc.carm.lib.easyplugin.configuration.file.FileConfig; import cc.carm.lib.easyplugin.configuration.values.ConfigValueList; +import cc.carm.lib.easyplugin.utils.ColorParser; import cc.carm.lib.easyplugin.utils.MessageUtils; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; @@ -48,7 +49,6 @@ public class EasyMessageList { else return Arrays.asList(getDefaultValue()); } - private @Nullable String[] getMessageParams() { return messageParams; } @@ -71,11 +71,10 @@ public class EasyMessageList { public @NotNull List get(@Nullable CommandSender sender, @Nullable String[] params, @Nullable Object[] values) { if (sender == null) return getMessages(); - if (params == null || values == null) { - return MessageUtils.setPlaceholders(sender, getMessages()); - } else { - return MessageUtils.setPlaceholders(sender, getMessages(), params, values); - } + params = params == null ? new String[0] : params; + values = values == null ? new Object[0] : values; + + return ColorParser.parse(MessageUtils.setPlaceholders(sender, getMessages(), params, values)); } public void send(@Nullable CommandSender sender) { @@ -87,11 +86,10 @@ public class EasyMessageList { } public void send(@Nullable CommandSender sender, @Nullable String[] params, @Nullable Object[] values) { - if (params == null || values == null) { - MessageUtils.sendWithPlaceholders(sender, getMessages()); - } else { - MessageUtils.sendWithPlaceholders(sender, getMessages(), params, values); - } + List messages = get(sender, params, values); + if (messages.isEmpty()) return; + if (messages.size() == 1 && messages.get(0).length() == 0) return; //空消息不再发送 + MessageUtils.send(sender, messages); } public void sendToAll() { diff --git a/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/message/ConfigMessage.java b/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/message/ConfigMessage.java index e96726c..031114b 100644 --- a/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/message/ConfigMessage.java +++ b/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/message/ConfigMessage.java @@ -3,13 +3,16 @@ package cc.carm.lib.easyplugin.configuration.message; import cc.carm.lib.easyplugin.configuration.file.FileConfig; import cc.carm.lib.easyplugin.configuration.values.ConfigValue; +import cc.carm.lib.easyplugin.utils.ColorParser; import cc.carm.lib.easyplugin.utils.MessageUtils; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Collections; import java.util.function.Supplier; public class ConfigMessage extends ConfigValue { @@ -41,53 +44,67 @@ public class ConfigMessage extends ConfigValue { this.messageParams = messageParams; } - public @NotNull String get(CommandSender sender) { - return MessageUtils.setPlaceholders(sender, get()); + public String[] getMessageParams() { + return messageParams; } - public @NotNull String get(CommandSender sender, Object[] values) { - if (messageParams != null) { - return get(sender, messageParams, values); - } else { - return get(sender); - } + public @NotNull String get(@Nullable CommandSender sender) { + return get(sender, null); } - public @NotNull String get(CommandSender sender, String[] params, Object[] values) { - return MessageUtils.setPlaceholders(sender, get(), params, values); + public @NotNull String get(@Nullable CommandSender sender, @Nullable Object[] values) { + return get(sender, getMessageParams(), values); } - public void send(CommandSender sender) { - MessageUtils.sendWithPlaceholders(sender, get()); + public @NotNull String get(@Nullable CommandSender sender, @Nullable String[] params, @Nullable Object[] values) { + String messages = get(); + if (sender == null || messages.length() < 1) return messages; + params = params == null ? new String[0] : params; + values = values == null ? new Object[0] : values; + return ColorParser.parse(MessageUtils.setPlaceholders(sender, messages, params, values)); } - public void send(CommandSender sender, Object[] values) { - if (messageParams != null) { - send(sender, messageParams, values); - } else { - send(sender, new String[0], new Object[0]); - } - + public void send(@Nullable CommandSender sender) { + send(sender, null); } - public void send(CommandSender sender, String[] params, Object[] values) { - MessageUtils.sendWithPlaceholders(sender, Collections.singletonList(get()), params, values); + public void send(@Nullable CommandSender sender, @Nullable Object[] values) { + send(sender, getMessageParams(), values); + } + + public void send(@Nullable CommandSender sender, @Nullable String[] params, @Nullable Object[] values) { + String message = get(sender, params, values); + if (message.length() < 1) return; + + MessageUtils.send(sender, message); + } + + public void sendBar(@Nullable Player player) { + sendBar(player, null); + } + + public void sendBar(@Nullable Player player, @Nullable Object[] values) { + sendBar(player, getMessageParams(), values); + } + + public void sendBar(@Nullable Player player, @Nullable String[] params, @Nullable Object[] values) { + if (player == null) return; + String message = get(player, params, values); + if (message.length() < 1) return; + + player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(get(player, params, values))); } public void sendToAll() { - Bukkit.getOnlinePlayers().forEach(player -> MessageUtils.sendWithPlaceholders(player, Collections.singletonList(get()))); + sendToAll(null); } - public void sendToAll(Object[] values) { - if (messageParams != null) { - sendToAll(messageParams, values); - } else { - sendToAll(); - } + public void sendToAll(@Nullable Object[] values) { + sendToAll(messageParams, values); } - public void sendToAll(String[] params, Object[] values) { - Bukkit.getOnlinePlayers().forEach(pl -> MessageUtils.sendWithPlaceholders(pl, Collections.singletonList(get()), params, values)); + public void sendToAll(@Nullable String[] params, @Nullable Object[] values) { + Bukkit.getOnlinePlayers().forEach(pl -> send(pl, params, values)); } @Override diff --git a/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/message/ConfigMessageList.java b/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/message/ConfigMessageList.java index 053d3d9..5b4eb23 100644 --- a/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/message/ConfigMessageList.java +++ b/easyplugin-configuration/src/main/java/cc/carm/lib/easyplugin/configuration/message/ConfigMessageList.java @@ -3,6 +3,7 @@ package cc.carm.lib.easyplugin.configuration.message; import cc.carm.lib.easyplugin.configuration.file.FileConfig; import cc.carm.lib.easyplugin.configuration.values.ConfigValueList; +import cc.carm.lib.easyplugin.utils.ColorParser; import cc.carm.lib.easyplugin.utils.MessageUtils; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; @@ -41,52 +42,52 @@ public class ConfigMessageList extends ConfigValueList { this.messageParams = messageParams; } + public String[] getMessageParams() { + return messageParams; + } + public @NotNull List get(@Nullable CommandSender sender) { - return MessageUtils.setPlaceholders(sender, get()); + return get(sender, null); } - public @NotNull List get(@Nullable CommandSender sender, Object[] values) { - if (messageParams != null) { - return get(sender, messageParams, values); - } else { - return get(sender); - } + + public @NotNull List get(@Nullable CommandSender sender, @Nullable Object[] values) { + return get(sender, getMessageParams(), values); } - public @NotNull List get(@Nullable CommandSender sender, String[] params, Object[] values) { - return MessageUtils.setPlaceholders(sender, get(), params, values); + public @NotNull List get(@Nullable CommandSender sender, @Nullable String[] params, @Nullable Object[] values) { + if (sender == null) return get(); + params = params == null ? new String[0] : params; + values = values == null ? new Object[0] : values; + + return ColorParser.parse(MessageUtils.setPlaceholders(sender, get(), params, values)); } public void send(@Nullable CommandSender sender) { - MessageUtils.sendWithPlaceholders(sender, get()); + send(sender, null); } - public void send(@Nullable CommandSender sender, Object[] values) { - if (messageParams != null) { - send(sender, messageParams, values); - } else { - send(sender); - } + public void send(@Nullable CommandSender sender, @Nullable Object[] values) { + send(sender, getMessageParams(), values); } - public void send(@Nullable CommandSender sender, String[] params, Object[] values) { - MessageUtils.sendWithPlaceholders(sender, get(), params, values); - } - - public void sendToAll(String[] params, Object[] values) { - Bukkit.getOnlinePlayers().forEach(pl -> MessageUtils.sendWithPlaceholders(pl, get(), params, values)); + public void send(@Nullable CommandSender sender, @Nullable String[] params, @Nullable Object[] values) { + List messages = get(sender, params, values); + if (messages.isEmpty()) return; + if (messages.size() == 1 && messages.get(0).length() == 0) return; //空消息不再发送 + MessageUtils.send(sender, messages); } public void sendToAll() { - Bukkit.getOnlinePlayers().forEach(player -> MessageUtils.sendWithPlaceholders(player, get())); + sendToAll(null); } - public void sendToAll(Object[] values) { - if (messageParams != null) { - sendToAll(messageParams, values); - } else { - sendToAll(); - } + public void sendToAll(@Nullable Object[] values) { + sendToAll(messageParams, values); + } + + public void sendToAll(@Nullable String[] params, @Nullable Object[] values) { + Bukkit.getOnlinePlayers().forEach(pl -> send(pl, params, values)); } @Override diff --git a/easyplugin-database/pom.xml b/easyplugin-database/pom.xml index 79493de..c0a23b7 100644 --- a/easyplugin-database/pom.xml +++ b/easyplugin-database/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/easyplugin-gui/pom.xml b/easyplugin-gui/pom.xml index f31358f..5d58ae3 100644 --- a/easyplugin-gui/pom.xml +++ b/easyplugin-gui/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/easyplugin-lp/pom.xml b/easyplugin-lp/pom.xml index 1d693f2..0bd8e8b 100644 --- a/easyplugin-lp/pom.xml +++ b/easyplugin-lp/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/easyplugin-main/pom.xml b/easyplugin-main/pom.xml index 67ff860..b52c7de 100644 --- a/easyplugin-main/pom.xml +++ b/easyplugin-main/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/easyplugin-main/src/main/java/cc/carm/lib/easyplugin/utils/MessageUtils.java b/easyplugin-main/src/main/java/cc/carm/lib/easyplugin/utils/MessageUtils.java index d60d689..729d273 100644 --- a/easyplugin-main/src/main/java/cc/carm/lib/easyplugin/utils/MessageUtils.java +++ b/easyplugin-main/src/main/java/cc/carm/lib/easyplugin/utils/MessageUtils.java @@ -4,6 +4,8 @@ import me.clip.placeholderapi.PlaceholderAPI; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Arrays; @@ -14,104 +16,132 @@ import java.util.stream.Collectors; public class MessageUtils { - public static boolean hasPlaceholderAPI() { - return Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null; - } + public static boolean hasPlaceholderAPI() { + return Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null; + } - public static void send(@Nullable CommandSender sender, String... messages) { - send(sender, Arrays.asList(messages)); - } + public static void send(@Nullable CommandSender sender, String... messages) { + send(sender, Arrays.asList(messages)); + } - public static void send(@Nullable CommandSender sender, List messages) { - if (messages == null || messages.isEmpty() || sender == null) return; - for (String s : messages) { - sender.sendMessage(ColorParser.parse(s)); - } - } - - public static void sendWithPlaceholders(CommandSender sender, String... messages) { - sendWithPlaceholders(sender, Arrays.asList(messages)); - } + public static void send(@Nullable CommandSender sender, List messages) { + if (messages == null || messages.isEmpty() || sender == null) return; + for (String s : messages) { + sender.sendMessage(ColorParser.parse(s)); + } + } - public static void sendWithPlaceholders(@Nullable CommandSender sender, List messages) { - if (messages == null || messages.isEmpty() || sender == null) return; - send(sender, setPlaceholders(sender, messages)); - } + public static void sendWithPlaceholders(CommandSender sender, String... messages) { + sendWithPlaceholders(sender, Arrays.asList(messages)); + } - public static void sendWithPlaceholders(@Nullable CommandSender sender, List messages, String param, Object value) { - sendWithPlaceholders(sender, messages, new String[]{param}, new Object[]{value}); - } + public static void sendWithPlaceholders(@Nullable CommandSender sender, List messages) { + if (messages == null || messages.isEmpty() || sender == null) return; + send(sender, setPlaceholders(sender, messages)); + } - public static void sendWithPlaceholders(@Nullable CommandSender sender, List messages, String[] params, Object[] values) { - sendWithPlaceholders(sender, setCustomParams(messages, params, values)); - } + public static void sendWithPlaceholders(@Nullable CommandSender sender, List messages, String param, Object value) { + sendWithPlaceholders(sender, messages, new String[]{param}, new Object[]{value}); + } - public static String setPlaceholders(@Nullable CommandSender sender, String message) { - if (message == null || sender == null) return message; - if (hasPlaceholderAPI() && sender instanceof Player) { - return PlaceholderAPI.setPlaceholders((Player) sender, message); - } else { - return message; - } - } + public static void sendWithPlaceholders(@Nullable CommandSender sender, List messages, String[] params, Object[] values) { + sendWithPlaceholders(sender, setCustomParams(messages, params, values)); + } - public static List setPlaceholders(@Nullable CommandSender sender, List messages) { - if (messages == null || messages.isEmpty() || sender == null) return messages; - if (hasPlaceholderAPI() && sender instanceof Player) { - return PlaceholderAPI.setPlaceholders((Player) sender, messages); - } else { - return messages; - } - } - - public static String setPlaceholders(@Nullable CommandSender sender, String message, String[] params, Object[] values) { - return setPlaceholders(sender, setCustomParams(message, params, values)); - } - - public static List setPlaceholders(@Nullable CommandSender sender, List messages, String[] params, Object[] values) { - return setPlaceholders(sender, setCustomParams(messages, params, values)); - } - - public static String setCustomParams(String message, String param, Object value) { - return setCustomParams(message, new String[]{param}, new Object[]{value}); - } - - public static String setCustomParams(String message, String[] params, Object[] values) { - if (params.length != values.length) return message; - HashMap paramsMap = new HashMap<>(); - for (int i = 0; i < params.length; i++) { - paramsMap.put(params[i], values[i]); - } - return setCustomParams(message, paramsMap); - } + public static String setPlaceholders(@Nullable CommandSender sender, @Nullable String message) { + if (message == null || sender == null) return message; + if (hasPlaceholderAPI() && sender instanceof Player) { + return PlaceholderAPI.setPlaceholders((Player) sender, message); + } else { + return message; + } + } - public static String setCustomParams(String message, HashMap params) { - String afterMessage = message; - for (Map.Entry entry : params.entrySet()) { - afterMessage = afterMessage.replace(entry.getKey(), entry.getValue().toString()); - } - return afterMessage; - } + @Nullable + @Contract("_, !null -> !null") + public static List setPlaceholders(@Nullable CommandSender sender, + @Nullable List messages) { + if (messages == null || messages.isEmpty() || sender == null) return messages; + if (hasPlaceholderAPI() && sender instanceof Player) { + return PlaceholderAPI.setPlaceholders((Player) sender, messages); + } else { + return messages; + } + } - public static List setCustomParams(List messages, String param, Object value) { - return setCustomParams(messages, new String[]{param}, new Object[]{value}); - } + public static String setPlaceholders(@Nullable CommandSender sender, + @NotNull String message, + @Nullable String[] params, + @Nullable Object[] values) { + return setPlaceholders(sender, setCustomParams(message, params, values)); + } - public static List setCustomParams(List messages, String[] params, Object[] values) { - if (params.length != values.length) return messages; - HashMap paramsMap = new HashMap<>(); - for (int i = 0; i < params.length; i++) { - paramsMap.put(params[i], values[i]); - } - return setCustomParams(messages, paramsMap); - } + public static List setPlaceholders(@Nullable CommandSender sender, + @NotNull List messages, + @Nullable String[] params, + @Nullable Object[] values) { + return setPlaceholders(sender, setCustomParams(messages, params, values)); + } + public static String setCustomParams(@NotNull String message, + @NotNull String param, + @NotNull Object value) { + return setCustomParams(message, new String[]{param}, new Object[]{value}); + } - public static List setCustomParams(List messages, HashMap params) { - return messages.stream().map(message -> setCustomParams(message, params)).collect(Collectors.toList()); - } + @Nullable + @Contract("!null, _, _-> !null ; null, _, _->null ") + public static String setCustomParams(@Nullable String message, + @Nullable String[] params, + @Nullable Object[] values) { + if (message == null) return null; + if (params == null || values == null) return message; + if (params.length != values.length) return message; + + HashMap paramsMap = new HashMap<>(); + for (int i = 0; i < params.length; i++) { + paramsMap.put(params[i], values[i]); + } + return setCustomParams(message, paramsMap); + } + + @NotNull + public static String setCustomParams(@NotNull String message, @NotNull HashMap params) { + String afterMessage = message; + for (Map.Entry entry : params.entrySet()) { + afterMessage = afterMessage.replace(entry.getKey(), entry.getValue().toString()); + } + return afterMessage; + } + + @NotNull + public static List setCustomParams(@NotNull List messages, + @NotNull String param, + @NotNull Object value) { + return setCustomParams(messages, new String[]{param}, new Object[]{value}); + } + + @NotNull + public static List setCustomParams(@NotNull List messages, + @Nullable String[] params, + @Nullable Object[] values) { + if (params == null || values == null) return messages; + if (params.length != values.length) return messages; + HashMap paramsMap = new HashMap<>(); + for (int i = 0; i < params.length; i++) { + paramsMap.put(params[i], values[i]); + } + return setCustomParams(messages, paramsMap); + } + + @NotNull + public static List setCustomParams(List messages, HashMap params) { + return messages.stream() + .map(message -> setCustomParams(message, params)) + .collect(Collectors.toList()); + } } diff --git a/easyplugin-placeholderapi/pom.xml b/easyplugin-placeholderapi/pom.xml index e98b604..a7da162 100644 --- a/easyplugin-placeholderapi/pom.xml +++ b/easyplugin-placeholderapi/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/easyplugin-vault/pom.xml b/easyplugin-vault/pom.xml index 8309ae5..1355fbf 100644 --- a/easyplugin-vault/pom.xml +++ b/easyplugin-vault/pom.xml @@ -5,7 +5,7 @@ easyplugin-parent cc.carm.lib - 1.3.4 + 1.3.5 4.0.0 diff --git a/pom.xml b/pom.xml index b19211c..2f0d6ef 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ cc.carm.lib easyplugin-parent pom - 1.3.4 + 1.3.5 easyplugin-main