From 346d93d20974a74c7907e72829c72d5eefb05cd0 Mon Sep 17 00:00:00 2001 From: rrryfoo Date: Sat, 17 Jan 2026 20:35:07 +0800 Subject: [PATCH] (1.3.0) Use plain messages instead of embeds, add PlayerDeath event --- build.gradle | 2 +- src/main/java/moe/sob/Main.java | 6 ++-- .../moe/sob/events/player/PlayerChat.java | 13 +++------ .../moe/sob/events/player/PlayerDeath.java | 29 +++++++++++++++++++ .../moe/sob/events/player/PlayerJoin.java | 15 +++------- .../moe/sob/events/player/PlayerQuit.java | 10 ++----- src/main/resources/plugin.yml | 2 +- 7 files changed, 45 insertions(+), 32 deletions(-) create mode 100644 src/main/java/moe/sob/events/player/PlayerDeath.java diff --git a/build.gradle b/build.gradle index 7e4d0a1..cc9b327 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { } group 'moe.sob' -version '1.2.0' +version '1.3.0' repositories { mavenCentral() diff --git a/src/main/java/moe/sob/Main.java b/src/main/java/moe/sob/Main.java index 3742aeb..bb5e73b 100644 --- a/src/main/java/moe/sob/Main.java +++ b/src/main/java/moe/sob/Main.java @@ -185,16 +185,18 @@ public class Main extends JavaPlugin { public void registerEvents() { PlayerChat playerChat = new PlayerChat(); - PlayerCommandPreprocess playerCommandPreprocess = new PlayerCommandPreprocess(); + //PlayerCommandPreprocess playerCommandPreprocess = new PlayerCommandPreprocess(); //PlayerBedEnter playerBedEnter = new PlayerBedEnter(); //PlayerBedLeave playerBedLeave = new PlayerBedLeave(); // Redundant event WorldLoad worldLoad = new WorldLoad(); WorldUnload worldUnload = new WorldUnload(); + PlayerDeath playerDeath = new PlayerDeath(); getServer().getPluginManager().registerEvents(playerChat, this); - getServer().getPluginManager().registerEvents(playerCommandPreprocess, this); + //getServer().getPluginManager().registerEvents(playerCommandPreprocess, this); //getServer().getPluginManager().registerEvents(playerBedEnter, this); //getServer().getPluginManager().registerEvents(playerBedLeave, this); getServer().getPluginManager().registerEvents(worldLoad, this); getServer().getPluginManager().registerEvents(worldUnload, this); + getServer().getPluginManager().registerEvents(playerDeath, this); } } \ No newline at end of file diff --git a/src/main/java/moe/sob/events/player/PlayerChat.java b/src/main/java/moe/sob/events/player/PlayerChat.java index 123bfc7..072b4e4 100644 --- a/src/main/java/moe/sob/events/player/PlayerChat.java +++ b/src/main/java/moe/sob/events/player/PlayerChat.java @@ -7,9 +7,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerChatEvent; -import java.awt.*; -import java.util.Date; - public class PlayerChat implements Listener { public PlayerChat() { } @@ -17,13 +14,11 @@ public class PlayerChat implements Listener { @EventHandler public void onPlayerChat(AsyncPlayerChatEvent event) { // Bukkit.getConsoleSender().sendMessage("A message was sent by " + event.getPlayer().getName()); // kind of redundant considering the fact that we see chats in the console too - if (!Main.configR.getBoolean("log")) { + if (Main.configR.getBoolean("log")) { DiscordWebhook notify = new DiscordWebhook(ServerUtils.webhook_notify); - DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject().setTitle("A message was sent by " + event.getPlayer().getName()) - .addField("Send date", new Date().toString(), false) - .addField("Message content", event.getMessage(), true) - .setColor(Color.BLUE); - notify.addEmbed(embedObject); + notify.setUsername(event.getPlayer().getName()); + notify.setContent(event.getMessage()); + //notify.setAvatarUrl(String.format("https://minotar.net/avatar/%s.png", event.getPlayer().getName())); try { notify.execute(); } catch (Exception e) { diff --git a/src/main/java/moe/sob/events/player/PlayerDeath.java b/src/main/java/moe/sob/events/player/PlayerDeath.java new file mode 100644 index 0000000..82c5fb4 --- /dev/null +++ b/src/main/java/moe/sob/events/player/PlayerDeath.java @@ -0,0 +1,29 @@ +package moe.sob.events.player; + +import org.bukkit.event.Listener; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.PlayerDeathEvent; + +import moe.sob.DiscordWebhook; +import moe.sob.Main; +import moe.sob.ServerUtils; + +// technically belongs to a /entity folder but it concerns a player anyways +public class PlayerDeath implements Listener { + @EventHandler + public void onPlayerDeath(PlayerDeathEvent event) { + if (Main.configR.getBoolean("log")) { + String playerName = event.getEntity().getName(); + String deathMessage = event.getDeathMessage(); + DiscordWebhook notify = new DiscordWebhook(ServerUtils.webhook_notify); + notify.setContent(deathMessage.replace(playerName, String.format("**%s**", playerName))); + notify.setUsername(playerName); + try { + notify.execute(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/moe/sob/events/player/PlayerJoin.java b/src/main/java/moe/sob/events/player/PlayerJoin.java index fae819f..d53d98d 100644 --- a/src/main/java/moe/sob/events/player/PlayerJoin.java +++ b/src/main/java/moe/sob/events/player/PlayerJoin.java @@ -3,29 +3,22 @@ package moe.sob.events.player; import moe.sob.DiscordWebhook; import moe.sob.Main; import moe.sob.ServerUtils; -import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; -import java.awt.*; -import java.util.Date; - public class PlayerJoin implements Listener { @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { if (Main.configR.getBoolean("log")) { - Main.mainSmall.getLogger().info("A player has joined the server."); Player player = event.getPlayer(); + event.setJoinMessage(Main.getGreetMessage(player)); + DiscordWebhook notify = new DiscordWebhook(ServerUtils.webhook_notify); - DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject().setTitle("A player has joined the server.") - .addField("Triggered at", new Date().toString(), false) - .addField("Player name", player.getName(), true) - .setColor(Color.BLUE); - notify.addEmbed(embedObject); + notify.setUsername(player.getName()); + notify.setContent(String.format("**%s** joined the server.", player.getName())); try { - Bukkit.broadcastMessage(Main.getGreetMessage(player)); notify.execute(); } catch (Exception e) { throw new RuntimeException(e); diff --git a/src/main/java/moe/sob/events/player/PlayerQuit.java b/src/main/java/moe/sob/events/player/PlayerQuit.java index 9ba737b..8fd8622 100644 --- a/src/main/java/moe/sob/events/player/PlayerQuit.java +++ b/src/main/java/moe/sob/events/player/PlayerQuit.java @@ -7,19 +7,13 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerQuitEvent; -import java.awt.*; -import java.util.Date; public class PlayerQuit implements Listener { @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { if (Main.configR.getBoolean("log")) { - Main.mainSmall.getLogger().info("A player has left the server."); - DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject().setTitle("A player has left the server.") - .addField("Date of exit", new Date().toString(), false) - .addField("Player name", event.getPlayer().getName(), true) - .setColor(Color.BLUE); DiscordWebhook notify = new DiscordWebhook(ServerUtils.webhook_notify); - notify.addEmbed(embedObject); + notify.setUsername(event.getPlayer().getName()); + notify.setContent(String.format("**%s** left the server.", event.getPlayer().getName())); try { notify.execute(); } catch (Exception e) { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index d8e4732..1c0b3f8 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: moe.sob.Main -version: 1.2.0 +version: 1.3.0 name: notifyOnStart description: A logging plugin. api-version: 1.19