@@ -113,47 +113,43 @@ public void onGenericEvent(@NotNull GenericEvent event) {
113113 bus .publish (event );
114114 }
115115 });
116- bus .flatMap (SlashCommandInteractionEvent .class )
117- .listen ()
118- .subscribeData (event -> manager .execute (JdaCommandAdapter .this ,
119- event .getCommandString ().substring (1 )/*.replaceAll("(\\w+):","$1")*/ .split (" " ),
120- event .getOptions ()
121- .stream ()
122- .collect (Collectors .toMap (OptionMapping ::getName ,
123- mapping -> switch (mapping .getType ()) {
124- case STRING -> mapping .getAsString ();
125- case INTEGER -> mapping .getAsInt ();
126- case BOOLEAN -> mapping .getAsBoolean ();
127- case USER -> mapping .getAsUser ();
128- case CHANNEL -> mapping .getAsChannel ();
129- case ROLE -> mapping .getAsRole ();
130- case MENTIONABLE -> mapping .getAsMentionable ();
131- case NUMBER -> mapping .getAsDouble ();
132- case ATTACHMENT -> mapping .getAsAttachment ();
133- default ->
134- throw new IllegalStateException ("Unexpected value: " + mapping .getType ());
135- })),
136- event .getName (),
137- event ,
138- event .getUser (),
139- event .getMember (),
140- event .getGuild (),
141- event .getChannel ()));
116+ bus .flatMap (SlashCommandInteractionEvent .class ).listen ().subscribeData (event -> {
117+ var commandSplit = event .getCommandString ().split (" " );
118+ if (commandSplit [0 ].startsWith ("/" )) commandSplit [0 ] = commandSplit [0 ].substring (1 );
119+
120+ manager .execute (JdaCommandAdapter .this ,
121+ commandSplit ,
122+ event .getOptions ().stream ().collect (Collectors .toMap (OptionMapping ::getName , mapping -> switch (mapping .getType ()) {
123+ case STRING -> mapping .getAsString ();
124+ case INTEGER -> mapping .getAsInt ();
125+ case BOOLEAN -> mapping .getAsBoolean ();
126+ case USER -> mapping .getAsUser ();
127+ case CHANNEL -> mapping .getAsChannel ();
128+ case ROLE -> mapping .getAsRole ();
129+ case MENTIONABLE -> mapping .getAsMentionable ();
130+ case NUMBER -> mapping .getAsDouble ();
131+ case ATTACHMENT -> mapping .getAsAttachment ();
132+ default -> throw new IllegalStateException ("Unexpected value: " + mapping .getType ());
133+ })),
134+ event .getName (),
135+ event ,
136+ event .getUser (),
137+ event .getMember (),
138+ event .getGuild (),
139+ event .getChannel ());
140+ });
142141 bus .flatMap (CommandAutoCompleteInteractionEvent .class ).listen ().subscribeData (event -> {
143142 var option = event .getFocusedOption ();
144143 var options = manager .autoComplete (JdaCommandAdapter .this ,
145- event .getCommandString ().substring (1 ).split (" " ),
146- option .getName (),
147- option .getValue (),
148- event .getName (),
149- event ,
150- event .getUser (),
151- event .getMember (),
152- event .getGuild (),
153- event .getChannel ())
154- .map (e -> new net .dv8tion .jda .api .interactions .commands .Command .Choice (e .key (), e .description ()))
155- .limit (25 )
156- .toList ();
144+ event .getCommandString ().substring (1 ).split (" " ),
145+ option .getName (),
146+ option .getValue (),
147+ event .getName (),
148+ event ,
149+ event .getUser (),
150+ event .getMember (),
151+ event .getGuild (),
152+ event .getChannel ()).map (e -> new net .dv8tion .jda .api .interactions .commands .Command .Choice (e .key (), e .description ())).limit (25 ).toList ();
157153 event .replyChoices (options ).queue ();
158154 });
159155
@@ -176,14 +172,10 @@ private void registerCommands() {
176172 jda .retrieveCommands ().flatMap (existing -> {
177173 RestAction <?> chain = null ;
178174 if (purgeCommands ) for (var ex : existing )
179- chain = chain == null
180- ? jda .deleteCommandById (ex .getId ())
181- : chain .flatMap ($ -> jda .deleteCommandById (ex .getId ()));
175+ chain = chain == null ? jda .deleteCommandById (ex .getId ()) : chain .flatMap ($ -> jda .deleteCommandById (ex .getId ()));
182176
183177 for (var node : manager .getBaseNodes ()) {
184- if (!purgeCommands && existing .stream ()
185- .map (ICommandReference ::getName )
186- .anyMatch (node .getName ()::equalsIgnoreCase )) continue ;
178+ if (!purgeCommands && existing .stream ().map (ICommandReference ::getName ).anyMatch (node .getName ()::equalsIgnoreCase )) continue ;
187179
188180 SlashCommandData cmd = Commands .slash (node .getName ().toLowerCase (), node .getDescription ());
189181
@@ -196,8 +188,7 @@ private void registerCommands() {
196188 }
197189 case Call call -> {
198190 var perm = call .getAttribute ().permission ();
199- if (perm .matches ("\\ d+" )) cmd .setDefaultPermissions (DefaultMemberPermissions .enabledFor (Long .parseLong (
200- perm )));
191+ if (perm .matches ("\\ d+" )) cmd .setDefaultPermissions (DefaultMemberPermissions .enabledFor (Long .parseLong (perm )));
201192 for (var parameter : call .getParameters ()) {
202193 cmd .addOption (optionType (parameter ),
203194 parameter .name ().toLowerCase (),
@@ -209,9 +200,7 @@ private void registerCommands() {
209200 default -> {}
210201 }
211202
212- chain = (chain == null
213- ? jda .upsertCommand (cmd )
214- : chain .flatMap ($ -> jda .upsertCommand (cmd ))).map (it -> {
203+ chain = (chain == null ? jda .upsertCommand (cmd ) : chain .flatMap ($ -> jda .upsertCommand (cmd ))).map (it -> {
215204 namedCommands .put (it .getFullCommandName (), it );
216205 return it ;
217206 });
@@ -247,8 +236,7 @@ private SubcommandData makeMember(Call call) {
247236 private OptionType optionType (org .comroid .commands .node .Parameter parameter ) {
248237 return Optional .of (parameter .getParam ().getType ()).flatMap (t -> {
249238 if (Boolean .class .isAssignableFrom (t )) return Optional .of (OptionType .BOOLEAN );
250- if (Integer .class .isAssignableFrom (t ) || Long .class .isAssignableFrom (t ))
251- return Optional .of (OptionType .INTEGER );
239+ if (Integer .class .isAssignableFrom (t ) || Long .class .isAssignableFrom (t )) return Optional .of (OptionType .INTEGER );
252240 if (Number .class .isAssignableFrom (t )) return Optional .of (OptionType .NUMBER );
253241 if (User .class .isAssignableFrom (t ) || Member .class .isAssignableFrom (t )) return Optional .of (OptionType .USER );
254242 if (Channel .class .isAssignableFrom (t )) return Optional .of (OptionType .CHANNEL );
@@ -299,9 +287,7 @@ public void handleResponse(CommandUsage cmd, @NotNull Object response, Object...
299287 .thenCompose (identity ())
300288 .exceptionally (Debug .exceptionLogger ("Could not defer reply to command" ));
301289 else handleResponse (msg -> {
302- RestAction <Message > action = e .reply (msg )
303- .setEphemeral (ephemeral )
304- .map (hook -> hook .getCallbackResponse ().getMessage ());
290+ RestAction <Message > action = e .reply (msg ).setEphemeral (ephemeral ).map (hook -> hook .getCallbackResponse ().getMessage ());
305291 if (callback [0 ] != null ) action = action .flatMap (it -> callback [0 ].apply (it ).map ($ -> it ));
306292 return action .submit ();
307293 }, user , body ).exceptionally (Debug .exceptionLogger ("Could not reply to command" ));
@@ -319,8 +305,7 @@ public boolean userHasPermission(CommandUsage usage, Object key) {
319305 return usage .getContext ()
320306 .stream ()
321307 .flatMap (cast (Member .class ))
322- .anyMatch (usr -> usr .getIdLong () == 141476933849448448L /* kaleidox is superadmin for testing purposes */ || usr .hasPermission (
323- permissions ));
308+ .anyMatch (usr -> usr .getIdLong () == 141476933849448448L /* kaleidox is superadmin for testing purposes */ || usr .hasPermission (permissions ));
324309 }
325310
326311 @ Getter
@@ -413,9 +398,7 @@ public Object getFrom(OptionMapping option) {
413398 };
414399
415400 public static Wrap <JdaCommandAdapter .IOptionAdapter > of (final Class <?> type ) {
416- return Wrap .of (Arrays .stream (values ())
417- .filter (adp -> adp .valueType .getTargetClass ().isAssignableFrom (type ))
418- .findAny ());
401+ return Wrap .of (Arrays .stream (values ()).filter (adp -> adp .valueType .getTargetClass ().isAssignableFrom (type )).findAny ());
419402 }
420403
421404 ValueType <?> valueType ;
@@ -497,8 +480,8 @@ public static class PaginatedList<T> extends ListenerAdapter implements Unchecke
497480 @ NonFinal @ Setter @ Nullable Consumer <EmbedBuilder > embedFinalizer ;
498481
499482 public PaginatedList (
500- MessageChannelUnion channel , Supplier <Stream <T >> source , Comparator <T > comparator ,
501- Function < T , MessageEmbed . Field > toField , String title , int perPage
483+ MessageChannelUnion channel , Supplier <Stream <T >> source , Comparator <T > comparator , Function < T , MessageEmbed . Field > toField ,
484+ String title , int perPage
502485 ) {
503486 this .channel = channel ;
504487 this .source = source ;
@@ -584,8 +567,7 @@ protected String pageText() {
584567 return "Page %d / %d" .formatted (page , pageCount ());
585568 }
586569
587- private <R extends MessageRequest <R >> RestAction <List <Void >> message (
588- R request , Function <R , RestAction <Message >> executor ) {
570+ private <R extends MessageRequest <R >> RestAction <List <Void >> message (R request , Function <R , RestAction <Message >> executor ) {
589571 request .setEmbeds (createEmbed ().build ());
590572 var message = executor .apply (request );
591573 return refreshReactions (message );
@@ -594,12 +576,7 @@ private <R extends MessageRequest<R>> RestAction<List<Void>> message(
594576 private EmbedBuilder createEmbed () {
595577 var embedBuilder = new EmbedBuilder ().setTitle (title ).setFooter (pageText ());
596578
597- var entries = source .get ()
598- .sorted (comparator )
599- .skip ((long ) perPage * (page - 1 ))
600- .limit (perPage )
601- .map (toField )
602- .toList ();
579+ var entries = source .get ().sorted (comparator ).skip ((long ) perPage * (page - 1 )).limit (perPage ).map (toField ).toList ();
603580 embedBuilder .getFields ().addAll (entries );
604581 finalizeEmbed (embedBuilder );
605582
@@ -612,27 +589,18 @@ private RestAction<List<Void>> refreshReactions(RestAction<Message> message) {
612589 var emojis = concat (of (EMOJI_DELETE , EMOJI_REFRESH ),
613590 (pageCount <= 9
614591 ? Arrays .stream (EMOJI_NUMBER ).skip (1 ).limit (pageCount )
615- : of (EMOJI_FIRST_PAGE ,
616- EMOJI_PREV_PAGE ,
617- EMOJI_NEXT_PAGE ,
618- EMOJI_LAST_PAGE ))).map (Emoji ::fromUnicode ).toList ();
592+ : of (EMOJI_FIRST_PAGE , EMOJI_PREV_PAGE , EMOJI_NEXT_PAGE , EMOJI_LAST_PAGE ))).map (Emoji ::fromUnicode ).toList ();
619593 return concat (
620594 // remove excess page numbers
621- Arrays .stream (EMOJI_NUMBER )
622- .skip (1 + pageCount ())
623- .map (Emoji ::fromUnicode )
624- .filter (emoji -> msg .getReaction (emoji ) != null ),
595+ Arrays .stream (EMOJI_NUMBER ).skip (1 + pageCount ()).map (Emoji ::fromUnicode ).filter (emoji -> msg .getReaction (emoji ) != null ),
625596 // add new reactions
626597 emojis .stream ().filter (emoji -> msg .getReaction (emoji ) == null )).findAny ().isPresent ();
627598 }, msg -> {
628599 this .message = msg ;
629600 var emojis = concat (of (EMOJI_DELETE , EMOJI_REFRESH ),
630601 (pageCount <= 9
631602 ? Arrays .stream (EMOJI_NUMBER ).skip (1 ).limit (pageCount )
632- : of (EMOJI_FIRST_PAGE ,
633- EMOJI_PREV_PAGE ,
634- EMOJI_NEXT_PAGE ,
635- EMOJI_LAST_PAGE ))).map (Emoji ::fromUnicode ).toList ();
603+ : of (EMOJI_FIRST_PAGE , EMOJI_PREV_PAGE , EMOJI_NEXT_PAGE , EMOJI_LAST_PAGE ))).map (Emoji ::fromUnicode ).toList ();
636604 return RestAction .allOf (concat (
637605 // remove excess page numbers
638606 Arrays .stream (EMOJI_NUMBER )
@@ -641,9 +609,7 @@ private RestAction<List<Void>> refreshReactions(RestAction<Message> message) {
641609 .filter (emoji -> msg .getReaction (emoji ) != null )
642610 .map (msg ::removeReaction ),
643611 // add new reactions
644- emojis .stream ()
645- .filter (emoji -> msg .getReaction (emoji ) == null )
646- .map (msg ::addReaction )).toList ());
612+ emojis .stream ().filter (emoji -> msg .getReaction (emoji ) == null ).map (msg ::addReaction )).toList ());
647613 });
648614 }
649615 }
0 commit comments