Kaktushose / jda-commands

A declarative, annotation driven command library for JDA
https://github.com/Kaktushose/jda-commands/wiki
Apache License 2.0
67 stars 11 forks source link

[BUG] Command execution fails with IndexOutOfBoundsException #124

Closed raffel080108 closed 1 year ago

raffel080108 commented 1 year ago

I have this command (I replaced the actual command logic with some basic test printing, to make sure it's not an issue on my end)

package raffel080108.wafflebot.commands.addfilter;

import com.github.kaktushose.jda.commands.annotations.interactions.*;
import com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;

@Interaction
public class AddTextFilter {
    @SlashCommand(value = "addtextfilter",
            desc = "Adds an Auto-Delete filter, which will delete messages based on a text-match, to a channel",
            enabledFor = Permission.ADMINISTRATOR, isGuildOnly = true)
    public void addTextFilterCommand(CommandEvent event,
                                     @Param(name = "type", value = "If the filter should be inclusive or exclusive")
                                         @Choices({"Inclusive", "Exclusive"}) String type,
                                     @Param(name = "text", value = "The text to match") String text,
                                     @Param(name = "is-regex", value = "If the given text should be interpreted as regex match instead of literal (defaults to false)")
                                     @Optional("false") String isRegex,
                                     @Param(name = "channel", value = "The channel to add the filter to") @Optional TextChannel channel) {
        event.reply("test");
        System.out.println("test");
    }
}

When trying to execute the command an exception is thrown

java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 2
    at com.github.kaktushose.jda.commands.dispatching.adapter.TypeAdapterRegistry.adapt(TypeAdapterRegistry.java:174)
    at com.github.kaktushose.jda.commands.dispatching.commands.CommandDispatcher.onEvent(CommandDispatcher.java:99)
    at com.github.kaktushose.jda.commands.dispatching.commands.CommandDispatcher.onEvent(CommandDispatcher.java:29)
    at com.github.kaktushose.jda.commands.dispatching.DispatcherSupervisor.onGenericEvent(DispatcherSupervisor.java:84)
    at com.github.kaktushose.jda.commands.dispatching.ParserSupervisor.onGenericEvent(ParserSupervisor.java:87)
    at net.dv8tion.jda.api.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:425)
    at net.dv8tion.jda.api.hooks.InterfacedEventManager.handle(InterfacedEventManager.java:96)
    at net.dv8tion.jda.internal.hooks.EventManagerProxy.handleInternally(EventManagerProxy.java:88)
    at net.dv8tion.jda.internal.hooks.EventManagerProxy.handle(EventManagerProxy.java:70)
    at net.dv8tion.jda.internal.JDAImpl.handleEvent(JDAImpl.java:176)
    at net.dv8tion.jda.internal.handle.InteractionCreateHandler.handleCommand(InteractionCreateHandler.java:126)
    at net.dv8tion.jda.internal.handle.InteractionCreateHandler.handleInternally(InteractionCreateHandler.java:97)
    at net.dv8tion.jda.internal.handle.SocketHandler.handle(SocketHandler.java:39)
    at net.dv8tion.jda.internal.requests.WebSocketClient.onDispatch(WebSocketClient.java:1014)
    at net.dv8tion.jda.internal.requests.WebSocketClient.onEvent(WebSocketClient.java:900)
    at net.dv8tion.jda.internal.requests.WebSocketClient.handleEvent(WebSocketClient.java:878)
    at net.dv8tion.jda.internal.requests.WebSocketClient.onBinaryMessage(WebSocketClient.java:1053)
    at com.neovisionaries.ws.client.ListenerManager.callOnBinaryMessage(ListenerManager.java:385)
    at com.neovisionaries.ws.client.ReadingThread.callOnBinaryMessage(ReadingThread.java:276)
    at com.neovisionaries.ws.client.ReadingThread.handleBinaryFrame(ReadingThread.java:996)
    at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:755)
    at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:108)
    at com.neovisionaries.ws.client.ReadingThread.runMain(ReadingThread.java:64)
    at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45)

As said, in it's current form, the command does nothing but print a value and reply with a random string, so it has to be something with the command itself that is going wrong... This is the entire debug log:

"C:\Program Files\Java\jdk-20\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1.1\lib\idea_rt.jar=58023:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1.1\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Computer\Java\WaffleBot\target\classes;C:\Users\raffe\.m2\repository\net\dv8tion\JDA\5.0.0-beta.13\JDA-5.0.0-beta.13.jar;C:\Users\raffe\.m2\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;C:\Users\raffe\.m2\repository\com\neovisionaries\nv-websocket-client\2.14\nv-websocket-client-2.14.jar;C:\Users\raffe\.m2\repository\com\squareup\okhttp3\okhttp\4.10.0\okhttp-4.10.0.jar;C:\Users\raffe\.m2\repository\com\squareup\okio\okio-jvm\3.0.0\okio-jvm-3.0.0.jar;C:\Users\raffe\.m2\repository\org\jetbrains\kotlin\kotlin-stdlib-jdk8\1.5.31\kotlin-stdlib-jdk8-1.5.31.jar;C:\Users\raffe\.m2\repository\org\jetbrains\kotlin\kotlin-stdlib-jdk7\1.5.31\kotlin-stdlib-jdk7-1.5.31.jar;C:\Users\raffe\.m2\repository\org\jetbrains\kotlin\kotlin-stdlib-common\1.5.31\kotlin-stdlib-common-1.5.31.jar;C:\Users\raffe\.m2\repository\org\jetbrains\kotlin\kotlin-stdlib\1.6.20\kotlin-stdlib-1.6.20.jar;C:\Users\raffe\.m2\repository\club\minnced\opus-java\1.1.1\opus-java-1.1.1.jar;C:\Users\raffe\.m2\repository\club\minnced\opus-java-api\1.1.1\opus-java-api-1.1.1.jar;C:\Users\raffe\.m2\repository\net\java\dev\jna\jna\4.4.0\jna-4.4.0.jar;C:\Users\raffe\.m2\repository\club\minnced\opus-java-natives\1.1.1\opus-java-natives-1.1.1.jar;C:\Users\raffe\.m2\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\raffe\.m2\repository\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;C:\Users\raffe\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.14.1\jackson-core-2.14.1.jar;C:\Users\raffe\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.14.1\jackson-databind-2.14.1.jar;C:\Users\raffe\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.14.1\jackson-annotations-2.14.1.jar;C:\Users\raffe\.m2\repository\com\github\kaktushose\jda-commands\4.0.0-alpha.2\jda-commands-4.0.0-alpha.2.jar;C:\Users\raffe\.m2\repository\org\reflections\reflections\0.10.2\reflections-0.10.2.jar;C:\Users\raffe\.m2\repository\org\javassist\javassist\3.28.0-GA\javassist-3.28.0-GA.jar;C:\Users\raffe\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\Users\raffe\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\raffe\.m2\repository\org\jetbrains\annotations\24.0.1\annotations-24.0.1.jar;C:\Users\raffe\.m2\repository\org\xerial\sqlite-jdbc\3.42.0.0\sqlite-jdbc-3.42.0.0.jar;C:\Users\raffe\.m2\repository\commons-io\commons-io\2.13.0\commons-io-2.13.0.jar;C:\Users\raffe\.m2\repository\com\github\ben-manes\caffeine\caffeine\3.1.8\caffeine-3.1.8.jar;C:\Users\raffe\.m2\repository\org\checkerframework\checker-qual\3.37.0\checker-qual-3.37.0.jar;C:\Users\raffe\.m2\repository\com\google\errorprone\error_prone_annotations\2.21.1\error_prone_annotations-2.21.1.jar;C:\Users\raffe\.m2\repository\ch\qos\logback\logback-classic\1.2.9\logback-classic-1.2.9.jar;C:\Users\raffe\.m2\repository\ch\qos\logback\logback-core\1.2.9\logback-core-1.2.9.jar raffel080108.wafflebot.WaffleBot
Using bot-token: "[REDACTED]"
17:46:07.769 JDA RateLimit-Worker 1                        Requester       DEBUG  Received response with following cf-rays: [7f938710b9cb1626-DUS]
17:46:07.907 JDA RateLimit-Worker 1                        RestRateLimiter DEBUG  Caching bucket hash GET/users/@me -> f7ead6a7674e5a323d93786263b66cb1
17:46:07.910 main                                          JDA             INFO   Login Successful!
17:46:07.955 main                                          SessionControll DEBUG  Creating new worker handle for shard pool 0
17:46:07.956 main                                          SessionControll DEBUG  Running worker
17:46:07.956 ConcurrentSessionController-Worker            SessionControll DEBUG  Running connect node for shard JDA.ShardInfo(currentShard=[0 / 1], totalShards=1)
17:46:07.959 main                                          JDACommands     INFO   Starting JDA-Commands...
17:46:07.961 main                                          DependencyInjec DEBUG  Indexing dependency providers...
17:46:08.012 main                                          Reflections     INFO   Reflections took 39 ms to scan 1 urls, producing 1 keys and 10 values
17:46:08.018 main                                          FilterRegistry  DEBUG  Registered filter com.github.kaktushose.jda.commands.dispatching.filter.impl.UserMuteFilter for position BEFORE_ROUTING
17:46:08.019 main                                          FilterRegistry  DEBUG  Registered filter com.github.kaktushose.jda.commands.dispatching.filter.impl.PermissionsFilter for position BEFORE_ADAPTING
17:46:08.019 main                                          FilterRegistry  DEBUG  Registered filter com.github.kaktushose.jda.commands.dispatching.filter.impl.DirectMessageFilter for position BEFORE_ADAPTING
17:46:08.020 main                                          FilterRegistry  DEBUG  Registered filter com.github.kaktushose.jda.commands.dispatching.filter.impl.CooldownFilter for position BEFORE_ADAPTING
17:46:08.021 main                                          FilterRegistry  DEBUG  Registered filter com.github.kaktushose.jda.commands.dispatching.filter.impl.ConstraintFilter for position BEFORE_EXECUTION
17:46:08.022 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.ByteAdapter for type java.lang.Byte
17:46:08.022 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.ShortAdapter for type java.lang.Short
17:46:08.023 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.IntegerAdapter for type java.lang.Integer
17:46:08.023 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.LongAdapter for type java.lang.Long
17:46:08.023 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.FloatAdapter for type java.lang.Float
17:46:08.023 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.DoubleAdapter for type java.lang.Double
17:46:08.023 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.CharacterAdapter for type java.lang.Character
17:46:08.024 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.BooleanAdapter for type java.lang.Boolean
17:46:08.024 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.TypeAdapterRegistry$$Lambda$226/0x0000000801271840 for type java.lang.String
17:46:08.024 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.TypeAdapterRegistry$$Lambda$227/0x0000000801271a60 for type [Ljava.lang.String;
17:46:08.025 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.MemberAdapter for type net.dv8tion.jda.api.entities.Member
17:46:08.025 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.UserAdapter for type net.dv8tion.jda.api.entities.User
17:46:08.025 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.GuildChannelAdapter for type net.dv8tion.jda.api.entities.channel.middleman.GuildChannel
17:46:08.026 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.GuildMessageChannelAdapter for type net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel
17:46:08.026 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.ThreadChannelAdapter for type net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel
17:46:08.026 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.TextChannelAdapter for type net.dv8tion.jda.api.entities.channel.concrete.TextChannel
17:46:08.027 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.NewsChannelAdapter for type net.dv8tion.jda.api.entities.channel.concrete.NewsChannel
17:46:08.027 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.AudioChannelAdapter for type net.dv8tion.jda.api.entities.channel.middleman.AudioChannel
17:46:08.027 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.VoiceChannelAdapter for type net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel
17:46:08.028 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.StageChannelAdapter for type net.dv8tion.jda.api.entities.channel.concrete.StageChannel
17:46:08.028 main                                          TypeAdapterRegi DEBUG  Registered adapter com.github.kaktushose.jda.commands.dispatching.adapter.impl.RoleAdapter for type net.dv8tion.jda.api.entities.Role
17:46:08.033 main                                          ValidatorRegist DEBUG  Registered validator com.github.kaktushose.jda.commands.dispatching.validation.impl.MinimumValidator for annotation com.github.kaktushose.jda.commands.annotations.constraints.Min
17:46:08.034 main                                          ValidatorRegist DEBUG  Registered validator com.github.kaktushose.jda.commands.dispatching.validation.impl.MaximumValidator for annotation com.github.kaktushose.jda.commands.annotations.constraints.Max
17:46:08.034 main                                          ValidatorRegist DEBUG  Registered validator com.github.kaktushose.jda.commands.dispatching.validation.impl.RoleValidator for annotation com.github.kaktushose.jda.commands.annotations.constraints.Role
17:46:08.035 main                                          ValidatorRegist DEBUG  Registered validator com.github.kaktushose.jda.commands.dispatching.validation.impl.NotRoleValidator for annotation com.github.kaktushose.jda.commands.annotations.constraints.NotRole
17:46:08.035 main                                          ValidatorRegist DEBUG  Registered validator com.github.kaktushose.jda.commands.dispatching.validation.impl.PermissionValidator for annotation com.github.kaktushose.jda.commands.annotations.constraints.Perm
17:46:08.036 main                                          ValidatorRegist DEBUG  Registered validator com.github.kaktushose.jda.commands.dispatching.validation.impl.NotPermissionValidator for annotation com.github.kaktushose.jda.commands.annotations.constraints.NotPerm
17:46:08.037 main                                          ValidatorRegist DEBUG  Registered validator com.github.kaktushose.jda.commands.dispatching.validation.impl.UserValidator for annotation com.github.kaktushose.jda.commands.annotations.constraints.User
17:46:08.037 main                                          ValidatorRegist DEBUG  Registered validator com.github.kaktushose.jda.commands.dispatching.validation.impl.NotUserValidator for annotation com.github.kaktushose.jda.commands.annotations.constraints.NotUser
17:46:08.040 main                                          DispatcherSuper DEBUG  Registered dispatcher com.github.kaktushose.jda.commands.dispatching.commands.CommandDispatcher for event CommandContext
17:46:08.041 main                                          DispatcherSuper DEBUG  Registered dispatcher com.github.kaktushose.jda.commands.dispatching.buttons.ButtonDispatcher for event ButtonContext
17:46:08.042 main                                          ParserSuperviso DEBUG  Registered parser com.github.kaktushose.jda.commands.dispatching.commands.CommandParser for event SlashCommandInteractionEvent
17:46:08.042 main                                          ParserSuperviso DEBUG  Registered parser com.github.kaktushose.jda.commands.dispatching.buttons.ButtonParser for event ButtonInteractionEvent
17:46:08.043 main                                          ImplementationR DEBUG  Indexing custom implementations...
17:46:08.048 main                                          Reflections     INFO   Reflections took 5 ms to scan 1 urls, producing 0 keys and 0 values
17:46:08.051 main                                          InteractionRegi DEBUG  Indexing controllers...
17:46:08.058 main                                          Reflections     INFO   Reflections took 7 ms to scan 1 urls, producing 1 keys and 10 values
17:46:08.063 main                                          InteractionRegi DEBUG  Found controller raffel080108.wafflebot.commands.addfilter.AddTextFilter
17:46:08.076 main                                          InteractionRegi DEBUG  Registered controller ControllerDefinition{commands=[SlashCommandDefinition{name='addtextfilter', description=Adds an Auto-Delete filter, which will delete messages based on a text-match, to a channel, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='type', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='text', constraints=[]}, {java.lang.String, isOptional=true, defaultValue='false', isPrimitive=false, name='is-regex', constraints=[]}, {net.dv8tion.jda.api.entities.channel.concrete.TextChannel, isOptional=true, defaultValue='null', isPrimitive=false, name='channel', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='AddTextFilter.addTextFilterCommand', method=public void raffel080108.wafflebot.commands.addfilter.AddTextFilter.addTextFilterCommand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent,java.lang.String,java.lang.String,java.lang.String,net.dv8tion.jda.api.entities.channel.concrete.TextChannel)}], buttons=[]}
17:46:08.090 main                                          InteractionRegi DEBUG  Found controller raffel080108.wafflebot.commands.SetMessageLogsChannel
17:46:08.090 main                                          InteractionRegi DEBUG  Registered controller ControllerDefinition{commands=[SlashCommandDefinition{name='setmessagelogschannel', description=Sets the channel that Message-Logs will be sent to, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}, {net.dv8tion.jda.api.entities.channel.concrete.TextChannel, isOptional=true, defaultValue='null', isPrimitive=false, name='channel', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='SetMessageLogsChannel.setMessageLogsChannelCommand', method=public void raffel080108.wafflebot.commands.SetMessageLogsChannel.setMessageLogsChannelCommand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent,net.dv8tion.jda.api.entities.channel.concrete.TextChannel)}], buttons=[]}
17:46:08.090 main                                          InteractionRegi DEBUG  Found controller raffel080108.wafflebot.commands.toggle.ToggleModule
17:46:08.091 main                                          InteractionRegi DEBUG  Registered controller ControllerDefinition{commands=[SlashCommandDefinition{name='togglemodule', description=Toggles a module of the bot for this server, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='module', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='ToggleModule.toggleModuleCommmand', method=public void raffel080108.wafflebot.commands.toggle.ToggleModule.toggleModuleCommmand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent,java.lang.String)}], buttons=[]}
17:46:08.091 main                                          InteractionRegi DEBUG  Found controller raffel080108.wafflebot.commands.addfilter.AddAttachmentsFilter
17:46:08.091 main                                          InteractionRegi DEBUG  Registered controller ControllerDefinition{commands=[SlashCommandDefinition{name='addattachmentsfilter', description=Adds an Auto-Delete filter, which will delete messages based on attachment-presence, to a channel, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='type', constraints=[]}, {net.dv8tion.jda.api.entities.channel.concrete.TextChannel, isOptional=true, defaultValue='null', isPrimitive=false, name='channel', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='AddAttachmentsFilter.addAttachmentsFilterCommand', method=public void raffel080108.wafflebot.commands.addfilter.AddAttachmentsFilter.addAttachmentsFilterCommand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent,java.lang.String,net.dv8tion.jda.api.entities.channel.concrete.TextChannel)}], buttons=[]}
17:46:08.091 main                                          InteractionRegi DEBUG  Found controller raffel080108.wafflebot.commands.EditChannelPermissions
17:46:08.094 main                                          InteractionRegi DEBUG  Registered controller ControllerDefinition{commands=[SlashCommandDefinition{name='editchannelpermissions', description=Allows updating of multiple channels, setting multiple permission overrides for multiple roles, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='roles', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='permissions', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='type', constraints=[]}, {java.lang.String, isOptional=true, defaultValue='null', isPrimitive=false, name='channels', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='EditChannelPermissions.editChannelPermissionsCommand', method=public void raffel080108.wafflebot.commands.EditChannelPermissions.editChannelPermissionsCommand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent,java.lang.String,java.lang.String,java.lang.String,java.lang.String)}], buttons=[]}
17:46:08.094 main                                          InteractionRegi DEBUG  Found controller raffel080108.wafflebot.commands.FilterModeHelp
17:46:08.095 main                                          InteractionRegi DEBUG  Registered controller ControllerDefinition{commands=[SlashCommandDefinition{name='filtermodehelp', description=Shows descriptions about filter-modes, which can be set for channels, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='FilterModeHelp.filterModeHelpCommand', method=public void raffel080108.wafflebot.commands.FilterModeHelp.filterModeHelpCommand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent)}], buttons=[]}
17:46:08.095 main                                          InteractionRegi DEBUG  Found controller raffel080108.wafflebot.commands.addfilter.AddAllFilter
17:46:08.095 main                                          InteractionRegi DEBUG  Registered controller ControllerDefinition{commands=[SlashCommandDefinition{name='addallfilter', description=Adds an Auto-Delete filter. which will delete all messages. to a channel, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}, {net.dv8tion.jda.api.entities.channel.concrete.TextChannel, isOptional=true, defaultValue='null', isPrimitive=false, name='channel', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='AddAllFilter.addAllFilterCommand', method=public void raffel080108.wafflebot.commands.addfilter.AddAllFilter.addAllFilterCommand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent,net.dv8tion.jda.api.entities.channel.concrete.TextChannel)}], buttons=[]}
17:46:08.096 main                                          InteractionRegi DEBUG  Found controller raffel080108.wafflebot.commands.SetFilterMode
17:46:08.096 main                                          InteractionRegi DEBUG  Registered controller ControllerDefinition{commands=[SlashCommandDefinition{name='setfiltermode', description=Sets the filter-mode for a channel, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='filter-mode', constraints=[]}, {net.dv8tion.jda.api.entities.channel.concrete.TextChannel, isOptional=true, defaultValue='null', isPrimitive=false, name='channel', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='SetFilterMode.setFilterModeCommand', method=public void raffel080108.wafflebot.commands.SetFilterMode.setFilterModeCommand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent,java.lang.String,net.dv8tion.jda.api.entities.channel.concrete.TextChannel)}], buttons=[]}
17:46:08.096 main                                          InteractionRegi DEBUG  Found controller raffel080108.wafflebot.commands.toggle.ToggleIgnoreBots
17:46:08.098 main                                          InteractionRegi DEBUG  Registered controller ControllerDefinition{commands=[SlashCommandDefinition{name='toggleignorebots', description=Toggles whether bots are ignored by a module of the bot for this server, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='module', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='ToggleIgnoreBots.toggleIgnoreBotsCommand', method=public void raffel080108.wafflebot.commands.toggle.ToggleIgnoreBots.toggleIgnoreBotsCommand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent,java.lang.String)}], buttons=[]}
17:46:08.098 main                                          InteractionRegi DEBUG  Found controller raffel080108.wafflebot.commands.SetEmbedColor
17:46:08.100 main                                          InteractionRegi DEBUG  Registered controller ControllerDefinition{commands=[SlashCommandDefinition{name='setembedcolor', description=Sets the color that the bot will use for a certain type of embed, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='embed-type', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='color', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='SetEmbedColor.setEmbedColorCommand', method=public void raffel080108.wafflebot.commands.SetEmbedColor.setEmbedColorCommand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent,java.lang.String,java.lang.String)}], buttons=[]}
17:46:08.100 main                                          InteractionRegi DEBUG  Successfully registered 10 controller(s) with a total of 10 interaction(s)!
17:46:08.101 main                                          SlashCommandUpd DEBUG  Updating guild slash commands...
17:46:08.103 main                                          SlashCommandUpd DEBUG  Generated command tree:

17:46:08.103 main                                          SlashCommandUpd DEBUG  Using commands: []
17:46:08.106 main                                          SlashCommandUpd DEBUG  Updating global slash commands...
17:46:08.109 main                                          SlashCommandUpd DEBUG  Generated command tree:

├── editchannelpermissions
├── togglemodule
├── filtermodehelp
├── toggleignorebots
├── setfiltermode
├── addattachmentsfilter
├── setmessagelogschannel
├── addtextfilter
├── addallfilter
└── setembedcolor

17:46:08.110 main                                          SlashCommandUpd DEBUG  Using commands: [editchannelpermissions, togglemodule, filtermodehelp, toggleignorebots, setfiltermode, addattachmentsfilter, setmessagelogschannel, addtextfilter, addallfilter, setembedcolor]
17:46:08.138 main                                          SlashCommandUpd DEBUG  Done!
17:46:08.138 main                                          JDACommands     INFO   Finished loading!
17:46:08.232 JDA MainWS-WriteThread                        WebSocketClient INFO   Connected to WebSocket
17:46:08.232 JDA MainWS-WriteThread                        WebSocketClient DEBUG  Connected with gateway intents: 1100011011011011001101
17:46:08.232 JDA MainWS-WriteThread                        WebSocketClient DEBUG  Sending Identify-packet...
17:46:08.238 JDA MainWS-ReadThread                         WebSocketClient DEBUG  Got HELLO packet (OP 10). Initializing keep-alive.
17:46:08.444 JDA RateLimit-Worker 2                        Requester       DEBUG  Received response with following cf-rays: [7f9387140d541626-DUS]
17:46:08.456 JDA RateLimit-Worker 2                        RestRateLimiter DEBUG  Caching bucket hash PUT/applications/{application_id}/commands -> a3b974ef6eb1c925dd4ceb42f4db26fd
17:46:08.549 JDA MainWS-ReadThread                         GuildSetupContr DEBUG  Setting incomplete count to 1
17:46:08.549 JDA MainWS-ReadThread                         GuildSetupContr DEBUG  Starting 75 second timeout for 1 guilds
17:46:08.592 JDA MainWS-ReadThread                         EntityBuilder   DEBUG  Finished setup for guild with a null owner. GuildId: 1127263363416727643 OwnerId: 686998854134005805
17:46:08.594 JDA MainWS-ReadThread                         JDA             INFO   Finished Loading!
=====
Bot online!

Waffle-Bot
1128691947838636194
=====
17:46:08.596 JDA MainWS-ReadThread                         GuildSetupContr DEBUG  Finished setup for guild 1127263363416727643 firing cached events 0
17:46:15.123 JDA MainWS-ReadThread                         ParserSuperviso DEBUG  Received SlashCommandInteractionEvent
17:46:15.123 JDA MainWS-ReadThread                         ParserSuperviso DEBUG  Calling com.github.kaktushose.jda.commands.dispatching.commands.CommandParser
17:46:15.124 JDA MainWS-ReadThread                         DispatcherSuper DEBUG  Received CommandContext
17:46:15.124 JDA MainWS-ReadThread                         DispatcherSuper DEBUG  Calling com.github.kaktushose.jda.commands.dispatching.commands.CommandDispatcher
17:46:15.124 JDA MainWS-ReadThread                         CommandDispatch DEBUG  Applying filters in phase BEFORE_ROUTING...
17:46:15.124 JDA MainWS-ReadThread                         UserMuteFilter  DEBUG  Checking mutes...
17:46:15.124 JDA MainWS-ReadThread                         UserMuteFilter  DEBUG  All mute checks passed
17:46:15.124 JDA MainWS-ReadThread                         CommandDispatch DEBUG  Input matches command: SlashCommandDefinition{name='addtextfilter', description=Adds an Auto-Delete filter, which will delete messages based on a text-match, to a channel, parameters=[{com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent, isOptional=false, defaultValue='null', isPrimitive=false, name='arg0', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='type', constraints=[]}, {java.lang.String, isOptional=false, defaultValue='null', isPrimitive=false, name='text', constraints=[]}, {java.lang.String, isOptional=true, defaultValue='false', isPrimitive=false, name='is-regex', constraints=[]}, {net.dv8tion.jda.api.entities.channel.concrete.TextChannel, isOptional=true, defaultValue='null', isPrimitive=false, name='channel', constraints=[]}], permissions=[], cooldown={delay=0, timeUnit=MILLISECONDS}, isDM=true, ephemeral=false, id='AddTextFilter.addTextFilterCommand', method=public void raffel080108.wafflebot.commands.addfilter.AddTextFilter.addTextFilterCommand(com.github.kaktushose.jda.commands.dispatching.commands.CommandEvent,java.lang.String,java.lang.String,java.lang.String,net.dv8tion.jda.api.entities.channel.concrete.TextChannel)}
17:46:15.124 JDA MainWS-ReadThread                         CommandDispatch DEBUG  Acknowledging event
17:46:15.131 JDA MainWS-ReadThread                         CommandDispatch DEBUG  Applying filters in phase BEFORE_ADAPTING...
17:46:15.131 JDA MainWS-ReadThread                         PermissionsFilt DEBUG  Checking permissions...
17:46:15.131 JDA MainWS-ReadThread                         PermissionsFilt DEBUG  All permission checks passed
17:46:15.131 JDA MainWS-ReadThread                         TypeAdapterRegi DEBUG  Type adapting arguments...
17:46:15.133 JDA MainWS-ReadThread                         TypeAdapterRegi DEBUG  Trying to adapt input "Inclusive" to type java.lang.String
17:46:15.133 JDA MainWS-ReadThread                         TypeAdapterRegi DEBUG  Added "Inclusive" to the argument list
17:46:15.133 JDA MainWS-ReadThread                         TypeAdapterRegi DEBUG  Trying to adapt input "test" to type java.lang.String
17:46:15.133 JDA MainWS-ReadThread                         TypeAdapterRegi DEBUG  Added "test" to the argument list
17:46:15.133 JDA MainWS-ReadThread                         TypeAdapterRegi DEBUG  Trying to adapt input "false" to type java.lang.String
17:46:15.133 JDA MainWS-ReadThread                         TypeAdapterRegi DEBUG  Added "false" to the argument list
17:46:15.135 JDA MainWS-ReadThread                         DispatcherSuper ERROR  Command execution failed!
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 2
    at com.github.kaktushose.jda.commands.dispatching.adapter.TypeAdapterRegistry.adapt(TypeAdapterRegistry.java:174)
    at com.github.kaktushose.jda.commands.dispatching.commands.CommandDispatcher.onEvent(CommandDispatcher.java:99)
    at com.github.kaktushose.jda.commands.dispatching.commands.CommandDispatcher.onEvent(CommandDispatcher.java:29)
    at com.github.kaktushose.jda.commands.dispatching.DispatcherSupervisor.onGenericEvent(DispatcherSupervisor.java:84)
    at com.github.kaktushose.jda.commands.dispatching.ParserSupervisor.onGenericEvent(ParserSupervisor.java:87)
    at net.dv8tion.jda.api.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:425)
    at net.dv8tion.jda.api.hooks.InterfacedEventManager.handle(InterfacedEventManager.java:96)
    at net.dv8tion.jda.internal.hooks.EventManagerProxy.handleInternally(EventManagerProxy.java:88)
    at net.dv8tion.jda.internal.hooks.EventManagerProxy.handle(EventManagerProxy.java:70)
    at net.dv8tion.jda.internal.JDAImpl.handleEvent(JDAImpl.java:176)
    at net.dv8tion.jda.internal.handle.InteractionCreateHandler.handleCommand(InteractionCreateHandler.java:126)
    at net.dv8tion.jda.internal.handle.InteractionCreateHandler.handleInternally(InteractionCreateHandler.java:97)
    at net.dv8tion.jda.internal.handle.SocketHandler.handle(SocketHandler.java:39)
    at net.dv8tion.jda.internal.requests.WebSocketClient.onDispatch(WebSocketClient.java:1014)
    at net.dv8tion.jda.internal.requests.WebSocketClient.onEvent(WebSocketClient.java:900)
    at net.dv8tion.jda.internal.requests.WebSocketClient.handleEvent(WebSocketClient.java:878)
    at net.dv8tion.jda.internal.requests.WebSocketClient.onBinaryMessage(WebSocketClient.java:1053)
    at com.neovisionaries.ws.client.ListenerManager.callOnBinaryMessage(ListenerManager.java:385)
    at com.neovisionaries.ws.client.ReadingThread.callOnBinaryMessage(ReadingThread.java:276)
    at com.neovisionaries.ws.client.ReadingThread.handleBinaryFrame(ReadingThread.java:996)
    at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:755)
    at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:108)
    at com.neovisionaries.ws.client.ReadingThread.runMain(ReadingThread.java:64)
    at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45)
17:46:15.611 JDA RateLimit-Worker 1                        Requester       DEBUG  Received response with following cf-rays: [7f93873fbaae1626-DUS]
17:46:15.612 JDA RateLimit-Worker 1                        RestRateLimiter DEBUG  Caching bucket hash POST/interactions/{interaction_id}/{interaction_token}/callback -> 432f6223265d156004ac81366c5a948f
17:46:37.388 JDA RateLimit-Worker 3                        RestRateLimiter DEBUG  Removed 5 expired buckets
17:47:07.395 JDA RateLimit-Worker 2                        RestRateLimiter DEBUG  Removed 1 expired buckets
raffel080108 commented 1 year ago

The problem seems to be the amount of arguments - If I remove one (or more) arguments, the command works perfectly fine. I tried removing different arguments and the result was the same

Kaktushose commented 1 year ago

yes, it's an internal issue. I believe its related to optional arguments

Kaktushose commented 1 year ago

fixed with b2b5333 will be included in alpha.3 release