From d86dd9c0bce54885c0dfed83b6c4dd384a81c4d5 Mon Sep 17 00:00:00 2001 From: destro174 <40720638+destro174@users.noreply.github.com> Date: Wed, 13 Apr 2022 09:46:10 +0200 Subject: [PATCH 1/4] Add back stafflist and serverlist in discord. --- .../java/com/alttd/proxydiscordlink/bot/DiscordCommand.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/DiscordCommand.java b/src/main/java/com/alttd/proxydiscordlink/bot/DiscordCommand.java index 232f4e8..96fdbe9 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/DiscordCommand.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/DiscordCommand.java @@ -23,9 +23,9 @@ public abstract class DiscordCommand { loadCommand(new DiscordLinkCommand(), new DiscordUnlink(), - new DiscordNick() -// new DiscordStaffList(), -// new DiscordServerList(), + new DiscordNick(), + new DiscordStaffList(), + new DiscordServerList() ); } From f2b86e183134de7f59299fd669e5d5b70088a059 Mon Sep 17 00:00:00 2001 From: destro174 <40720638+destro174@users.noreply.github.com> Date: Wed, 13 Apr 2022 10:16:44 +0200 Subject: [PATCH 2/4] Rework how commands are handled --- .../proxydiscordlink/bot/DiscordCommand.java | 1 + .../bot/commands/DiscordBroadCast.java | 5 +++++ .../bot/commands/DiscordLinkCommand.java | 7 +++++++ .../bot/commands/DiscordNick.java | 5 +++++ .../bot/commands/DiscordServerList.java | 5 +++++ .../bot/commands/DiscordStaffList.java | 5 +++++ .../bot/commands/DiscordUnlink.java | 6 ++++++ .../bot/listeners/DiscordMessageListener.java | 19 +++++++++++++++++++ .../proxydiscordlink/config/BotConfig.java | 1 + 9 files changed, 54 insertions(+) diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/DiscordCommand.java b/src/main/java/com/alttd/proxydiscordlink/bot/DiscordCommand.java index 96fdbe9..e26d055 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/DiscordCommand.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/DiscordCommand.java @@ -15,6 +15,7 @@ public abstract class DiscordCommand { public abstract String getPermission();// TODO discord and LP permissions public abstract String getDescription(); public abstract String getSyntax(); + public abstract long getChannel(); public abstract void handleCommand(Message message, String sender, String command, String[] args); diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java index df32c33..80268e1 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java @@ -37,6 +37,11 @@ public class DiscordBroadCast extends DiscordCommand { return "broadcast"; } + @Override + public long getChannel() { + return 0; + } + @Override public void handleCommand(Message message, String sender, String command, String[] args) { //TODO also send this to the bot channel, optional command args for color and decoration? diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java index a0f7964..aa7793d 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java @@ -3,6 +3,8 @@ package com.alttd.proxydiscordlink.bot.commands; import com.alttd.proxydiscordlink.DiscordLink; import com.alttd.proxydiscordlink.bot.DiscordCommand; import com.alttd.proxydiscordlink.bot.objects.DiscordRole; +import com.alttd.proxydiscordlink.config.BotConfig; +import com.alttd.proxydiscordlink.config.Config; import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer; import com.alttd.proxydiscordlink.util.Utilities; import com.velocitypowered.api.proxy.Player; @@ -39,6 +41,11 @@ public class DiscordLinkCommand extends DiscordCommand { return "link "; } + @Override + public long getChannel() { + return BotConfig.LINK_CHANNEL; + } + @Override public void handleCommand(Message message, String sender, String command, String[] args) { Member member = message.getMember(); diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java index fcac061..e2e7352 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java @@ -29,6 +29,11 @@ public class DiscordNick extends DiscordCommand { return "nick "; } + @Override + public long getChannel() { + return 0; + } + @Override public void handleCommand(Message message, String sender, String command, String[] args) { MessageChannel channel = message.getChannel(); diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java index 289c464..64f9ea6 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java @@ -50,6 +50,11 @@ public class DiscordServerList extends DiscordCommand { return "serverlist"; } + @Override + public long getChannel() { + return BotConfig.STAFF_COMMAND_CHANNEL; + } + @Override public void handleCommand(Message message, String sender, String command, String[] args) { String serverName = "Altitude"; diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java index f1166d9..00bda27 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java @@ -44,6 +44,11 @@ public class DiscordStaffList extends DiscordCommand { return "staffList"; } + @Override + public long getChannel() { + return BotConfig.STAFF_COMMAND_CHANNEL; + } + @Override public void handleCommand(Message message, String sender, String command, String[] args) { LuckPerms luckPerms = Utilities.getLuckPerms(); diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordUnlink.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordUnlink.java index 5e1a3ab..2adf311 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordUnlink.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordUnlink.java @@ -1,6 +1,7 @@ package com.alttd.proxydiscordlink.bot.commands; import com.alttd.proxydiscordlink.bot.DiscordCommand; +import com.alttd.proxydiscordlink.config.BotConfig; import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; @@ -26,6 +27,11 @@ public class DiscordUnlink extends DiscordCommand { return "unlink"; } + @Override + public long getChannel() { + return BotConfig.LINK_CHANNEL; + } + @Override public void handleCommand(Message message, String sender, String command, String[] args) { Member member = message.getMember(); diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java b/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java index 4d9a5b9..2cf550b 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java @@ -27,6 +27,7 @@ public class DiscordMessageListener extends ListenerAdapter { return; if (event.isWebhookMessage()) return; + /* if (event.getMessage().getChannel().getIdLong() == BotConfig.COMMAND_CHANNEL) { String content = event.getMessage().getContentRaw(); if (content.startsWith(BotConfig.prefixMap.get(event.getGuild().getIdLong())) && content.length() > 1) { @@ -53,6 +54,24 @@ public class DiscordMessageListener extends ListenerAdapter { .findFirst() .ifPresent(discordCommand -> discordCommand.handleCommand(event.getMessage(), event.getAuthor().getName(), cmd, args)); } + */ + String content = event.getMessage().getContentRaw(); + if (!BotConfig.prefixMap.containsKey(event.getGuild().getIdLong())) return; // early return + if (content.startsWith(BotConfig.prefixMap.get(event.getGuild().getIdLong())) && content.length() > 1) { + String[] split = content.split(" "); + String cmd = split[0].substring(1).toLowerCase(); + String[] args = Arrays.copyOfRange(split, 1, split.length); + for (DiscordCommand command : DiscordCommand.getCommands()) { + if (!command.getCommand().equalsIgnoreCase(cmd)) + continue; + if (!(event.getMessage().getChannel().getIdLong() == command.getChannel())) + continue; + if (command.getPermission() != null) { + // TODO permission check? do we need this? + } + command.handleCommand(event.getMessage(), event.getAuthor().getName(), cmd, args); + } + } } } diff --git a/src/main/java/com/alttd/proxydiscordlink/config/BotConfig.java b/src/main/java/com/alttd/proxydiscordlink/config/BotConfig.java index dc3b4a6..52ad324 100644 --- a/src/main/java/com/alttd/proxydiscordlink/config/BotConfig.java +++ b/src/main/java/com/alttd/proxydiscordlink/config/BotConfig.java @@ -168,6 +168,7 @@ public class BotConfig { public static String BOT_TOKEN = "unconfigured"; public static long COMMAND_CHANNEL = -1; + public static long STAFF_COMMAND_CHANNEL = -1; public static long LINK_CHANNEL = -1; public static long GUILD_ID = -1; public static long EVIDENCE_CHANNEL_ID = -1; From 78cecda5083fb0105f3affb67eb2b76b805d9fb7 Mon Sep 17 00:00:00 2001 From: destro174 <40720638+destro174@users.noreply.github.com> Date: Thu, 14 Apr 2022 10:58:18 +0200 Subject: [PATCH 3/4] Add missing channels to commands. --- .../alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java | 2 +- .../com/alttd/proxydiscordlink/bot/commands/DiscordNick.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java index 80268e1..d1b1add 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java @@ -39,7 +39,7 @@ public class DiscordBroadCast extends DiscordCommand { @Override public long getChannel() { - return 0; + return BotConfig.STAFF_COMMAND_CHANNEL; } @Override diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java index e2e7352..939573a 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java @@ -31,7 +31,7 @@ public class DiscordNick extends DiscordCommand { @Override public long getChannel() { - return 0; + return BotConfig.COMMAND_CHANNEL; } @Override From 59cdd14cb2fb5499fd02af60b5925bcfb13ffeac Mon Sep 17 00:00:00 2001 From: destro174 <40720638+destro174@users.noreply.github.com> Date: Sat, 16 Apr 2022 15:07:11 +0200 Subject: [PATCH 4/4] Add staff command channel to config and update output channels for stafflist and serverlist to getChannel() in command. --- .../proxydiscordlink/bot/commands/DiscordServerList.java | 6 +++--- .../proxydiscordlink/bot/commands/DiscordStaffList.java | 8 ++++---- .../java/com/alttd/proxydiscordlink/config/BotConfig.java | 1 + 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java index 64f9ea6..918f399 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java @@ -96,7 +96,7 @@ public class DiscordServerList extends DiscordCommand { totalCharacters += rankname.length() + currentFieldText.length(); fieldCounter++; if (totalCharacters > 6000 || fieldCounter > 25) { - bot.sendEmbedToDiscord(BotConfig.COMMAND_CHANNEL, embedBuilder, 300); + bot.sendEmbedToDiscord(getChannel(), embedBuilder, 300); embedBuilder.clearFields(); totalCharacters = title.length() + rankname.length() + currentFieldText.length(); fieldCounter = 1; @@ -126,13 +126,13 @@ public class DiscordServerList extends DiscordCommand { totalCharacters = title.length() + rankname.length() + currentFieldText.length(); fieldCounter++; if (totalCharacters > 6000 || fieldCounter > 25) { - bot.sendEmbedToDiscord(BotConfig.COMMAND_CHANNEL, embedBuilder, 300); + bot.sendEmbedToDiscord(getChannel(), embedBuilder, 300); embedBuilder.clearFields(); } embedBuilder.addField(rankname, currentFieldText.toString(), true); } message.delete().queueAfter(300, TimeUnit.SECONDS); - bot.sendEmbedToDiscord(BotConfig.COMMAND_CHANNEL, embedBuilder, 300); + bot.sendEmbedToDiscord(getChannel(), embedBuilder, 300); } } diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java index 00bda27..dac723e 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java @@ -81,7 +81,7 @@ public class DiscordStaffList extends DiscordCommand { totalCharacters += rankname.length() + currentFieldText.length(); fieldCounter++; if (totalCharacters > 6000 || fieldCounter > 25) { - bot.sendEmbedToDiscord(BotConfig.COMMAND_CHANNEL, embedBuilder, -1); + bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1); embedBuilder.clearFields(); totalCharacters = title.length() + rankname.length() + currentFieldText.length(); fieldCounter = 1; @@ -119,7 +119,7 @@ public class DiscordStaffList extends DiscordCommand { totalCharacters = title.length() + rankname.length() + currentFieldText.length(); fieldCounter++; if (totalCharacters > 6000 || fieldCounter > 25) { - bot.sendEmbedToDiscord(BotConfig.COMMAND_CHANNEL, embedBuilder, -1); + bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1); embedBuilder.clearFields(); } embedBuilder.addField(rankname, currentFieldText.toString(), true); @@ -141,12 +141,12 @@ public class DiscordStaffList extends DiscordCommand { totalCharacters = title.length() + rankname.length() + currentFieldText.length(); fieldCounter++; if (totalCharacters > 6000 || fieldCounter > 25) { - bot.sendEmbedToDiscord(BotConfig.COMMAND_CHANNEL, embedBuilder, -1); + bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1); embedBuilder.clearFields(); } embedBuilder.addField(rankname, currentFieldText.toString(), true); } - bot.sendEmbedToDiscord(BotConfig.COMMAND_CHANNEL, embedBuilder, -1); + bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1); } } diff --git a/src/main/java/com/alttd/proxydiscordlink/config/BotConfig.java b/src/main/java/com/alttd/proxydiscordlink/config/BotConfig.java index 52ad324..d5cd9bd 100644 --- a/src/main/java/com/alttd/proxydiscordlink/config/BotConfig.java +++ b/src/main/java/com/alttd/proxydiscordlink/config/BotConfig.java @@ -176,6 +176,7 @@ public class BotConfig { private static void settings() { BOT_TOKEN = getString("settings.token", BOT_TOKEN); + STAFF_COMMAND_CHANNEL = getLong("settings.staff-command-channel", STAFF_COMMAND_CHANNEL); COMMAND_CHANNEL = getLong("settings.command-channel", COMMAND_CHANNEL); LINK_CHANNEL = getLong("settings.link-channel", LINK_CHANNEL); GUILD_ID = getLong("settings.guild-id", GUILD_ID);