fix: Parse LuckPerms TAB gradient formats in chat renderer and ensure spacing
This commit is contained in:
@@ -45,7 +45,7 @@ public class GuildChatListener implements Listener {
|
|||||||
/**
|
/**
|
||||||
* Intercepte les messages de chat pour :
|
* Intercepte les messages de chat pour :
|
||||||
* 1. Rediriger les messages commençant par '#' vers le chat privé de guilde.
|
* 1. Rediriger les messages commençant par '#' vers le chat privé de guilde.
|
||||||
* 2. Formater le chat global public dans l'ordre : [Grade] [TagGuilde] Pseudo: Message.
|
* 2. Formater le chat global public dans l'ordre : [Grade] [TagGuilde] Pseudo: Message avec dégradés.
|
||||||
*
|
*
|
||||||
* @param event L'événement AsyncChatEvent de Paper.
|
* @param event L'événement AsyncChatEvent de Paper.
|
||||||
*/
|
*/
|
||||||
@@ -77,12 +77,25 @@ public class GuildChatListener implements Listener {
|
|||||||
event.renderer(new ChatRenderer() {
|
event.renderer(new ChatRenderer() {
|
||||||
@Override
|
@Override
|
||||||
public @NotNull Component render(@NotNull Player source, @NotNull Component sourceDisplayName, @NotNull Component message, @NotNull Audience viewer) {
|
public @NotNull Component render(@NotNull Player source, @NotNull Component sourceDisplayName, @NotNull Component message, @NotNull Audience viewer) {
|
||||||
// A. Préfixe de Grade (LuckPerms via PlaceholderAPI)
|
// A. Préfixe de Grade (LuckPerms via PlaceholderAPI avec support des dégradés TAB & MiniMessage)
|
||||||
Component prefixComponent = Component.empty();
|
Component prefixComponent = Component.empty();
|
||||||
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
|
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
|
||||||
String lpPrefix = me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(source, "%luckperms_prefix%");
|
String lpPrefix = me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(source, "%luckperms_prefix%");
|
||||||
if (lpPrefix != null && !lpPrefix.isEmpty()) {
|
if (lpPrefix != null && !lpPrefix.trim().isEmpty()) {
|
||||||
prefixComponent = LegacyComponentSerializer.legacyAmpersand().deserialize(lpPrefix);
|
// Conversion du format dégradé TAB {#HEX1>}texte{#HEX2<} vers MiniMessage <gradient:#HEX1:#HEX2>texte</gradient>
|
||||||
|
if (lpPrefix.contains("{#") && lpPrefix.contains(">}")) {
|
||||||
|
lpPrefix = lpPrefix.replaceAll("\\{#([0-9a-fA-F]{6})>\\}(.*?)\\{#([0-9a-fA-F]{6})<\\}", "<gradient:#$1:#$3>$2</gradient>");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lpPrefix.contains("<") && lpPrefix.contains(">")) {
|
||||||
|
prefixComponent = MiniMessage.miniMessage().deserialize(lpPrefix);
|
||||||
|
} else {
|
||||||
|
prefixComponent = LegacyComponentSerializer.legacyAmpersand().deserialize(lpPrefix);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!lpPrefix.endsWith(" ")) {
|
||||||
|
prefixComponent = prefixComponent.append(Component.space());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user