Implement Pretty Chat Renderer

This commit is contained in:
2025-09-02 00:13:21 +02:00
parent 5a6a74cd8a
commit 8dc78980be
2 changed files with 34 additions and 0 deletions

View File

@@ -3,6 +3,7 @@ package dev.tatsi.reloadmc.smp;
import dev.tatsi.reloadmc.smp.command.DeathStatsCommand;
import dev.tatsi.reloadmc.smp.listener.PlayerDeathListener;
import dev.tatsi.reloadmc.smp.listener.PlayerJoinLeaveListener;
import dev.tatsi.reloadmc.smp.listener.PrettyChatListener;
import dev.tatsi.reloadmc.smp.manager.DeathCounterManager;
import org.bukkit.plugin.java.JavaPlugin;
@@ -15,6 +16,7 @@ public final class ReloadMC extends JavaPlugin {
deathCounterManager = new DeathCounterManager(this);
// Register event listeners
getServer().getPluginManager().registerEvents(new PrettyChatListener(), this);
getServer().getPluginManager().registerEvents(new PlayerDeathListener(deathCounterManager), this);
getServer().getPluginManager().registerEvents(new PlayerJoinLeaveListener(), this);

View File

@@ -0,0 +1,32 @@
package dev.tatsi.reloadmc.smp.listener;
import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextDecoration;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
public class PrettyChatListener implements Listener {
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onAsyncChat(AsyncChatEvent event) {
event.renderer((source, displayName, message, audience) -> {
// Spielername fett grün
Component prettyName = displayName.color(NamedTextColor.GREEN)
.decorate(TextDecoration.BOLD);
// Separator " » " in grau
Component separator = Component.text(" » ", NamedTextColor.GRAY);
// Nachricht in weiß, ohne Bold
String plain = PlainTextComponentSerializer.plainText().serialize(message);
Component prettyMsg = Component.text(plain, NamedTextColor.WHITE)
.decoration(TextDecoration.BOLD, false);
return prettyName.append(separator).append(prettyMsg);
});
}
}