fix(deps): update dependency net.dv8tion:jda to v5.3.0
This commit is contained in:
1 parent
19f889e885
commit
143e96ec46
36 files changed
+274
-281
No files matched your search
@@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.admin;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractAdminCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.AdminCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOption;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.db.entities.OBlacklist;
|
||||
import me.bobert.netneutrality.db.service.BlacklistService;
|
||||
@@ -18,7 +18,7 @@ import net.dv8tion.jda.api.interactions.commands.build.SubcommandData;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BlacklistCommand extends AbstractAdminCommand {
|
||||
public class BlacklistCommand extends AdminCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.admin;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractAdminCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.AdminCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOption;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.core.tasks.TaskManager;
|
||||
import me.bobert.netneutrality.tasks.emoji.EmojiReactionRoleTask;
|
||||
@@ -24,7 +24,7 @@ import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ReactionCommand extends AbstractAdminCommand {
|
||||
public class ReactionCommand extends AdminCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -6,8 +6,9 @@ package me.bobert.netneutrality.command.basic;
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.*;
|
||||
import me.bobert.netneutrality.core.command.impl.AbstractCommand;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOption;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.core.tasks.BuiltInTask;
|
||||
import me.bobert.netneutrality.tasks.help.BotInfo;
|
||||
|
||||
@@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.basic;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.AbstractCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandCategory;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
|
||||
public class PingCommand extends AbstractCommand {
|
||||
|
||||
@@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.bot;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractAdminCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.AdminCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOption;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.db.GSettings;
|
||||
import me.bobert.netneutrality.db.service.GuildService;
|
||||
@@ -23,7 +23,7 @@ import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class ConfigureCommand extends AbstractAdminCommand {
|
||||
public class ConfigureCommand extends AdminCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -6,11 +6,11 @@ package me.bobert.netneutrality.command.crypto;
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.LogHandler;
|
||||
import me.bobert.netneutrality.core.command.AbstractCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.AbstractCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandCategory;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOption;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.http.WebModule;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
|
||||
@@ -5,11 +5,10 @@ package me.bobert.netneutrality.command.git;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.context.command.SlashCommandContext;
|
||||
import me.bobert.netneutrality.core.command.AbstractCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.AbstractCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandCategory;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.http.WebModule;
|
||||
import me.bobert.netneutrality.tasks.git.ReportIssueTask;
|
||||
|
||||
@@ -6,14 +6,14 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandCategory;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
|
||||
public class BitconnectCommand extends AbstractMusicCommand {
|
||||
public class BitconnectCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -6,14 +6,14 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
|
||||
public class ClearQueueCommand extends AbstractMusicCommand {
|
||||
public class ClearQueueCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean needAdmin() {
|
||||
|
||||
@@ -6,15 +6,15 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MessageFunction;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
|
||||
public class CurrentlyPlayingCommand extends AbstractMusicCommand {
|
||||
public class CurrentlyPlayingCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -6,13 +6,13 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
|
||||
public class JoinCommand extends AbstractMusicCommand {
|
||||
public class JoinCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -6,14 +6,14 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
|
||||
public class LeaveCommand extends AbstractMusicCommand {
|
||||
public class LeaveCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -6,15 +6,15 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOption;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
|
||||
public class PlayCommand extends AbstractMusicCommand {
|
||||
public class PlayCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -5,10 +5,10 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOption;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MessageFunction;
|
||||
@@ -18,7 +18,7 @@ import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.OptionData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.SubcommandData;
|
||||
|
||||
public class QueueCommand extends AbstractMusicCommand {
|
||||
public class QueueCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -4,14 +4,14 @@ package me.bobert.netneutrality.command.music;/*
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
|
||||
public class ResumeCommand extends AbstractMusicCommand {
|
||||
public class ResumeCommand extends MusicCommand {
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return true;
|
||||
|
||||
@@ -6,14 +6,14 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
|
||||
public class ShuffleCommand extends AbstractMusicCommand {
|
||||
public class ShuffleCommand extends MusicCommand {
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return true;
|
||||
|
||||
@@ -6,10 +6,10 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOption;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
@@ -17,7 +17,7 @@ import me.bobert.netneutrality.utils.UserFunction;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.OptionData;
|
||||
|
||||
public class SkipCommand extends AbstractMusicCommand {
|
||||
public class SkipCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -6,15 +6,15 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
import me.bobert.netneutrality.utils.UserFunction;
|
||||
|
||||
public class StopCommand extends AbstractMusicCommand {
|
||||
public class StopCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -5,15 +5,15 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MessageFunction;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
|
||||
public class ViewQueueCommand extends AbstractMusicCommand {
|
||||
public class ViewQueueCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -6,10 +6,10 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOption;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
@@ -17,7 +17,7 @@ import me.bobert.netneutrality.utils.UserFunction;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.OptionData;
|
||||
|
||||
public class VolumeCommand extends AbstractMusicCommand {
|
||||
public class VolumeCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -5,14 +5,14 @@ package me.bobert.netneutrality.command.music;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMusicCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MusicCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.music.MusicManager;
|
||||
import me.bobert.netneutrality.utils.MusicUtils;
|
||||
|
||||
public class VoteSkipCommand extends AbstractMusicCommand {
|
||||
public class VoteSkipCommand extends MusicCommand {
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
|
||||
@@ -6,7 +6,7 @@ package me.bobert.netneutrality.command.react;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMessageMenuCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MessageMenuCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.core.tasks.TaskManager;
|
||||
@@ -14,7 +14,7 @@ import me.bobert.netneutrality.tasks.emoji.EmojiReactionRoleTask;
|
||||
import me.bobert.netneutrality.tasks.reaction.EmojiRoleFirstStep;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
public class CreateEmojiReaction extends AbstractMessageMenuCommand {
|
||||
public class CreateEmojiReaction extends MessageMenuCommand {
|
||||
@Override
|
||||
public CommandExecutionResult execute(Message target, CommandContext context) {
|
||||
EmojiReactionRoleTask task = TaskManager.getInstance().findTaskByPartialId(EmojiReactionRoleTask.class, target.getId()).orElse(null);
|
||||
|
||||
@@ -6,7 +6,7 @@ package me.bobert.netneutrality.command.react;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.AbstractMessageMenuCommand;
|
||||
import me.bobert.netneutrality.core.command.impl.MessageMenuCommand;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import me.bobert.netneutrality.core.tasks.TaskManager;
|
||||
@@ -14,7 +14,7 @@ import me.bobert.netneutrality.tasks.emoji.EmojiReactionRoleTask;
|
||||
import me.bobert.netneutrality.tasks.reaction.EmojiRoleModify;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
public class ModifyEmojiReaction extends AbstractMessageMenuCommand {
|
||||
public class ModifyEmojiReaction extends MessageMenuCommand {
|
||||
|
||||
@Override
|
||||
public CommandExecutionResult execute(Message target, CommandContext context) {
|
||||
|
||||
@@ -5,7 +5,6 @@ package me.bobert.netneutrality.core.command;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
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;
|
||||
|
||||
@@ -5,35 +5,175 @@ package me.bobert.netneutrality.core.command;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptions;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import net.dv8tion.jda.api.entities.channel.ChannelType;
|
||||
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;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.SubcommandGroupData;
|
||||
import net.dv8tion.jda.internal.interactions.CommandDataImpl;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.StringJoiner;
|
||||
|
||||
public class CommandContainer {
|
||||
public static final CommandContainer NULL_COMMAND = new CommandContainer(null);
|
||||
private final Command command;
|
||||
private CommandOptions commandOptions;
|
||||
private CommandDataImpl commandData;
|
||||
private List<OptionData> options;
|
||||
private List<SubcommandData> subcommands;
|
||||
private List<SubcommandGroupData> subcommandGroups;
|
||||
|
||||
public CommandContainer(Command command) {
|
||||
this.command = command;
|
||||
|
||||
if (command != null) {
|
||||
CommandOptionsBuilder commandOptionsBuilder = new CommandOptionsBuilder(command.getType(), command);
|
||||
command.registerCommandOptions(commandOptionsBuilder);
|
||||
initContainer(commandOptionsBuilder);
|
||||
}
|
||||
}
|
||||
|
||||
public Command getCommand() {
|
||||
return command;
|
||||
}
|
||||
|
||||
public CommandOptions getCommandOptions() {
|
||||
return commandOptions;
|
||||
public SlashCommandData getSlashCommandData() {
|
||||
return commandData;
|
||||
}
|
||||
|
||||
public void init() {
|
||||
initOptions();
|
||||
public List<OptionData> getOptions() {
|
||||
return options;
|
||||
}
|
||||
|
||||
private void initOptions() {
|
||||
if (command != null) {
|
||||
CommandOptionsBuilder commandOptionsBuilder = new CommandOptionsBuilder(command.getType(), command);
|
||||
command.registerCommandOptions(commandOptionsBuilder);
|
||||
commandOptions = commandOptionsBuilder.build();
|
||||
public List<SubcommandData> getSubcommands() {
|
||||
return subcommands;
|
||||
}
|
||||
|
||||
public List<SubcommandGroupData> getSubcommandGroups() {
|
||||
return subcommandGroups;
|
||||
}
|
||||
|
||||
private void initContainer(CommandOptionsBuilder builder) {
|
||||
this.commandData = builder.build();
|
||||
this.options = commandData.getOptions();
|
||||
this.subcommands = commandData.getSubcommands();
|
||||
this.subcommandGroups = commandData.getSubcommandGroups();
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return options.isEmpty() && subcommands.isEmpty() && subcommandGroups.isEmpty();
|
||||
}
|
||||
|
||||
public String printUsage() {
|
||||
StringBuilder usage = new StringBuilder();
|
||||
if (!options.isEmpty()) {
|
||||
usage.append("- Usage: /").append(command.getCommandName());
|
||||
for (OptionData option : options) {
|
||||
usage.append(" <").append(option.getName()).append(">");
|
||||
}
|
||||
|
||||
usage.append(printOptions(options, null, false));
|
||||
}
|
||||
|
||||
if (!subcommands.isEmpty()) {
|
||||
for (SubcommandData subcommand : subcommands) {
|
||||
usage.append("- Usage: /").append(command.getCommandName()).append(" ").append(subcommand.getName());
|
||||
|
||||
for (OptionData option : subcommand.getOptions()) {
|
||||
usage.append(" <").append(option.getName()).append(">");
|
||||
}
|
||||
|
||||
usage.append(" (").append(subcommand.getDescription()).append(")");
|
||||
usage.append(printOptions(subcommand.getOptions(), null, false));
|
||||
|
||||
usage.append("\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (!subcommandGroups.isEmpty()) {
|
||||
for (SubcommandGroupData subcommandGroup : subcommandGroups) {
|
||||
usage.append("- Subcommand: /").append(command.getCommandName())
|
||||
.append(" ").append(subcommandGroup.getName())
|
||||
.append(" (").append(subcommandGroup.getDescription()).append(")")
|
||||
.append("\n");
|
||||
|
||||
for (SubcommandData subcommand : subcommandGroup.getSubcommands()) {
|
||||
usage.append(" - Usage: /").append(command.getCommandName())
|
||||
.append(" ").append(subcommandGroup.getName())
|
||||
.append(" ").append(subcommand.getName());
|
||||
|
||||
for (OptionData option : subcommand.getOptions()) {
|
||||
usage.append(" <").append(option.getName()).append(">");
|
||||
}
|
||||
|
||||
usage.append(printOptions(subcommand.getOptions(), subcommand.getDescription(), true));
|
||||
|
||||
usage.append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isEmpty()) {
|
||||
usage.append("\n\n-# *: required argument");
|
||||
}
|
||||
|
||||
return usage.toString();
|
||||
}
|
||||
|
||||
private String printOptions(List<OptionData> options, String description, boolean group) {
|
||||
StringBuilder usage = new StringBuilder();
|
||||
|
||||
if (description != null) {
|
||||
usage.append(" (").append(description).append(")");
|
||||
}
|
||||
|
||||
for (OptionData option : options) {
|
||||
usage.append("\n");
|
||||
if (group) usage.append(" ");
|
||||
usage.append(" - ");
|
||||
if (option.isRequired()) {
|
||||
usage.append("*");
|
||||
}
|
||||
usage.append(option.getName()).append(": ").append(option.getDescription());
|
||||
|
||||
if (option.getMinValue() != null) {
|
||||
usage.append(" [Min value: ").append(option.getMinValue().longValue()).append("]");
|
||||
}
|
||||
|
||||
if (option.getMaxValue() != null) {
|
||||
usage.append(" [Max value: ").append(option.getMaxValue().longValue()).append("]");
|
||||
}
|
||||
|
||||
if (option.getMinLength() != null) {
|
||||
usage.append(" [Min length: ").append(option.getMinLength().longValue()).append("]");
|
||||
}
|
||||
|
||||
if (option.getMaxLength() != null) {
|
||||
usage.append(" [Max length: ").append(option.getMaxLength().longValue()).append("]");
|
||||
}
|
||||
|
||||
List<net.dv8tion.jda.api.interactions.commands.Command.Choice> choices = option.getChoices();
|
||||
if (!choices.isEmpty()) {
|
||||
StringJoiner joiner = new StringJoiner(", ");
|
||||
for (net.dv8tion.jda.api.interactions.commands.Command.Choice choice : choices) {
|
||||
joiner.add(choice.getAsString());
|
||||
}
|
||||
|
||||
usage.append(" [Available choices: ").append(joiner).append("]");
|
||||
}
|
||||
|
||||
Set<ChannelType> requiredChannelTypes = option.getChannelTypes();
|
||||
if (!requiredChannelTypes.isEmpty()) {
|
||||
StringJoiner joiner = new StringJoiner(", ");
|
||||
for (ChannelType type : requiredChannelTypes) {
|
||||
joiner.add(type.name());
|
||||
}
|
||||
|
||||
usage.append(" [Required channel types: ").append(joiner).append("]");
|
||||
}
|
||||
}
|
||||
|
||||
return usage.toString();
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ package me.bobert.netneutrality.core.command;
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData;
|
||||
import net.dv8tion.jda.api.requests.restaction.CommandListUpdateAction;
|
||||
@@ -14,7 +15,10 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class CommandManager {
|
||||
@@ -30,10 +34,6 @@ public class CommandManager {
|
||||
logger.info("Loaded {} commands!", commands.size());
|
||||
}
|
||||
|
||||
public static Command getCommand(String commandString) {
|
||||
return getCommandContainer(commandString).getCommand();
|
||||
}
|
||||
|
||||
public static CommandContainer getCommandContainer(String commandString) {
|
||||
return commands.getOrDefault(commandString, CommandContainer.NULL_COMMAND);
|
||||
}
|
||||
@@ -60,8 +60,6 @@ public class CommandManager {
|
||||
}
|
||||
|
||||
CommandContainer container = new CommandContainer(command);
|
||||
container.init();
|
||||
|
||||
if (!commands.containsKey(command.getCommandName())) {
|
||||
commands.put(command.getCommandName(), container);
|
||||
}
|
||||
@@ -83,9 +81,9 @@ public class CommandManager {
|
||||
logger.debug("Registering slash command: {}", command.getCommandName());
|
||||
|
||||
try {
|
||||
SlashCommandData data = container.getCommandOptions().getSlashCommandData();
|
||||
SlashCommandData data = container.getSlashCommandData();
|
||||
data.setDefaultPermissions(command.getSlashCommandPermission());
|
||||
data.setGuildOnly(command.isGuildOnly());
|
||||
data.setContexts(command.isGuildOnly() ? Set.of(InteractionContextType.GUILD) : Set.of(InteractionContextType.GUILD, InteractionContextType.BOT_DM));
|
||||
|
||||
slashCommands.add(data);
|
||||
} catch (Exception e) {
|
||||
|
||||
+27
-6
@@ -1,12 +1,13 @@
|
||||
package me.bobert.netneutrality.core.command.options;
|
||||
package me.bobert.netneutrality.core.command;
|
||||
/*
|
||||
* 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.IntegrationType;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
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;
|
||||
@@ -15,16 +16,16 @@ import net.dv8tion.jda.api.utils.data.DataObject;
|
||||
import net.dv8tion.jda.internal.interactions.CommandDataImpl;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
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());
|
||||
@@ -39,8 +40,8 @@ public class CommandOptionsBuilder implements SlashCommandData {
|
||||
}
|
||||
}
|
||||
|
||||
public CommandOptions build() {
|
||||
return new CommandOptions(command, commandData);
|
||||
public CommandDataImpl build() {
|
||||
return commandData;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -73,6 +74,16 @@ public class CommandOptionsBuilder implements SlashCommandData {
|
||||
return commandData.setGuildOnly(guildOnly);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nonnull SlashCommandData setContexts(@Nonnull Collection<InteractionContextType> contexts) {
|
||||
return commandData.setContexts(contexts);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nonnull SlashCommandData setIntegrationTypes(@Nonnull Collection<IntegrationType> integrationTypes) {
|
||||
return commandData.setIntegrationTypes(integrationTypes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nonnull SlashCommandData setNSFW(boolean nsfw) {
|
||||
return commandData.setNSFW(nsfw);
|
||||
@@ -103,6 +114,16 @@ public class CommandOptionsBuilder implements SlashCommandData {
|
||||
return commandData.isGuildOnly();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nonnull Set<InteractionContextType> getContexts() {
|
||||
return commandData.getContexts();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nonnull Set<IntegrationType> getIntegrationTypes() {
|
||||
return commandData.getIntegrationTypes();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isNSFW() {
|
||||
return commandData.isNSFW();
|
||||
@@ -8,10 +8,8 @@ package me.bobert.netneutrality.core.command;
|
||||
import io.sentry.Sentry;
|
||||
import me.bobert.netneutrality.context.command.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.core.context.InteractionContext;
|
||||
import me.bobert.netneutrality.core.tasks.Task;
|
||||
import me.bobert.netneutrality.core.tasks.TaskManager;
|
||||
import me.bobert.netneutrality.exceptions.CommandExecutionException;
|
||||
import me.bobert.netneutrality.exceptions.GracefulContextError;
|
||||
@@ -73,7 +71,7 @@ public class CommandProcessor {
|
||||
return;
|
||||
}
|
||||
|
||||
if (command.getType() == Command.Type.SLASH && !checkUsage(container.getCommandOptions())) {
|
||||
if (command.getType() == Command.Type.SLASH && !checkUsage(container)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -123,10 +121,10 @@ public class CommandProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkUsage(CommandOptions commandOptions) {
|
||||
List<SubcommandGroupData> groups = commandOptions.getSubcommandGroups();
|
||||
List<SubcommandData> subcommands = commandOptions.getSubcommands();
|
||||
List<OptionData> options = commandOptions.getOptions();
|
||||
private boolean checkUsage(CommandContainer container) {
|
||||
List<SubcommandGroupData> groups = container.getSubcommandGroups();
|
||||
List<SubcommandData> subcommands = container.getSubcommands();
|
||||
List<OptionData> options = container.getOptions();
|
||||
String[] possibleCommands = Arrays.stream(context.getFullCommand().split(" ")).skip(1).toArray(String[]::new);
|
||||
if (possibleCommands.length == 0) {
|
||||
if (!groups.isEmpty()) {
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
package me.bobert.netneutrality.core.command;
|
||||
package me.bobert.netneutrality.core.command.impl;
|
||||
|
||||
/*
|
||||
* Copyright (c) anthorob
|
||||
@@ -6,6 +6,7 @@ package me.bobert.netneutrality.core.command;
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.Command;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
+4
-2
@@ -1,11 +1,13 @@
|
||||
package me.bobert.netneutrality.core.command;
|
||||
package me.bobert.netneutrality.core.command.impl;
|
||||
/*
|
||||
* Copyright (c) anthorob
|
||||
*
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
public abstract class AbstractAdminCommand extends AbstractCommand {
|
||||
import me.bobert.netneutrality.core.command.CommandCategory;
|
||||
|
||||
public abstract class AdminCommand extends AbstractCommand {
|
||||
|
||||
@Override
|
||||
public boolean needAdmin() {
|
||||
+5
-3
@@ -1,4 +1,4 @@
|
||||
package me.bobert.netneutrality.core.command;
|
||||
package me.bobert.netneutrality.core.command.impl;
|
||||
|
||||
/*
|
||||
* Copyright (c) anthorob
|
||||
@@ -7,11 +7,13 @@ package me.bobert.netneutrality.core.command;
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.context.command.MessageMenuContext;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandCategory;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
public abstract class AbstractMessageMenuCommand extends AbstractCommand {
|
||||
public abstract class MessageMenuCommand extends AbstractCommand {
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return null;
|
||||
+3
-2
@@ -1,10 +1,11 @@
|
||||
package me.bobert.netneutrality.core.command;
|
||||
package me.bobert.netneutrality.core.command.impl;
|
||||
/*
|
||||
* Copyright (c) anthorob
|
||||
*
|
||||
* https://discord.gg/qUa6zNFZsd
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.core.command.CommandCategory;
|
||||
import me.bobert.netneutrality.db.GSettings;
|
||||
import me.bobert.netneutrality.db.service.GuildService;
|
||||
import me.bobert.netneutrality.utils.UserFunction;
|
||||
@@ -15,7 +16,7 @@ import net.dv8tion.jda.api.entities.channel.ChannelType;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
|
||||
public abstract class AbstractMusicCommand extends AbstractCommand {
|
||||
public abstract class MusicCommand extends AbstractCommand {
|
||||
|
||||
@Override
|
||||
public boolean needAdmin() {
|
||||
+4
-3
@@ -1,4 +1,4 @@
|
||||
package me.bobert.netneutrality.core.command;
|
||||
package me.bobert.netneutrality.core.command.impl;
|
||||
|
||||
/*
|
||||
* Copyright (c) anthorob
|
||||
@@ -7,11 +7,12 @@ package me.bobert.netneutrality.core.command;
|
||||
*/
|
||||
|
||||
import me.bobert.netneutrality.context.command.UserMenuContext;
|
||||
import me.bobert.netneutrality.core.command.options.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.command.CommandExecutionResult;
|
||||
import me.bobert.netneutrality.core.command.CommandOptionsBuilder;
|
||||
import me.bobert.netneutrality.core.context.CommandContext;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
|
||||
public abstract class AbstractUserMenuCommand extends AbstractCommand {
|
||||
public abstract class UserMenuCommand extends AbstractCommand {
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return null;
|
||||
@@ -1,170 +0,0 @@
|
||||
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.entities.channel.ChannelType;
|
||||
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;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.SubcommandGroupData;
|
||||
import net.dv8tion.jda.internal.interactions.CommandDataImpl;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.StringJoiner;
|
||||
|
||||
public class CommandOptions {
|
||||
private final Command command;
|
||||
private final CommandDataImpl commandData;
|
||||
private final List<OptionData> options;
|
||||
private final List<SubcommandData> subcommands;
|
||||
private final List<SubcommandGroupData> subcommandGroups;
|
||||
|
||||
public CommandOptions(Command command, CommandDataImpl commandData) {
|
||||
this.command = command;
|
||||
this.commandData = commandData;
|
||||
this.options = commandData.getOptions();
|
||||
this.subcommands = commandData.getSubcommands();
|
||||
this.subcommandGroups = commandData.getSubcommandGroups();
|
||||
}
|
||||
|
||||
public Command getCommand() {
|
||||
return command;
|
||||
}
|
||||
|
||||
public SlashCommandData getSlashCommandData() {
|
||||
return commandData;
|
||||
}
|
||||
|
||||
public List<OptionData> getOptions() {
|
||||
return options;
|
||||
}
|
||||
|
||||
public List<SubcommandData> getSubcommands() {
|
||||
return subcommands;
|
||||
}
|
||||
|
||||
public List<SubcommandGroupData> getSubcommandGroups() {
|
||||
return subcommandGroups;
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return options.isEmpty() && subcommands.isEmpty() && subcommandGroups.isEmpty();
|
||||
}
|
||||
|
||||
public String printUsage() {
|
||||
StringBuilder usage = new StringBuilder();
|
||||
if (!options.isEmpty()) {
|
||||
usage.append("- Usage: /").append(command.getCommandName());
|
||||
for (OptionData option : options) {
|
||||
usage.append(" <").append(option.getName()).append(">");
|
||||
}
|
||||
|
||||
usage.append(printOptions(options, null, false));
|
||||
}
|
||||
|
||||
if (!subcommands.isEmpty()) {
|
||||
for (SubcommandData subcommand : subcommands) {
|
||||
usage.append("- Usage: /").append(command.getCommandName()).append(" ").append(subcommand.getName());
|
||||
|
||||
for (OptionData option : subcommand.getOptions()) {
|
||||
usage.append(" <").append(option.getName()).append(">");
|
||||
}
|
||||
|
||||
usage.append(" (").append(subcommand.getDescription()).append(")");
|
||||
usage.append(printOptions(subcommand.getOptions(), null, false));
|
||||
|
||||
usage.append("\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (!subcommandGroups.isEmpty()) {
|
||||
for (SubcommandGroupData subcommandGroup : subcommandGroups) {
|
||||
usage.append("- Subcommand: /").append(command.getCommandName())
|
||||
.append(" ").append(subcommandGroup.getName())
|
||||
.append(" (").append(subcommandGroup.getDescription()).append(")")
|
||||
.append("\n");
|
||||
|
||||
for (SubcommandData subcommand : subcommandGroup.getSubcommands()) {
|
||||
usage.append(" - Usage: /").append(command.getCommandName())
|
||||
.append(" ").append(subcommandGroup.getName())
|
||||
.append(" ").append(subcommand.getName());
|
||||
|
||||
for (OptionData option : subcommand.getOptions()) {
|
||||
usage.append(" <").append(option.getName()).append(">");
|
||||
}
|
||||
|
||||
usage.append(printOptions(subcommand.getOptions(), subcommand.getDescription(), true));
|
||||
|
||||
usage.append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isEmpty()) {
|
||||
usage.append("\n\n-# *: required argument");
|
||||
}
|
||||
|
||||
return usage.toString();
|
||||
}
|
||||
|
||||
private String printOptions(List<OptionData> options, String description, boolean group) {
|
||||
StringBuilder usage = new StringBuilder();
|
||||
|
||||
if (description != null) {
|
||||
usage.append(" (").append(description).append(")");
|
||||
}
|
||||
|
||||
for (OptionData option : options) {
|
||||
usage.append("\n");
|
||||
if (group) usage.append(" ");
|
||||
usage.append(" - ");
|
||||
if (option.isRequired()) {
|
||||
usage.append("*");
|
||||
}
|
||||
usage.append(option.getName()).append(": ").append(option.getDescription());
|
||||
|
||||
if (option.getMinValue() != null) {
|
||||
usage.append(" [Min value: ").append(option.getMinValue().longValue()).append("]");
|
||||
}
|
||||
|
||||
if (option.getMaxValue() != null) {
|
||||
usage.append(" [Max value: ").append(option.getMaxValue().longValue()).append("]");
|
||||
}
|
||||
|
||||
if (option.getMinLength() != null) {
|
||||
usage.append(" [Min length: ").append(option.getMinLength().longValue()).append("]");
|
||||
}
|
||||
|
||||
if (option.getMaxLength() != null) {
|
||||
usage.append(" [Max length: ").append(option.getMaxLength().longValue()).append("]");
|
||||
}
|
||||
|
||||
List<net.dv8tion.jda.api.interactions.commands.Command.Choice> choices = option.getChoices();
|
||||
if (!choices.isEmpty()) {
|
||||
StringJoiner joiner = new StringJoiner(", ");
|
||||
for (net.dv8tion.jda.api.interactions.commands.Command.Choice choice : choices) {
|
||||
joiner.add(choice.getAsString());
|
||||
}
|
||||
|
||||
usage.append(" [Available choices: ").append(joiner).append("]");
|
||||
}
|
||||
|
||||
Set<ChannelType> requiredChannelTypes = option.getChannelTypes();
|
||||
if (!requiredChannelTypes.isEmpty()) {
|
||||
StringJoiner joiner = new StringJoiner(", ");
|
||||
for (ChannelType type : requiredChannelTypes) {
|
||||
joiner.add(type.name());
|
||||
}
|
||||
|
||||
usage.append(" [Required channel types: ").append(joiner).append("]");
|
||||
}
|
||||
}
|
||||
|
||||
return usage.toString();
|
||||
}
|
||||
}
|
||||
@@ -246,7 +246,7 @@ public class MessageFunction {
|
||||
if (container.getCommand().getDescription() != null) {
|
||||
message += "\n- Description: " + container.getCommand().getDescription();
|
||||
}
|
||||
message += "\n" + container.getCommandOptions().printUsage();
|
||||
message += "\n" + container.printUsage();
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user