package xyz.etztech.minealert.commands; import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.ComponentBuilder; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import xyz.etztech.embed.Author; import xyz.etztech.embed.Embed; import xyz.etztech.embed.Webhook; import xyz.etztech.minealert.Color; import xyz.etztech.minealert.Lang; import xyz.etztech.minealert.MineAlert; public class MainCommand implements CommandExecutor { MineAlert plugin; public MainCommand(MineAlert plugin) { this.plugin = plugin; this.plugin.getCommand("minealert").setExecutor(this); } @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) { if (!commandSender.hasPermission("minealert.admin")) { Lang.NO_PERMISSION.sms(commandSender); return true; } if (args.length == 0) { help(commandSender); } else { switch (args[0]) { case "help": help(commandSender); break; case "reload": reload(commandSender); break; case "webhook": webhook(commandSender); break; default: Lang.UNKNOWN_COMMAND.sms(commandSender); break; } } return true; } private void help(CommandSender commandSender) { String version = Bukkit.getPluginManager().getPlugin("MineAlert").getDescription().getVersion(); BaseComponent[] message = new ComponentBuilder() .append(String.format("===== MineAlert v%s =====", version)).color(Color.PRIMARY.getChatColor()) .append("\n/minealert help - Show this message").color(Color.INFO.getChatColor()) .append("\n/minealert reload - Reload the config").color(Color.INFO.getChatColor()) .append("\n/minealert webhook - Test the global webhook").color(Color.INFO.getChatColor()) .create(); commandSender.spigot().sendMessage(message); } private void reload(CommandSender commandSender) { this.plugin.reloadConfig(); Lang.PLUGIN_RELOADED.sms(commandSender); } private void webhook(CommandSender commandSender) { String webhook = this.plugin.getConfig().getString("webhook", ""); if ("".equals(webhook)) { Color.ERROR.sms(commandSender, "Global webhook cannot be blank to test."); return; } this.plugin.getServer().getScheduler().runTaskAsynchronously(this.plugin, () -> { try { MineAlert.sendWebhook(webhook, embed()); Color.INFO.sms(commandSender, "Webhook sent!"); } catch (Exception e) { Lang.WEBHOOK_FAILED.sms(commandSender); } }); } private String embed() { Embed embed = new Embed() .color(Color.PRIMARY.getInt()) .description("Test Message") .author(new Author("Console", "", "https://minotar.net/helm/Notch/100.png", "")); return new Webhook("", embed).toString(); } }