move chat to its own chat manager
This commit is contained in:
33
src/main/java/cc/fascinated/chat/ChatManager.java
Normal file
33
src/main/java/cc/fascinated/chat/ChatManager.java
Normal file
@ -0,0 +1,33 @@
|
||||
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();
|
||||
});
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user