From 7dc0315469448ba34e2266f0a46afe3d23633f6f Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Thu, 11 Jan 2024 14:04:36 +0100 Subject: [PATCH] Makes both String[] and List available for string formatting --- .../knarlib/formatting/StringFormatter.java | 33 +++++++++++++++++-- .../knarlib/formatting/StringReplacer.java | 5 +-- .../formatting/TranslatableTimeUnit.java | 2 +- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/knarcraft/knarlib/formatting/StringFormatter.java b/src/main/java/net/knarcraft/knarlib/formatting/StringFormatter.java index 41e069d..bcebca9 100644 --- a/src/main/java/net/knarcraft/knarlib/formatting/StringFormatter.java +++ b/src/main/java/net/knarcraft/knarlib/formatting/StringFormatter.java @@ -6,6 +6,8 @@ import net.md_5.bungee.api.ChatColor; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; +import java.util.List; + /** * A formatter for formatting displayed messages */ @@ -169,6 +171,20 @@ public final class StringFormatter { */ public String replacePlaceholders(@NotNull TranslatableMessage translatableMessage, @NotNull String[] placeholders, @NotNull String[] replacements) { + return replacePlaceholders(this.translator.getTranslatedMessage(translatableMessage), List.of(placeholders), + List.of(replacements)); + } + + /** + * Replaces placeholders in a translatable message + * + * @param translatableMessage

The translatable message to replace in

+ * @param placeholders

The placeholders to replace

+ * @param replacements

The replacement values

+ * @return

The input string with placeholders replaced

+ */ + public String replacePlaceholders(@NotNull TranslatableMessage translatableMessage, @NotNull List placeholders, + @NotNull List replacements) { return replacePlaceholders(this.translator.getTranslatedMessage(translatableMessage), placeholders, replacements); } @@ -195,8 +211,21 @@ public final class StringFormatter { */ public static String replacePlaceholders(@NotNull String input, @NotNull String[] placeholders, @NotNull String[] replacements) { - for (int i = 0; i < Math.min(placeholders.length, replacements.length); i++) { - input = replacePlaceholder(input, placeholders[i], replacements[i]); + return replacePlaceholders(input, List.of(placeholders), List.of(replacements)); + } + + /** + * Replaces placeholders in a string + * + * @param input

The input string to replace in

+ * @param placeholders

The placeholders to replace

+ * @param replacements

The replacement values

+ * @return

The input string with placeholders replaced

+ */ + public static String replacePlaceholders(@NotNull String input, @NotNull List placeholders, + @NotNull List replacements) { + for (int i = 0; i < Math.min(placeholders.size(), replacements.size()); i++) { + input = replacePlaceholder(input, placeholders.get(i), replacements.get(i)); } return input; } diff --git a/src/main/java/net/knarcraft/knarlib/formatting/StringReplacer.java b/src/main/java/net/knarcraft/knarlib/formatting/StringReplacer.java index 9898e9d..4384fe2 100644 --- a/src/main/java/net/knarcraft/knarlib/formatting/StringReplacer.java +++ b/src/main/java/net/knarcraft/knarlib/formatting/StringReplacer.java @@ -2,6 +2,7 @@ package net.knarcraft.knarlib.formatting; import org.jetbrains.annotations.NotNull; +import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -71,8 +72,8 @@ public final class StringReplacer { * @return

The string with placeholders replaced

*/ public @NotNull String replace(@NotNull String input) { - return StringFormatter.replacePlaceholders(input, replacements.keySet().toArray(new String[0]), - replacements.values().toArray(new String[0])); + return StringFormatter.replacePlaceholders(input, new ArrayList<>(replacements.keySet()), + new ArrayList<>(replacements.values())); } } diff --git a/src/main/java/net/knarcraft/knarlib/formatting/TranslatableTimeUnit.java b/src/main/java/net/knarcraft/knarlib/formatting/TranslatableTimeUnit.java index c7e5ae1..0b3c17a 100644 --- a/src/main/java/net/knarcraft/knarlib/formatting/TranslatableTimeUnit.java +++ b/src/main/java/net/knarcraft/knarlib/formatting/TranslatableTimeUnit.java @@ -12,7 +12,7 @@ import org.jetbrains.annotations.NotNull; public enum TranslatableTimeUnit implements TranslatableMessage { /** - * The format for displaying the duation of something + * The format for displaying the duration of something */ DURATION_FORMAT,