add death, join and leave messages

This commit is contained in:
Martin Olischläger 2023-07-17 23:03:08 +02:00
parent b6744363bb
commit f886759b0f

@ -2,21 +2,50 @@ package eu.mhsl.craftattack.spawn.chatMessages.listeners;
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.TextColor;
import org.bukkit.Color;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import java.util.Objects;
public class PlayerChatListener implements Listener {
@EventHandler
public void onPlayerChatEvent(AsyncChatEvent event) {
event.renderer(
(source, sourceDisplayName, message, viewer) -> Component.text("")
.append(sourceDisplayName.color(getPlayerColor(source)))
.append(sourceDisplayName.color(getPlayerColor(source)).clickEvent(ClickEvent.clickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/report " + source.getName())))
.append(Component.text(" > ").color(TextColor.color(Color.GRAY.asRGB())))
.append(message).color(TextColor.color(Color.SILVER.asRGB())));
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
event.joinMessage(
Component.text("")
.append(Component.text("").color(TextColor.color(Color.GREEN.asRGB())))
.append(Component.text(event.getPlayer().getName()).color(getPlayerColor(event.getPlayer())))
);
}
@EventHandler
public void onPlayerLeave(PlayerQuitEvent event) {
event.quitMessage(
Component.text("")
.append(Component.text("").color(TextColor.fromCSSHexString("#8C0012")))
.append(Component.text(event.getPlayer().getName()).color(getPlayerColor(event.getPlayer())))
);
}
@EventHandler
public void onDeath(PlayerDeathEvent event) {
event.deathMessage(Component.text("").append(Objects.requireNonNull(event.deathMessage()).color(TextColor.color(Color.SILVER.asRGB()))));
}
private TextColor getPlayerColor(Player player) {
if (player.hasPermission("chatcolor")) return TextColor.color(Color.AQUA.asRGB());
return TextColor.color(Color.WHITE.asRGB());