diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/DiscordCommand.java b/src/main/java/com/alttd/proxydiscordlink/bot/DiscordCommand.java index 232f4e8..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); @@ -23,9 +24,9 @@ public abstract class DiscordCommand { loadCommand(new DiscordLinkCommand(), new DiscordUnlink(), - new DiscordNick() -// new DiscordStaffList(), -// new DiscordServerList(), + new DiscordNick(), + new DiscordStaffList(), + new DiscordServerList() ); } 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..d1b1add 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 BotConfig.STAFF_COMMAND_CHANNEL; + } + @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..939573a 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 BotConfig.COMMAND_CHANNEL; + } + @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..918f399 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"; @@ -91,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; @@ -121,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 f1166d9..dac723e 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(); @@ -76,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; @@ -114,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); @@ -136,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/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..d5cd9bd 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; @@ -175,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);