diff --git a/src/main/java/me/bobert/netneutrality/NetNeutrality.java b/src/main/java/me/bobert/netneutrality/NetNeutrality.java index 3daf612..0662446 100644 --- a/src/main/java/me/bobert/netneutrality/NetNeutrality.java +++ b/src/main/java/me/bobert/netneutrality/NetNeutrality.java @@ -69,7 +69,7 @@ public class NetNeutrality { private void startup() { // DatabaseMigration.migrate(); SessionManager.getSessionFactory(); - CommandManager.init(jda); + CommandManager.init(); MusicManager.initPlayerManager(); TaskManager.getInstance().init(); initJDA(); diff --git a/src/main/java/me/bobert/netneutrality/command/CommandType.java b/src/main/java/me/bobert/netneutrality/command/CommandType.java deleted file mode 100644 index 95bc4da..0000000 --- a/src/main/java/me/bobert/netneutrality/command/CommandType.java +++ /dev/null @@ -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; - } -} diff --git a/src/main/java/me/bobert/netneutrality/command/admin/BlacklistCommand.java b/src/main/java/me/bobert/netneutrality/command/admin/BlacklistCommand.java index 3ac006d..cc0a7cb 100644 --- a/src/main/java/me/bobert/netneutrality/command/admin/BlacklistCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/admin/BlacklistCommand.java @@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.admin; * https://discord.gg/qUa6zNFZsd */ -import me.bobert.netneutrality.command.AbstractAdminCommand; -import me.bobert.netneutrality.core.command.options.CommandOption; +import me.bobert.netneutrality.core.command.AbstractAdminCommand; 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.db.entities.OBlacklist; import me.bobert.netneutrality.db.repository.BlacklistRepository; diff --git a/src/main/java/me/bobert/netneutrality/command/admin/ReactionCommand.java b/src/main/java/me/bobert/netneutrality/command/admin/ReactionCommand.java index 9e7a19f..02656fa 100644 --- a/src/main/java/me/bobert/netneutrality/command/admin/ReactionCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/admin/ReactionCommand.java @@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.admin; * https://discord.gg/qUa6zNFZsd */ -import me.bobert.netneutrality.command.AbstractAdminCommand; -import me.bobert.netneutrality.core.command.options.CommandOption; +import me.bobert.netneutrality.core.command.AbstractAdminCommand; 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.tasks.TaskManager; import me.bobert.netneutrality.tasks.emoji.EmojiReactionRoleTask; diff --git a/src/main/java/me/bobert/netneutrality/command/basic/HelpCommand.java b/src/main/java/me/bobert/netneutrality/command/basic/HelpCommand.java index 3200882..4119b46 100644 --- a/src/main/java/me/bobert/netneutrality/command/basic/HelpCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/basic/HelpCommand.java @@ -5,13 +5,9 @@ package me.bobert.netneutrality.command.basic; * 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.command.CommandType; -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.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.tasks.BuiltInTask; import me.bobert.netneutrality.tasks.help.BotInfo; @@ -57,8 +53,8 @@ public class HelpCommand extends AbstractCommand { } @Override - public CommandType getType() { - return CommandType.UTILITY; + public CommandCategory getCategory() { + return CommandCategory.UTILITY; } @Override diff --git a/src/main/java/me/bobert/netneutrality/command/basic/PingCommand.java b/src/main/java/me/bobert/netneutrality/command/basic/PingCommand.java index 73ff6ba..2dc8f22 100644 --- a/src/main/java/me/bobert/netneutrality/command/basic/PingCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/basic/PingCommand.java @@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.basic; * https://discord.gg/qUa6zNFZsd */ -import me.bobert.netneutrality.command.AbstractCommand; -import me.bobert.netneutrality.command.CommandType; +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.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; public class PingCommand extends AbstractCommand { @@ -44,8 +44,8 @@ public class PingCommand extends AbstractCommand { } @Override - public CommandType getType() { - return CommandType.UTILITY; + public CommandCategory getCategory() { + return CommandCategory.UTILITY; } @Override diff --git a/src/main/java/me/bobert/netneutrality/command/bot/ConfigureCommand.java b/src/main/java/me/bobert/netneutrality/command/bot/ConfigureCommand.java index bb3c411..bca39aa 100644 --- a/src/main/java/me/bobert/netneutrality/command/bot/ConfigureCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/bot/ConfigureCommand.java @@ -5,11 +5,11 @@ package me.bobert.netneutrality.command.bot; * 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.command.AbstractAdminCommand; 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.db.GSettings; import me.bobert.netneutrality.music.MusicManager; diff --git a/src/main/java/me/bobert/netneutrality/command/crypto/CryptoPriceCommand.java b/src/main/java/me/bobert/netneutrality/command/crypto/CryptoPriceCommand.java index 89110ca..69b405c 100644 --- a/src/main/java/me/bobert/netneutrality/command/crypto/CryptoPriceCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/crypto/CryptoPriceCommand.java @@ -5,16 +5,15 @@ package me.bobert.netneutrality.command.crypto; * 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.command.AbstractCommand; +import me.bobert.netneutrality.core.command.CommandCategory; 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.http.WebModule; import net.dv8tion.jda.api.interactions.commands.OptionType; -import org.json.JSONException; import org.json.JSONObject; import java.text.NumberFormat; @@ -57,8 +56,8 @@ public class CryptoPriceCommand extends AbstractCommand { } @Override - public CommandType getType() { - return CommandType.UTILITY; + public CommandCategory getCategory() { + return CommandCategory.UTILITY; } @Override diff --git a/src/main/java/me/bobert/netneutrality/command/git/ReportIssueCommand.java b/src/main/java/me/bobert/netneutrality/command/git/ReportIssueCommand.java index c12adf1..134ad39 100644 --- a/src/main/java/me/bobert/netneutrality/command/git/ReportIssueCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/git/ReportIssueCommand.java @@ -5,11 +5,11 @@ package me.bobert.netneutrality.command.git; * 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.core.command.AbstractCommand; +import me.bobert.netneutrality.core.command.CommandCategory; 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.tasks.TaskManager; import me.bobert.netneutrality.tasks.git.ReportIssueTask; @@ -52,8 +52,8 @@ public class ReportIssueCommand extends AbstractCommand { } @Override - public CommandType getType() { - return CommandType.UTILITY; + public CommandCategory getCategory() { + return CommandCategory.UTILITY; } @Override diff --git a/src/main/java/me/bobert/netneutrality/command/music/BitconnectCommand.java b/src/main/java/me/bobert/netneutrality/command/music/BitconnectCommand.java index be70d67..b0f3065 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/BitconnectCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/BitconnectCommand.java @@ -6,10 +6,10 @@ package me.bobert.netneutrality.command.music; * https://discord.gg/qUa6zNFZsd */ -import me.bobert.netneutrality.command.AbstractMusicCommand; -import me.bobert.netneutrality.command.CommandType; +import me.bobert.netneutrality.core.command.AbstractMusicCommand; +import me.bobert.netneutrality.core.command.CommandCategory; 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.music.MusicManager; @@ -36,8 +36,8 @@ public class BitconnectCommand extends AbstractMusicCommand { } @Override - public CommandType getType() { - return CommandType.UNLISTED; + public CommandCategory getCategory() { + return CommandCategory.UNLISTED; } @Override diff --git a/src/main/java/me/bobert/netneutrality/command/music/ClearQueueCommand.java b/src/main/java/me/bobert/netneutrality/command/music/ClearQueueCommand.java index 5c1395d..eb739a8 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/ClearQueueCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/ClearQueueCommand.java @@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music; * 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.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.utils.MusicUtils; diff --git a/src/main/java/me/bobert/netneutrality/command/music/CurrentlyPlayingCommand.java b/src/main/java/me/bobert/netneutrality/command/music/CurrentlyPlayingCommand.java index b640b3e..42cc979 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/CurrentlyPlayingCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/CurrentlyPlayingCommand.java @@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music; * 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.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.utils.MessageFunction; diff --git a/src/main/java/me/bobert/netneutrality/command/music/JoinCommand.java b/src/main/java/me/bobert/netneutrality/command/music/JoinCommand.java index 414954f..459e4e2 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/JoinCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/JoinCommand.java @@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music; * 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.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.utils.MusicUtils; diff --git a/src/main/java/me/bobert/netneutrality/command/music/LeaveCommand.java b/src/main/java/me/bobert/netneutrality/command/music/LeaveCommand.java index 4d30b53..6ab67af 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/LeaveCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/LeaveCommand.java @@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music; * 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.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.utils.MusicUtils; diff --git a/src/main/java/me/bobert/netneutrality/command/music/PlayCommand.java b/src/main/java/me/bobert/netneutrality/command/music/PlayCommand.java index 8d7b9de..b6bd2de 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/PlayCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/PlayCommand.java @@ -6,10 +6,10 @@ package me.bobert.netneutrality.command.music; * https://discord.gg/qUa6zNFZsd */ -import me.bobert.netneutrality.command.AbstractMusicCommand; -import me.bobert.netneutrality.core.command.options.CommandOption; +import me.bobert.netneutrality.core.command.AbstractMusicCommand; 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.music.MusicManager; import net.dv8tion.jda.api.interactions.commands.OptionType; diff --git a/src/main/java/me/bobert/netneutrality/command/music/QueueCommand.java b/src/main/java/me/bobert/netneutrality/command/music/QueueCommand.java index 3abddee..cde88fe 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/QueueCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/QueueCommand.java @@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.music; * https://discord.gg/qUa6zNFZsd */ -import me.bobert.netneutrality.command.AbstractMusicCommand; -import me.bobert.netneutrality.core.command.options.CommandOption; +import me.bobert.netneutrality.core.command.AbstractMusicCommand; 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.music.MusicManager; import me.bobert.netneutrality.utils.MessageFunction; diff --git a/src/main/java/me/bobert/netneutrality/command/music/ResumeCommand.java b/src/main/java/me/bobert/netneutrality/command/music/ResumeCommand.java index b151f3c..da6e9a4 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/ResumeCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/ResumeCommand.java @@ -4,9 +4,9 @@ package me.bobert.netneutrality.command.music;/* * 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.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.utils.MusicUtils; diff --git a/src/main/java/me/bobert/netneutrality/command/music/ShuffleCommand.java b/src/main/java/me/bobert/netneutrality/command/music/ShuffleCommand.java index 48ca350..a63802c 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/ShuffleCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/ShuffleCommand.java @@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music; * 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.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.utils.MusicUtils; diff --git a/src/main/java/me/bobert/netneutrality/command/music/SkipCommand.java b/src/main/java/me/bobert/netneutrality/command/music/SkipCommand.java index 5dca299..9dc2373 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/SkipCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/SkipCommand.java @@ -6,10 +6,10 @@ package me.bobert.netneutrality.command.music; * https://discord.gg/qUa6zNFZsd */ -import me.bobert.netneutrality.command.AbstractMusicCommand; -import me.bobert.netneutrality.core.command.options.CommandOption; +import me.bobert.netneutrality.core.command.AbstractMusicCommand; 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.music.MusicManager; import me.bobert.netneutrality.utils.MusicUtils; diff --git a/src/main/java/me/bobert/netneutrality/command/music/StopCommand.java b/src/main/java/me/bobert/netneutrality/command/music/StopCommand.java index 2a7741a..bc0f727 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/StopCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/StopCommand.java @@ -6,9 +6,9 @@ package me.bobert.netneutrality.command.music; * 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.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.utils.MusicUtils; diff --git a/src/main/java/me/bobert/netneutrality/command/music/ViewQueueCommand.java b/src/main/java/me/bobert/netneutrality/command/music/ViewQueueCommand.java index 0302652..edf78ad 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/ViewQueueCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/ViewQueueCommand.java @@ -5,9 +5,9 @@ package me.bobert.netneutrality.command.music; * 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.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.utils.MessageFunction; diff --git a/src/main/java/me/bobert/netneutrality/command/music/VolumeCommand.java b/src/main/java/me/bobert/netneutrality/command/music/VolumeCommand.java index 29facff..90740d7 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/VolumeCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/VolumeCommand.java @@ -6,10 +6,10 @@ package me.bobert.netneutrality.command.music; * https://discord.gg/qUa6zNFZsd */ -import me.bobert.netneutrality.command.AbstractMusicCommand; -import me.bobert.netneutrality.core.command.options.CommandOption; +import me.bobert.netneutrality.core.command.AbstractMusicCommand; 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.music.MusicManager; import me.bobert.netneutrality.utils.MusicUtils; diff --git a/src/main/java/me/bobert/netneutrality/command/music/VoteSkipCommand.java b/src/main/java/me/bobert/netneutrality/command/music/VoteSkipCommand.java index 1df001e..cb08015 100644 --- a/src/main/java/me/bobert/netneutrality/command/music/VoteSkipCommand.java +++ b/src/main/java/me/bobert/netneutrality/command/music/VoteSkipCommand.java @@ -5,9 +5,9 @@ package me.bobert.netneutrality.command.music; * 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.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.music.MusicManager; import me.bobert.netneutrality.utils.MusicUtils; diff --git a/src/main/java/me/bobert/netneutrality/command/AbstractAdminCommand.java b/src/main/java/me/bobert/netneutrality/core/command/AbstractAdminCommand.java similarity index 76% rename from src/main/java/me/bobert/netneutrality/command/AbstractAdminCommand.java rename to src/main/java/me/bobert/netneutrality/core/command/AbstractAdminCommand.java index 4f96d25..89e901c 100644 --- a/src/main/java/me/bobert/netneutrality/command/AbstractAdminCommand.java +++ b/src/main/java/me/bobert/netneutrality/core/command/AbstractAdminCommand.java @@ -1,4 +1,4 @@ -package me.bobert.netneutrality.command; +package me.bobert.netneutrality.core.command; /* * Copyright (c) anthorob * @@ -20,7 +20,7 @@ public abstract class AbstractAdminCommand extends AbstractCommand { } @Override - public CommandType getType() { - return CommandType.ADMINISTRATION; + public CommandCategory getCategory() { + return CommandCategory.ADMINISTRATION; } } diff --git a/src/main/java/me/bobert/netneutrality/command/AbstractCommand.java b/src/main/java/me/bobert/netneutrality/core/command/AbstractCommand.java similarity index 87% rename from src/main/java/me/bobert/netneutrality/command/AbstractCommand.java rename to src/main/java/me/bobert/netneutrality/core/command/AbstractCommand.java index e7a5176..8cc01b9 100644 --- a/src/main/java/me/bobert/netneutrality/command/AbstractCommand.java +++ b/src/main/java/me/bobert/netneutrality/core/command/AbstractCommand.java @@ -1,4 +1,4 @@ -package me.bobert.netneutrality.command; +package me.bobert.netneutrality.core.command; /* * Copyright (c) anthorob @@ -27,6 +27,11 @@ public abstract class AbstractCommand implements Command { return DefaultMemberPermissions.ENABLED; } + @Override + public Type getType() { + return Type.SLASH; + } + @Override public boolean canBeExecutedBy(Member member) { return true; diff --git a/src/main/java/me/bobert/netneutrality/command/AbstractMusicCommand.java b/src/main/java/me/bobert/netneutrality/core/command/AbstractMusicCommand.java similarity index 94% rename from src/main/java/me/bobert/netneutrality/command/AbstractMusicCommand.java rename to src/main/java/me/bobert/netneutrality/core/command/AbstractMusicCommand.java index 3e235aa..61ea77b 100644 --- a/src/main/java/me/bobert/netneutrality/command/AbstractMusicCommand.java +++ b/src/main/java/me/bobert/netneutrality/core/command/AbstractMusicCommand.java @@ -1,4 +1,4 @@ -package me.bobert.netneutrality.command; +package me.bobert.netneutrality.core.command; /* * Copyright (c) anthorob * @@ -28,8 +28,8 @@ public abstract class AbstractMusicCommand extends AbstractCommand { } @Override - public CommandType getType() { - return CommandType.MUSIC; + public CommandCategory getCategory() { + return CommandCategory.MUSIC; } @Override diff --git a/src/main/java/me/bobert/netneutrality/command/Command.java b/src/main/java/me/bobert/netneutrality/core/command/Command.java similarity index 79% rename from src/main/java/me/bobert/netneutrality/command/Command.java rename to src/main/java/me/bobert/netneutrality/core/command/Command.java index 65b439e..b6f3f02 100644 --- a/src/main/java/me/bobert/netneutrality/command/Command.java +++ b/src/main/java/me/bobert/netneutrality/core/command/Command.java @@ -1,18 +1,20 @@ -package me.bobert.netneutrality.command; +package me.bobert.netneutrality.core.command; /* * Copyright (c) anthorob * * https://discord.gg/qUa6zNFZsd */ -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 net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel; import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions; public interface Command { + enum Type { + SLASH, USER, MESSAGE + } boolean needAdmin(); @@ -32,7 +34,9 @@ public interface Command { DefaultMemberPermissions getSlashCommandPermission(); - CommandType getType(); + CommandCategory getCategory(); + + Type getType(); boolean canBeExecutedBy(Member member); diff --git a/src/main/java/me/bobert/netneutrality/core/command/CommandCategory.java b/src/main/java/me/bobert/netneutrality/core/command/CommandCategory.java new file mode 100644 index 0000000..bc5e909 --- /dev/null +++ b/src/main/java/me/bobert/netneutrality/core/command/CommandCategory.java @@ -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; + } +} diff --git a/src/main/java/me/bobert/netneutrality/core/command/CommandContainer.java b/src/main/java/me/bobert/netneutrality/core/command/CommandContainer.java index 7437d3c..37e6ed7 100644 --- a/src/main/java/me/bobert/netneutrality/core/command/CommandContainer.java +++ b/src/main/java/me/bobert/netneutrality/core/command/CommandContainer.java @@ -5,9 +5,8 @@ package me.bobert.netneutrality.core.command; * https://discord.gg/qUa6zNFZsd */ -import me.bobert.netneutrality.command.Command; -import me.bobert.netneutrality.command.CommandOptions; -import me.bobert.netneutrality.core.command.builder.CommandOptionsBuilder; +import me.bobert.netneutrality.core.command.options.CommandOptions; +import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder; public class CommandContainer { public static final CommandContainer NULL_COMMAND = new CommandContainer(null); @@ -32,7 +31,7 @@ public class CommandContainer { private void initOptions() { if (command != null) { - CommandOptionsBuilder commandOptionsBuilder = new CommandOptionsBuilder(command); + CommandOptionsBuilder commandOptionsBuilder = new CommandOptionsBuilder(command.getType(), command); command.registerCommandOptions(commandOptionsBuilder); commandOptions = commandOptionsBuilder.build(); } diff --git a/src/main/java/me/bobert/netneutrality/core/command/CommandManager.java b/src/main/java/me/bobert/netneutrality/core/command/CommandManager.java index 89ea011..88fbb4d 100644 --- a/src/main/java/me/bobert/netneutrality/core/command/CommandManager.java +++ b/src/main/java/me/bobert/netneutrality/core/command/CommandManager.java @@ -5,7 +5,6 @@ package me.bobert.netneutrality.core.command; * https://discord.gg/qUa6zNFZsd */ -import me.bobert.netneutrality.command.Command; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.interactions.commands.build.CommandData; 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); public static final HashMap commands = new HashMap<>(); - public static void init(JDA jda) { + public static void init() { logger.info("Loading commands.."); initCommands(); diff --git a/src/main/java/me/bobert/netneutrality/core/command/CommandProcessor.java b/src/main/java/me/bobert/netneutrality/core/command/CommandProcessor.java index 0c1af79..58b26b0 100644 --- a/src/main/java/me/bobert/netneutrality/core/command/CommandProcessor.java +++ b/src/main/java/me/bobert/netneutrality/core/command/CommandProcessor.java @@ -6,10 +6,9 @@ package me.bobert.netneutrality.core.command; */ 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.core.LogHandler; +import me.bobert.netneutrality.core.command.options.CommandOptions; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.exceptions.CommandExecutionException; import me.bobert.netneutrality.utils.UserFunction; @@ -174,7 +173,7 @@ public class CommandProcessor { if (!options.isEmpty() && arguments.size() > 1) { OptionData last = options.get(options.size() - 1); if (last.getType() == OptionType.STRING) { - List lastArgs = arguments.stream().skip(options.size() -1).toList(); + List lastArgs = arguments.stream().skip(options.size() - 1).toList(); arguments.removeAll(lastArgs); arguments.add(String.join(" ", lastArgs)); } diff --git a/src/main/java/me/bobert/netneutrality/core/command/builder/CommandOptionsBuilder.java b/src/main/java/me/bobert/netneutrality/core/command/builder/CommandOptionsBuilder.java deleted file mode 100644 index 801b681..0000000 --- a/src/main/java/me/bobert/netneutrality/core/command/builder/CommandOptionsBuilder.java +++ /dev/null @@ -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); - } -} diff --git a/src/main/java/me/bobert/netneutrality/command/CommandOptions.java b/src/main/java/me/bobert/netneutrality/core/command/options/CommandOptions.java similarity index 96% rename from src/main/java/me/bobert/netneutrality/command/CommandOptions.java rename to src/main/java/me/bobert/netneutrality/core/command/options/CommandOptions.java index 6eb9a59..0d60fd5 100644 --- a/src/main/java/me/bobert/netneutrality/command/CommandOptions.java +++ b/src/main/java/me/bobert/netneutrality/core/command/options/CommandOptions.java @@ -1,10 +1,11 @@ -package me.bobert.netneutrality.command; +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.commands.build.OptionData; import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData; import net.dv8tion.jda.api.interactions.commands.build.SubcommandData; @@ -15,7 +16,7 @@ import java.util.List; public class CommandOptions { private final Command command; - private final SlashCommandData commandData; + private final CommandDataImpl commandData; private final List options; private final List subcommands; private final List subcommandGroups; diff --git a/src/main/java/me/bobert/netneutrality/core/command/options/CommandOptionsBuilder.java b/src/main/java/me/bobert/netneutrality/core/command/options/CommandOptionsBuilder.java new file mode 100644 index 0000000..20652d4 --- /dev/null +++ b/src/main/java/me/bobert/netneutrality/core/command/options/CommandOptionsBuilder.java @@ -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 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 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 condition) { + return commandData.removeOptions(condition); + } + + @Override + public boolean removeSubcommands(@Nonnull Predicate condition) { + return commandData.removeSubcommands(condition); + } + + @Override + public boolean removeSubcommandGroups(@Nonnull Predicate condition) { + return commandData.removeSubcommandGroups(condition); + } + + @Override + public @Nonnull List getSubcommands() { + return commandData.getSubcommands(); + } + + @Override + public @Nonnull List getSubcommandGroups() { + return commandData.getSubcommandGroups(); + } + + @Override + public @Nonnull List 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(); + } +} diff --git a/src/main/java/me/bobert/netneutrality/core/context/CommandContext.java b/src/main/java/me/bobert/netneutrality/core/context/CommandContext.java index e58739a..a950e28 100644 --- a/src/main/java/me/bobert/netneutrality/core/context/CommandContext.java +++ b/src/main/java/me/bobert/netneutrality/core/context/CommandContext.java @@ -5,7 +5,7 @@ package me.bobert.netneutrality.core.context; * 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.utils.Settings; import net.dv8tion.jda.api.JDA; diff --git a/src/main/java/me/bobert/netneutrality/utils/MessageFunction.java b/src/main/java/me/bobert/netneutrality/utils/MessageFunction.java index 778881d..0586fd1 100644 --- a/src/main/java/me/bobert/netneutrality/utils/MessageFunction.java +++ b/src/main/java/me/bobert/netneutrality/utils/MessageFunction.java @@ -10,8 +10,8 @@ import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo; import io.sentry.Sentry; -import me.bobert.netneutrality.command.Command; -import me.bobert.netneutrality.command.CommandType; +import me.bobert.netneutrality.core.command.Command; +import me.bobert.netneutrality.core.command.CommandCategory; import me.bobert.netneutrality.core.command.CommandContainer; import me.bobert.netneutrality.core.command.CommandManager; import me.bobert.netneutrality.core.context.CommandContext; @@ -201,15 +201,15 @@ public class MessageFunction { } public static String buildHelpMessage() { - Map help = new HashMap<>(); + Map help = new HashMap<>(); for (CommandContainer container : CommandManager.commands.values()) { Command command = container.getCommand(); - if (command.getType() == null) { + if (command.getCategory() == null) { continue; } - if (command.isEnabled() && command.getType() != CommandType.UNLISTED) { + if (command.isEnabled() && command.getCategory() != CommandCategory.UNLISTED) { String description = "No description yet"; if (command.getDescription() != null) { @@ -217,18 +217,18 @@ public class MessageFunction { } String message; - if (help.containsKey(command.getType())) { - message = help.get(command.getType()); + if (help.containsKey(command.getCategory())) { + message = help.get(command.getCategory()); } else { - help.put(command.getType(), message = ""); + help.put(command.getCategory(), message = ""); } if (message.isEmpty()) { - message = "## " + command.getType() + " commands"; + message = "## " + command.getCategory() + " commands"; } message += "\n- /" + command.getCommandName() + " -> " + description; - help.put(command.getType(), message); + help.put(command.getCategory(), message); } }