Initial MiniMessage support

This commit is contained in:
HaHaWTH
2024-05-27 04:56:50 +08:00
parent c0b6d87678
commit 9e208532d3
38 changed files with 3586 additions and 3501 deletions
@@ -21,6 +21,7 @@ import fr.xephi.authme.settings.properties.RegistrationSettings;
import fr.xephi.authme.settings.properties.RestrictionSettings;
import fr.xephi.authme.settings.properties.SecuritySettings;
import fr.xephi.authme.util.TeleportUtils;
import fr.xephi.authme.util.message.MiniMessageUtils;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.entity.HumanEntity;
@@ -220,7 +221,7 @@ public class PlayerListener implements Listener{
String customJoinMessage = settings.getProperty(RegistrationSettings.CUSTOM_JOIN_MESSAGE);
if (!customJoinMessage.isEmpty()) {
customJoinMessage = ChatColor.translateAlternateColorCodes('&', customJoinMessage);
customJoinMessage = ChatColor.translateAlternateColorCodes('&', MiniMessageUtils.parseMiniMessageToLegacy(customJoinMessage));
event.setJoinMessage(customJoinMessage
.replace("{PLAYERNAME}", player.getName())
.replace("{DISPLAYNAME}", player.getDisplayName())
@@ -5,6 +5,7 @@ import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.mail.EmailService;
import fr.xephi.authme.output.ConsoleLoggerFactory;
import fr.xephi.authme.util.expiring.Duration;
import fr.xephi.authme.util.message.MiniMessageUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -126,7 +127,7 @@ public class Messages {
displayName = ((Player) sender).getDisplayName();
}
return ChatColor.translateAlternateColorCodes('&', message)
return ChatColor.translateAlternateColorCodes('&', MiniMessageUtils.parseMiniMessageToLegacy(message))
.replace(NEWLINE_TAG, "\n")
.replace(USERNAME_TAG, sender.getName())
.replace(DISPLAYNAME_TAG, displayName);
@@ -142,7 +143,7 @@ public class Messages {
private String retrieveMessage(MessageKey key, String name) {
String message = messagesFileHandler.getMessage(key.getKey());
return ChatColor.translateAlternateColorCodes('&', message)
return ChatColor.translateAlternateColorCodes('&', MiniMessageUtils.parseMiniMessageToLegacy(message))
.replace(NEWLINE_TAG, "\n")
.replace(USERNAME_TAG, name)
.replace(DISPLAYNAME_TAG, name);
@@ -7,6 +7,7 @@ import fr.xephi.authme.AuthMe;
import fr.xephi.authme.initialization.SettingsDependent;
import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.settings.properties.PluginSettings;
import net.md_5.bungee.api.chat.BaseComponent;
import org.bukkit.BanEntry;
import org.bukkit.BanList;
import org.bukkit.Bukkit;
@@ -247,6 +248,24 @@ public class BukkitService implements SettingsDependent {
return Bukkit.broadcastMessage(message);
}
/**
* Broadcast a message to all players using components.
*
* @param message the message
*/
public void broadcastMessage(BaseComponent message) {
Bukkit.spigot().broadcast(message);
}
/**
* Broadcast messages to all players using components.
*
* @param messages the messages
*/
public void broadcastMessage(BaseComponent... messages) {
Bukkit.spigot().broadcast(messages);
}
/**
* Gets the player with the exact given name, case insensitive.
*
@@ -0,0 +1,33 @@
package fr.xephi.authme.util.message;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import net.md_5.bungee.api.chat.BaseComponent;
public class MiniMessageUtils {
private static final MiniMessage miniMessage = MiniMessage.miniMessage();
/**
* Parse a MiniMessage string into a BungeeCord BaseComponent[].
*
* @param message The message to parse.
* @return The parsed message.
*/
public static BaseComponent[] parseMiniMessage(String message) {
Component component = miniMessage.deserialize(message);
return BungeeComponentSerializer.get().serialize(component);
}
/**
* Parse a MiniMessage string into a legacy string.
*
* @param message The message to parse.
* @return The parsed message.
*/
public static String parseMiniMessageToLegacy(String message) {
Component component = miniMessage.deserialize(message);
return LegacyComponentSerializer.legacyAmpersand().serialize(component);
}
}