1.2.0: Remove unnecessary events, use yml as a config

This commit is contained in:
2025-10-15 21:12:07 +08:00
parent 6b463cf5b3
commit eabb5a69c1
30 changed files with 326 additions and 659 deletions
@@ -0,0 +1,32 @@
package moe.sob.events.player;
import moe.sob.DiscordWebhook;
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.PlayerBedEnterEvent;
import java.awt.*;
import java.io.IOException;
import java.util.Date;
public class PlayerBedEnter implements Listener {
@EventHandler
public void onPlayerBedEnter(PlayerBedEnterEvent event) {
Bukkit.getConsoleSender().sendMessage("Player entered a bed.");
Player player = event.getPlayer();
DiscordWebhook notify = new DiscordWebhook(ServerUtils.webhook_notify);
DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject().setTitle(player.getName() + " is now sleeping...")
.addField("Time", new Date().toString(), false)
.addField("Player name", player.getName(), true)
.setColor(Color.BLUE);
notify.addEmbed(embedObject);
try {
notify.execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
@@ -0,0 +1,32 @@
package moe.sob.events.player;
import moe.sob.DiscordWebhook;
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.PlayerBedLeaveEvent;
import java.awt.*;
import java.io.IOException;
import java.util.Date;
public class PlayerBedLeave implements Listener {
@EventHandler
public void onPlayerBedLeave(PlayerBedLeaveEvent event) {
Bukkit.getConsoleSender().sendMessage("Player left a bed");
Player player = event.getPlayer();
DiscordWebhook notify = new DiscordWebhook(ServerUtils.webhook_notify);
DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject().setTitle(player.getName() + " is no longer sleeping.")
.addField("Time", new Date().toString(), false)
.addField("Player name", player.getName(), true)
.setColor(Color.BLUE);
notify.addEmbed(embedObject);
try {
notify.execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
@@ -0,0 +1,35 @@
package moe.sob.events.player;
import moe.sob.DiscordWebhook;
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.AsyncPlayerChatEvent;
import java.awt.*;
import java.io.IOException;
import java.util.Date;
public class PlayerChat implements Listener {
public PlayerChat() {
}
@EventHandler
public void onPlayerChat(AsyncPlayerChatEvent event) {
Bukkit.getConsoleSender().sendMessage("A message was sent by " + event.getPlayer().getName());
Player player = event.getPlayer();
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);
try {
notify.execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
@@ -0,0 +1,51 @@
package moe.sob.events.player;
import moe.sob.DiscordWebhook;
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.PlayerCommandPreprocessEvent;
import java.awt.*;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.Date;
public class PlayerCommandPreprocess implements Listener {
@EventHandler
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
Bukkit.getConsoleSender().sendMessage("%s used a command".formatted(event.getPlayer().getName()));
Player player = event.getPlayer();
String[] command = event.getMessage().split(" "); // get the command name
DiscordWebhook notify = new DiscordWebhook(ServerUtils.webhook_notify);
DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject().setTitle("Command used")
.addField("Date of usage", new Date().toString(), false)
.addField("Player name", player.getName(), false)
.addField("Command", command[0], true)
.setColor(Color.BLUE);
notify.addEmbed(embedObject);
try {
notify.execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
// temp: log on /stop
if (command[0].equals("/stop")) {
DiscordWebhook ntf = new DiscordWebhook(ServerUtils.webhook_notify);
DiscordWebhook.EmbedObject embed = new DiscordWebhook.EmbedObject()
.setTitle("Server stopped")
.setDescription("The server was stopped using the `/stop` command.")
.addField("Date", "<t:%n:R>".formatted(new Timestamp(System.currentTimeMillis()).getTime()), true)
.addField("Player name", player.getName(), true);
ntf.addEmbed(embed);
try {
ntf.execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
@@ -0,0 +1,35 @@
package moe.sob.events.player;
import moe.sob.DiscordWebhook;
import moe.sob.Main;
import moe.sob.ServerUtils;
import org.bukkit.Bukkit;
import org.bukkit.Server;
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.io.IOException;
import java.util.Date;
public class PlayerJoin implements Listener {
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Bukkit.getConsoleSender().sendMessage("A player has joined the server.");
Player player = event.getPlayer();
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);
try {
Bukkit.broadcastMessage(Main.getGreetMessage(player));
notify.execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
@@ -0,0 +1,31 @@
package moe.sob.events.player;
import moe.sob.DiscordWebhook;
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.PlayerQuitEvent;
import java.awt.*;
import java.io.IOException;
import java.util.Date;
public class PlayerQuit implements Listener {
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
Bukkit.getConsoleSender().sendMessage("A player has left the server.");
Player player = event.getPlayer();
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);
try {
notify.execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
@@ -0,0 +1,52 @@
package moe.sob.events.server;
import moe.sob.DiscordWebhook;
import moe.sob.Main;
import moe.sob.ServerUtils;
import moe.sob.Utils;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.server.ServerLoadEvent;
import java.awt.*;
import java.io.IOException;
import java.util.Date;
import moe.sob.DiscordWebhook.EmbedObject;
import static moe.sob.ServerUtils.address;
public class ServerLoad implements Listener {
public static int timesCalled = 0;
@EventHandler
public void onServerStart(ServerLoadEvent event) {
Bukkit.getConsoleSender().sendMessage("Triggered ServerLoad event.");
if (timesCalled < 1) {
Bukkit.getConsoleSender().sendMessage("Checking if server is up on " + ServerUtils.address + " with port " + Bukkit.getServer().getPort() + "...");
if (ServerUtils.serverIsUp(address, Bukkit.getServer().getPort())) {
// System.out.println(ServerUtils.webhook_messages); // What the fuck!!
// System.out.println(ServerUtils.webhook_notify);
DiscordWebhook notify = new DiscordWebhook(Main.getNotifyWebhook());
EmbedObject embedObject = new EmbedObject().setTitle("Server started up successfully").setDescription(String.format("The server at %s:%d has started successfully.", Utils.getServerHostPublicIP(), Bukkit.getServer().getPort()))
.addField("Date of start", new Date().toString(), false)
.setColor(Color.GREEN);
if (!Main.configR.getBoolean("log"))
embedObject.addField("Extra notes", "The server will not try to log any events.", false);
notify.addEmbed(embedObject);
try {
notify.execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
timesCalled++;
} else {
Bukkit.getConsoleSender().sendMessage("OnServerStart was called, but the server is currently offline... This may trigger more than once.");
}
} else {
Bukkit.getConsoleSender().sendMessage("(debug) server start event was called more than 1 time");
}
}
}
@@ -0,0 +1,30 @@
package moe.sob.events.world;
import moe.sob.DiscordWebhook;
import moe.sob.ServerUtils;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldLoadEvent;
import java.awt.*;
import java.io.IOException;
import java.util.Date;
public class WorldLoad implements Listener {
@EventHandler
public void onWorldLoad(WorldLoadEvent event) {
Bukkit.getConsoleSender().sendMessage("Triggered WorldLoad event.");
DiscordWebhook notify = new DiscordWebhook(ServerUtils.webhook_notify);
DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject().setTitle("World loaded")
.addField("Time", new Date().toString(), false)
.addField("World name", event.getWorld().getName(), true)
.setColor(Color.BLUE);
notify.addEmbed(embedObject);
try {
notify.execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
@@ -0,0 +1,30 @@
package moe.sob.events.world;
import moe.sob.DiscordWebhook;
import moe.sob.ServerUtils;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldUnloadEvent;
import java.awt.*;
import java.io.IOException;
import java.util.Date;
public class WorldUnload implements Listener {
@EventHandler
public void onWorldUnload(WorldUnloadEvent event) {
Bukkit.getConsoleSender().sendMessage("Triggered WorldUnload event.");
DiscordWebhook notify = new DiscordWebhook(ServerUtils.webhook_notify);
DiscordWebhook.EmbedObject embedObject = new DiscordWebhook.EmbedObject().setTitle("WorldUnload").setDescription("A world was unloaded...")
.addField("Time", new Date().toString(), false)
.addField("World name", event.getWorld().getName(), true)
.setColor(Color.BLUE);
notify.addEmbed(embedObject);
try {
notify.execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}