Merge remote-tracking branch 'origin/master'

This commit is contained in:
Teriuihi 2022-05-30 20:09:37 +02:00
commit ac314cdcf5
9 changed files with 65 additions and 10 deletions

View File

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

View File

@ -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?

View File

@ -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 <code>";
}
@Override
public long getChannel() {
return BotConfig.LINK_CHANNEL;
}
@Override
public void handleCommand(Message message, String sender, String command, String[] args) {
Member member = message.getMember();

View File

@ -29,6 +29,11 @@ public class DiscordNick extends DiscordCommand {
return "nick <username/nickname>";
}
@Override
public long getChannel() {
return BotConfig.COMMAND_CHANNEL;
}
@Override
public void handleCommand(Message message, String sender, String command, String[] args) {
MessageChannel channel = message.getChannel();

View File

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

View File

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

View File

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

View File

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

View File

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