package cc.fascinated.chat; import cc.fascinated.account.Account; import cc.fascinated.account.AccountManager; import cc.fascinated.utils.Manager; import io.papermc.paper.event.player.AsyncChatEvent; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; public class ChatManager extends Manager { @EventHandler public void onChat(AsyncChatEvent event) { Player player = event.getPlayer(); Account account = AccountManager.getAccount(player.getUniqueId()); NamedTextColor color = account.getPlayerColorProfile().getColor(); event.renderer((source, sourceDisplayName, message, viewer) -> { return Component.text() .append(Component.text("<")) .append(player.displayName().color(color)) .append(Component.text(">")) .append(Component.space()) .append(message) .hoverEvent(Component.text("Click to message " + player.getName() + ".").hoverEvent()) .clickEvent(ClickEvent.clickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/msg " + player.getName() + " ")) .asComponent(); }); } }