Optimized Actionbuilder

This commit is contained in:
TheTrouper
2023-11-09 19:01:11 -06:00
parent 6ddfac8d85
commit 228f8a848f
4 changed files with 58 additions and 156 deletions

View File

@@ -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'
}

View File

@@ -1,7 +1,7 @@
# Plugin
group = 'io.github.thetrouper'
version = 0.2.0
version = 0.2.1
# Minecraft
mc_version = 1.19.4

View File

@@ -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<String> punishCommands = Config.getPunishCommands();
if (denied) event.setCancelled(true);
if (deoped) player.setOp(false);
if (punished) for (String command : punishCommands) {
ServerUtils.sendCommand(command);
}
if (revertGM) player.setGameMode(GameMode.SURVIVAL);
if (item != null) itemLog = FileUtils.createNBTLog(item.getItemMeta().getAsString());
if (loggedCommand != null) commandLog = FileUtils.createCommandLog(loggedCommand);
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 (denied) {
event.setCancelled(true);
}
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";
}
conNotif += "Denied: " + (denied ? "\u2714" : "\u2718") + "\n";
if (deoped) {
player.setOp(false);
}
conNotif += "Deoped: " + (deoped ? "\u2714" : "\u2718") + "\n";
if (punished) {
for (String command : punishCommands) {
ServerUtils.sendCommand(command);
}
}
if (revertGM) {
player.setGameMode(GameMode.SURVIVAL);
}
if (notifyConsole) {
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";
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";
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);
}
}

View File

@@ -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());
}
}
}