package moe.sob.events.player; import moe.sob.DiscordWebhook; import moe.sob.Main; import moe.sob.ServerUtils; 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.sql.Timestamp; import java.util.Date; public class PlayerCommandPreprocess implements Listener { @EventHandler public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { if (Main.configR.getBoolean("log")) { Main.mainSmall.getLogger().info("%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 (Exception 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", "".formatted(new Timestamp(System.currentTimeMillis()).getTime()), true) .addField("Player name", player.getName(), true); ntf.addEmbed(embed); try { ntf.execute(); } catch (Exception e) { throw new RuntimeException(e); } } } } }