From 46978ae799a3bf33ea3faf16e9ac8e5f904c90aa Mon Sep 17 00:00:00 2001 From: kento2 Date: Mon, 10 Aug 2026 21:45:45 +0200 Subject: [PATCH] . --- MODULE.bazel | 21 +- README.md | 1 + .../configurator/command/KeyLiteral.java | 2 +- .../bukkit/command/economy/CoinsCommand.java | 4 +- .../command/economy/CoinsGetLiteral.java | 4 +- .../command/economy/CoinsSetLiteral.java | 4 +- .../command/friends/FriendAddLiteral.java | 15 +- .../command/friends/FriendListLiteral.java | 11 +- .../command/friends/FriendRemoveLiteral.java | 18 +- .../friends/FriendRequestDeclineLiteral.java | 19 +- .../friends/FriendRequestsLiteral.java | 21 +- .../command/instance/InstanceCommand.java | 9 +- .../instance/InstanceDeployLiteral.java | 17 +- .../instance/InstanceDestroyLiteral.java | 20 +- .../command/instance/InstanceListLiteral.java | 14 +- .../bukkit/command/instance/LobbyCommand.java | 3 +- .../bukkit/command/instance/PlayCommand.java | 24 +- maven_install.json | 2138 +++++++++++++++++ 18 files changed, 2233 insertions(+), 112 deletions(-) create mode 100644 maven_install.json diff --git a/MODULE.bazel b/MODULE.bazel index 69f7bd4..a667dcb 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -5,7 +5,8 @@ bazel_dep(name = "rules_shell", version = "0.8.0") git_override( module_name = "rules_jvm_external", - remote = "http://forge.kentoj.de/scrow/rules_jvm_external.git", + remote = "https://github.com/acecilia/rules_jvm_external.git", + branch = "3-snapshot_support", ) maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") @@ -20,27 +21,31 @@ maven.install( "org.slf4j:slf4j-simple:2.0.18", "net.kyori:adventure-api:5.2.0", "net.kyori:adventure-text-minimessage:5.2.0", - "io.papermc.paper:paper-api:[26.2.build,)", - "com.velocitypowered:velocity-api:4.1.0-20260802.091736-8", + # use `env REPIN=1 bazel run @maven//:pin` after updating + "com.velocitypowered:velocity-api:4.1.0-SNAPSHOT", "org.jdbi:jdbi3-core:3.53.0", "org.jdbi:jdbi3-postgres:3.53.0", "org.postgresql:postgresql:42.7.12", "org.mongodb:bson:5.8.0", "io.nats:jnats:2.25.2", - "de.kentoj.scrow:kencommandapi-core:0.41-SNAPSHOT", - "de.kentoj.scrow:kencommandapi-bukkit:0.41-SNAPSHOT", - "de.kentoj.scrow:kencommandapi-velocity:0.41-SNAPSHOT", + "de.kentoj.scrow:kencommandapi-core:0.42-SNAPSHOT", + "de.kentoj.scrow:kencommandapi-bukkit:0.42-SNAPSHOT", + "de.kentoj.scrow:kencommandapi-velocity:0.42-SNAPSHOT", "io.papermc.paper:paper-api:[26.2.build,)", "net.luckperms:api:5.5", "com.google.code.gson:gson:2.14.0", ], - fetch_sources = True, + fetch_sources = False, repositories = [ - "https://repo.papermc.io/repository/maven-public/", + "https://repo1.maven.org/maven2", "https://git.lab0x13.site/api/packages/scrow/maven", + "https://repo.papermc.io/repository/maven-public/", ], known_contributing_modules = ["protobuf"], fail_on_missing_checksum = False, # for kencommandapi + + resolver = "gradle", + lock_file = "//:maven_install.json", ) # luckperms is provided at runtime diff --git a/README.md b/README.md index 2333c18..1a70e94 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ - refactor BUILD files: MODULES.bazel ## core +- configurator: need to use json nodes for storing data so i can rlly update subfields - convert commands to new api - CommandExecutor now has a style parameter which is always MessageStyle(not ScrowMessageStyle), this kinda sucks. i could merge kencommandapi into core or make it more flexible(but then i need even more generics) diff --git a/buildserver/configurator/main/java/site/lab0x13/scrow/configurator/command/KeyLiteral.java b/buildserver/configurator/main/java/site/lab0x13/scrow/configurator/command/KeyLiteral.java index f3b9978..d0b18be 100644 --- a/buildserver/configurator/main/java/site/lab0x13/scrow/configurator/command/KeyLiteral.java +++ b/buildserver/configurator/main/java/site/lab0x13/scrow/configurator/command/KeyLiteral.java @@ -38,7 +38,7 @@ class KeyLiteral { var actionLiteralBuilder = Literal.builder(action.name()); for (var argument : action.arguments()) actionLiteralBuilder.withArgument(argument); - actionLiteralBuilder.withSyncExecutor((style, ctx) -> { + actionLiteralBuilder.withSyncExecutor(ctx -> { if (action.requiresValue() && node.value() == null) { ctx.sender().sendMessage(style.err("No value set.")); return; diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsCommand.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsCommand.java index 8a14e16..23d2cd3 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsCommand.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsCommand.java @@ -24,12 +24,12 @@ public final class CoinsCommand { .asRootLiteral(ScrowMessageStyle.GENERIC); } - public CompletableFuture execute(MessageStyle style, CommandContext ctx) { + public CompletableFuture execute(CommandContext ctx) { var player = ctx.sender(); return Tasks.supplyAsync(() -> ScrowAPI.economyService().getCoins(player.getUniqueId())) .thenSync(amount -> - player.sendMessage(style.ok("You have " + amount + "$"))) + player.sendMessage(ctx.style().ok("You have " + amount + "$"))) .toFuture(); } diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsGetLiteral.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsGetLiteral.java index fc5ad9a..b916cf5 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsGetLiteral.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsGetLiteral.java @@ -28,12 +28,12 @@ public final class CoinsGetLiteral { .build(); } - private CompletableFuture execute(MessageStyle style, CommandContext ctx) { + private CompletableFuture execute(CommandContext ctx) { var player = ctx.getArg(playerArg); return Tasks.supplyAsync(() -> ScrowAPI.economyService().getCoins(player.getUniqueId())) .thenSync(amount -> - ctx.sender().sendMessage(style.ok(player.getName() + " has " + amount + "$"))) + ctx.sender().sendMessage(ctx.style().ok(player.getName() + " has " + amount + "$"))) .toFuture(); } diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsSetLiteral.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsSetLiteral.java index be2df81..2104278 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsSetLiteral.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsSetLiteral.java @@ -33,13 +33,13 @@ public final class CoinsSetLiteral { .build(); } - private CompletableFuture execute(MessageStyle style, CommandContext ctx) { + private CompletableFuture execute(CommandContext ctx) { var player = ctx.getArg(playerArg); var amount = ctx.getArg(amountArg); return Tasks.runAsync(() -> ScrowAPI.economyService().setCoins(player.getUniqueId(), amount)) .runSync(() -> - ctx.sender().sendMessage(style.ok(player.getName() + " now has " + amount + "$"))) + ctx.sender().sendMessage(ctx.style().ok(player.getName() + " now has " + amount + "$"))) .toFuture(); } diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendAddLiteral.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendAddLiteral.java index ebe9cc8..49f576d 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendAddLiteral.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendAddLiteral.java @@ -5,6 +5,7 @@ import com.leakyabstractions.result.core.Results; import de.kentoj.kencommandapi.api.argument.CommandArgumentSpec; import de.kentoj.kencommandapi.api.invocation.CommandContext; import de.kentoj.kencommandapi.api.literal.Literal; +import de.kentoj.kencommandapi.api.platform.MessageStyle; import de.kentoj.kencommandapi.type.OfflinePlayerArgumentType; import de.kentoj.scrow.bukkit.ScrowAPI; import de.kentoj.scrow.bukkit.scheduler.Task; @@ -27,12 +28,10 @@ public final class FriendAddLiteral { private final Literal literal; private final CommandArgumentSpec playerArg; - private final ScrowMessageStyle style; private final FriendRequestService requestService = ScrowAPI.friendRequestService(); private final FriendshipService friendsService = ScrowAPI.friendshipService(); - FriendAddLiteral(ScrowMessageStyle style) { - this.style = style; + FriendAddLiteral() { playerArg = CommandArgumentSpec.builder("player", new OfflinePlayerArgumentType()) .build(); literal = Literal.builder("add") @@ -41,19 +40,19 @@ public final class FriendAddLiteral { .build(); } - private CompletableFuture> execute(CommandContext ctx) { + private CompletableFuture execute(CommandContext ctx) { var self = ctx.sender(); var other = ctx.getArg(playerArg); return Tasks.supplyAsync(() -> findAction(self, other) .mapSuccess(action -> { - if (action == AddAction.SEND_REQUEST) sendRequest(self, other); - else if (action == AddAction.ACCEPT_REQUEST) acceptRequest(self, other); + if (action == AddAction.SEND_REQUEST) sendRequest(ctx.style(), self, other); + else if (action == AddAction.ACCEPT_REQUEST) acceptRequest(ctx.style(), self, other); return new Object(); })) .toFuture(); } - private void sendRequest(Player self, OfflinePlayer other) { + private void sendRequest(MessageStyle style, Player self, OfflinePlayer other) { Tasks.runAsync(() -> requestService.saveFriendRequest(new FriendRequestImpl(self.getUniqueId(), other.getUniqueId()))) .runSync(() -> { @@ -65,7 +64,7 @@ public final class FriendAddLiteral { .await(); } - private void acceptRequest(Player self, OfflinePlayer other) { + private void acceptRequest(MessageStyle style, Player self, OfflinePlayer other) { Tasks.runAsync(() -> Tasks.awaitAll( Tasks.runAsync(() -> requestService.deleteFriendRequest(self.getUniqueId(), other.getUniqueId())), Tasks.runAsync(() -> requestService.deleteFriendRequest(other.getUniqueId(), self.getUniqueId())), diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendListLiteral.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendListLiteral.java index 9bb18b6..f474803 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendListLiteral.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendListLiteral.java @@ -1,12 +1,11 @@ package de.kentoj.scrow.bukkit.command.friends; -import com.leakyabstractions.result.api.Result; -import com.leakyabstractions.result.core.Results; import de.kentoj.kencommandapi.api.invocation.CommandContext; import de.kentoj.kencommandapi.api.literal.Literal; import de.kentoj.kencommandapi.api.platform.MessageStyle; import de.kentoj.scrow.bukkit.ScrowAPI; import de.kentoj.scrow.bukkit.scheduler.Tasks; +import de.kentoj.scrowlib.convention.ScrowMessageStyle; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.minimessage.MiniMessage; @@ -29,7 +28,7 @@ public final class FriendListLiteral { .build(); } - private CompletableFuture displayFriendList(MessageStyle style, CommandContext ctx) { + private CompletableFuture displayFriendList(CommandContext ctx) { var sender = ctx.sender(); return Tasks.supplyAsync(() -> ScrowAPI.friendshipService().getFriendships(sender.getUniqueId())) @@ -39,11 +38,11 @@ public final class FriendListLiteral { .sorted(this::compareByOnlineStatus) .toList(); if (friends.isEmpty()) { - ctx.sender().sendMessage(style.err("You have no friends. Use /friend add ")); + ctx.sender().sendMessage(ctx.style().err("You have no friends. Use /friend add ")); return; } - sender.sendMessage(formatList(style, friends)); + sender.sendMessage(formatList(ctx.style(), friends)); }).toFuture(); } @@ -53,7 +52,7 @@ public final class FriendListLiteral { return 0; } - private Component formatList(MessageStyle style, List friends) { + private Component formatList(ScrowMessageStyle style, List friends) { var message = style.ok(MiniMessage.miniMessage().deserialize("Your friends:")); for (var friend : friends) { var status = MiniMessage.miniMessage().deserialize(friend.isOnline() diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRemoveLiteral.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRemoveLiteral.java index 5f5a371..3a94dc2 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRemoveLiteral.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRemoveLiteral.java @@ -8,7 +8,6 @@ import de.kentoj.kencommandapi.api.literal.Literal; import de.kentoj.kencommandapi.type.OfflinePlayerArgumentType; import de.kentoj.scrow.bukkit.ScrowAPI; import de.kentoj.scrow.bukkit.scheduler.Tasks; -import de.kentoj.scrowlib.convention.ScrowMessageStyle; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -18,10 +17,8 @@ public final class FriendRemoveLiteral { private final Literal literal; private final CommandArgumentSpec playerArg; - private final ScrowMessageStyle style; - FriendRemoveLiteral(ScrowMessageStyle style) { - this.style = style; + FriendRemoveLiteral() { playerArg = CommandArgumentSpec.builder("player", new OfflinePlayerArgumentType<>()) .build(); literal = Literal.builder("remove") @@ -30,15 +27,16 @@ public final class FriendRemoveLiteral { .build(); } - private CompletableFuture> removeFriend(CommandContext ctx) { + private CompletableFuture removeFriend(CommandContext ctx) { var friend = ctx.getArg(playerArg); return Tasks.supplyAsync(() -> ScrowAPI.friendshipService().deleteFriendship(friend.getUniqueId(), ctx.sender().getUniqueId())) - .>mapSync(deleted -> { - if (!deleted) - return Results.failure("You are not friends with " + friend.getName() + "."); - ctx.sender().sendMessage(style.ok("You have ended the friendship with " + friend.getName() + ".")); - return Results.success(new Object()); + .thenSync(deleted -> { + if (!deleted) { + ctx.sender().sendMessage(ctx.style().err("You are not friends with " + friend.getName() + ".")); + return; + } + ctx.sender().sendMessage(ctx.style().ok("You have ended the friendship with " + friend.getName() + ".")); }).toFuture(); } diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRequestDeclineLiteral.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRequestDeclineLiteral.java index b73b333..1f7b57e 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRequestDeclineLiteral.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRequestDeclineLiteral.java @@ -19,11 +19,9 @@ public final class FriendRequestDeclineLiteral { private final Literal literal; private final CommandArgumentSpec playerArg; - private final ScrowMessageStyle style; private final FriendRequestService requestService = ScrowAPI.friendRequestService(); - FriendRequestDeclineLiteral(ScrowMessageStyle style) { - this.style = style; + FriendRequestDeclineLiteral() { playerArg = CommandArgumentSpec.builder("player", new OfflinePlayerArgumentType()) .build(); literal = Literal.builder("reject", "decline") @@ -32,16 +30,17 @@ public final class FriendRequestDeclineLiteral { .build(); } - private CompletableFuture> declineFriendRequest(CommandContext ctx) { + private CompletableFuture declineFriendRequest(CommandContext ctx) { var other = ctx.getArg(playerArg); return Tasks.supplyAsync(() -> requestService.deleteFriendRequest(other.getUniqueId(), ctx.sender().getUniqueId())) - .>mapSync(deleted -> { - if (!deleted) - return Results.failure("There's no incoming friend request from " + other.getName() + "."); - ctx.sender().sendMessage(style.ok("Friend request declined.")); - ScrowAPI.getPlayer(other).sendMessage(style.ok(ctx.sender().getName() + " has declined your friend request.")); - return Results.success(new Object()); + .thenSync(deleted -> { + if (!deleted) { + ctx.sender().sendMessage(ctx.style().err("There's no incoming friend request from " + other.getName() + ".")); + return; + } + ctx.sender().sendMessage(ctx.style().ok("Friend request declined.")); + ScrowAPI.getPlayer(other).sendMessage(ctx.style().ok(ctx.sender().getName() + " has declined your friend request.")); }).toFuture(); } diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRequestsLiteral.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRequestsLiteral.java index 7b6baf7..6d1552c 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRequestsLiteral.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/friends/FriendRequestsLiteral.java @@ -1,9 +1,8 @@ package de.kentoj.scrow.bukkit.command.friends; -import com.leakyabstractions.result.api.Result; -import com.leakyabstractions.result.core.Results; import de.kentoj.kencommandapi.api.invocation.CommandContext; import de.kentoj.kencommandapi.api.literal.Literal; +import de.kentoj.kencommandapi.api.platform.MessageStyle; import de.kentoj.scrow.bukkit.ScrowAPI; import de.kentoj.scrow.bukkit.scheduler.Tasks; import de.kentoj.scrowlib.convention.ScrowMessageStyle; @@ -22,25 +21,25 @@ import static net.kyori.adventure.text.Component.text; public final class FriendRequestsLiteral { private final Literal literal; - private final ScrowMessageStyle style; - FriendRequestsLiteral(ScrowMessageStyle style) { - this.style = style; + FriendRequestsLiteral() { literal = Literal.builder("requests") .withExecutor(this::displayFriendRequests) .build(); } - private CompletableFuture> displayFriendRequests(CommandContext ctx) { + private CompletableFuture displayFriendRequests(CommandContext ctx) { return Tasks.supplyAsync(() -> ScrowAPI.friendRequestService().getFriendRequestsTo(ctx.sender().getUniqueId())) - .>mapAsync(list -> { - if (list.isEmpty()) return Results.failure("You have no friend requests."); + .thenSync(list -> { + if (list.isEmpty()) { + ctx.sender().sendMessage(ctx.style().err("You have no friend requests.")); + return; + } var requesters = list.stream() .sorted(this::compareByAge) .map(fr -> Bukkit.getOfflinePlayer(fr.from()).getName()); - ctx.sender().sendMessage(formatList(requesters.toList())); - return Results.success(new Object()); + ctx.sender().sendMessage(formatList(ctx.style(), requesters.toList())); }).toFuture(); } @@ -48,7 +47,7 @@ public final class FriendRequestsLiteral { return a.createdAt().isAfter(b.createdAt()) ? 1 : -1; } - private Component formatList(List requesters) { + private Component formatList(ScrowMessageStyle style, List requesters) { var message = style.ok(MiniMessage.miniMessage().deserialize("Open friend requests:")); for (String requester : requesters) { message = message diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceCommand.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceCommand.java index 53aa0fd..b47a6aa 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceCommand.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceCommand.java @@ -11,12 +11,11 @@ public final class InstanceCommand { private final RootLiteral rootLiteral; public InstanceCommand(InstanceCache instanceCache) { - var style = new ScrowMessageStyle("server-manager", NamedTextColor.RED); rootLiteral = Literal.builder("instance", "server-manager") - .withLiteral(new InstanceListLiteral(style).literal()) - .withLiteral(new InstanceDeployLiteral(style).literal()) - .withLiteral(new InstanceDestroyLiteral(instanceCache, style).literal()) - .asRootLiteral(style); + .withLiteral(new InstanceListLiteral().literal()) + .withLiteral(new InstanceDeployLiteral().literal()) + .withLiteral(new InstanceDestroyLiteral(instanceCache).literal()) + .asRootLiteral(new ScrowMessageStyle("server-manager", NamedTextColor.RED)); } public RootLiteral rootLiteral() { diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceDeployLiteral.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceDeployLiteral.java index dcd343f..b553024 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceDeployLiteral.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceDeployLiteral.java @@ -1,14 +1,11 @@ package de.kentoj.scrow.bukkit.command.instance; -import com.leakyabstractions.result.api.Result; -import com.leakyabstractions.result.core.Results; import de.kentoj.kencommandapi.api.argument.CommandArgumentSpec; import de.kentoj.kencommandapi.api.argument.types.StringArgumentType; import de.kentoj.kencommandapi.api.invocation.CommandContext; import de.kentoj.kencommandapi.api.literal.Literal; import de.kentoj.scrow.bukkit.ScrowAPI; import de.kentoj.scrow.bukkit.scheduler.Tasks; -import de.kentoj.scrowlib.convention.ScrowMessageStyle; import org.bukkit.command.CommandSender; import java.util.concurrent.CompletableFuture; @@ -17,11 +14,8 @@ public final class InstanceDeployLiteral { private final Literal literal; private final CommandArgumentSpec templateArg; - private final ScrowMessageStyle style; - - InstanceDeployLiteral(ScrowMessageStyle style) { - this.style = style; + InstanceDeployLiteral() { templateArg = CommandArgumentSpec.builder("template", new StringArgumentType()) .build(); literal = Literal.builder("deploy") @@ -30,15 +24,14 @@ public final class InstanceDeployLiteral { .build(); } - private CompletableFuture> deployInstance(CommandContext ctx) { + private CompletableFuture deployInstance(CommandContext ctx) { var template = ctx.getArg(templateArg); - ctx.sender().sendMessage(style.ok("Deploying instance... this may take a while.")); + ctx.sender().sendMessage(ctx.style().ok("Deploying instance... this may take a while.")); return Tasks.supplyAsync(() -> ScrowAPI.instanceManager().deployInstance(template)) - .>mapSync(instance -> { - ctx.sender().sendMessage(style.ok("Deployed instance of " + template + " with handle " + instance.handle() + ".")); + .thenSync(instance -> { + ctx.sender().sendMessage(ctx.style().ok("Deployed instance of " + template + " with handle " + instance.handle() + ".")); // FIXME handle unknown server - return Results.success(new Object()); }).toFuture(); } diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceDestroyLiteral.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceDestroyLiteral.java index 5b3177d..9d397ed 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceDestroyLiteral.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceDestroyLiteral.java @@ -1,7 +1,5 @@ package de.kentoj.scrow.bukkit.command.instance; -import com.leakyabstractions.result.api.Result; -import com.leakyabstractions.result.core.Results; import de.kentoj.kencommandapi.api.argument.CommandArgumentSpec; import de.kentoj.kencommandapi.api.argument.types.StringArgumentType; import de.kentoj.kencommandapi.api.invocation.CommandContext; @@ -18,11 +16,8 @@ public final class InstanceDestroyLiteral { private final Literal literal; private final CommandArgumentSpec handleArg; - private final ScrowMessageStyle style; - - InstanceDestroyLiteral(InstanceCache cache, ScrowMessageStyle style) { - this.style = style; + InstanceDestroyLiteral(InstanceCache cache) { handleArg = CommandArgumentSpec.builder("handle", new StringArgumentType()) .withSuggestionProvider((_, _) -> cache.getInstances().stream() @@ -35,14 +30,15 @@ public final class InstanceDestroyLiteral { .build(); } - private CompletableFuture> destroyInstance(CommandContext ctx) { + private CompletableFuture destroyInstance(CommandContext ctx) { var handle = ctx.getArg(handleArg); return Tasks.supplyAsync(() -> ScrowAPI.instanceManager().destroyInstance(handle)) - .>mapSync(found -> { - if (!found) - return Results.failure("No instance with that handle found."); - ctx.sender().sendMessage(style.ok("Destroyed server with handle " + handle + ".")); - return Results.success(new Object()); + .thenSync(found -> { + if (!found) { + ctx.sender().sendMessage(ctx.style().err("No instance with that handle found.")); + return; + } + ctx.sender().sendMessage(ctx.style().ok("Destroyed server with handle " + handle + ".")); }).toFuture(); } diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceListLiteral.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceListLiteral.java index aaa9297..4dfa710 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceListLiteral.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/InstanceListLiteral.java @@ -1,12 +1,9 @@ package de.kentoj.scrow.bukkit.command.instance; -import com.leakyabstractions.result.api.Result; -import com.leakyabstractions.result.core.Results; import de.kentoj.kencommandapi.api.invocation.CommandContext; import de.kentoj.kencommandapi.api.literal.Literal; import de.kentoj.scrow.bukkit.ScrowAPI; import de.kentoj.scrow.bukkit.scheduler.Tasks; -import de.kentoj.scrowlib.convention.ScrowMessageStyle; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; @@ -15,26 +12,23 @@ import java.util.concurrent.CompletableFuture; public final class InstanceListLiteral { private final Literal literal; - private final ScrowMessageStyle style; - InstanceListLiteral(ScrowMessageStyle style) { - this.style = style; + InstanceListLiteral() { this.literal = Literal.builder("list") .withExecutor(this::displayInstanceList) .build(); } - private CompletableFuture> displayInstanceList(CommandContext ctx) { + private CompletableFuture displayInstanceList(CommandContext ctx) { return Tasks.supplyAsync(() -> ScrowAPI.instanceManager().instances()) - .>mapSync(instances -> { + .thenSync(instances -> { var msg = Component.text("Running instances:"); for (var inst : instances) { msg = msg.appendNewline() .append(Component.text(" - " + inst.handle() + " on port " + inst.port())); } - ctx.sender().sendMessage(style.ok(msg)); - return Results.success(new Object()); + ctx.sender().sendMessage(ctx.style().ok(msg)); }).toFuture(); } diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/LobbyCommand.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/LobbyCommand.java index 8846261..a078296 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/LobbyCommand.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/LobbyCommand.java @@ -19,9 +19,8 @@ public final class LobbyCommand { .asRootLiteral(ScrowMessageStyle.GENERIC); } - private Result sendToLobby(CommandContext ctx) { + private void sendToLobby(CommandContext ctx) { Bukkit.dispatchCommand(ctx.sender(), "play lobby"); - return Results.success(new Object()); } public RootLiteral rootLiteral() { diff --git a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/PlayCommand.java b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/PlayCommand.java index 46d81cf..a964a14 100644 --- a/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/PlayCommand.java +++ b/core/bukkit/plugin/main/java/de/kentoj/scrow/bukkit/command/instance/PlayCommand.java @@ -1,7 +1,5 @@ package de.kentoj.scrow.bukkit.command.instance; -import com.leakyabstractions.result.api.Result; -import com.leakyabstractions.result.core.Results; import de.kentoj.kencommandapi.api.argument.CommandArgumentSpec; import de.kentoj.kencommandapi.api.argument.types.StringArgumentType; import de.kentoj.kencommandapi.api.invocation.CommandContext; @@ -12,6 +10,7 @@ import de.kentoj.scrow.bukkit.scheduler.Tasks; import de.kentoj.scrowlib.convention.ScrowMessageStyle; import org.bukkit.entity.Player; +import java.util.Objects; import java.util.concurrent.CompletableFuture; public final class PlayCommand { @@ -28,22 +27,25 @@ public final class PlayCommand { .asRootLiteral(style); } - private CompletableFuture> execute(CommandContext ctx) { + private CompletableFuture execute(CommandContext ctx) { var gamemode = ctx.getArg(gamemodeArg); return Tasks.supplyAsync(() -> ScrowAPI.instanceManager().instances()) - .mapAsync(instances -> { + .mapSync(instances -> { var instance = instances.stream() .filter(inst -> inst.template().equals(gamemode)) .findFirst() .orElse(null); - if (instance == null) - return Results.failure("No instance for " + gamemode + " found."); + if (instance == null) { + ctx.sender().sendMessage(ctx.style().err("No instance for " + gamemode + " found.")); + return null; + } - return Results.ofCallable(() -> { - ScrowAPI.getPlayer(ctx.sender()).sendToInstance(instance.handle()); - return new Object(); - }).mapFailure(Exception::getMessage); - }).toFuture(); + return instance.handle(); + }) + .yieldIf(Objects::isNull) + .thenAsync(handle -> + ScrowAPI.getPlayer(ctx.sender()).sendToInstance(handle) + ).toFuture(); } public RootLiteral rootLiteral() { diff --git a/maven_install.json b/maven_install.json new file mode 100644 index 0000000..86752ad --- /dev/null +++ b/maven_install.json @@ -0,0 +1,2138 @@ +{ + "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", + "__INPUT_ARTIFACTS_HASH": { + "com.google.code.findbugs:jsr305": 495355163, + "com.google.code.gson:gson": 2063056812, + "com.google.errorprone:error_prone_annotations": -1035138750, + "com.google.guava:guava": -1756621521, + "com.google.j2objc:j2objc-annotations": 2003271689, + "com.leakyabstractions:result": 1655671314, + "com.leakyabstractions:result-api": -741055074, + "com.velocitypowered:velocity-api": 598211634, + "de.kentoj.scrow:kencommandapi-bukkit": -2022880473, + "de.kentoj.scrow:kencommandapi-core": 112982056, + "de.kentoj.scrow:kencommandapi-velocity": 10985446, + "io.nats:jnats": 1953137185, + "io.papermc.paper:paper-api": -1677464331, + "net.kyori:adventure-api": 1030187247, + "net.kyori:adventure-text-minimessage": -2078551403, + "net.luckperms:api": 1039692118, + "org.jdbi:jdbi3-core": -470882354, + "org.jdbi:jdbi3-postgres": -1863457496, + "org.jetbrains:annotations": -1407642574, + "org.mongodb:bson": -77273729, + "org.postgresql:postgresql": 524160786, + "org.slf4j:slf4j-api": -2005163028, + "org.slf4j:slf4j-simple": 1999565066, + "repositories": 1054740373 + }, + "__RESOLVED_ARTIFACTS_HASH": { + "aopalliance:aopalliance": 1403132272, + "com.github.ben-manes.caffeine:caffeine": 436159489, + "com.google.code.findbugs:jsr305": 870839855, + "com.google.code.gson:gson": -641501239, + "com.google.errorprone:error_prone_annotations": 577932745, + "com.google.guava:failureaccess": 1715931538, + "com.google.guava:guava": -24633313, + "com.google.guava:listenablefuture": 1079558157, + "com.google.inject:guice": 894286452, + "com.google.j2objc:j2objc-annotations": -1008747351, + "com.leakyabstractions:result": -226801672, + "com.leakyabstractions:result-api": -651535813, + "com.moandjiezana.toml:toml4j": 2067114335, + "com.mojang:brigadier": 913620533, + "com.velocitypowered:velocity-api": 965888822, + "com.velocitypowered:velocity-brigadier": -1261075963, + "commons-codec:commons-codec": -1411194476, + "de.kentoj.scrow:kencommandapi-bukkit": -1110763167, + "de.kentoj.scrow:kencommandapi-core": 772231973, + "de.kentoj.scrow:kencommandapi-velocity": 39000638, + "io.leangen.geantyref:geantyref": 669182600, + "io.nats:jnats": 549130756, + "io.papermc.paper:paper-api": -97577052, + "it.unimi.dsi:fastutil": 1739877374, + "jakarta.inject:jakarta.inject-api": 188991469, + "javax.inject:javax.inject": 698155243, + "net.kyori:adventure-api": 1766228173, + "net.kyori:adventure-bom": 1472851752, + "net.kyori:adventure-key": -1110227447, + "net.kyori:adventure-text-logger-slf4j": -1327104502, + "net.kyori:adventure-text-minimessage": 397844782, + "net.kyori:adventure-text-serializer-ansi": -1565160095, + "net.kyori:adventure-text-serializer-commons": -1221427884, + "net.kyori:adventure-text-serializer-gson": 115363333, + "net.kyori:adventure-text-serializer-json": 799049496, + "net.kyori:adventure-text-serializer-legacy": -1920918334, + "net.kyori:adventure-text-serializer-plain": -791487701, + "net.kyori:ansi": 997964596, + "net.kyori:option": -134523688, + "net.luckperms:api": 476490203, + "net.md-5:bungeecord-chat": 2047504207, + "org.apache.commons:commons-lang3": -1070155819, + "org.apache.httpcomponents:httpclient": -1780430011, + "org.apache.httpcomponents:httpcore": 67453319, + "org.apache.logging.log4j:log4j-api": -79106511, + "org.apache.maven.resolver:maven-resolver-api": -274344430, + "org.apache.maven.resolver:maven-resolver-connector-basic": -1819010895, + "org.apache.maven.resolver:maven-resolver-impl": 988241953, + "org.apache.maven.resolver:maven-resolver-named-locks": -663305356, + "org.apache.maven.resolver:maven-resolver-spi": 2054051643, + "org.apache.maven.resolver:maven-resolver-transport-http": -1829861066, + "org.apache.maven.resolver:maven-resolver-util": 1240367164, + "org.apache.maven:maven-artifact": -1775316664, + "org.apache.maven:maven-builder-support": -2045756754, + "org.apache.maven:maven-model": -1477170202, + "org.apache.maven:maven-model-builder": -312842796, + "org.apache.maven:maven-repository-metadata": -1092475520, + "org.apache.maven:maven-resolver-provider": -241093259, + "org.bouncycastle:bcprov-lts8on": -8124988, + "org.checkerframework:checker-qual": -1521111878, + "org.codehaus.plexus:plexus-interpolation": -455118382, + "org.codehaus.plexus:plexus-utils": 37123609, + "org.eclipse.sisu:org.eclipse.sisu.inject": 1305442139, + "org.jdbi:jdbi3-core": -576523574, + "org.jdbi:jdbi3-postgres": 419487850, + "org.jetbrains:annotations": -1687668980, + "org.joml:joml": -564433831, + "org.jspecify:jspecify": 117231129, + "org.mongodb:bson": 1783866955, + "org.postgresql:postgresql": -1607497519, + "org.slf4j:jcl-over-slf4j": 498129285, + "org.slf4j:slf4j-api": 500377983, + "org.slf4j:slf4j-simple": -1055624668, + "org.spongepowered:configurate-core": -1474651178, + "org.spongepowered:configurate-gson": 284154998, + "org.spongepowered:configurate-hocon": 1862397725, + "org.spongepowered:configurate-yaml": -859469457, + "org.yaml:snakeyaml": 1308413731 + }, + "artifacts": { + "aopalliance:aopalliance": { + "shasums": { + "jar": "0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08" + }, + "version": "1.0" + }, + "com.github.ben-manes.caffeine:caffeine": { + "shasums": { + "jar": "ca70c90a5d1ce1511880ce9c93d4ad22108f61111d3daf91eb52762b571bd179" + }, + "version": "3.2.3" + }, + "com.google.code.findbugs:jsr305": { + "shasums": { + "jar": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7" + }, + "version": "3.0.2" + }, + "com.google.code.gson:gson": { + "shasums": { + "jar": "2cbd119bf1961c28788310963dc80ba65f58cdeec1dd139c8bdb1240faa2c36f" + }, + "version": "2.14.0" + }, + "com.google.errorprone:error_prone_annotations": { + "shasums": { + "jar": "b49c5c958316ed67a09c699dda9aa749caf434d51d863dea599ef36a49b9c855" + }, + "version": "2.48.0" + }, + "com.google.guava:failureaccess": { + "shasums": { + "jar": "cbfc3906b19b8f55dd7cfd6dfe0aa4532e834250d7f080bd8d211a3e246b59cb" + }, + "version": "1.0.3" + }, + "com.google.guava:guava": { + "shasums": { + "jar": "dc573e1fca4fd5454f4a5fd3d7da2df03002876a4175bafc14a95980dd7713b3" + }, + "version": "33.6.0-jre" + }, + "com.google.guava:listenablefuture": { + "shasums": { + "jar": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99" + }, + "version": "9999.0-empty-to-avoid-conflict-with-guava" + }, + "com.google.inject:guice": { + "shasums": { + "jar": "de5b0e359bd7b03ca42806b368846efd95484380fe05ae2a4ea71bc338c59c00" + }, + "version": "7.0.0" + }, + "com.google.j2objc:j2objc-annotations": { + "shasums": { + "jar": "84d3a150518485f8140ea99b8a985656749629f6433c92b80c75b36aba3b099b" + }, + "version": "3.1" + }, + "com.leakyabstractions:result": { + "shasums": { + "jar": "e08b406f97802cc95fe10e0de9fcc05e5ef1b708d178499d16e88cb050b13722" + }, + "version": "1.0.2.0" + }, + "com.leakyabstractions:result-api": { + "shasums": { + "jar": "fabf68bb6d1a088b739fa45f05bdcee68ea054dc743ff54b0b5bf0d38615c897" + }, + "version": "1.0.1.0" + }, + "com.moandjiezana.toml:toml4j": { + "shasums": { + "jar": "f5475e63e7e89e5db62223489aec7a56bd303543772077a17c2cb54c19ca3a20" + }, + "version": "0.7.2" + }, + "com.mojang:brigadier": { + "shasums": { + "jar": "c8ee4136e474ac7723ca2b432ec8d1a2bc88ef7d1ec57c314ba9e33cdc83dd75" + }, + "version": "1.3.10" + }, + "com.velocitypowered:velocity-api": { + "shasums": { + "jar": "f5835a4a6191f909005b695ccc07b915e8dadeff4ab69c82a7cac1c9e4c8e6ce" + }, + "version": "4.1.0-20260803.131214-10" + }, + "com.velocitypowered:velocity-brigadier": { + "shasums": { + "jar": "2d6646ed46d8052fc9f0d504309a0294d08a7c75d534fd84f11db0850cefdcb2" + }, + "version": "1.0.0-20210613.082804-10" + }, + "commons-codec:commons-codec": { + "shasums": { + "jar": "56595fb20b0b85bc91d0d503dad50bb7f1b9afc0eed5dffa6cbb25929000484d" + }, + "version": "1.16.0" + }, + "de.kentoj.scrow:kencommandapi-bukkit": { + "shasums": { + "jar": null + }, + "version": "0.42-SNAPSHOT" + }, + "de.kentoj.scrow:kencommandapi-core": { + "shasums": { + "jar": null + }, + "version": "0.42-SNAPSHOT" + }, + "de.kentoj.scrow:kencommandapi-velocity": { + "shasums": { + "jar": null + }, + "version": "0.42-SNAPSHOT" + }, + "io.leangen.geantyref:geantyref": { + "shasums": { + "jar": "386b535c079be7d65ddbe0ad9c00955155b7862225aa92b4c6553ab2b1ea95f9" + }, + "version": "2.0.1" + }, + "io.nats:jnats": { + "shasums": { + "jar": "3295b0cd919d8b5635bffdb85c4947de0a93a0d34a74d9df5a41fb3018dc29c0" + }, + "version": "2.25.2" + }, + "io.papermc.paper:paper-api": { + "shasums": { + "jar": "b35f0f979731d960a6f9db1c0925eeb9f4511b1b1d8c60c2609dca8cfd2d1163" + }, + "version": "26.2.build.111-stable" + }, + "it.unimi.dsi:fastutil": { + "shasums": { + "jar": "9094ae67d01d0ad246f886f11ad557fc2e79c72cbf3feed83e1512a8ae90a74a" + }, + "version": "8.5.18" + }, + "jakarta.inject:jakarta.inject-api": { + "shasums": { + "jar": "f7dc98062fccf14126abb751b64fab12c312566e8cbdc8483598bffcea93af7c" + }, + "version": "2.0.1" + }, + "javax.inject:javax.inject": { + "shasums": { + "jar": "91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff" + }, + "version": "1" + }, + "net.kyori:adventure-api": { + "shasums": { + "jar": "7e52fe7190be3e87b3b3f71712cfa12315fcd27109f302a7b440c12f01fae827" + }, + "version": "5.2.0" + }, + "net.kyori:adventure-bom": { + "shasums": { + "jar": null + }, + "version": "5.2.0" + }, + "net.kyori:adventure-key": { + "shasums": { + "jar": "0184d173200e2eef8fbc791f622d1d58fd459f8930c616b5a4fe79e83eda6c55" + }, + "version": "5.2.0" + }, + "net.kyori:adventure-text-logger-slf4j": { + "shasums": { + "jar": "ae79b7f3846c5d973b37c7eec03190bd44e182918d1346e7705c5991a1b5dfb3" + }, + "version": "5.2.0" + }, + "net.kyori:adventure-text-minimessage": { + "shasums": { + "jar": "e1871aba1511dbe49cff211c10f85682886014161e5d629318aa69583c31a2c0" + }, + "version": "5.2.0" + }, + "net.kyori:adventure-text-serializer-ansi": { + "shasums": { + "jar": "9229d090832e288018f3df69027602dcda253118358585dc2728f84597e9ca9d" + }, + "version": "5.2.0" + }, + "net.kyori:adventure-text-serializer-commons": { + "shasums": { + "jar": "64b3e45d93aa57f4da9b257d16c8f2172612d9e3312b061f4892fd426922d2c3" + }, + "version": "5.2.0" + }, + "net.kyori:adventure-text-serializer-gson": { + "shasums": { + "jar": "5b2ad1c8a65e7fa0811279b51a45d5fc574b6a6354097b545e4fdb5b68aaed73" + }, + "version": "5.2.0" + }, + "net.kyori:adventure-text-serializer-json": { + "shasums": { + "jar": "adb5410006175b9aa6343bfadd0bd11c4a6955ee2abc1a58abe2a3fa6cbd9ab5" + }, + "version": "5.2.0" + }, + "net.kyori:adventure-text-serializer-legacy": { + "shasums": { + "jar": "1231a0de417de66c59e2f2a3892ecca6b8d48621df6f1d9a2f81b01f57e328b7" + }, + "version": "5.2.0" + }, + "net.kyori:adventure-text-serializer-plain": { + "shasums": { + "jar": "f6424cc038a631b79cc4b74b6b353d5d007c99b38f9be482e0c2448a00eecd21" + }, + "version": "5.2.0" + }, + "net.kyori:ansi": { + "shasums": { + "jar": "b6c569e1a0925b9eeb349e12db35e2237556107e3336657e0b2ebde261d8afd7" + }, + "version": "1.1.1" + }, + "net.kyori:option": { + "shasums": { + "jar": "97b69b4b17dfe02217c9131ad342564cbc9aebd04c75eb689639b5f78fd4b11c" + }, + "version": "1.1.0" + }, + "net.luckperms:api": { + "shasums": { + "jar": "cd910f936adc4dee7705fb51cc29401fde4f29aba6ee73a6475a3a0515f6294f" + }, + "version": "5.5" + }, + "net.md-5:bungeecord-chat": { + "shasums": { + "jar": "ce930b3ee048520a0ab538eb8d1627b301367fc1b300837235387aded6d89ba1" + }, + "version": "1.21-R0.2-deprecated+build.21" + }, + "org.apache.commons:commons-lang3": { + "shasums": { + "jar": "d919d904486c037f8d193412da0c92e22a9fa24230b9d67a57855c5c31c7e94e" + }, + "version": "3.12.0" + }, + "org.apache.httpcomponents:httpclient": { + "shasums": { + "jar": "c8bc7e1c51a6d4ce72f40d2ebbabf1c4b68bfe76e732104b04381b493478e9d6" + }, + "version": "4.5.14" + }, + "org.apache.httpcomponents:httpcore": { + "shasums": { + "jar": "6c9b3dd142a09dc468e23ad39aad6f75a0f2b85125104469f026e52a474e464f" + }, + "version": "4.4.16" + }, + "org.apache.logging.log4j:log4j-api": { + "shasums": { + "jar": "820de7bbaf430eaf2e3e5ccb92f23e2085797c5ac4d4f7fc6c8b660fbefa1dbc" + }, + "version": "2.26.0" + }, + "org.apache.maven.resolver:maven-resolver-api": { + "shasums": { + "jar": "ebfb9e1dfeea3c2017905184581e007874b4eaac9d28bfffcfe5133d70ac6339" + }, + "version": "1.9.18" + }, + "org.apache.maven.resolver:maven-resolver-connector-basic": { + "shasums": { + "jar": "f88d97d0f18571a675e73b45d6a9384b00322c9fae514ad6761d65b729a4e82a" + }, + "version": "1.9.18" + }, + "org.apache.maven.resolver:maven-resolver-impl": { + "shasums": { + "jar": "6bb9c90d007098004749c867da2eaf5785fc1139907718749c1097bdb2929bf8" + }, + "version": "1.9.18" + }, + "org.apache.maven.resolver:maven-resolver-named-locks": { + "shasums": { + "jar": "098de7bbc5b0b26c3eff74ac30ffba6680fdab9bf4aebab95c3f5e2fe9eaeea8" + }, + "version": "1.9.18" + }, + "org.apache.maven.resolver:maven-resolver-spi": { + "shasums": { + "jar": "d364fce9a17b0e0b073c26efa92af95b29c00c42943dced4a1168a7923fd3fe1" + }, + "version": "1.9.18" + }, + "org.apache.maven.resolver:maven-resolver-transport-http": { + "shasums": { + "jar": "1fa02272da7a604718f22e2bc9775f14350487548ffc30a2ffaae1c2d1d1a58a" + }, + "version": "1.9.18" + }, + "org.apache.maven.resolver:maven-resolver-util": { + "shasums": { + "jar": "2eb0ea667bc489384478231dda7516407d4b5b22a138077229871de9362a7ae2" + }, + "version": "1.9.18" + }, + "org.apache.maven:maven-artifact": { + "shasums": { + "jar": "ad7a0fb408f8e47585ccc0d0011e0b501d93bfc9888d369bbd4a043d19475073" + }, + "version": "3.9.6" + }, + "org.apache.maven:maven-builder-support": { + "shasums": { + "jar": "e1f4d2784459ce8a34b9dae1829a1999b569e483e21ee9faa7368691e729296e" + }, + "version": "3.9.6" + }, + "org.apache.maven:maven-model": { + "shasums": { + "jar": "4f8f07fdb6b8701fa89a23a2edf830808fd65892d90cce40c0e6df7c8f2fcb62" + }, + "version": "3.9.6" + }, + "org.apache.maven:maven-model-builder": { + "shasums": { + "jar": "5f96dafbc411ee4b1e8426368d0d31d05ab5a4dace69808143142a0017598721" + }, + "version": "3.9.6" + }, + "org.apache.maven:maven-repository-metadata": { + "shasums": { + "jar": "e047a67b204c434994253e2ab5bdff5fe8cb7ada9316ac3e754c39f900ea847b" + }, + "version": "3.9.6" + }, + "org.apache.maven:maven-resolver-provider": { + "shasums": { + "jar": "73b00b244b7b9e285654a45e765892bf5d369da77d42b5b4b5429122ed198a33" + }, + "version": "3.9.6" + }, + "org.bouncycastle:bcprov-lts8on": { + "shasums": { + "jar": "136113cd0c7fccba8dbdc4fe5c30c2e32c2d3020a78eb19aeb7d848f78536b71" + }, + "version": "2.73.10" + }, + "org.checkerframework:checker-qual": { + "shasums": { + "jar": "7ca002815d92fad79e966b375c2ee7b2b4bf953024bc9a5d5e0c59df13ff5af8" + }, + "version": "3.53.0" + }, + "org.codehaus.plexus:plexus-interpolation": { + "shasums": { + "jar": "b3b5412ce17889103ea564bcdfcf9fb3dfa540344ffeac6b538a73c9d7182662" + }, + "version": "1.26" + }, + "org.codehaus.plexus:plexus-utils": { + "shasums": { + "jar": "86e0255d4c879c61b4833ed7f13124e8bb679df47debb127326e7db7dd49a07b" + }, + "version": "3.5.1" + }, + "org.eclipse.sisu:org.eclipse.sisu.inject": { + "shasums": { + "jar": "9b62bcfc352a2ec87da8b01e37c952a54d358bbb1af3f212648aeafe7ab2dbb5" + }, + "version": "0.9.0.M2" + }, + "org.jdbi:jdbi3-core": { + "shasums": { + "jar": "df512225aaccd0c15a9ace972e9f98c514daac66efeb00843dbcad299c98c186" + }, + "version": "3.53.0" + }, + "org.jdbi:jdbi3-postgres": { + "shasums": { + "jar": "4b0bdf1b2d179af5152080e9dc5f6f35407ec1622b1364fa81c58078ffa75d24" + }, + "version": "3.53.0" + }, + "org.jetbrains:annotations": { + "shasums": { + "jar": "ebc7aec252ed0c7d2d04c039d7f00e69f7b86b1f493c741d67b3ef31b986b054" + }, + "version": "26.1.0" + }, + "org.joml:joml": { + "shasums": { + "jar": "bf19510145178df82cd3bd37edd514c13f411531ec5545299fd3abcbc98fe7c2" + }, + "version": "1.10.8" + }, + "org.jspecify:jspecify": { + "shasums": { + "jar": "1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab" + }, + "version": "1.0.0" + }, + "org.mongodb:bson": { + "shasums": { + "jar": "056c512ba9900d5f7d1ac06b9947175d8728e1de619588d00b3a115fc96f4b81" + }, + "version": "5.8.0" + }, + "org.postgresql:postgresql": { + "shasums": { + "jar": "31fbf6f06b2217fb51d5100cee51b22625cc81640da0679b47914e54c1e6377c" + }, + "version": "42.7.12" + }, + "org.slf4j:jcl-over-slf4j": { + "shasums": { + "jar": "ab57ca8fd223772c17365d121f59e94ecbf0ae59d08c03a3cb5b81071c019195" + }, + "version": "1.7.36" + }, + "org.slf4j:slf4j-api": { + "shasums": { + "jar": "44508fd1576500688c790b190acdd16fec4f8c79a3e0b900afd70503cf055f55" + }, + "version": "2.0.18" + }, + "org.slf4j:slf4j-simple": { + "shasums": { + "jar": "8268bd018a5709b07209e0d8ca6221a37584ba1bc12ba985b8335a82c648bdd0" + }, + "version": "2.0.18" + }, + "org.spongepowered:configurate-core": { + "shasums": { + "jar": "06c1e9f7789a189af0c0156ebe9f469da7cc674233f43e8133c83131edd9f7e0" + }, + "version": "4.2.0" + }, + "org.spongepowered:configurate-gson": { + "shasums": { + "jar": "7aa71c61043f96911ce793a5fec25138134841d163a7637a349f59df480b50c5" + }, + "version": "4.2.0" + }, + "org.spongepowered:configurate-hocon": { + "shasums": { + "jar": "ff13759a465998107f8898150751b9d0cf77b5b5ffb9b5ec16ccea9cf229893e" + }, + "version": "4.2.0" + }, + "org.spongepowered:configurate-yaml": { + "shasums": { + "jar": "6294f085316188bffb71bb05ef36bf8755a288ed925c791952e1e8d7bfc8ba4c" + }, + "version": "4.2.0" + }, + "org.yaml:snakeyaml": { + "shasums": { + "jar": "e6682acf1ace77508ef13649cbf4f8d09d2cf5457bdb61d25ffb6ac0233d78dd" + }, + "version": "2.5" + } + }, + "conflict_resolution": { + "com.google.errorprone:error_prone_annotations:2.5.1": "com.google.errorprone:error_prone_annotations:2.48.0", + "com.google.guava:guava:31.0.1-jre": "com.google.guava:guava:33.6.0-jre", + "com.google.j2objc:j2objc-annotations:2.8": "com.google.j2objc:j2objc-annotations:3.1", + "io.leangen.geantyref:geantyref:1.3.16": "io.leangen.geantyref:geantyref:2.0.1", + "io.papermc.paper:paper-api:[26.2.build,)": "io.papermc.paper:paper-api:26.2.build.111-stable", + "net.kyori:adventure-key": "net.kyori:adventure-key:5.2.0", + "net.kyori:adventure-text-logger-slf4j": "net.kyori:adventure-text-logger-slf4j:5.2.0", + "net.kyori:adventure-text-serializer-ansi": "net.kyori:adventure-text-serializer-ansi:5.2.0", + "net.kyori:adventure-text-serializer-gson": "net.kyori:adventure-text-serializer-gson:5.2.0", + "net.kyori:adventure-text-serializer-legacy": "net.kyori:adventure-text-serializer-legacy:5.2.0", + "net.kyori:adventure-text-serializer-plain": "net.kyori:adventure-text-serializer-plain:5.2.0", + "org.jetbrains:annotations:26.0.2-1": "org.jetbrains:annotations:26.1.0", + "org.yaml:snakeyaml:2.2": "org.yaml:snakeyaml:2.5" + }, + "dependencies": { + "com.github.ben-manes.caffeine:caffeine": [ + "com.google.errorprone:error_prone_annotations", + "org.jspecify:jspecify" + ], + "com.google.code.gson:gson": [ + "com.google.errorprone:error_prone_annotations" + ], + "com.google.guava:guava": [ + "com.google.errorprone:error_prone_annotations", + "com.google.guava:failureaccess", + "com.google.guava:listenablefuture", + "com.google.j2objc:j2objc-annotations", + "org.jspecify:jspecify" + ], + "com.google.inject:guice": [ + "aopalliance:aopalliance", + "com.google.guava:guava", + "jakarta.inject:jakarta.inject-api" + ], + "com.leakyabstractions:result": [ + "com.leakyabstractions:result-api" + ], + "com.moandjiezana.toml:toml4j": [ + "com.google.code.gson:gson" + ], + "com.velocitypowered:velocity-api": [ + "com.github.ben-manes.caffeine:caffeine", + "com.google.code.gson:gson", + "com.google.guava:guava", + "com.google.inject:guice", + "com.moandjiezana.toml:toml4j", + "com.velocitypowered:velocity-brigadier", + "net.kyori:adventure-api", + "net.kyori:adventure-bom", + "net.kyori:adventure-text-logger-slf4j", + "net.kyori:adventure-text-minimessage", + "net.kyori:adventure-text-serializer-ansi", + "net.kyori:adventure-text-serializer-gson", + "net.kyori:adventure-text-serializer-legacy", + "net.kyori:adventure-text-serializer-plain", + "org.checkerframework:checker-qual", + "org.slf4j:slf4j-api", + "org.spongepowered:configurate-gson", + "org.spongepowered:configurate-hocon", + "org.spongepowered:configurate-yaml", + "org.yaml:snakeyaml" + ], + "de.kentoj.scrow:kencommandapi-bukkit": [ + "de.kentoj.scrow:kencommandapi-core", + "io.papermc.paper:paper-api", + "org.jetbrains:annotations" + ], + "de.kentoj.scrow:kencommandapi-core": [ + "com.google.guava:guava", + "com.leakyabstractions:result", + "com.leakyabstractions:result-api", + "net.kyori:adventure-api", + "org.jetbrains:annotations", + "org.slf4j:slf4j-api" + ], + "de.kentoj.scrow:kencommandapi-velocity": [ + "com.velocitypowered:velocity-api", + "de.kentoj.scrow:kencommandapi-core", + "org.jetbrains:annotations" + ], + "io.nats:jnats": [ + "org.bouncycastle:bcprov-lts8on", + "org.jspecify:jspecify" + ], + "io.papermc.paper:paper-api": [ + "com.google.code.gson:gson", + "com.google.guava:guava", + "com.mojang:brigadier", + "it.unimi.dsi:fastutil", + "net.kyori:adventure-api", + "net.kyori:adventure-bom", + "net.kyori:adventure-key", + "net.kyori:adventure-text-logger-slf4j", + "net.kyori:adventure-text-minimessage", + "net.kyori:adventure-text-serializer-gson", + "net.kyori:adventure-text-serializer-legacy", + "net.kyori:adventure-text-serializer-plain", + "net.md-5:bungeecord-chat", + "org.apache.logging.log4j:log4j-api", + "org.apache.maven.resolver:maven-resolver-connector-basic", + "org.apache.maven.resolver:maven-resolver-transport-http", + "org.apache.maven:maven-resolver-provider", + "org.joml:joml", + "org.jspecify:jspecify", + "org.slf4j:slf4j-api", + "org.yaml:snakeyaml" + ], + "net.kyori:adventure-api": [ + "net.kyori:adventure-bom", + "net.kyori:adventure-key" + ], + "net.kyori:adventure-key": [ + "net.kyori:adventure-bom", + "org.jspecify:jspecify" + ], + "net.kyori:adventure-text-logger-slf4j": [ + "net.kyori:adventure-api", + "net.kyori:adventure-bom" + ], + "net.kyori:adventure-text-minimessage": [ + "net.kyori:adventure-api", + "net.kyori:adventure-bom" + ], + "net.kyori:adventure-text-serializer-ansi": [ + "net.kyori:adventure-api", + "net.kyori:adventure-bom", + "net.kyori:ansi" + ], + "net.kyori:adventure-text-serializer-commons": [ + "net.kyori:adventure-bom", + "org.jspecify:jspecify" + ], + "net.kyori:adventure-text-serializer-gson": [ + "com.google.code.gson:gson", + "net.kyori:adventure-bom", + "net.kyori:adventure-text-serializer-commons", + "net.kyori:adventure-text-serializer-json" + ], + "net.kyori:adventure-text-serializer-json": [ + "net.kyori:adventure-api", + "net.kyori:adventure-bom", + "net.kyori:adventure-text-serializer-commons", + "net.kyori:option" + ], + "net.kyori:adventure-text-serializer-legacy": [ + "net.kyori:adventure-api", + "net.kyori:adventure-bom" + ], + "net.kyori:adventure-text-serializer-plain": [ + "net.kyori:adventure-api", + "net.kyori:adventure-bom" + ], + "net.md-5:bungeecord-chat": [ + "com.google.code.gson:gson" + ], + "org.apache.httpcomponents:httpclient": [ + "org.apache.httpcomponents:httpcore" + ], + "org.apache.maven.resolver:maven-resolver-connector-basic": [ + "org.apache.maven.resolver:maven-resolver-api", + "org.apache.maven.resolver:maven-resolver-spi", + "org.apache.maven.resolver:maven-resolver-util", + "org.slf4j:slf4j-api" + ], + "org.apache.maven.resolver:maven-resolver-impl": [ + "org.apache.maven.resolver:maven-resolver-api", + "org.apache.maven.resolver:maven-resolver-named-locks", + "org.apache.maven.resolver:maven-resolver-spi", + "org.apache.maven.resolver:maven-resolver-util", + "org.slf4j:slf4j-api" + ], + "org.apache.maven.resolver:maven-resolver-named-locks": [ + "org.slf4j:slf4j-api" + ], + "org.apache.maven.resolver:maven-resolver-spi": [ + "org.apache.maven.resolver:maven-resolver-api" + ], + "org.apache.maven.resolver:maven-resolver-transport-http": [ + "commons-codec:commons-codec", + "org.apache.httpcomponents:httpclient", + "org.apache.httpcomponents:httpcore", + "org.apache.maven.resolver:maven-resolver-api", + "org.apache.maven.resolver:maven-resolver-spi", + "org.apache.maven.resolver:maven-resolver-util", + "org.slf4j:jcl-over-slf4j", + "org.slf4j:slf4j-api" + ], + "org.apache.maven.resolver:maven-resolver-util": [ + "org.apache.maven.resolver:maven-resolver-api" + ], + "org.apache.maven:maven-artifact": [ + "org.apache.commons:commons-lang3", + "org.codehaus.plexus:plexus-utils" + ], + "org.apache.maven:maven-model": [ + "org.codehaus.plexus:plexus-utils" + ], + "org.apache.maven:maven-model-builder": [ + "javax.inject:javax.inject", + "org.apache.maven:maven-artifact", + "org.apache.maven:maven-builder-support", + "org.apache.maven:maven-model", + "org.codehaus.plexus:plexus-interpolation", + "org.codehaus.plexus:plexus-utils", + "org.eclipse.sisu:org.eclipse.sisu.inject" + ], + "org.apache.maven:maven-repository-metadata": [ + "org.codehaus.plexus:plexus-utils" + ], + "org.apache.maven:maven-resolver-provider": [ + "javax.inject:javax.inject", + "org.apache.maven.resolver:maven-resolver-api", + "org.apache.maven.resolver:maven-resolver-impl", + "org.apache.maven.resolver:maven-resolver-spi", + "org.apache.maven.resolver:maven-resolver-util", + "org.apache.maven:maven-model", + "org.apache.maven:maven-model-builder", + "org.apache.maven:maven-repository-metadata", + "org.codehaus.plexus:plexus-utils" + ], + "org.jdbi:jdbi3-core": [ + "io.leangen.geantyref:geantyref", + "org.slf4j:slf4j-api" + ], + "org.jdbi:jdbi3-postgres": [ + "org.jdbi:jdbi3-core" + ], + "org.slf4j:jcl-over-slf4j": [ + "org.slf4j:slf4j-api" + ], + "org.slf4j:slf4j-simple": [ + "org.slf4j:slf4j-api" + ], + "org.spongepowered:configurate-core": [ + "io.leangen.geantyref:geantyref", + "net.kyori:option" + ], + "org.spongepowered:configurate-gson": [ + "com.google.code.gson:gson", + "org.spongepowered:configurate-core" + ], + "org.spongepowered:configurate-hocon": [ + "org.spongepowered:configurate-core" + ], + "org.spongepowered:configurate-yaml": [ + "org.spongepowered:configurate-core" + ] + }, + "packages": { + "aopalliance:aopalliance": [ + "org.aopalliance.aop", + "org.aopalliance.intercept" + ], + "com.github.ben-manes.caffeine:caffeine": [ + "com.github.benmanes.caffeine.cache", + "com.github.benmanes.caffeine.cache.stats" + ], + "com.google.code.findbugs:jsr305": [ + "javax.annotation", + "javax.annotation.concurrent", + "javax.annotation.meta" + ], + "com.google.code.gson:gson": [ + "com.google.gson", + "com.google.gson.annotations", + "com.google.gson.internal", + "com.google.gson.internal.bind", + "com.google.gson.internal.bind.util", + "com.google.gson.internal.reflect", + "com.google.gson.internal.sql", + "com.google.gson.reflect", + "com.google.gson.stream" + ], + "com.google.errorprone:error_prone_annotations": [ + "com.google.errorprone.annotations", + "com.google.errorprone.annotations.concurrent" + ], + "com.google.guava:failureaccess": [ + "com.google.common.util.concurrent.internal" + ], + "com.google.guava:guava": [ + "com.google.common.annotations", + "com.google.common.base", + "com.google.common.base.internal", + "com.google.common.cache", + "com.google.common.collect", + "com.google.common.escape", + "com.google.common.eventbus", + "com.google.common.graph", + "com.google.common.hash", + "com.google.common.html", + "com.google.common.io", + "com.google.common.math", + "com.google.common.net", + "com.google.common.primitives", + "com.google.common.reflect", + "com.google.common.util.concurrent", + "com.google.common.xml", + "com.google.thirdparty.publicsuffix" + ], + "com.google.inject:guice": [ + "com.google.inject", + "com.google.inject.binder", + "com.google.inject.internal", + "com.google.inject.internal.aop", + "com.google.inject.internal.util", + "com.google.inject.matcher", + "com.google.inject.multibindings", + "com.google.inject.name", + "com.google.inject.spi", + "com.google.inject.util" + ], + "com.google.j2objc:j2objc-annotations": [ + "com.google.j2objc.annotations" + ], + "com.leakyabstractions:result": [ + "com.leakyabstractions.result.core" + ], + "com.leakyabstractions:result-api": [ + "com.leakyabstractions.result.api" + ], + "com.moandjiezana.toml:toml4j": [ + "com.moandjiezana.toml" + ], + "com.mojang:brigadier": [ + "com.mojang.brigadier", + "com.mojang.brigadier.arguments", + "com.mojang.brigadier.builder", + "com.mojang.brigadier.context", + "com.mojang.brigadier.exceptions", + "com.mojang.brigadier.suggestion", + "com.mojang.brigadier.tree" + ], + "com.velocitypowered:velocity-api": [ + "com.velocitypowered.api.command", + "com.velocitypowered.api.event", + "com.velocitypowered.api.event.annotation", + "com.velocitypowered.api.event.command", + "com.velocitypowered.api.event.connection", + "com.velocitypowered.api.event.permission", + "com.velocitypowered.api.event.player", + "com.velocitypowered.api.event.player.configuration", + "com.velocitypowered.api.event.proxy", + "com.velocitypowered.api.event.proxy.server", + "com.velocitypowered.api.event.query", + "com.velocitypowered.api.network", + "com.velocitypowered.api.permission", + "com.velocitypowered.api.plugin", + "com.velocitypowered.api.plugin.annotation", + "com.velocitypowered.api.plugin.ap", + "com.velocitypowered.api.plugin.meta", + "com.velocitypowered.api.proxy", + "com.velocitypowered.api.proxy.config", + "com.velocitypowered.api.proxy.crypto", + "com.velocitypowered.api.proxy.messages", + "com.velocitypowered.api.proxy.player", + "com.velocitypowered.api.proxy.server", + "com.velocitypowered.api.scheduler", + "com.velocitypowered.api.util" + ], + "com.velocitypowered:velocity-brigadier": [ + "com.mojang.brigadier", + "com.mojang.brigadier.arguments", + "com.mojang.brigadier.builder", + "com.mojang.brigadier.context", + "com.mojang.brigadier.exceptions", + "com.mojang.brigadier.suggestion", + "com.mojang.brigadier.tree" + ], + "commons-codec:commons-codec": [ + "org.apache.commons.codec", + "org.apache.commons.codec.binary", + "org.apache.commons.codec.cli", + "org.apache.commons.codec.digest", + "org.apache.commons.codec.language", + "org.apache.commons.codec.language.bm", + "org.apache.commons.codec.net" + ], + "de.kentoj.scrow:kencommandapi-bukkit": [ + "de.kentoj.kencommandapi", + "de.kentoj.kencommandapi.suggestionprovider", + "de.kentoj.kencommandapi.type" + ], + "de.kentoj.scrow:kencommandapi-core": [ + "de.kentoj.kencommandapi.api", + "de.kentoj.kencommandapi.api.argument", + "de.kentoj.kencommandapi.api.argument.types", + "de.kentoj.kencommandapi.api.invocation", + "de.kentoj.kencommandapi.api.literal", + "de.kentoj.kencommandapi.api.platform", + "de.kentoj.kencommandapi.api.suggestion", + "de.kentoj.kencommandapi.internal" + ], + "de.kentoj.scrow:kencommandapi-velocity": [ + "de.kentoj.kencommandapi", + "de.kentoj.kencommandapi.suggestionprovider", + "de.kentoj.kencommandapi.type" + ], + "io.leangen.geantyref:geantyref": [ + "io.leangen.geantyref" + ], + "io.nats:jnats": [ + "io.nats.client", + "io.nats.client.api", + "io.nats.client.impl", + "io.nats.client.support", + "io.nats.service" + ], + "io.papermc.paper:paper-api": [ + "co.aikar.timings", + "co.aikar.util", + "com.destroystokyo.paper", + "com.destroystokyo.paper.block", + "com.destroystokyo.paper.brigadier", + "com.destroystokyo.paper.entity", + "com.destroystokyo.paper.entity.ai", + "com.destroystokyo.paper.entity.villager", + "com.destroystokyo.paper.event.block", + "com.destroystokyo.paper.event.brigadier", + "com.destroystokyo.paper.event.entity", + "com.destroystokyo.paper.event.inventory", + "com.destroystokyo.paper.event.player", + "com.destroystokyo.paper.event.profile", + "com.destroystokyo.paper.event.server", + "com.destroystokyo.paper.exception", + "com.destroystokyo.paper.inventory.meta", + "com.destroystokyo.paper.loottable", + "com.destroystokyo.paper.network", + "com.destroystokyo.paper.profile", + "com.destroystokyo.paper.util", + "com.destroystokyo.paper.utils", + "io.papermc.paper", + "io.papermc.paper.advancement", + "io.papermc.paper.annotation", + "io.papermc.paper.ban", + "io.papermc.paper.block", + "io.papermc.paper.block.bed", + "io.papermc.paper.block.fluid", + "io.papermc.paper.block.fluid.type", + "io.papermc.paper.brigadier", + "io.papermc.paper.chat", + "io.papermc.paper.command", + "io.papermc.paper.command.brigadier", + "io.papermc.paper.command.brigadier.argument", + "io.papermc.paper.command.brigadier.argument.position", + "io.papermc.paper.command.brigadier.argument.predicate", + "io.papermc.paper.command.brigadier.argument.range", + "io.papermc.paper.command.brigadier.argument.resolvers", + "io.papermc.paper.command.brigadier.argument.resolvers.selector", + "io.papermc.paper.configuration", + "io.papermc.paper.connection", + "io.papermc.paper.datacomponent", + "io.papermc.paper.datacomponent.item", + "io.papermc.paper.datacomponent.item.attribute", + "io.papermc.paper.datacomponent.item.blocksattacks", + "io.papermc.paper.datacomponent.item.consumable", + "io.papermc.paper.datapack", + "io.papermc.paper.dialog", + "io.papermc.paper.enchantments", + "io.papermc.paper.entity", + "io.papermc.paper.entity.poi", + "io.papermc.paper.event.block", + "io.papermc.paper.event.connection", + "io.papermc.paper.event.connection.configuration", + "io.papermc.paper.event.entity", + "io.papermc.paper.event.executor", + "io.papermc.paper.event.inventory", + "io.papermc.paper.event.packet", + "io.papermc.paper.event.player", + "io.papermc.paper.event.server", + "io.papermc.paper.event.world", + "io.papermc.paper.event.world.border", + "io.papermc.paper.inventory", + "io.papermc.paper.inventory.tooltip", + "io.papermc.paper.item", + "io.papermc.paper.math", + "io.papermc.paper.persistence", + "io.papermc.paper.plugin", + "io.papermc.paper.plugin.bootstrap", + "io.papermc.paper.plugin.configuration", + "io.papermc.paper.plugin.lifecycle.event", + "io.papermc.paper.plugin.lifecycle.event.handler", + "io.papermc.paper.plugin.lifecycle.event.handler.configuration", + "io.papermc.paper.plugin.lifecycle.event.registrar", + "io.papermc.paper.plugin.lifecycle.event.types", + "io.papermc.paper.plugin.loader", + "io.papermc.paper.plugin.loader.library", + "io.papermc.paper.plugin.loader.library.impl", + "io.papermc.paper.plugin.provider.classloader", + "io.papermc.paper.plugin.provider.entrypoint", + "io.papermc.paper.plugin.provider.util", + "io.papermc.paper.potion", + "io.papermc.paper.raytracing", + "io.papermc.paper.registry", + "io.papermc.paper.registry.data", + "io.papermc.paper.registry.data.client", + "io.papermc.paper.registry.data.dialog", + "io.papermc.paper.registry.data.dialog.action", + "io.papermc.paper.registry.data.dialog.body", + "io.papermc.paper.registry.data.dialog.input", + "io.papermc.paper.registry.data.dialog.type", + "io.papermc.paper.registry.event", + "io.papermc.paper.registry.event.type", + "io.papermc.paper.registry.holder", + "io.papermc.paper.registry.keys", + "io.papermc.paper.registry.keys.tags", + "io.papermc.paper.registry.set", + "io.papermc.paper.registry.tag", + "io.papermc.paper.scoreboard.numbers", + "io.papermc.paper.tag", + "io.papermc.paper.text", + "io.papermc.paper.threadedregions", + "io.papermc.paper.threadedregions.scheduler", + "io.papermc.paper.util", + "io.papermc.paper.world", + "io.papermc.paper.world.damagesource", + "io.papermc.paper.world.flag", + "org.bukkit", + "org.bukkit.advancement", + "org.bukkit.attribute", + "org.bukkit.ban", + "org.bukkit.block", + "org.bukkit.block.banner", + "org.bukkit.block.data", + "org.bukkit.block.data.type", + "org.bukkit.block.sign", + "org.bukkit.block.spawner", + "org.bukkit.block.structure", + "org.bukkit.boss", + "org.bukkit.command", + "org.bukkit.command.defaults", + "org.bukkit.configuration", + "org.bukkit.configuration.file", + "org.bukkit.configuration.serialization", + "org.bukkit.conversations", + "org.bukkit.damage", + "org.bukkit.enchantments", + "org.bukkit.entity", + "org.bukkit.entity.boat", + "org.bukkit.entity.memory", + "org.bukkit.entity.minecart", + "org.bukkit.event", + "org.bukkit.event.block", + "org.bukkit.event.command", + "org.bukkit.event.enchantment", + "org.bukkit.event.entity", + "org.bukkit.event.hanging", + "org.bukkit.event.inventory", + "org.bukkit.event.player", + "org.bukkit.event.raid", + "org.bukkit.event.server", + "org.bukkit.event.vehicle", + "org.bukkit.event.weather", + "org.bukkit.event.world", + "org.bukkit.generator", + "org.bukkit.generator.structure", + "org.bukkit.help", + "org.bukkit.inventory", + "org.bukkit.inventory.meta", + "org.bukkit.inventory.meta.components", + "org.bukkit.inventory.meta.tags", + "org.bukkit.inventory.meta.trim", + "org.bukkit.inventory.recipe", + "org.bukkit.inventory.view", + "org.bukkit.inventory.view.builder", + "org.bukkit.loot", + "org.bukkit.map", + "org.bukkit.material", + "org.bukkit.material.types", + "org.bukkit.metadata", + "org.bukkit.packs", + "org.bukkit.permissions", + "org.bukkit.persistence", + "org.bukkit.plugin", + "org.bukkit.plugin.java", + "org.bukkit.plugin.messaging", + "org.bukkit.potion", + "org.bukkit.profile", + "org.bukkit.projectiles", + "org.bukkit.scheduler", + "org.bukkit.scoreboard", + "org.bukkit.spawner", + "org.bukkit.structure", + "org.bukkit.tag", + "org.bukkit.util", + "org.bukkit.util.io", + "org.bukkit.util.noise", + "org.bukkit.util.permissions", + "org.spigotmc", + "org.spigotmc.event.player" + ], + "it.unimi.dsi:fastutil": [ + "it.unimi.dsi.fastutil", + "it.unimi.dsi.fastutil.booleans", + "it.unimi.dsi.fastutil.bytes", + "it.unimi.dsi.fastutil.chars", + "it.unimi.dsi.fastutil.doubles", + "it.unimi.dsi.fastutil.floats", + "it.unimi.dsi.fastutil.ints", + "it.unimi.dsi.fastutil.io", + "it.unimi.dsi.fastutil.longs", + "it.unimi.dsi.fastutil.objects", + "it.unimi.dsi.fastutil.shorts" + ], + "jakarta.inject:jakarta.inject-api": [ + "jakarta.inject" + ], + "javax.inject:javax.inject": [ + "javax.inject" + ], + "net.kyori:adventure-api": [ + "net.kyori.adventure", + "net.kyori.adventure.audience", + "net.kyori.adventure.bossbar", + "net.kyori.adventure.builder", + "net.kyori.adventure.chat", + "net.kyori.adventure.dialog", + "net.kyori.adventure.identity", + "net.kyori.adventure.internal.properties", + "net.kyori.adventure.inventory", + "net.kyori.adventure.nbt.api", + "net.kyori.adventure.permission", + "net.kyori.adventure.pointer", + "net.kyori.adventure.resource", + "net.kyori.adventure.sound", + "net.kyori.adventure.text", + "net.kyori.adventure.text.event", + "net.kyori.adventure.text.flattener", + "net.kyori.adventure.text.format", + "net.kyori.adventure.text.object", + "net.kyori.adventure.text.renderer", + "net.kyori.adventure.text.serializer", + "net.kyori.adventure.title", + "net.kyori.adventure.translation", + "net.kyori.adventure.util" + ], + "net.kyori:adventure-key": [ + "net.kyori.adventure.key" + ], + "net.kyori:adventure-text-logger-slf4j": [ + "net.kyori.adventure.text.logger.slf4j" + ], + "net.kyori:adventure-text-minimessage": [ + "net.kyori.adventure.text.minimessage", + "net.kyori.adventure.text.minimessage.internal", + "net.kyori.adventure.text.minimessage.internal.parser", + "net.kyori.adventure.text.minimessage.internal.parser.match", + "net.kyori.adventure.text.minimessage.internal.parser.node", + "net.kyori.adventure.text.minimessage.internal.serializer", + "net.kyori.adventure.text.minimessage.tag", + "net.kyori.adventure.text.minimessage.tag.resolver", + "net.kyori.adventure.text.minimessage.tag.standard", + "net.kyori.adventure.text.minimessage.translation", + "net.kyori.adventure.text.minimessage.tree" + ], + "net.kyori:adventure-text-serializer-ansi": [ + "net.kyori.adventure.text.serializer.ansi" + ], + "net.kyori:adventure-text-serializer-commons": [ + "net.kyori.adventure.text.serializer.commons" + ], + "net.kyori:adventure-text-serializer-gson": [ + "net.kyori.adventure.text.serializer.gson", + "net.kyori.adventure.text.serializer.gson.impl" + ], + "net.kyori:adventure-text-serializer-json": [ + "net.kyori.adventure.text.serializer.json" + ], + "net.kyori:adventure-text-serializer-legacy": [ + "net.kyori.adventure.text.serializer.legacy" + ], + "net.kyori:adventure-text-serializer-plain": [ + "net.kyori.adventure.text.serializer.plain" + ], + "net.kyori:ansi": [ + "net.kyori.ansi" + ], + "net.kyori:option": [ + "net.kyori.option", + "net.kyori.option.value" + ], + "net.luckperms:api": [ + "net.luckperms.api", + "net.luckperms.api.actionlog", + "net.luckperms.api.actionlog.filter", + "net.luckperms.api.cacheddata", + "net.luckperms.api.context", + "net.luckperms.api.event", + "net.luckperms.api.event.cause", + "net.luckperms.api.event.context", + "net.luckperms.api.event.extension", + "net.luckperms.api.event.group", + "net.luckperms.api.event.log", + "net.luckperms.api.event.messaging", + "net.luckperms.api.event.node", + "net.luckperms.api.event.player", + "net.luckperms.api.event.player.lookup", + "net.luckperms.api.event.source", + "net.luckperms.api.event.sync", + "net.luckperms.api.event.track", + "net.luckperms.api.event.track.mutate", + "net.luckperms.api.event.type", + "net.luckperms.api.event.user", + "net.luckperms.api.event.user.track", + "net.luckperms.api.event.util", + "net.luckperms.api.extension", + "net.luckperms.api.messaging", + "net.luckperms.api.messenger", + "net.luckperms.api.messenger.message", + "net.luckperms.api.messenger.message.type", + "net.luckperms.api.metastacking", + "net.luckperms.api.model", + "net.luckperms.api.model.data", + "net.luckperms.api.model.group", + "net.luckperms.api.model.user", + "net.luckperms.api.node", + "net.luckperms.api.node.matcher", + "net.luckperms.api.node.metadata", + "net.luckperms.api.node.metadata.types", + "net.luckperms.api.node.types", + "net.luckperms.api.platform", + "net.luckperms.api.query", + "net.luckperms.api.query.dataorder", + "net.luckperms.api.query.meta", + "net.luckperms.api.track", + "net.luckperms.api.util" + ], + "net.md-5:bungeecord-chat": [ + "net.md_5.bungee.api", + "net.md_5.bungee.api.chat", + "net.md_5.bungee.api.chat.hover.content", + "net.md_5.bungee.chat" + ], + "org.apache.commons:commons-lang3": [ + "org.apache.commons.lang3", + "org.apache.commons.lang3.arch", + "org.apache.commons.lang3.builder", + "org.apache.commons.lang3.compare", + "org.apache.commons.lang3.concurrent", + "org.apache.commons.lang3.concurrent.locks", + "org.apache.commons.lang3.event", + "org.apache.commons.lang3.exception", + "org.apache.commons.lang3.function", + "org.apache.commons.lang3.math", + "org.apache.commons.lang3.mutable", + "org.apache.commons.lang3.reflect", + "org.apache.commons.lang3.stream", + "org.apache.commons.lang3.text", + "org.apache.commons.lang3.text.translate", + "org.apache.commons.lang3.time", + "org.apache.commons.lang3.tuple" + ], + "org.apache.httpcomponents:httpclient": [ + "org.apache.http.auth", + "org.apache.http.auth.params", + "org.apache.http.client", + "org.apache.http.client.config", + "org.apache.http.client.entity", + "org.apache.http.client.methods", + "org.apache.http.client.params", + "org.apache.http.client.protocol", + "org.apache.http.client.utils", + "org.apache.http.conn", + "org.apache.http.conn.params", + "org.apache.http.conn.routing", + "org.apache.http.conn.scheme", + "org.apache.http.conn.socket", + "org.apache.http.conn.ssl", + "org.apache.http.conn.util", + "org.apache.http.cookie", + "org.apache.http.cookie.params", + "org.apache.http.impl.auth", + "org.apache.http.impl.client", + "org.apache.http.impl.conn", + "org.apache.http.impl.conn.tsccm", + "org.apache.http.impl.cookie", + "org.apache.http.impl.execchain" + ], + "org.apache.httpcomponents:httpcore": [ + "org.apache.http", + "org.apache.http.annotation", + "org.apache.http.concurrent", + "org.apache.http.config", + "org.apache.http.entity", + "org.apache.http.impl", + "org.apache.http.impl.bootstrap", + "org.apache.http.impl.entity", + "org.apache.http.impl.io", + "org.apache.http.impl.pool", + "org.apache.http.io", + "org.apache.http.message", + "org.apache.http.params", + "org.apache.http.pool", + "org.apache.http.protocol", + "org.apache.http.ssl", + "org.apache.http.util" + ], + "org.apache.logging.log4j:log4j-api": [ + "org.apache.logging.log4j", + "org.apache.logging.log4j.internal", + "org.apache.logging.log4j.internal.annotation", + "org.apache.logging.log4j.internal.map", + "org.apache.logging.log4j.message", + "org.apache.logging.log4j.simple", + "org.apache.logging.log4j.simple.internal", + "org.apache.logging.log4j.spi", + "org.apache.logging.log4j.status", + "org.apache.logging.log4j.util", + "org.apache.logging.log4j.util.internal" + ], + "org.apache.maven.resolver:maven-resolver-api": [ + "org.eclipse.aether", + "org.eclipse.aether.artifact", + "org.eclipse.aether.collection", + "org.eclipse.aether.deployment", + "org.eclipse.aether.graph", + "org.eclipse.aether.installation", + "org.eclipse.aether.metadata", + "org.eclipse.aether.repository", + "org.eclipse.aether.resolution", + "org.eclipse.aether.transfer", + "org.eclipse.aether.transform", + "org.eclipse.aether.version" + ], + "org.apache.maven.resolver:maven-resolver-connector-basic": [ + "org.eclipse.aether.connector.basic" + ], + "org.apache.maven.resolver:maven-resolver-impl": [ + "org.eclipse.aether.impl", + "org.eclipse.aether.impl.guice", + "org.eclipse.aether.internal.impl", + "org.eclipse.aether.internal.impl.checksum", + "org.eclipse.aether.internal.impl.collect", + "org.eclipse.aether.internal.impl.collect.bf", + "org.eclipse.aether.internal.impl.collect.df", + "org.eclipse.aether.internal.impl.filter", + "org.eclipse.aether.internal.impl.resolution", + "org.eclipse.aether.internal.impl.slf4j", + "org.eclipse.aether.internal.impl.synccontext", + "org.eclipse.aether.internal.impl.synccontext.legacy", + "org.eclipse.aether.internal.impl.synccontext.named", + "org.eclipse.aether.internal.impl.synccontext.named.providers" + ], + "org.apache.maven.resolver:maven-resolver-named-locks": [ + "org.eclipse.aether.named", + "org.eclipse.aether.named.providers", + "org.eclipse.aether.named.support" + ], + "org.apache.maven.resolver:maven-resolver-spi": [ + "org.eclipse.aether.spi.checksums", + "org.eclipse.aether.spi.connector", + "org.eclipse.aether.spi.connector.checksum", + "org.eclipse.aether.spi.connector.filter", + "org.eclipse.aether.spi.connector.layout", + "org.eclipse.aether.spi.connector.transport", + "org.eclipse.aether.spi.io", + "org.eclipse.aether.spi.localrepo", + "org.eclipse.aether.spi.locator", + "org.eclipse.aether.spi.log", + "org.eclipse.aether.spi.resolution", + "org.eclipse.aether.spi.synccontext" + ], + "org.apache.maven.resolver:maven-resolver-transport-http": [ + "org.eclipse.aether.transport.http" + ], + "org.apache.maven.resolver:maven-resolver-util": [ + "org.eclipse.aether.util", + "org.eclipse.aether.util.artifact", + "org.eclipse.aether.util.concurrency", + "org.eclipse.aether.util.filter", + "org.eclipse.aether.util.graph.manager", + "org.eclipse.aether.util.graph.selector", + "org.eclipse.aether.util.graph.transformer", + "org.eclipse.aether.util.graph.traverser", + "org.eclipse.aether.util.graph.version", + "org.eclipse.aether.util.graph.visitor", + "org.eclipse.aether.util.listener", + "org.eclipse.aether.util.repository", + "org.eclipse.aether.util.version" + ], + "org.apache.maven:maven-artifact": [ + "org.apache.maven.artifact", + "org.apache.maven.artifact.handler", + "org.apache.maven.artifact.metadata", + "org.apache.maven.artifact.repository", + "org.apache.maven.artifact.repository.layout", + "org.apache.maven.artifact.repository.metadata", + "org.apache.maven.artifact.resolver", + "org.apache.maven.artifact.resolver.filter", + "org.apache.maven.artifact.versioning", + "org.apache.maven.repository", + "org.apache.maven.repository.legacy.metadata" + ], + "org.apache.maven:maven-builder-support": [ + "org.apache.maven.building" + ], + "org.apache.maven:maven-model": [ + "org.apache.maven.model", + "org.apache.maven.model.io.xpp3", + "org.apache.maven.model.merge" + ], + "org.apache.maven:maven-model-builder": [ + "org.apache.maven.model.building", + "org.apache.maven.model.composition", + "org.apache.maven.model.inheritance", + "org.apache.maven.model.interpolation", + "org.apache.maven.model.io", + "org.apache.maven.model.locator", + "org.apache.maven.model.management", + "org.apache.maven.model.merge", + "org.apache.maven.model.normalization", + "org.apache.maven.model.path", + "org.apache.maven.model.plugin", + "org.apache.maven.model.profile", + "org.apache.maven.model.profile.activation", + "org.apache.maven.model.resolution", + "org.apache.maven.model.superpom", + "org.apache.maven.model.validation" + ], + "org.apache.maven:maven-repository-metadata": [ + "org.apache.maven.artifact.repository.metadata", + "org.apache.maven.artifact.repository.metadata.io.xpp3" + ], + "org.apache.maven:maven-resolver-provider": [ + "org.apache.maven.repository.internal" + ], + "org.bouncycastle:bcprov-lts8on": [ + "org.bouncycastle", + "org.bouncycastle.asn1", + "org.bouncycastle.asn1.anssi", + "org.bouncycastle.asn1.bc", + "org.bouncycastle.asn1.cryptlib", + "org.bouncycastle.asn1.cryptopro", + "org.bouncycastle.asn1.edec", + "org.bouncycastle.asn1.gm", + "org.bouncycastle.asn1.gnu", + "org.bouncycastle.asn1.iana", + "org.bouncycastle.asn1.isara", + "org.bouncycastle.asn1.iso", + "org.bouncycastle.asn1.kisa", + "org.bouncycastle.asn1.microsoft", + "org.bouncycastle.asn1.misc", + "org.bouncycastle.asn1.mozilla", + "org.bouncycastle.asn1.nist", + "org.bouncycastle.asn1.nsri", + "org.bouncycastle.asn1.ntt", + "org.bouncycastle.asn1.ocsp", + "org.bouncycastle.asn1.oiw", + "org.bouncycastle.asn1.pkcs", + "org.bouncycastle.asn1.rosstandart", + "org.bouncycastle.asn1.sec", + "org.bouncycastle.asn1.teletrust", + "org.bouncycastle.asn1.ua", + "org.bouncycastle.asn1.util", + "org.bouncycastle.asn1.x500", + "org.bouncycastle.asn1.x500.style", + "org.bouncycastle.asn1.x509", + "org.bouncycastle.asn1.x509.qualified", + "org.bouncycastle.asn1.x509.sigi", + "org.bouncycastle.asn1.x9", + "org.bouncycastle.crypto", + "org.bouncycastle.crypto.agreement", + "org.bouncycastle.crypto.agreement.ecjpake", + "org.bouncycastle.crypto.agreement.jpake", + "org.bouncycastle.crypto.agreement.kdf", + "org.bouncycastle.crypto.agreement.srp", + "org.bouncycastle.crypto.commitments", + "org.bouncycastle.crypto.constraints", + "org.bouncycastle.crypto.digests", + "org.bouncycastle.crypto.ec", + "org.bouncycastle.crypto.encodings", + "org.bouncycastle.crypto.engines", + "org.bouncycastle.crypto.fpe", + "org.bouncycastle.crypto.generators", + "org.bouncycastle.crypto.hpke", + "org.bouncycastle.crypto.io", + "org.bouncycastle.crypto.kems", + "org.bouncycastle.crypto.macs", + "org.bouncycastle.crypto.modes", + "org.bouncycastle.crypto.modes.gcm", + "org.bouncycastle.crypto.modes.kgcm", + "org.bouncycastle.crypto.paddings", + "org.bouncycastle.crypto.params", + "org.bouncycastle.crypto.parsers", + "org.bouncycastle.crypto.prng", + "org.bouncycastle.crypto.prng.drbg", + "org.bouncycastle.crypto.signers", + "org.bouncycastle.crypto.tls", + "org.bouncycastle.crypto.util", + "org.bouncycastle.iana", + "org.bouncycastle.internal.asn1.bsi", + "org.bouncycastle.internal.asn1.cms", + "org.bouncycastle.internal.asn1.cryptlib", + "org.bouncycastle.internal.asn1.eac", + "org.bouncycastle.internal.asn1.edec", + "org.bouncycastle.internal.asn1.gnu", + "org.bouncycastle.internal.asn1.iana", + "org.bouncycastle.internal.asn1.isara", + "org.bouncycastle.internal.asn1.isismtt", + "org.bouncycastle.internal.asn1.iso", + "org.bouncycastle.internal.asn1.kisa", + "org.bouncycastle.internal.asn1.microsoft", + "org.bouncycastle.internal.asn1.misc", + "org.bouncycastle.internal.asn1.nsri", + "org.bouncycastle.internal.asn1.ntt", + "org.bouncycastle.internal.asn1.oiw", + "org.bouncycastle.internal.asn1.rosstandart", + "org.bouncycastle.jcajce", + "org.bouncycastle.jcajce.interfaces", + "org.bouncycastle.jcajce.io", + "org.bouncycastle.jcajce.provider.asymmetric", + "org.bouncycastle.jcajce.provider.asymmetric.compositesignatures", + "org.bouncycastle.jcajce.provider.asymmetric.dh", + "org.bouncycastle.jcajce.provider.asymmetric.dsa", + "org.bouncycastle.jcajce.provider.asymmetric.dstu", + "org.bouncycastle.jcajce.provider.asymmetric.ec", + "org.bouncycastle.jcajce.provider.asymmetric.ecgost", + "org.bouncycastle.jcajce.provider.asymmetric.ecgost12", + "org.bouncycastle.jcajce.provider.asymmetric.edec", + "org.bouncycastle.jcajce.provider.asymmetric.elgamal", + "org.bouncycastle.jcajce.provider.asymmetric.gost", + "org.bouncycastle.jcajce.provider.asymmetric.ies", + "org.bouncycastle.jcajce.provider.asymmetric.mldsa", + "org.bouncycastle.jcajce.provider.asymmetric.mlkem", + "org.bouncycastle.jcajce.provider.asymmetric.rsa", + "org.bouncycastle.jcajce.provider.asymmetric.slhdsa", + "org.bouncycastle.jcajce.provider.asymmetric.util", + "org.bouncycastle.jcajce.provider.asymmetric.x509", + "org.bouncycastle.jcajce.provider.config", + "org.bouncycastle.jcajce.provider.digest", + "org.bouncycastle.jcajce.provider.drbg", + "org.bouncycastle.jcajce.provider.keystore", + "org.bouncycastle.jcajce.provider.keystore.bc", + "org.bouncycastle.jcajce.provider.keystore.bcfks", + "org.bouncycastle.jcajce.provider.keystore.pkcs12", + "org.bouncycastle.jcajce.provider.keystore.util", + "org.bouncycastle.jcajce.provider.symmetric", + "org.bouncycastle.jcajce.provider.symmetric.util", + "org.bouncycastle.jcajce.provider.util", + "org.bouncycastle.jcajce.spec", + "org.bouncycastle.jcajce.util", + "org.bouncycastle.jce", + "org.bouncycastle.jce.exception", + "org.bouncycastle.jce.interfaces", + "org.bouncycastle.jce.netscape", + "org.bouncycastle.jce.provider", + "org.bouncycastle.jce.spec", + "org.bouncycastle.math", + "org.bouncycastle.math.ec", + "org.bouncycastle.math.ec.custom.djb", + "org.bouncycastle.math.ec.custom.gm", + "org.bouncycastle.math.ec.custom.sec", + "org.bouncycastle.math.ec.endo", + "org.bouncycastle.math.ec.rfc7748", + "org.bouncycastle.math.ec.rfc8032", + "org.bouncycastle.math.ec.tools", + "org.bouncycastle.math.field", + "org.bouncycastle.math.raw", + "org.bouncycastle.pqc.crypto", + "org.bouncycastle.pqc.crypto.lms", + "org.bouncycastle.pqc.crypto.mldsa", + "org.bouncycastle.pqc.crypto.mlkem", + "org.bouncycastle.pqc.crypto.slhdsa", + "org.bouncycastle.pqc.crypto.util", + "org.bouncycastle.pqc.jcajce.interfaces", + "org.bouncycastle.pqc.jcajce.provider.lms", + "org.bouncycastle.pqc.jcajce.provider.util", + "org.bouncycastle.pqc.jcajce.spec", + "org.bouncycastle.util", + "org.bouncycastle.util.dispose", + "org.bouncycastle.util.encoders", + "org.bouncycastle.util.io", + "org.bouncycastle.util.io.pem", + "org.bouncycastle.util.test" + ], + "org.checkerframework:checker-qual": [ + "org.checkerframework.checker.builder.qual", + "org.checkerframework.checker.calledmethods.qual", + "org.checkerframework.checker.compilermsgs.qual", + "org.checkerframework.checker.fenum.qual", + "org.checkerframework.checker.formatter.qual", + "org.checkerframework.checker.guieffect.qual", + "org.checkerframework.checker.i18n.qual", + "org.checkerframework.checker.i18nformatter.qual", + "org.checkerframework.checker.index.qual", + "org.checkerframework.checker.initialization.qual", + "org.checkerframework.checker.interning.qual", + "org.checkerframework.checker.lock.qual", + "org.checkerframework.checker.mustcall.qual", + "org.checkerframework.checker.nonempty.qual", + "org.checkerframework.checker.nullness.qual", + "org.checkerframework.checker.optional.qual", + "org.checkerframework.checker.propkey.qual", + "org.checkerframework.checker.regex.qual", + "org.checkerframework.checker.signature.qual", + "org.checkerframework.checker.signedness.qual", + "org.checkerframework.checker.sqlquotes.qual", + "org.checkerframework.checker.tainting.qual", + "org.checkerframework.checker.units.qual", + "org.checkerframework.common.aliasing.qual", + "org.checkerframework.common.initializedfields.qual", + "org.checkerframework.common.reflection.qual", + "org.checkerframework.common.returnsreceiver.qual", + "org.checkerframework.common.subtyping.qual", + "org.checkerframework.common.util.count.report.qual", + "org.checkerframework.common.value.qual", + "org.checkerframework.dataflow.qual", + "org.checkerframework.framework.qual" + ], + "org.codehaus.plexus:plexus-interpolation": [ + "org.codehaus.plexus.interpolation", + "org.codehaus.plexus.interpolation.fixed", + "org.codehaus.plexus.interpolation.multi", + "org.codehaus.plexus.interpolation.object", + "org.codehaus.plexus.interpolation.os", + "org.codehaus.plexus.interpolation.reflection", + "org.codehaus.plexus.interpolation.util" + ], + "org.codehaus.plexus:plexus-utils": [ + "org.codehaus.plexus.util", + "org.codehaus.plexus.util.cli", + "org.codehaus.plexus.util.cli.shell", + "org.codehaus.plexus.util.dag", + "org.codehaus.plexus.util.introspection", + "org.codehaus.plexus.util.io", + "org.codehaus.plexus.util.reflection", + "org.codehaus.plexus.util.xml", + "org.codehaus.plexus.util.xml.pull" + ], + "org.eclipse.sisu:org.eclipse.sisu.inject": [ + "org.eclipse.sisu", + "org.eclipse.sisu.bean", + "org.eclipse.sisu.inject", + "org.eclipse.sisu.launch", + "org.eclipse.sisu.osgi", + "org.eclipse.sisu.space", + "org.eclipse.sisu.space.asm", + "org.eclipse.sisu.wire", + "org.sonatype.inject" + ], + "org.jdbi:jdbi3-core": [ + "org.jdbi.v3.core", + "org.jdbi.v3.core.annotation", + "org.jdbi.v3.core.annotation.internal", + "org.jdbi.v3.core.argument", + "org.jdbi.v3.core.argument.internal", + "org.jdbi.v3.core.argument.internal.strategies", + "org.jdbi.v3.core.array", + "org.jdbi.v3.core.async", + "org.jdbi.v3.core.cache", + "org.jdbi.v3.core.cache.internal", + "org.jdbi.v3.core.codec", + "org.jdbi.v3.core.collector", + "org.jdbi.v3.core.config", + "org.jdbi.v3.core.config.internal", + "org.jdbi.v3.core.enums", + "org.jdbi.v3.core.enums.internal", + "org.jdbi.v3.core.extension", + "org.jdbi.v3.core.extension.annotation", + "org.jdbi.v3.core.generic", + "org.jdbi.v3.core.h2", + "org.jdbi.v3.core.interceptor", + "org.jdbi.v3.core.internal", + "org.jdbi.v3.core.internal.exceptions", + "org.jdbi.v3.core.internal.lexer", + "org.jdbi.v3.core.locator", + "org.jdbi.v3.core.locator.internal", + "org.jdbi.v3.core.mapper", + "org.jdbi.v3.core.mapper.immutables", + "org.jdbi.v3.core.mapper.reflect", + "org.jdbi.v3.core.mapper.reflect.internal", + "org.jdbi.v3.core.qualifier", + "org.jdbi.v3.core.result", + "org.jdbi.v3.core.result.internal", + "org.jdbi.v3.core.spi", + "org.jdbi.v3.core.statement", + "org.jdbi.v3.core.statement.internal", + "org.jdbi.v3.core.transaction", + "org.jdbi.v3.meta" + ], + "org.jdbi:jdbi3-postgres": [ + "org.jdbi.v3.postgres", + "org.jdbi.v3.postgres.internal" + ], + "org.jetbrains:annotations": [ + "org.intellij.lang.annotations", + "org.jetbrains.annotations" + ], + "org.joml:joml": [ + "org.joml", + "org.joml.sampling" + ], + "org.jspecify:jspecify": [ + "org.jspecify.annotations" + ], + "org.mongodb:bson": [ + "org.bson", + "org.bson.annotations", + "org.bson.assertions", + "org.bson.codecs", + "org.bson.codecs.configuration", + "org.bson.codecs.jsr310", + "org.bson.codecs.pojo", + "org.bson.codecs.pojo.annotations", + "org.bson.conversions", + "org.bson.diagnostics", + "org.bson.internal", + "org.bson.internal.vector", + "org.bson.io", + "org.bson.json", + "org.bson.types" + ], + "org.postgresql:postgresql": [ + "org.postgresql", + "org.postgresql.copy", + "org.postgresql.core", + "org.postgresql.core.v3", + "org.postgresql.core.v3.adaptivefetch", + "org.postgresql.core.v3.replication", + "org.postgresql.ds", + "org.postgresql.ds.common", + "org.postgresql.fastpath", + "org.postgresql.geometric", + "org.postgresql.gss", + "org.postgresql.hostchooser", + "org.postgresql.jdbc", + "org.postgresql.jdbc2", + "org.postgresql.jdbc2.optional", + "org.postgresql.jdbc3", + "org.postgresql.jdbcurlresolver", + "org.postgresql.largeobject", + "org.postgresql.osgi", + "org.postgresql.plugin", + "org.postgresql.replication", + "org.postgresql.replication.fluent", + "org.postgresql.replication.fluent.logical", + "org.postgresql.replication.fluent.physical", + "org.postgresql.shaded.com.ongres.saslprep", + "org.postgresql.shaded.com.ongres.scram.client", + "org.postgresql.shaded.com.ongres.scram.common", + "org.postgresql.shaded.com.ongres.scram.common.exception", + "org.postgresql.shaded.com.ongres.scram.common.util", + "org.postgresql.shaded.com.ongres.stringprep", + "org.postgresql.ssl", + "org.postgresql.ssl.jdbc4", + "org.postgresql.sspi", + "org.postgresql.translation", + "org.postgresql.util", + "org.postgresql.util.internal", + "org.postgresql.xa", + "org.postgresql.xml" + ], + "org.slf4j:jcl-over-slf4j": [ + "org.apache.commons.logging", + "org.apache.commons.logging.impl" + ], + "org.slf4j:slf4j-api": [ + "org.slf4j", + "org.slf4j.event", + "org.slf4j.helpers", + "org.slf4j.spi" + ], + "org.slf4j:slf4j-simple": [ + "org.slf4j.simple" + ], + "org.spongepowered:configurate-core": [ + "org.spongepowered.configurate", + "org.spongepowered.configurate.loader", + "org.spongepowered.configurate.objectmapping", + "org.spongepowered.configurate.objectmapping.meta", + "org.spongepowered.configurate.reactive", + "org.spongepowered.configurate.reference", + "org.spongepowered.configurate.serialize", + "org.spongepowered.configurate.transformation", + "org.spongepowered.configurate.util" + ], + "org.spongepowered:configurate-gson": [ + "org.spongepowered.configurate.gson" + ], + "org.spongepowered:configurate-hocon": [ + "org.spongepowered.configurate.hocon", + "org.spongepowered.configurate.hocon.internal.typesafeconfig", + "org.spongepowered.configurate.hocon.internal.typesafeconfig.impl", + "org.spongepowered.configurate.hocon.internal.typesafeconfig.parser" + ], + "org.spongepowered:configurate-yaml": [ + "org.spongepowered.configurate.yaml", + "org.spongepowered.configurate.yaml.internal.snakeyaml", + "org.spongepowered.configurate.yaml.internal.snakeyaml.comments", + "org.spongepowered.configurate.yaml.internal.snakeyaml.composer", + "org.spongepowered.configurate.yaml.internal.snakeyaml.constructor", + "org.spongepowered.configurate.yaml.internal.snakeyaml.emitter", + "org.spongepowered.configurate.yaml.internal.snakeyaml.error", + "org.spongepowered.configurate.yaml.internal.snakeyaml.events", + "org.spongepowered.configurate.yaml.internal.snakeyaml.external.com.google.gdata.util.common.base", + "org.spongepowered.configurate.yaml.internal.snakeyaml.inspector", + "org.spongepowered.configurate.yaml.internal.snakeyaml.internal", + "org.spongepowered.configurate.yaml.internal.snakeyaml.introspector", + "org.spongepowered.configurate.yaml.internal.snakeyaml.nodes", + "org.spongepowered.configurate.yaml.internal.snakeyaml.parser", + "org.spongepowered.configurate.yaml.internal.snakeyaml.reader", + "org.spongepowered.configurate.yaml.internal.snakeyaml.representer", + "org.spongepowered.configurate.yaml.internal.snakeyaml.resolver", + "org.spongepowered.configurate.yaml.internal.snakeyaml.scanner", + "org.spongepowered.configurate.yaml.internal.snakeyaml.serializer", + "org.spongepowered.configurate.yaml.internal.snakeyaml.tokens", + "org.spongepowered.configurate.yaml.internal.snakeyaml.util" + ], + "org.yaml:snakeyaml": [ + "org.yaml.snakeyaml", + "org.yaml.snakeyaml.comments", + "org.yaml.snakeyaml.composer", + "org.yaml.snakeyaml.constructor", + "org.yaml.snakeyaml.emitter", + "org.yaml.snakeyaml.env", + "org.yaml.snakeyaml.error", + "org.yaml.snakeyaml.events", + "org.yaml.snakeyaml.extensions.compactnotation", + "org.yaml.snakeyaml.external.com.google.gdata.util.common.base", + "org.yaml.snakeyaml.inspector", + "org.yaml.snakeyaml.internal", + "org.yaml.snakeyaml.introspector", + "org.yaml.snakeyaml.nodes", + "org.yaml.snakeyaml.parser", + "org.yaml.snakeyaml.reader", + "org.yaml.snakeyaml.representer", + "org.yaml.snakeyaml.resolver", + "org.yaml.snakeyaml.scanner", + "org.yaml.snakeyaml.serializer", + "org.yaml.snakeyaml.tokens", + "org.yaml.snakeyaml.util" + ] + }, + "repositories": { + "https://repo1.maven.org/maven2/": [ + "aopalliance:aopalliance", + "com.github.ben-manes.caffeine:caffeine", + "com.google.code.findbugs:jsr305", + "com.google.code.gson:gson", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:failureaccess", + "com.google.guava:guava", + "com.google.guava:listenablefuture", + "com.google.inject:guice", + "com.google.j2objc:j2objc-annotations", + "com.leakyabstractions:result", + "com.leakyabstractions:result-api", + "com.moandjiezana.toml:toml4j", + "commons-codec:commons-codec", + "io.leangen.geantyref:geantyref", + "io.nats:jnats", + "it.unimi.dsi:fastutil", + "jakarta.inject:jakarta.inject-api", + "javax.inject:javax.inject", + "net.kyori:adventure-api", + "net.kyori:adventure-key", + "net.kyori:adventure-text-logger-slf4j", + "net.kyori:adventure-text-minimessage", + "net.kyori:adventure-text-serializer-ansi", + "net.kyori:adventure-text-serializer-commons", + "net.kyori:adventure-text-serializer-gson", + "net.kyori:adventure-text-serializer-json", + "net.kyori:adventure-text-serializer-legacy", + "net.kyori:adventure-text-serializer-plain", + "net.kyori:ansi", + "net.kyori:option", + "net.luckperms:api", + "org.apache.commons:commons-lang3", + "org.apache.httpcomponents:httpclient", + "org.apache.httpcomponents:httpcore", + "org.apache.logging.log4j:log4j-api", + "org.apache.maven.resolver:maven-resolver-api", + "org.apache.maven.resolver:maven-resolver-connector-basic", + "org.apache.maven.resolver:maven-resolver-impl", + "org.apache.maven.resolver:maven-resolver-named-locks", + "org.apache.maven.resolver:maven-resolver-spi", + "org.apache.maven.resolver:maven-resolver-transport-http", + "org.apache.maven.resolver:maven-resolver-util", + "org.apache.maven:maven-artifact", + "org.apache.maven:maven-builder-support", + "org.apache.maven:maven-model", + "org.apache.maven:maven-model-builder", + "org.apache.maven:maven-repository-metadata", + "org.apache.maven:maven-resolver-provider", + "org.bouncycastle:bcprov-lts8on", + "org.checkerframework:checker-qual", + "org.codehaus.plexus:plexus-interpolation", + "org.codehaus.plexus:plexus-utils", + "org.eclipse.sisu:org.eclipse.sisu.inject", + "org.jdbi:jdbi3-core", + "org.jdbi:jdbi3-postgres", + "org.jetbrains:annotations", + "org.joml:joml", + "org.jspecify:jspecify", + "org.mongodb:bson", + "org.postgresql:postgresql", + "org.slf4j:jcl-over-slf4j", + "org.slf4j:slf4j-api", + "org.slf4j:slf4j-simple", + "org.spongepowered:configurate-core", + "org.spongepowered:configurate-gson", + "org.spongepowered:configurate-hocon", + "org.spongepowered:configurate-yaml", + "org.yaml:snakeyaml" + ], + "https://git.lab0x13.site/api/packages/scrow/maven/": [ + "de.kentoj.scrow:kencommandapi-bukkit", + "de.kentoj.scrow:kencommandapi-core", + "de.kentoj.scrow:kencommandapi-velocity" + ], + "https://repo.papermc.io/repository/maven-public/": [ + "aopalliance:aopalliance", + "com.github.ben-manes.caffeine:caffeine", + "com.google.code.findbugs:jsr305", + "com.google.code.gson:gson", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:failureaccess", + "com.google.guava:guava", + "com.google.guava:listenablefuture", + "com.google.inject:guice", + "com.google.j2objc:j2objc-annotations", + "com.leakyabstractions:result", + "com.leakyabstractions:result-api", + "com.moandjiezana.toml:toml4j", + "com.mojang:brigadier", + "com.velocitypowered:velocity-api", + "com.velocitypowered:velocity-brigadier", + "commons-codec:commons-codec", + "io.leangen.geantyref:geantyref", + "io.nats:jnats", + "io.papermc.paper:paper-api", + "it.unimi.dsi:fastutil", + "jakarta.inject:jakarta.inject-api", + "javax.inject:javax.inject", + "net.kyori:adventure-api", + "net.kyori:adventure-key", + "net.kyori:adventure-text-logger-slf4j", + "net.kyori:adventure-text-minimessage", + "net.kyori:adventure-text-serializer-ansi", + "net.kyori:adventure-text-serializer-commons", + "net.kyori:adventure-text-serializer-gson", + "net.kyori:adventure-text-serializer-json", + "net.kyori:adventure-text-serializer-legacy", + "net.kyori:adventure-text-serializer-plain", + "net.kyori:ansi", + "net.kyori:option", + "net.luckperms:api", + "net.md-5:bungeecord-chat", + "org.apache.commons:commons-lang3", + "org.apache.httpcomponents:httpclient", + "org.apache.httpcomponents:httpcore", + "org.apache.logging.log4j:log4j-api", + "org.apache.maven.resolver:maven-resolver-api", + "org.apache.maven.resolver:maven-resolver-connector-basic", + "org.apache.maven.resolver:maven-resolver-impl", + "org.apache.maven.resolver:maven-resolver-named-locks", + "org.apache.maven.resolver:maven-resolver-spi", + "org.apache.maven.resolver:maven-resolver-transport-http", + "org.apache.maven.resolver:maven-resolver-util", + "org.apache.maven:maven-artifact", + "org.apache.maven:maven-builder-support", + "org.apache.maven:maven-model", + "org.apache.maven:maven-model-builder", + "org.apache.maven:maven-repository-metadata", + "org.apache.maven:maven-resolver-provider", + "org.bouncycastle:bcprov-lts8on", + "org.checkerframework:checker-qual", + "org.codehaus.plexus:plexus-interpolation", + "org.codehaus.plexus:plexus-utils", + "org.eclipse.sisu:org.eclipse.sisu.inject", + "org.jdbi:jdbi3-core", + "org.jdbi:jdbi3-postgres", + "org.jetbrains:annotations", + "org.joml:joml", + "org.jspecify:jspecify", + "org.mongodb:bson", + "org.postgresql:postgresql", + "org.slf4j:jcl-over-slf4j", + "org.slf4j:slf4j-api", + "org.slf4j:slf4j-simple", + "org.spongepowered:configurate-core", + "org.spongepowered:configurate-gson", + "org.spongepowered:configurate-hocon", + "org.spongepowered:configurate-yaml", + "org.yaml:snakeyaml" + ] + }, + "services": { + "com.velocitypowered:velocity-api": { + "javax.annotation.processing.Processor": [ + "com.velocitypowered.api.plugin.ap.PluginAnnotationProcessor" + ] + }, + "net.kyori:adventure-text-serializer-gson": { + "net.kyori.adventure.text.event.DataComponentValueConverterRegistry$Provider": [ + "net.kyori.adventure.text.serializer.gson.impl.GsonDataComponentValueConverterProvider" + ], + "net.kyori.adventure.text.serializer.json.JSONComponentSerializer$Provider": [ + "net.kyori.adventure.text.serializer.gson.impl.JSONComponentSerializerProviderImpl" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "org.apache.logging.log4j.util.PropertySource": [ + "org.apache.logging.log4j.util.EnvironmentPropertySource", + "org.apache.logging.log4j.util.SystemPropertiesPropertySource" + ] + }, + "org.bouncycastle:bcprov-lts8on": { + "java.security.Provider": [ + "org.bouncycastle.jce.provider.BouncyCastleProvider", + "org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider" + ] + }, + "org.eclipse.sisu:org.eclipse.sisu.inject": { + "javax.annotation.processing.Processor": [ + "org.eclipse.sisu.space.SisuIndexAPT6" + ] + }, + "org.jdbi:jdbi3-postgres": { + "org.jdbi.v3.core.spi.JdbiPlugin": [ + "org.jdbi.v3.postgres.PostgresPlugin" + ] + }, + "org.postgresql:postgresql": { + "java.sql.Driver": [ + "org.postgresql.Driver" + ] + }, + "org.slf4j:jcl-over-slf4j": { + "org.apache.commons.logging.LogFactory": [ + "org.apache.commons.logging.impl.SLF4JLogFactory" + ] + }, + "org.slf4j:slf4j-simple": { + "org.slf4j.spi.SLF4JServiceProvider": [ + "org.slf4j.simple.SimpleServiceProvider" + ] + }, + "org.spongepowered:configurate-gson": { + "org.spongepowered.configurate.loader.ConfigurationFormat": [ + "org.spongepowered.configurate.gson.GsonConfigurationFormat" + ] + }, + "org.spongepowered:configurate-hocon": { + "org.spongepowered.configurate.loader.ConfigurationFormat": [ + "org.spongepowered.configurate.hocon.HoconConfigurationFormat" + ] + }, + "org.spongepowered:configurate-yaml": { + "org.spongepowered.configurate.loader.ConfigurationFormat": [ + "org.spongepowered.configurate.yaml.YamlConfigurationFormat" + ] + } + }, + "skipped": [ + "net.kyori:adventure-bom" + ], + "version": "3" +}