Skip to content

Commit e04c42e

Browse files
author
burdo
committed
basic top-rank synchronization
1 parent 08caf07 commit e04c42e

9 files changed

Lines changed: 35 additions & 30 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ dependencies {
4747
compileOnly 'jakarta.persistence:jakarta.persistence-api:3.+'
4848
compileOnly 'org.apache.tomcat:tomcat-annotations-api:10.+'
4949

50-
compileOnly 'net.dv8tion:JDA:5.+'
50+
compileOnly 'net.dv8tion:JDA:6.+'
5151

5252
compileOnly 'org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT'
5353
compileOnly 'net.kyori:adventure-api:4.11.+'

src/main/java/org/comroid/api/config/ConfigurationManager.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@
33
import lombok.SneakyThrows;
44
import lombok.Value;
55
import lombok.experimental.NonFinal;
6+
import net.dv8tion.jda.api.components.actionrow.ActionRow;
7+
import net.dv8tion.jda.api.components.buttons.Button;
8+
import net.dv8tion.jda.api.components.label.Label;
9+
import net.dv8tion.jda.api.components.selections.EntitySelectMenu;
10+
import net.dv8tion.jda.api.components.selections.StringSelectMenu;
11+
import net.dv8tion.jda.api.components.textinput.TextInput;
12+
import net.dv8tion.jda.api.components.textinput.TextInputStyle;
613
import net.dv8tion.jda.api.entities.IMentionable;
714
import net.dv8tion.jda.api.entities.ISnowflake;
815
import net.dv8tion.jda.api.entities.Message;
@@ -18,12 +25,7 @@
1825
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
1926
import net.dv8tion.jda.api.hooks.ListenerAdapter;
2027
import net.dv8tion.jda.api.interactions.InteractionHook;
21-
import net.dv8tion.jda.api.interactions.components.buttons.Button;
22-
import net.dv8tion.jda.api.interactions.components.selections.EntitySelectMenu;
23-
import net.dv8tion.jda.api.interactions.components.selections.StringSelectMenu;
24-
import net.dv8tion.jda.api.interactions.components.text.TextInput;
25-
import net.dv8tion.jda.api.interactions.components.text.TextInputStyle;
26-
import net.dv8tion.jda.api.interactions.modals.Modal;
28+
import net.dv8tion.jda.api.modals.Modal;
2729
import org.comroid.annotations.Ignore;
2830
import org.comroid.annotations.internal.Annotations;
2931
import org.comroid.api.attr.Aliased;
@@ -315,7 +317,7 @@ else if (Role.class.isAssignableFrom(propClass)) def = EntitySelectMenu.DefaultV
315317
.toList());
316318

317319
// send mentionable selection box
318-
channel.sendMessage(text).addActionRow(builder.build()).queue();
320+
channel.sendMessage(text).addComponents(ActionRow.of(builder.build())).queue();
319321
} else break ifs;
320322
} else if (propClass.isEnum()) {
321323
// prepare enum selection box
@@ -329,7 +331,7 @@ else if (Role.class.isAssignableFrom(propClass)) def = EntitySelectMenu.DefaultV
329331
.orElseGet(field::getName), field.getName(), Annotations.descriptionText(field)));
330332

331333
// send enum selection box
332-
channel.sendMessage(text).addActionRow(menu.build()).queue();
334+
channel.sendMessage(text).addComponents(ActionRow.of(menu.build())).queue();
333335
} else if (!propType.isStandard()) {
334336
var from = current;
335337
var struct = DataStructure.of(propClass);
@@ -343,7 +345,7 @@ else if (Role.class.isAssignableFrom(propClass)) def = EntitySelectMenu.DefaultV
343345
}
344346

345347
// just send a simple textbox-based editor message
346-
channel.sendMessage(text).addActionRow(Button.primary(fullName, "Change Value...")).queue();
348+
channel.sendMessage(text).addComponents(ActionRow.of(Button.primary(fullName, "Change Value..."))).queue();
347349
}
348350

349351
@Override
@@ -356,9 +358,9 @@ public void onButtonInteraction(@NotNull ButtonInteractionEvent event) {
356358
event.deferReply().submit().thenCompose(hook -> {
357359
if (checkOutOfContext(event)) return CompletableFuture.completedFuture(null);
358360
event.replyModal(Modal.create(event.getComponentId(), event.getComponentId())
359-
.addActionRow(TextInput.create("newValue", "New Value", TextInputStyle.SHORT)
361+
.addComponents(Label.of("New Value", TextInput.create("newValue", TextInputStyle.SHORT)
360362
.setPlaceholder(config.get(event.getComponentId().split("\\.")).asString())
361-
.build())
363+
.build()))
362364
.build()).queue();
363365
return hook.sendMessage("Done!").setEphemeral(false).submit();
364366
}).exceptionally(Debug.exceptionLogger("Internal error when handling interaction"));

src/main/java/org/comroid/api/data/seri/DataNode.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
@Ignore({ Convertible.class, DataStructure.class })
5757
public interface DataNode extends MimeType.Container, StringSerializable, Specifiable<Object> {
5858
static Stream<Entry> properties(final java.lang.Object it) {
59-
if (it instanceof DataNode.Base) return ((DataNode) it).properties();
59+
if (it instanceof Base) return ((DataNode) it).properties();
6060
if (it instanceof Map<?, ?> map)
6161
return map.entrySet().stream().collect(new Collector<Map.Entry<?, ?>, List<Entry>, Stream<Entry>>() {
6262
@Override
@@ -107,7 +107,7 @@ public Set<Characteristics> characteristics() {
107107

108108
static DataNode of(java.lang.Object it) {
109109
if (it == null) return Value.NULL;
110-
else if (it instanceof DataNode.Base) return (DataNode) it;
110+
else if (it instanceof Base) return (DataNode) it;
111111
else if (it instanceof Iterable) {
112112
// handle as array node
113113
var arr = new Array();
@@ -123,7 +123,7 @@ else if (it instanceof Iterable) {
123123
}
124124
}
125125

126-
static DataNode.Plain bytes(byte[] bytes) {
126+
static Plain bytes(byte[] bytes) {
127127
return new Plain(bytes);
128128
}
129129

@@ -377,6 +377,18 @@ public <T> DataNode append(T value) {
377377
return val;
378378
}
379379

380+
@Override
381+
@SneakyThrows
382+
public <R> Wrap<R> as(ValueType<R> type) {
383+
if (!type.isArray()) throw new IllegalArgumentException("Need array type");
384+
var componentType = type.getTargetClass().getComponentType();
385+
var array = (java.lang.Object[]) java.lang.reflect.Array.newInstance(componentType, size());
386+
var me = asArray();
387+
for (var i = 0; i < array.length; i++) array[i] = me.get(i).as(componentType).orElse(null);
388+
//noinspection unchecked
389+
return Wrap.of((R) array);
390+
}
391+
380392
@Override
381393
public Stream<Entry> properties() {
382394
var ls = new ArrayList<Entry>();

src/main/java/org/comroid/api/net/luckperms/model/group/GroupData.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,5 @@
33
import org.comroid.api.net.luckperms.model.node.Node;
44
import org.jetbrains.annotations.Nullable;
55

6-
import java.util.Collection;
7-
8-
public record GroupData(String name, @Nullable String displayName, int weight, Collection<Node> nodes) {
6+
public record GroupData(String name, @Nullable String displayName, int weight, Node[] nodes) {
97
}

src/main/java/org/comroid/api/net/luckperms/model/group/GroupSearchResult.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,5 @@
22

33
import org.comroid.api.net.luckperms.model.node.Node;
44

5-
import java.util.Collection;
6-
7-
public record GroupSearchResult(String name, Collection<Node> results) {
5+
public record GroupSearchResult(String name, Node[] results) {
86
}

src/main/java/org/comroid/api/net/luckperms/model/node/Node.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
import org.comroid.api.net.luckperms.model.dto.ContextEntry;
44

5-
import java.util.Collection;
6-
7-
public record Node(String key, NodeType type, boolean value, Collection<ContextEntry> context) {
5+
public record Node(String key, NodeType type, boolean value, ContextEntry[] context) {
86
public String getKeyValue() {
97
var i = key.lastIndexOf('.');
108
return key.substring(i + 1);
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
package org.comroid.api.net.luckperms.model.track;
22

3-
import java.util.List;
4-
5-
public record TrackData(String name, List<String> groups) {}
3+
public record TrackData(String name, String[] groups) {}

src/main/java/org/comroid/api/net/luckperms/model/user/UserData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
import java.util.UUID;
88

99
public record UserData(
10-
UUID uniqueId, String username, Collection<String> parentGroups, Collection<Node> nodes, Metadata metadata
10+
UUID uniqueId, String username, Collection<String> parentGroups, Node[] nodes, Metadata metadata
1111
) {}

src/main/java/org/comroid/api/net/luckperms/model/user/UserSearchResult.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
import org.comroid.api.net.luckperms.model.node.Node;
44

5-
import java.util.Collection;
65
import java.util.UUID;
76

8-
public record UserSearchResult(UUID uniqueId, Collection<Node> results) {
7+
public record UserSearchResult(UUID uniqueId, Node[] results) {
98
}

0 commit comments

Comments
 (0)