Skip to content

Commit

Permalink
Convert manually
Browse files Browse the repository at this point in the history
  • Loading branch information
HaHaWTH committed Jul 22, 2024
1 parent 58f8176 commit 2b8450f
Showing 1 changed file with 47 additions and 3 deletions.
50 changes: 47 additions & 3 deletions src/main/java/fr/xephi/authme/util/message/MiniMessageUtils.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package fr.xephi.authme.util.message;

import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MiniMessageUtils {
private static final MiniMessage miniMessage = MiniMessage.miniMessage();

Expand All @@ -26,8 +28,50 @@ public static String parseMiniMessageToLegacy(String message) {
* @return The parsed message.
*/
public static Component parseMiniMessage(String message) {
TextComponent component = LegacyComponentSerializer.legacySection().deserialize(message);
return miniMessage.deserialize(miniMessage.serialize(component));
return miniMessage.deserialize(convertLegacyToMiniMessage(message, false, '§', true));
}

private static String convertLegacyToMiniMessage(String legacy, boolean concise, char charCode, boolean rgb) {
String miniMessage = legacy.replaceAll(Pattern.quote(String.valueOf(charCode)) + "0", "<black>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "1", "<dark_blue>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "2", "<dark_green>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "3", "<dark_aqua>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "4", "<dark_red>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "5", "<dark_purple>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "6", "<gold>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "7", "<gray>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "8", "<dark_gray>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "9", "<blue>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "a", "<green>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "b", "<aqua>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "c", "<red>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "d", "<light_purple>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "e", "<yellow>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "f", "<white>");

if (concise) {
miniMessage = miniMessage.replaceAll(Pattern.quote(String.valueOf(charCode)) + "n", "<u>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "m", "<st>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "k", "<obf>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "o", "<i>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "l", "<b>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "r", "<r>");
} else {
miniMessage = miniMessage.replaceAll(Pattern.quote(String.valueOf(charCode)) + "n", "<underlined>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "m", "<strikethrough>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "k", "<obfuscated>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "o", "<italic>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "l", "<bold>")
.replaceAll(Pattern.quote(String.valueOf(charCode)) + "r", "<reset>");
}

if (rgb) {
Pattern pattern = Pattern.compile(Pattern.quote(String.valueOf(charCode)) + "#([0-9a-fA-F]{6})");
Matcher matcher = pattern.matcher(miniMessage);
miniMessage = matcher.replaceAll("<#$1>");
}

return miniMessage;
}
private MiniMessageUtils() {
}
Expand Down

0 comments on commit 2b8450f

Please sign in to comment.