From a01a3ba55eda3d1e0461ca34bd708c8ee03e6f6a Mon Sep 17 00:00:00 2001 From: Thatsaphorn Atchariyaphap Date: Mon, 1 Sep 2025 23:27:39 +0200 Subject: [PATCH] Join-Leave message --- .../java/dev/tatsi/reloadmc/smp/ReloadMC.java | 2 + .../smp/listener/PlayerJoinLeaveListener.java | 48 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/main/java/dev/tatsi/reloadmc/smp/listener/PlayerJoinLeaveListener.java diff --git a/src/main/java/dev/tatsi/reloadmc/smp/ReloadMC.java b/src/main/java/dev/tatsi/reloadmc/smp/ReloadMC.java index 2601dba..8cf239c 100644 --- a/src/main/java/dev/tatsi/reloadmc/smp/ReloadMC.java +++ b/src/main/java/dev/tatsi/reloadmc/smp/ReloadMC.java @@ -2,6 +2,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.manager.DeathCounterManager; import org.bukkit.plugin.java.JavaPlugin; @@ -15,6 +16,7 @@ public final class ReloadMC extends JavaPlugin { // Register event listeners getServer().getPluginManager().registerEvents(new PlayerDeathListener(deathCounterManager), this); + getServer().getPluginManager().registerEvents(new PlayerJoinLeaveListener(), this); // Register commands getCommand("deathstats").setExecutor(new DeathStatsCommand(deathCounterManager)); diff --git a/src/main/java/dev/tatsi/reloadmc/smp/listener/PlayerJoinLeaveListener.java b/src/main/java/dev/tatsi/reloadmc/smp/listener/PlayerJoinLeaveListener.java new file mode 100644 index 0000000..54bebfe --- /dev/null +++ b/src/main/java/dev/tatsi/reloadmc/smp/listener/PlayerJoinLeaveListener.java @@ -0,0 +1,48 @@ +package dev.tatsi.reloadmc.smp.listener; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.format.TextDecoration; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +public class PlayerJoinLeaveListener implements Listener { + + private Component joinPrefix() { + return Component.text("[", NamedTextColor.GRAY) + .append(Component.text("+", NamedTextColor.GREEN)) + .append(Component.text("]", NamedTextColor.GRAY)) + .decorate(TextDecoration.BOLD) + .append(Component.text(" ")); + } + + private Component quitPrefix() { + return Component.text("[", NamedTextColor.GRAY) + .append(Component.text("-", NamedTextColor.RED)) + .append(Component.text("]", NamedTextColor.GRAY)) + .decorate(TextDecoration.BOLD) + .append(Component.text(" ")); + } + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + String name = event.getPlayer().getName(); + + Component message = joinPrefix() + .append(Component.text(name, NamedTextColor.GREEN)); + + event.joinMessage(message); + } + + @EventHandler + public void onPlayerQuit(PlayerQuitEvent event) { + String name = event.getPlayer().getName(); + + Component message = quitPrefix() + .append(Component.text(name, NamedTextColor.RED)); + + event.quitMessage(message); + } +}