From 228f8a848f159b084bd77a220aaf773b2b48f603 Mon Sep 17 00:00:00 2001 From: TheTrouper <93684527+thetrouper@users.noreply.github.com> Date: Thu, 9 Nov 2023 19:01:11 -0600 Subject: [PATCH] Optimized Actionbuilder --- build.gradle | 2 +- gradle.properties | 2 +- .../thetrouper/sentinel/data/Action.java | 166 ++++++------------ .../sentinel/discord/WebhookSender.java | 44 ----- 4 files changed, 58 insertions(+), 156 deletions(-) delete mode 100644 src/main/java/io/github/thetrouper/sentinel/discord/WebhookSender.java diff --git a/build.gradle b/build.gradle index f5429fa..662ca37 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ repositories { } dependencies { - compileOnly "org.spigotmc:spigot-api:1.19.4-R0.1-SNAPSHOT" + compileOnly "org.spigotmc:spigot-api:1.20.2-R0.1-SNAPSHOT" implementation 'com.google.code.gson:gson:2.10.1' } diff --git a/gradle.properties b/gradle.properties index b67e162..2b5d79b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # Plugin group = 'io.github.thetrouper' -version = 0.2.0 +version = 0.2.1 # Minecraft mc_version = 1.19.4 diff --git a/src/main/java/io/github/thetrouper/sentinel/data/Action.java b/src/main/java/io/github/thetrouper/sentinel/data/Action.java index 84c1236..15bb97f 100644 --- a/src/main/java/io/github/thetrouper/sentinel/data/Action.java +++ b/src/main/java/io/github/thetrouper/sentinel/data/Action.java @@ -123,97 +123,59 @@ public class Action { return this; } public Action execute() { - String actionTop = "Generic Anti-Action has been triggered"; - String actionTitle = "A generic action has been detected!"; - String itemLog = ""; - String commandLog = ""; - actionTop = action.getMessageTop(); - actionTitle = action.getMessageTitle(); + String actionTop = action.getMessageTop(); + String actionTitle = action.getMessageTitle(); + String itemLog = (item != null) ? FileUtils.createNBTLog(item.getItemMeta().getAsString()) : ""; + String commandLog = (loggedCommand != null) ? FileUtils.createCommandLog(loggedCommand) : ""; + final List punishCommands = Config.getPunishCommands(); - if (denied) event.setCancelled(true); - if (deoped) player.setOp(false); - if (punished) for (String command : punishCommands) { - ServerUtils.sendCommand(command); + + if (denied) { + event.setCancelled(true); } - if (revertGM) player.setGameMode(GameMode.SURVIVAL); - if (item != null) itemLog = FileUtils.createNBTLog(item.getItemMeta().getAsString()); - if (loggedCommand != null) commandLog = FileUtils.createCommandLog(loggedCommand); + + if (deoped) { + player.setOp(false); + } + + if (punished) { + for (String command : punishCommands) { + ServerUtils.sendCommand(command); + } + } + + if (revertGM) { + player.setGameMode(GameMode.SURVIVAL); + } + if (notifyConsole) { - String conNotif = "]=- Sentinel -=["; - conNotif += " " + actionTop; - conNotif += "\n" + actionTitle + "\n"; - if (player != null) { - conNotif += "Player: " + player.getName() + "\n"; - } - if (command != null) { - if (loggedCommand != null) { - if (loggedCommand.length() > 128) { - conNotif += "Command: Too long to show here!" + "\n"; - conNotif += " | Saved to file: " + commandLog + "\n"; - } else { - conNotif += "Command: " + command + "\n"; - } - } else { - conNotif += "Command: " + command + "\n"; - } - } - - if (item != null) { - conNotif += "Item: /Sentinel/LoggedNBT/" + itemLog + "\n"; - } - if (block != null) { - Location loc = block.getLocation(); - conNotif += "Block: " + block.getType().toString().toLowerCase().replace("_", " ") + "\n"; - conNotif += "Location: " + loc.getX() + " " + loc.getY() + " " + loc.getZ() + "\n"; - } + String conNotif = "]=- Sentinel -=[\n"; + conNotif += actionTop + "\n"; + conNotif += (player != null) ? "Player: " + player.getName() + "\n" : ""; + conNotif += (command != null) ? ((loggedCommand != null && loggedCommand.length() > 128) ? "Command: Too long to show here!\n | Saved to file: " + commandLog + "\n" : "Command: " + command + "\n") : ""; + conNotif += (item != null) ? "Item: /Sentinel/LoggedNBT/" + itemLog + "\n" : ""; + conNotif += (block != null) ? "Block: " + block.getType().toString().toLowerCase().replace("_", " ") + "\nLocation: " + block.getLocation().getX() + " " + block.getLocation().getY() + " " + block.getLocation().getZ() + "\n" : ""; conNotif += "Denied: " + (denied ? "\u2714" : "\u2718") + "\n"; - if (deoped) { - player.setOp(false); - } conNotif += "Deoped: " + (deoped ? "\u2714" : "\u2718") + "\n"; - conNotif += "Punished: " + (punished ? "\u2714" : "\u2718") + "\n"; - if (revertGM) conNotif += "RevertGM: " + "\u2714" + "\n"; + conNotif += (revertGM) ? "RevertGM: \u2714\n" : ""; conNotif += "Logged: " + (notifyDiscord ? "\u2714" : "\u2718"); Sentinel.log.info(conNotif); } + if (notifyTrusted) { TextComponent notification = new TextComponent(); notification.setText(Text.prefix(" " + actionTop)); - String body = "\u00a78]==-- \u00a7d\u00a7lSentinel\u00a78--==[ "; - body += "\n" + actionTitle + "\n"; - if (player != null) { - body += "\u00a7bPlayer: \u00a77" + player.getName() + "\n"; - } - if (command != null) { - if (loggedCommand != null) { - if (loggedCommand.length() > 64) { - body += "\u00a7bCommand: \u00a7cToo long to show here!" + "\n"; - body += " \u00a78| \u00a7bSaved to file: \u00a7f" + commandLog + "\n"; - } else { - body += "\u00a7bCommand: \u00a7f" + command + "\n"; - } - } else { - body += "\u00a7bCommand: \u00a7f" + command + "\n"; - } - } - if (item != null) { - body += "\u00a7bItem: \u00a7f/Sentinel/LoggedNBT/" + itemLog + "\n"; - } - if (block != null) { - Location loc = block.getLocation(); - body += "\u00a7bBlock: \u00a7f" + block.getType().toString().toLowerCase().replace("_", " ") + "\n"; - body += "\u00a7bLocation: \u00a7f" + loc.getX() + " " + loc.getY() + " " + loc.getZ() + "\n"; - } - body += "\u00a7bDenied: \u00a7f" + (denied ? "\u00a7a\u2714" : "\u00a7c\u2718") + "\n"; - if (deoped) { - player.setOp(false); - } - body += "\u00a7bDeoped: \u00a7f" + (deoped ? "\u00a7a\u2714" : "\u00a7c\u2718") + "\n"; - - body += "\u00a7bPunished: \u00a7f" + (punished ? "\u00a7a\u2714" : "\u00a7c\u2718") + "\n"; - if (revertGM) body += "\u00a7bRevertGM: \u00a7f" + "\u00a7a\u2714" + "\n"; - body += "\u00a7bLogged: \u00a7f" + (notifyDiscord ? "\u00a7a\u2714" : "\u00a7c\u2718"); + String body = "]=- Sentinel -=[\n" + actionTitle + "\n"; + body += (player != null) ? "Player: " + player.getName() + "\n" : ""; + body += (command != null) ? ((loggedCommand != null && loggedCommand.length() > 64) ? "Command: Too long to show here!\n | Saved to file: " + commandLog + "\n" : "Command: " + command + "\n") : ""; + body += (item != null) ? "Item: /Sentinel/LoggedNBT/" + itemLog + "\n" : ""; + body += (block != null) ? "Block: " + block.getType().toString().toLowerCase().replace("_", " ") + "\nLocation: " + block.getLocation().getX() + " " + block.getLocation().getY() + " " + block.getLocation().getZ() + "\n" : ""; + body += "Denied: " + (denied ? "\u00a7a\u2714" : "\u00a7c\u2718") + "\n"; + body += "Deoped: " + (deoped ? "\u00a7a\u2714" : "\u00a7c\u2718") + "\n"; + body += "Punished: " + (punished ? "\u00a7a\u2714" : "\u00a7c\u2718") + "\n"; + body += (revertGM) ? "RevertGM: \u00a7a\u2714\n" : ""; + body += "Logged: " + (notifyDiscord ? "\u00a7a\u2714" : "\u00a7c\u2718"); notification.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new net.md_5.bungee.api.chat.hover.content.Text(body))); ServerUtils.forEachPlayer(trusted -> { if (Sentinel.isTrusted(trusted)) { @@ -221,53 +183,37 @@ public class Action { } }); } + if (notifyDiscord) { DiscordWebhook webhook = new DiscordWebhook(Config.webhook); webhook.setAvatarUrl("https://r2.e-z.host/d440b58a-ba90-4839-8df6-8bba298cf817/3lwit5nt.png"); webhook.setUsername("Sentinel Anti-Nuke | Logs"); - String description = ""; - if (player != null) description += Emojis.rightSort + " **Player:** " + player.getName() + " " + Emojis.member + "\\n"; - if (command != null) { - if (loggedCommand != null) { - if (loggedCommand.length() > 128) { - description += Emojis.rightSort + " **Command:** Too long to show here!" + " " + Emojis.nuke + "\\n"; - description += Emojis.space + Emojis.rightDoubleArrow + " | Saved to file: " + commandLog + "\n"; - } else { - description += Emojis.rightSort + " **Command:** " + command + " " + Emojis.nuke + "\\n"; - } - } else { - description += Emojis.rightSort + " **Command:** " + command + " " + Emojis.nuke + "\\n"; - } - - } - if (item != null) description += Emojis.rightSort + " **Item:** " + item.getType().toString().toLowerCase() + " " + Emojis.nuke + "\\n" + - Emojis.space + Emojis.rightDoubleArrow + "**NBT:** Uploaded to /Sentinel/LoggedNBT/" + itemLog; - if (block != null) { - description += Emojis.rightSort + " **Block:** " + block.getType().toString().toLowerCase() + " " + Emojis.nuke + "\\n" + - Emojis.space + Emojis.rightDoubleArrow + " **Location:** X: " + block.getX() + " Y: " + block.getY() + " Z: " + block.getZ() + "\\n"; - } - String actions = ""; - actions += Emojis.rightSort + " **Denied:** " + (denied ? Emojis.success : Emojis.failure) + "\\n"; - actions += Emojis.rightSort + " **De-oped:** " + (deoped ? Emojis.success : Emojis.failure) + "\\n"; - actions += Emojis.rightSort + " **Punished:** " + (punished ? Emojis.success : Emojis.failure) + "\\n"; - if (revertGM) actions += Emojis.rightSort + " **GM Reverted:** " + Emojis.success + "\\n"; - actions += Emojis.rightSort + " **Logged:** " + Emojis.success; + String description = (player != null) ? Emojis.rightSort + " **Player:** " + player.getName() + " " + Emojis.member + "\n" : ""; + description += (command != null) ? ((loggedCommand != null && loggedCommand.length() > 128) ? Emojis.rightSort + " **Command:** Too long to show here! " + Emojis.nuke + "\n | Saved to file: " + commandLog + "\n" : Emojis.rightSort + " **Command:** " + command + " " + Emojis.nuke + "\n") : ""; + description += (item != null) ? Emojis.rightSort + " **Item:** " + item.getType().toString().toLowerCase() + " " + Emojis.nuke + "\n" + Emojis.space + Emojis.rightDoubleArrow + "**NBT:** Uploaded to /Sentinel/LoggedNBT/" + itemLog : ""; + description += (block != null) ? Emojis.rightSort + " **Block:** " + block.getType().toString().toLowerCase() + " " + Emojis.nuke + "\n" + Emojis.space + Emojis.rightDoubleArrow + " **Location:** X: " + block.getX() + " Y: " + block.getY() + " Z: " + block.getZ() + "\n" : ""; + String actions = Emojis.rightSort + " **Denied:** " + (denied ? Emojis.success : Emojis.failure) + "\n"; + actions += Emojis.rightSort + " **De-oped:** " + (deoped ? Emojis.success : Emojis.failure) + "\n"; + actions += Emojis.rightSort + " **Punished:** " + (punished ? Emojis.success : Emojis.failure) + "\n"; + actions += (revertGM) ? Emojis.rightSort + " **GM Reverted:** " + Emojis.success + "\n" : ""; + actions += Emojis.rightSort + " **Logged:** " + Emojis.success; DiscordWebhook.EmbedObject embed = new DiscordWebhook.EmbedObject() - .setAuthor(actionTop,"","") + .setAuthor(actionTop, "", "") .setTitle(actionTitle) .setDescription(description) - .addField("Actions:",actions, false) + .addField("Actions:", actions, false) .setThumbnail("https://crafatar.com/avatars/" + player.getUniqueId() + "?size=64&&overlay") .setColor(action.getEmbedColor()); webhook.addEmbed(embed); try { - ServerUtils.sendDebugMessage("ActionBuilder: Executing webhook..."); + ServerUtils.sendDebugMessage("Executing webhook..."); webhook.execute(); } catch (IOException e) { - ServerUtils.sendDebugMessage("ActionBuilder: Epic webhook failure!!!"); + ServerUtils.sendDebugMessage(Text.prefix("Epic webhook failure!!!")); Sentinel.log.info(e.toString()); } } + return new Action(event, action, player, command, loggedCommand, item, block, denied, deoped, punished, revertGM, notifyDiscord, notifyTrusted, notifyConsole); } } diff --git a/src/main/java/io/github/thetrouper/sentinel/discord/WebhookSender.java b/src/main/java/io/github/thetrouper/sentinel/discord/WebhookSender.java deleted file mode 100644 index 7e76eb2..0000000 --- a/src/main/java/io/github/thetrouper/sentinel/discord/WebhookSender.java +++ /dev/null @@ -1,44 +0,0 @@ -package io.github.thetrouper.sentinel.discord; - -import io.github.thetrouper.sentinel.Sentinel; -import io.github.thetrouper.sentinel.data.Config; -import io.github.thetrouper.sentinel.data.Emojis; -import io.github.thetrouper.sentinel.server.functions.ProfanityFilter; -import io.github.thetrouper.sentinel.server.util.ServerUtils; -import io.github.thetrouper.sentinel.server.util.Text; -import org.bukkit.entity.Player; - -import java.awt.Color; -import java.io.IOException; - -public class WebhookSender { - - public static void sendSpamLog(Player player, String message1, String message2, int finalHeat, boolean chatCleared) { - ServerUtils.sendDebugMessage("Creating spamLog Webhook..."); - DiscordWebhook webhook = new DiscordWebhook(Config.webhook); - webhook.setAvatarUrl("https://r2.e-z.host/d440b58a-ba90-4839-8df6-8bba298cf817/3lwit5nt.png"); - webhook.setUsername("Sentinel Anti-Nuke | Logs"); - DiscordWebhook.EmbedObject embed = new DiscordWebhook.EmbedObject() - .setAuthor("Anti-Spam Punishment","","") - .setTitle("Punish Report:") - .setDescription( - Emojis.rightSort + "Player: " + player.getName() + " " + Emojis.target + "\\n" + - Emojis.space + Emojis.arrowRight + "Heat: `" + finalHeat + "/" + Config.punishHeat + "`\\n" + - Emojis.space + Emojis.arrowRight + "UUID: `" + player.getUniqueId() + "`\\n" + - Emojis.rightSort + "Executed: " + Config.spamPunishCommand + " " + Emojis.mute + "\\n" + - Emojis.space + Emojis.arrowRight + "Chat Cleared: " + (chatCleared ? Emojis.success : Emojis.failure) + "\\n" - ) - .addField("Previous Message", "||" + message1 + "|| " + Emojis.activity, false) - .addField("Current Message", "||" + message2 + "|| " + Emojis.alarm, false) - .setColor(Color.RED) - .setThumbnail("https://crafatar.com/avatars/" + player.getUniqueId() + "?size=64&&overlay"); - webhook.addEmbed(embed); - try { - ServerUtils.sendDebugMessage("Executing webhook..."); - webhook.execute(); - } catch (IOException e) { - ServerUtils.sendDebugMessage("Epic webhook failure!!!"); - Sentinel.log.info(e.toString()); - } - } -}