diff --git a/build-number.txt b/build-number.txt index 7e39f8d6..e1e0d4f6 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -3115 \ No newline at end of file +3117 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/QueryPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/QueryPlugin.java index 86f99b0b..18f25fc1 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/QueryPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/QueryPlugin.java @@ -107,34 +107,32 @@ public class QueryPlugin implements Listener { if (!(cargo instanceof final TextComponent idTextComponent)) return; final String id = idTextComponent.content(); + if (id.length() != 16) return; final CompletableFuture future = requests.get(id); if (future == null) return; requests.remove(id); + final boolean interpret = id.endsWith("1"); + final List children = cargo.children(); - if ( - children.size() > 2 || - !(children.getFirst() instanceof final TextComponent interpretTextComponent) - ) return; + if (children.size() > 1) return; - final boolean interpret = Boolean.parseBoolean(interpretTextComponent.content()); - - if (children.size() == 1) { + if (children.isEmpty()) { future.complete(""); - } else if (!interpret && !(children.get(1) instanceof TextComponent)) { + } else if (!interpret && !(children.getFirst() instanceof TextComponent)) { future.complete(null); } else { final String stringOutput = interpret - ? GsonComponentSerializer.gson().serialize(children.get(1)) // seems very - : ((TextComponent) children.get(1)).content(); + ? GsonComponentSerializer.gson().serialize(children.getFirst()) // seems very + : ((TextComponent) children.getFirst()).content(); future.complete(stringOutput); } } - private ObjectObjectImmutablePair> getFutureAndId () { - final String id = RandomStringUtilities.generate(16); + private ObjectObjectImmutablePair> getFutureAndId (final boolean interpret) { + final String id = RandomStringUtilities.generate(15) + (interpret ? "1" : "0"); final CompletableFuture future = new CompletableFuture<>(); requests.put(id, future); @@ -145,13 +143,12 @@ public class QueryPlugin implements Listener { public CompletableFuture block (final Vector3i location, final String path) { return block(false, location, path, false); } public CompletableFuture block (final boolean useCargo, final Vector3i location, final String path, final boolean interpret) { - final Pair> pair = getFutureAndId(); + final Pair> pair = getFutureAndId(interpret); final String id = pair.left(); final Component component = Component .text(id) - .append(Component.text(interpret)) .append( Component.blockNBT( path, @@ -175,13 +172,12 @@ public class QueryPlugin implements Listener { public CompletableFuture entity (final String selector, final String path) { return entity(false, selector, path); } public CompletableFuture entity (final boolean useCargo, final String selector, final String path) { - final Pair> pair = getFutureAndId(); + final Pair> pair = getFutureAndId(false); final String id = pair.left(); final Component component = Component .text(id) - .append(Component.text(false)) .append( Component.entityNBT( path,