34 lines
1.3 KiB
Java
34 lines
1.3 KiB
Java
|
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();
|
||
|
});
|
||
|
}
|
||
|
}
|