Skip to content

Commit 7644cd5

Browse files
author
Kaleidox
committed
fix group registration
1 parent 032fd8a commit 7644cd5

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

src/main/java/org/comroid/interaction/adapter/jda/DiscordCommandRegistrator.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.comroid.api.attr.IntegerAttribute;
2020
import org.comroid.api.data.RegExpUtil;
2121
import org.comroid.api.data.seri.type.ValueType;
22+
import org.comroid.api.func.exc.ThrowingFunction;
2223
import org.comroid.api.tree.Initializable;
2324
import org.comroid.interaction.InteractionCore;
2425
import org.comroid.interaction.component.NameCapitalizer;
@@ -33,6 +34,7 @@
3334
import java.util.Collection;
3435
import java.util.Optional;
3536
import java.util.concurrent.atomic.AtomicLong;
37+
import java.util.logging.Level;
3638
import java.util.stream.Stream;
3739

3840
import static org.comroid.interaction.adapter.jda.JdaAdapter.*;
@@ -85,7 +87,6 @@ public void initialize() {
8587
}
8688

8789
var jda = adp.getJda();
88-
log.info("Upserting %d interactions to discord bot %s".formatted(all.size(), jda.getSelfUser()));
8990

9091
RestAction<?> action = PURGE_COMMANDS.consume() ? jda.retrieveCommands().flatMap(cmds -> {
9192
log.fine("Purging %d previously defined commands".formatted(cmds.size()));
@@ -99,7 +100,10 @@ public void initialize() {
99100

100101
for (var data : all) action = action.flatMap($ -> jda.upsertCommand(data));
101102

102-
action.queue();
103+
action.submit().thenAccept($ -> log.info("Upserted %d interactions to discord bot %s".formatted(all.size(), jda.getSelfUser()))).exceptionally(t -> {
104+
log.log(Level.SEVERE, "Failed to upsert interactions", t);
105+
return null;
106+
});
103107
}
104108

105109
static void initCommandData(InteractionNode node, CommandData data) {
@@ -108,7 +112,10 @@ static void initCommandData(InteractionNode node, CommandData data) {
108112
}
109113

110114
static void initDefaultPermission(Stream<String> permissions, CommandData data) {
111-
var permissionMask = permissions.flatMap(perm -> Optional.ofNullable(Permission.valueOf(perm.toUpperCase()))
115+
var permissionMask = permissions.flatMap(perm -> Optional.of(perm)
116+
.filter(str -> str.matches("\\D+"))
117+
.map(String::toUpperCase)
118+
.map(ThrowingFunction.fallback(Permission::valueOf))
112119
.map(Stream::of)
113120
.orElseGet(() -> Stream.of(perm)
114121
.filter(it -> it.matches("\\d+"))

src/main/java/org/comroid/interaction/registry/RegistryHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static Collection<InteractionNode> compileFromClass(@NonNull RegistrySour
4141

4242
for (var method : type.getMethods()) {
4343
var mod = method.getModifiers();
44-
if (!Modifier.isStatic(mod)) continue;
44+
if (source instanceof InstanceRegistry reg && reg.getInstance() != null && Modifier.isStatic(mod)) continue;
4545

4646
var callable = constructMethod(source, method, base == null ? null : base.toInteractionElement()).orElse(null);
4747
if (callable == null) continue;

0 commit comments

Comments
 (0)