change package of core command classes so it makes more sense and rename getType() to getCategory() in command interface

This commit is contained in:
anthorob committed 2024-12-17 12:15:24 -05:00
1 parent 3314ef6bea
commit 8479f719ab
36 files changed
+314 -157

No files matched your search

@@ -69,7 +69,7 @@ public class NetNeutrality {
private void startup() { private void startup() {
// DatabaseMigration.migrate(); // DatabaseMigration.migrate();
SessionManager.getSessionFactory(); SessionManager.getSessionFactory();
CommandManager.init(jda); CommandManager.init();
MusicManager.initPlayerManager(); MusicManager.initPlayerManager();
TaskManager.getInstance().init(); TaskManager.getInstance().init();
initJDA(); initJDA();
@@ -1,31 +0,0 @@
package me.bobert.netneutrality.command;
/*
* Copyright (c) anthorob
*
* https://discord.gg/qUa6zNFZsd
*/
public enum CommandType {
MUSIC("Music", 1), ADMINISTRATION("Administration", 0), UTILITY("Utility", 5), CRYPTO("Crypto", 6), UNLISTED("", -1);
private final String description;
private final int id;
CommandType(String description, int id) {
this.description = description;
this.id = id;
}
public String getDescription() {
return description;
}
public int getId() {
return id;
}
@Override
public String toString() {
return description;
}
}
@@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.admin;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractAdminCommand; import me.bobert.netneutrality.core.command.AbstractAdminCommand;
import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.db.entities.OBlacklist; import me.bobert.netneutrality.db.entities.OBlacklist;
import me.bobert.netneutrality.db.repository.BlacklistRepository; import me.bobert.netneutrality.db.repository.BlacklistRepository;
@@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.admin;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractAdminCommand; import me.bobert.netneutrality.core.command.AbstractAdminCommand;
import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.core.tasks.TaskManager; import me.bobert.netneutrality.core.tasks.TaskManager;
import me.bobert.netneutrality.tasks.emoji.EmojiReactionRoleTask; import me.bobert.netneutrality.tasks.emoji.EmojiReactionRoleTask;
@@ -5,13 +5,9 @@ package me.bobert.netneutrality.command.basic;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractCommand; import me.bobert.netneutrality.core.command.*;
import me.bobert.netneutrality.core.command.options.CommandOption; import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.command.CommandType; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.command.CommandContainer;
import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.CommandManager;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.core.tasks.BuiltInTask; import me.bobert.netneutrality.core.tasks.BuiltInTask;
import me.bobert.netneutrality.tasks.help.BotInfo; import me.bobert.netneutrality.tasks.help.BotInfo;
@@ -57,8 +53,8 @@ public class HelpCommand extends AbstractCommand {
} }
@Override @Override
public CommandType getType() { public CommandCategory getCategory() {
return CommandType.UTILITY; return CommandCategory.UTILITY;
} }
@Override @Override
@@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.basic;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractCommand; import me.bobert.netneutrality.core.command.AbstractCommand;
import me.bobert.netneutrality.command.CommandType; import me.bobert.netneutrality.core.command.CommandCategory;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
public class PingCommand extends AbstractCommand { public class PingCommand extends AbstractCommand {
@@ -44,8 +44,8 @@ public class PingCommand extends AbstractCommand {
} }
@Override @Override
public CommandType getType() { public CommandCategory getCategory() {
return CommandType.UTILITY; return CommandCategory.UTILITY;
} }
@Override @Override
@@ -5,11 +5,11 @@ package me.bobert.netneutrality.command.bot;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractAdminCommand;
import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.GuildManager; import me.bobert.netneutrality.core.GuildManager;
import me.bobert.netneutrality.core.command.AbstractAdminCommand;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.db.GSettings; import me.bobert.netneutrality.db.GSettings;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
@@ -5,16 +5,15 @@ package me.bobert.netneutrality.command.crypto;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractCommand;
import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.command.CommandType;
import me.bobert.netneutrality.core.LogHandler; import me.bobert.netneutrality.core.LogHandler;
import me.bobert.netneutrality.core.command.AbstractCommand;
import me.bobert.netneutrality.core.command.CommandCategory;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.http.WebModule; import me.bobert.netneutrality.http.WebModule;
import net.dv8tion.jda.api.interactions.commands.OptionType; import net.dv8tion.jda.api.interactions.commands.OptionType;
import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.text.NumberFormat; import java.text.NumberFormat;
@@ -57,8 +56,8 @@ public class CryptoPriceCommand extends AbstractCommand {
} }
@Override @Override
public CommandType getType() { public CommandCategory getCategory() {
return CommandType.UTILITY; return CommandCategory.UTILITY;
} }
@Override @Override
@@ -5,11 +5,11 @@ package me.bobert.netneutrality.command.git;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractCommand;
import me.bobert.netneutrality.command.CommandType;
import me.bobert.netneutrality.context.SlashCommandContext; import me.bobert.netneutrality.context.SlashCommandContext;
import me.bobert.netneutrality.core.command.AbstractCommand;
import me.bobert.netneutrality.core.command.CommandCategory;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.core.tasks.TaskManager; import me.bobert.netneutrality.core.tasks.TaskManager;
import me.bobert.netneutrality.tasks.git.ReportIssueTask; import me.bobert.netneutrality.tasks.git.ReportIssueTask;
@@ -52,8 +52,8 @@ public class ReportIssueCommand extends AbstractCommand {
} }
@Override @Override
public CommandType getType() { public CommandCategory getCategory() {
return CommandType.UTILITY; return CommandCategory.UTILITY;
} }
@Override @Override
@@ -6,10 +6,10 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.command.CommandType; import me.bobert.netneutrality.core.command.CommandCategory;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
@@ -36,8 +36,8 @@ public class BitconnectCommand extends AbstractMusicCommand {
} }
@Override @Override
public CommandType getType() { public CommandCategory getCategory() {
return CommandType.UNLISTED; return CommandCategory.UNLISTED;
} }
@Override @Override
@@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MusicUtils; import me.bobert.netneutrality.utils.MusicUtils;
@@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MessageFunction; import me.bobert.netneutrality.utils.MessageFunction;
@@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.utils.MusicUtils; import me.bobert.netneutrality.utils.MusicUtils;
@@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MusicUtils; import me.bobert.netneutrality.utils.MusicUtils;
@@ -6,10 +6,10 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import net.dv8tion.jda.api.interactions.commands.OptionType; import net.dv8tion.jda.api.interactions.commands.OptionType;
@@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MessageFunction; import me.bobert.netneutrality.utils.MessageFunction;
@@ -4,9 +4,9 @@ package me.bobert.netneutrality.command.music;/*
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MusicUtils; import me.bobert.netneutrality.utils.MusicUtils;
@@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MusicUtils; import me.bobert.netneutrality.utils.MusicUtils;
@@ -6,10 +6,10 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MusicUtils; import me.bobert.netneutrality.utils.MusicUtils;
@@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MusicUtils; import me.bobert.netneutrality.utils.MusicUtils;
@@ -5,9 +5,9 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MessageFunction; import me.bobert.netneutrality.utils.MessageFunction;
@@ -6,10 +6,10 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MusicUtils; import me.bobert.netneutrality.utils.MusicUtils;
@@ -5,9 +5,9 @@ package me.bobert.netneutrality.command.music;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.AbstractMusicCommand; import me.bobert.netneutrality.core.command.AbstractMusicCommand;
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.CommandExecutionResult;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.music.MusicManager;
import me.bobert.netneutrality.utils.MusicUtils; import me.bobert.netneutrality.utils.MusicUtils;
@@ -1,4 +1,4 @@
package me.bobert.netneutrality.command; package me.bobert.netneutrality.core.command;
/* /*
* Copyright (c) anthorob * Copyright (c) anthorob
* *
@@ -20,7 +20,7 @@ public abstract class AbstractAdminCommand extends AbstractCommand {
} }
@Override @Override
public CommandType getType() { public CommandCategory getCategory() {
return CommandType.ADMINISTRATION; return CommandCategory.ADMINISTRATION;
} }
} }
@@ -1,4 +1,4 @@
package me.bobert.netneutrality.command; package me.bobert.netneutrality.core.command;
/* /*
* Copyright (c) anthorob * Copyright (c) anthorob
@@ -27,6 +27,11 @@ public abstract class AbstractCommand implements Command {
return DefaultMemberPermissions.ENABLED; return DefaultMemberPermissions.ENABLED;
} }
@Override
public Type getType() {
return Type.SLASH;
}
@Override @Override
public boolean canBeExecutedBy(Member member) { public boolean canBeExecutedBy(Member member) {
return true; return true;
@@ -1,4 +1,4 @@
package me.bobert.netneutrality.command; package me.bobert.netneutrality.core.command;
/* /*
* Copyright (c) anthorob * Copyright (c) anthorob
* *
@@ -28,8 +28,8 @@ public abstract class AbstractMusicCommand extends AbstractCommand {
} }
@Override @Override
public CommandType getType() { public CommandCategory getCategory() {
return CommandType.MUSIC; return CommandCategory.MUSIC;
} }
@Override @Override
@@ -1,18 +1,20 @@
package me.bobert.netneutrality.command; package me.bobert.netneutrality.core.command;
/* /*
* Copyright (c) anthorob * Copyright (c) anthorob
* *
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.core.command.CommandExecutionResult; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel; import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions; import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
public interface Command { public interface Command {
enum Type {
SLASH, USER, MESSAGE
}
boolean needAdmin(); boolean needAdmin();
@@ -32,7 +34,9 @@ public interface Command {
DefaultMemberPermissions getSlashCommandPermission(); DefaultMemberPermissions getSlashCommandPermission();
CommandType getType(); CommandCategory getCategory();
Type getType();
boolean canBeExecutedBy(Member member); boolean canBeExecutedBy(Member member);
@@ -0,0 +1,25 @@
package me.bobert.netneutrality.core.command;
/*
* Copyright (c) anthorob
*
* https://discord.gg/qUa6zNFZsd
*/
public enum CommandCategory {
MUSIC("Music"), ADMINISTRATION("Administration"), UTILITY("Utility"), CRYPTO("Crypto"), UNLISTED("");
private final String description;
CommandCategory(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
@Override
public String toString() {
return description;
}
}
@@ -5,9 +5,8 @@ package me.bobert.netneutrality.core.command;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.Command; import me.bobert.netneutrality.core.command.options.CommandOptions;
import me.bobert.netneutrality.command.CommandOptions; import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder;
public class CommandContainer { public class CommandContainer {
public static final CommandContainer NULL_COMMAND = new CommandContainer(null); public static final CommandContainer NULL_COMMAND = new CommandContainer(null);
@@ -32,7 +31,7 @@ public class CommandContainer {
private void initOptions() { private void initOptions() {
if (command != null) { if (command != null) {
CommandOptionsBuilder commandOptionsBuilder = new CommandOptionsBuilder(command); CommandOptionsBuilder commandOptionsBuilder = new CommandOptionsBuilder(command.getType(), command);
command.registerCommandOptions(commandOptionsBuilder); command.registerCommandOptions(commandOptionsBuilder);
commandOptions = commandOptionsBuilder.build(); commandOptions = commandOptionsBuilder.build();
} }
@@ -5,7 +5,6 @@ package me.bobert.netneutrality.core.command;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.Command;
import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.interactions.commands.build.CommandData; import net.dv8tion.jda.api.interactions.commands.build.CommandData;
import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData; import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData;
@@ -25,7 +24,7 @@ public class CommandManager {
private static final Logger logger = LogManager.getLogger(CommandManager.class); private static final Logger logger = LogManager.getLogger(CommandManager.class);
public static final HashMap<String, CommandContainer> commands = new HashMap<>(); public static final HashMap<String, CommandContainer> commands = new HashMap<>();
public static void init(JDA jda) { public static void init() {
logger.info("Loading commands.."); logger.info("Loading commands..");
initCommands(); initCommands();
@@ -6,10 +6,9 @@ package me.bobert.netneutrality.core.command;
*/ */
import io.sentry.Sentry; import io.sentry.Sentry;
import me.bobert.netneutrality.command.Command;
import me.bobert.netneutrality.command.CommandOptions;
import me.bobert.netneutrality.context.SlashCommandContext; import me.bobert.netneutrality.context.SlashCommandContext;
import me.bobert.netneutrality.core.LogHandler; import me.bobert.netneutrality.core.LogHandler;
import me.bobert.netneutrality.core.command.options.CommandOptions;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.exceptions.CommandExecutionException; import me.bobert.netneutrality.exceptions.CommandExecutionException;
import me.bobert.netneutrality.utils.UserFunction; import me.bobert.netneutrality.utils.UserFunction;
@@ -1,24 +0,0 @@
package me.bobert.netneutrality.core.command.builder;
/*
* Copyright (c) anthorob
*
* https://discord.gg/qUa6zNFZsd
*/
import me.bobert.netneutrality.command.Command;
import me.bobert.netneutrality.command.CommandOptions;
import net.dv8tion.jda.internal.interactions.CommandDataImpl;
public class CommandOptionsBuilder extends CommandDataImpl {
private final Command command;
public CommandOptionsBuilder(Command command) {
super(command.getCommandName(), command.getDescription());
this.command = command;
}
public CommandOptions build() {
//TODO: add more command types (slash, context menu), constructors are not the same so we can't extend CommandDataImpl
return new CommandOptions(command, this);
}
}
@@ -1,10 +1,11 @@
package me.bobert.netneutrality.command; package me.bobert.netneutrality.core.command.options;
/* /*
* Copyright (c) anthorob * Copyright (c) anthorob
* *
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.core.command.Command;
import net.dv8tion.jda.api.interactions.commands.build.OptionData; import net.dv8tion.jda.api.interactions.commands.build.OptionData;
import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData; import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData;
import net.dv8tion.jda.api.interactions.commands.build.SubcommandData; import net.dv8tion.jda.api.interactions.commands.build.SubcommandData;
@@ -15,7 +16,7 @@ import java.util.List;
public class CommandOptions { public class CommandOptions {
private final Command command; private final Command command;
private final SlashCommandData commandData; private final CommandDataImpl commandData;
private final List<OptionData> options; private final List<OptionData> options;
private final List<SubcommandData> subcommands; private final List<SubcommandData> subcommands;
private final List<SubcommandGroupData> subcommandGroups; private final List<SubcommandGroupData> subcommandGroups;
@@ -0,0 +1,185 @@
package me.bobert.netneutrality.core.command.options;
/*
* Copyright (c) anthorob
*
* https://discord.gg/qUa6zNFZsd
*/
import me.bobert.netneutrality.core.command.Command;
import net.dv8tion.jda.api.interactions.DiscordLocale;
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
import net.dv8tion.jda.api.interactions.commands.build.*;
import net.dv8tion.jda.api.interactions.commands.localization.LocalizationFunction;
import net.dv8tion.jda.api.interactions.commands.localization.LocalizationMap;
import net.dv8tion.jda.api.utils.data.DataObject;
import net.dv8tion.jda.internal.interactions.CommandDataImpl;
import javax.annotation.Nonnull;
import java.util.List;
import java.util.Map;
import java.util.function.Predicate;
public class CommandOptionsBuilder implements SlashCommandData {
private final Command command;
private CommandDataImpl commandData;
public CommandOptionsBuilder(Command.Type type, Command command) {
this.command = command;
if (type == Command.Type.SLASH) {
commandData = (CommandDataImpl) Commands.slash(command.getCommandName(), command.getDescription());
}
if (type == Command.Type.USER) {
commandData = (CommandDataImpl) Commands.user(command.getCommandName());
}
if (type == Command.Type.MESSAGE) {
commandData = (CommandDataImpl) Commands.message(command.getCommandName());
}
}
public CommandOptions build() {
return new CommandOptions(command, commandData);
}
@Override
public @Nonnull SlashCommandData setLocalizationFunction(@Nonnull LocalizationFunction localizationFunction) {
return commandData.setLocalizationFunction(localizationFunction);
}
@Override
public @Nonnull SlashCommandData setName(@Nonnull String name) {
return commandData.setName(name);
}
@Override
public @Nonnull SlashCommandData setNameLocalization(@Nonnull DiscordLocale locale, @Nonnull String name) {
return commandData.setNameLocalization(locale, name);
}
@Override
public @Nonnull SlashCommandData setNameLocalizations(@Nonnull Map<DiscordLocale, String> map) {
return commandData.setNameLocalizations(map);
}
@Override
public @Nonnull SlashCommandData setDefaultPermissions(@Nonnull DefaultMemberPermissions permission) {
return commandData.setDefaultPermissions(permission);
}
@Override
public @Nonnull SlashCommandData setGuildOnly(boolean guildOnly) {
return commandData.setGuildOnly(guildOnly);
}
@Override
public @Nonnull SlashCommandData setNSFW(boolean nsfw) {
return commandData.setNSFW(nsfw);
}
@Override
public @Nonnull String getName() {
return commandData.getName();
}
@Override
public @Nonnull LocalizationMap getNameLocalizations() {
return commandData.getNameLocalizations();
}
@Override
public @Nonnull net.dv8tion.jda.api.interactions.commands.Command.Type getType() {
return commandData.getType();
}
@Override
public @Nonnull DefaultMemberPermissions getDefaultPermissions() {
return commandData.getDefaultPermissions();
}
@Override
public boolean isGuildOnly() {
return commandData.isGuildOnly();
}
@Override
public boolean isNSFW() {
return commandData.isNSFW();
}
@Override
public @Nonnull SlashCommandData setDescription(@Nonnull String description) {
return commandData.setDescription(description);
}
@Override
public @Nonnull SlashCommandData setDescriptionLocalization(@Nonnull DiscordLocale locale, @Nonnull String description) {
return commandData.setDescriptionLocalization(locale, description);
}
@Override
public @Nonnull SlashCommandData setDescriptionLocalizations(@Nonnull Map<DiscordLocale, String> map) {
return commandData.setDescriptionLocalizations(map);
}
@Override
public @Nonnull String getDescription() {
return commandData.getDescription();
}
@Override
public @Nonnull LocalizationMap getDescriptionLocalizations() {
return commandData.getDescriptionLocalizations();
}
@Override
public boolean removeOptions(@Nonnull Predicate<? super OptionData> condition) {
return commandData.removeOptions(condition);
}
@Override
public boolean removeSubcommands(@Nonnull Predicate<? super SubcommandData> condition) {
return commandData.removeSubcommands(condition);
}
@Override
public boolean removeSubcommandGroups(@Nonnull Predicate<? super SubcommandGroupData> condition) {
return commandData.removeSubcommandGroups(condition);
}
@Override
public @Nonnull List<SubcommandData> getSubcommands() {
return commandData.getSubcommands();
}
@Override
public @Nonnull List<SubcommandGroupData> getSubcommandGroups() {
return commandData.getSubcommandGroups();
}
@Override
public @Nonnull List<OptionData> getOptions() {
return commandData.getOptions();
}
@Override
public @Nonnull SlashCommandData addOptions(@Nonnull OptionData... options) {
return commandData.addOptions(options);
}
@Override
public @Nonnull SlashCommandData addSubcommands(@Nonnull SubcommandData... subcommands) {
return commandData.addSubcommands(subcommands);
}
@Override
public @Nonnull SlashCommandData addSubcommandGroups(@Nonnull SubcommandGroupData... groups) {
return commandData.addSubcommandGroups(groups);
}
@Override
public @Nonnull DataObject toData() {
return commandData.toData();
}
}
@@ -5,7 +5,7 @@ package me.bobert.netneutrality.core.context;
* https://discord.gg/qUa6zNFZsd * https://discord.gg/qUa6zNFZsd
*/ */
import me.bobert.netneutrality.command.Command; import me.bobert.netneutrality.core.command.Command;
import me.bobert.netneutrality.core.command.options.CommandOption; import me.bobert.netneutrality.core.command.options.CommandOption;
import me.bobert.netneutrality.utils.Settings; import me.bobert.netneutrality.utils.Settings;
import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDA;
@@ -10,8 +10,8 @@ import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo; import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo;
import io.sentry.Sentry; import io.sentry.Sentry;
import me.bobert.netneutrality.command.Command; import me.bobert.netneutrality.core.command.Command;
import me.bobert.netneutrality.command.CommandType; import me.bobert.netneutrality.core.command.CommandCategory;
import me.bobert.netneutrality.core.command.CommandContainer; import me.bobert.netneutrality.core.command.CommandContainer;
import me.bobert.netneutrality.core.command.CommandManager; import me.bobert.netneutrality.core.command.CommandManager;
import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.CommandContext;
@@ -201,15 +201,15 @@ public class MessageFunction {
} }
public static String buildHelpMessage() { public static String buildHelpMessage() {
Map<CommandType, String> help = new HashMap<>(); Map<CommandCategory, String> help = new HashMap<>();
for (CommandContainer container : CommandManager.commands.values()) { for (CommandContainer container : CommandManager.commands.values()) {
Command command = container.getCommand(); Command command = container.getCommand();
if (command.getType() == null) { if (command.getCategory() == null) {
continue; continue;
} }
if (command.isEnabled() && command.getType() != CommandType.UNLISTED) { if (command.isEnabled() && command.getCategory() != CommandCategory.UNLISTED) {
String description = "No description yet"; String description = "No description yet";
if (command.getDescription() != null) { if (command.getDescription() != null) {
@@ -217,18 +217,18 @@ public class MessageFunction {
} }
String message; String message;
if (help.containsKey(command.getType())) { if (help.containsKey(command.getCategory())) {
message = help.get(command.getType()); message = help.get(command.getCategory());
} else { } else {
help.put(command.getType(), message = ""); help.put(command.getCategory(), message = "");
} }
if (message.isEmpty()) { if (message.isEmpty()) {
message = "## " + command.getType() + " commands"; message = "## " + command.getCategory() + " commands";
} }
message += "\n- /" + command.getCommandName() + " -> " + description; message += "\n- /" + command.getCommandName() + " -> " + description;
help.put(command.getType(), message); help.put(command.getCategory(), message);
} }
} }