Merge "personal/vuko/shells initial commit"
diff --git a/WORKSPACE b/WORKSPACE
index 5af740d..d3755c0 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -16,6 +16,19 @@
     sha256 = "2ef429f5d7ce7111263289644d233707dba35e39696377ebab8b0bc701f7818e",
 )
 
+# zlib
+
+http_archive(
+    name = "zlib",
+    build_file = "@com_google_protobuf//:third_party/zlib.BUILD",
+    sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1",
+    strip_prefix = "zlib-1.2.11",
+    urls = [
+        "https://mirror.bazel.build/zlib.net/zlib-1.2.11.tar.gz",
+        "https://zlib.net/zlib-1.2.11.tar.gz",
+    ],
+)
+
 # subpar
 
 git_repository(
@@ -29,9 +42,9 @@
 
 http_archive(
     name = "io_bazel_rules_docker",
-    sha256 = "87fc6a2b128147a0a3039a2fd0b53cc1f2ed5adb8716f50756544a572999ae9a",
-    strip_prefix = "rules_docker-0.8.1",
-    urls = ["https://github.com/bazelbuild/rules_docker/archive/v0.8.1.tar.gz"],
+    sha256 = "dc97fccceacd4c6be14e800b2a00693d5e8d07f69ee187babfd04a80a9f8e250",
+    strip_prefix = "rules_docker-0.14.1",
+    urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.14.1/rules_docker-v0.14.1.tar.gz"],
 )
 
 load("@io_bazel_rules_docker//toolchains/docker:toolchain.bzl", docker_toolchain_configure = "toolchain_configure")
@@ -97,22 +110,6 @@
 
 pip_install()
 
-# stackb/rules_proto (for Python proto compilation)
-http_archive(
-    name = "build_stack_rules_proto",
-    urls = ["https://github.com/stackb/rules_proto/archive/b93b544f851fdcd3fc5c3d47aee3b7ca158a8841.tar.gz"],
-    sha256 = "c62f0b442e82a6152fcd5b1c0b7c4028233a9e314078952b6b04253421d56d61",
-    strip_prefix = "rules_proto-b93b544f851fdcd3fc5c3d47aee3b7ca158a8841",
-)
-
-load("@build_stack_rules_proto//python:deps.bzl", "python_grpc_compile")
-
-python_grpc_compile()
-
-load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
-
-grpc_deps()
-
 # Docker base images
 
 load("@io_bazel_rules_docker//container:container.bzl", "container_pull")
@@ -180,22 +177,24 @@
 
 # Go rules
 
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
 http_archive(
     name = "io_bazel_rules_go",
+    sha256 = "6a68e269802911fa419abb940c850734086869d7fe9bc8e12aaf60a09641c818",
     urls = [
-        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.22.2/rules_go-v0.22.2.tar.gz",
-        "https://github.com/bazelbuild/rules_go/releases/download/v0.22.2/rules_go-v0.22.2.tar.gz",
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.23.0/rules_go-v0.23.0.tar.gz",
+        "https://github.com/bazelbuild/rules_go/releases/download/v0.23.0/rules_go-v0.23.0.tar.gz",
     ],
-    sha256 = "142dd33e38b563605f0d20e89d9ef9eda0fc3cb539a14be1bdb1350de2eda659",
 )
 
 http_archive(
     name = "bazel_gazelle",
+    sha256 = "bfd86b3cbe855d6c16c6fce60d76bd51f5c8dbc9cfcaef7a2bb5c1aafd0710e8",
     urls = [
-        "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/bazel-gazelle/releases/download/v0.20.0/bazel-gazelle-v0.20.0.tar.gz",
-        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.20.0/bazel-gazelle-v0.20.0.tar.gz",
+        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.21.0/bazel-gazelle-v0.21.0.tar.gz",
+        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.21.0/bazel-gazelle-v0.21.0.tar.gz",
     ],
-    sha256 = "d8c45ee70ec39a57e7a05e5027c32b1576cc7f16d9dd37135b0eddde45cf1b10",
 )
 
 load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
@@ -206,14 +205,13 @@
     importpath = "golang.org/x/net",
 )
 
-# Invoke go_rules_dependencies depending on host platform.
-load("//tools:go_sdk.bzl", "gen_imports")
+load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
 
-gen_imports(name = "go_sdk_imports")
+go_rules_dependencies()
 
-load("@go_sdk_imports//:imports.bzl", "load_go_sdk")
+go_register_toolchains()
 
-load_go_sdk()
+load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
 
 gazelle_dependencies()
 
@@ -232,63 +230,63 @@
 
 gerrit_api()
 
-load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl", "maven_jar", "GERRIT")
+load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl", gerrit_maven_jar="maven_jar", GERRIT="GERRIT")
 PROLOG_VERS = "1.4.3"
 JACKSON_VER = "2.9.7"
 
-maven_jar(
+gerrit_maven_jar(
     name = "scribe",
     artifact = "org.scribe:scribe:1.3.7",
     sha1 = "583921bed46635d9f529ef5f14f7c9e83367bc6e",
 )
 
-maven_jar(
+gerrit_maven_jar(
     name = "commons-codec",
     artifact = "commons-codec:commons-codec:1.4",
     sha1 = "4216af16d38465bbab0f3dff8efa14204f7a399a",
 )
 
-maven_jar(
+gerrit_maven_jar(
     name = "jackson-core",
     artifact = "com.fasterxml.jackson.core:jackson-core:" + JACKSON_VER,
     sha1 = "4b7f0e0dc527fab032e9800ed231080fdc3ac015",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "jackson-databind",
     artifact = "com.fasterxml.jackson.core:jackson-databind:" + JACKSON_VER,
     sha1 = "e6faad47abd3179666e89068485a1b88a195ceb7",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "jackson-annotations",
     artifact = "com.fasterxml.jackson.core:jackson-annotations:" + JACKSON_VER,
     sha1 = "4b838e5c4fc17ac02f3293e9a558bb781a51c46d",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "jackson-dataformat-yaml",
     artifact = "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:" + JACKSON_VER,
     sha1 = "a428edc4bb34a2da98a50eb759c26941d4e85960",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "snakeyaml",
     artifact = "org.yaml:snakeyaml:1.23",
     sha1 = "ec62d74fe50689c28c0ff5b35d3aebcaa8b5be68",
 )
 
-maven_jar(
+gerrit_maven_jar(
     name = "prolog-runtime",
     artifact = "com.googlecode.prolog-cafe:prolog-runtime:" + PROLOG_VERS,
     attach_source = False,
     repository = GERRIT,
     sha1 = "d5206556cbc76ffeab21313ffc47b586a1efbcbb",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "prolog-compiler",
     artifact = "com.googlecode.prolog-cafe:prolog-compiler:" + PROLOG_VERS,
     attach_source = False,
     repository = GERRIT,
     sha1 = "f37032cf1dec3e064427745bc59da5a12757a3b2",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "prolog-io",
     artifact = "com.googlecode.prolog-cafe:prolog-io:" + PROLOG_VERS,
     attach_source = False,
@@ -296,6 +294,55 @@
     sha1 = "d02b2640b26f64036b6ba2b45e4acc79281cea17",
 )
 
+# minecraft spigot/bukkit deps
+# this uses rules_jvm_external vs gerrit's maven_jar because we need SNAPSHOT support
+
+http_archive(
+    name = "io_grpc_grpc_java",
+    sha256 = "446ad7a2e85bbd05406dbf95232c7c49ed90de83b3b60cb2048b0c4c9f254d29",
+    strip_prefix = "grpc-java-1.29.0",
+    url = "https://github.com/grpc/grpc-java/archive/v1.29.0.zip",
+)
+
+RULES_JVM_EXTERNAL_TAG = "3.0"
+RULES_JVM_EXTERNAL_SHA = "62133c125bf4109dfd9d2af64830208356ce4ef8b165a6ef15bbff7460b35c3a"
+
+http_archive(
+    name = "rules_jvm_external",
+    strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
+    sha256 = RULES_JVM_EXTERNAL_SHA,
+    url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
+)
+
+load("@rules_jvm_external//:defs.bzl", "maven_install")
+load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS")
+load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS")
+
+maven_install(
+    artifacts = [
+        "org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT",
+        "io.grpc:grpc-netty-shaded:1.29.0",
+        "io.grpc:grpc-services:1.29.0",
+    ]  + IO_GRPC_GRPC_JAVA_ARTIFACTS,
+    generate_compat_repositories = True,
+    override_targets = IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS,
+    repositories = [
+        "https://hub.spigotmc.org/nexus/content/repositories/snapshots",
+        "https://oss.sonatype.org/content/repositories/snapshots",
+        "https://repo1.maven.org/maven2/",
+    ],
+    maven_install_json = "//third_party/java:maven_install.json",
+)
+
+load("@maven//:defs.bzl", "pinned_maven_install")
+pinned_maven_install()
+
+load("@maven//:compat.bzl", "compat_repositories")
+compat_repositories()
+
+load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories")
+grpc_java_repositories()
+
 # Gerrit OWNERS plugins external repositories
 
 git_repository(
@@ -1316,42 +1363,6 @@
 )
 
 go_repository(
-    name = "com_github_azure_go_autorest_autorest",
-    importpath = "github.com/Azure/go-autorest/autorest",
-    tag = "v0.9.0",
-)
-
-go_repository(
-    name = "com_github_azure_go_autorest_autorest_adal",
-    importpath = "github.com/Azure/go-autorest/autorest/adal",
-    tag = "v0.5.0",
-)
-
-go_repository(
-    name = "com_github_azure_go_autorest_autorest_date",
-    importpath = "github.com/Azure/go-autorest/autorest/date",
-    tag = "v0.1.0",
-)
-
-go_repository(
-    name = "com_github_azure_go_autorest_autorest_mocks",
-    importpath = "github.com/Azure/go-autorest/autorest/mocks",
-    tag = "v0.2.0",
-)
-
-go_repository(
-    name = "com_github_azure_go_autorest_logger",
-    importpath = "github.com/Azure/go-autorest/logger",
-    tag = "v0.1.0",
-)
-
-go_repository(
-    name = "com_github_azure_go_autorest_tracing",
-    importpath = "github.com/Azure/go-autorest/tracing",
-    tag = "v0.5.0",
-)
-
-go_repository(
     name = "com_github_bgentry_speakeasy",
     importpath = "github.com/bgentry/speakeasy",
     tag = "v0.1.0",
diff --git a/cluster/kube/cluster.jsonnet b/cluster/kube/cluster.jsonnet
index f781d1f..71537d6 100644
--- a/cluster/kube/cluster.jsonnet
+++ b/cluster/kube/cluster.jsonnet
@@ -494,7 +494,7 @@
         },
 
         # nuke@hackerspace.pl's personal storage.
-        nukePersonalWaw3: kube.CephObjectStoreuser("nuke-personal") {
+        nukePersonalWaw3: kube.CephObjectStoreUser("nuke-personal") {
             metadata+: {
                 namespace: "ceph-waw3",
             },
diff --git a/personal/q3k/minecraft/Dockerfile-vanilla b/personal/q3k/minecraft/Dockerfile-vanilla
index 9ba7478..61852a5 100644
--- a/personal/q3k/minecraft/Dockerfile-vanilla
+++ b/personal/q3k/minecraft/Dockerfile-vanilla
@@ -37,6 +37,9 @@
     rm -rf build ;\
     mv spigot*.jar spigot.jar
 
+ADD worldedit-bukkit-7.1.0.jar .
+ADD worldguard-bukkit-7.0.2.jar .
+
 RUN set -e -x ;\
     VERSION=1.15.2 ;\
     mkdir -p /home/minecraft/.minecraft/versions/${VERSION}/ ;\
diff --git a/personal/q3k/minecraft/LICENSE.thirdparty.txt b/personal/q3k/minecraft/LICENSE.thirdparty.txt
new file mode 100644
index 0000000..4444b16
--- /dev/null
+++ b/personal/q3k/minecraft/LICENSE.thirdparty.txt
@@ -0,0 +1,7 @@
+WorldEdit and WorldGuard are licensed under the terms of the GNU Lesser General
+Public License v3.
+
+Full license texts are available at:
+
+* WorldEdit: https://github.com/EngineHub/WorldEdit/blob/7.1.0/LICENSE.txt
+* WorldGuard: https://github.com/EngineHub/WorldGuard/blob/7.0.2/LICENSE.txt
diff --git a/personal/q3k/minecraft/plugin/BUILD b/personal/q3k/minecraft/plugin/BUILD
new file mode 100644
index 0000000..ac8e49f
--- /dev/null
+++ b/personal/q3k/minecraft/plugin/BUILD
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
+
+go_library(
+    name = "go_default_library",
+    srcs = ["genpluginyml.go"],
+    importpath = "code.hackerspace.pl/personal/q3k/minecraft/plugins/genpluginyml",
+    visibility = ["//visibility:private"],
+)
+
+go_binary(
+    name = "genpluginyml",
+    embed = [":go_default_library"],
+    visibility = ["//visibility:public"],
+)
diff --git a/personal/q3k/minecraft/plugin/defs.bzl b/personal/q3k/minecraft/plugin/defs.bzl
new file mode 100644
index 0000000..898b057
--- /dev/null
+++ b/personal/q3k/minecraft/plugin/defs.bzl
@@ -0,0 +1,64 @@
+load("//bzl:rules.bzl", copy_binary="copy_go_binary")
+
+def _plugin_yml_gen_impl(ctx):
+    ctx.actions.run(
+        mnemonic = "PluginYmlGen",
+        progress_message = "Generating plugin.yml",
+
+        inputs = [ctx.info_file],
+        outputs = [ctx.outputs.out],
+        executable = ctx.executable._genpluginyml,
+        arguments = [
+            "-name", ctx.label.name,
+            "-author", ctx.attr.author,
+            "-main", ctx.attr.main,
+            "-version", ctx.attr.version,
+            "-status_file", ctx.info_file.path,
+            "-out_file", ctx.outputs.out.path,
+        ],
+    )
+
+plugin_yml_gen = rule(
+    implementation = _plugin_yml_gen_impl,
+    attrs = {
+        "main": attr.string(mandatory = True),
+        "version": attr.string(default = ""),
+        "author": attr.string(default = "bazel"),
+        "_genpluginyml": attr.label(
+            default = Label("//personal/q3k/minecraft/plugin:genpluginyml"),
+            cfg = "host",
+            executable = True,
+            allow_files = True,
+        ),
+    },
+    outputs = {
+        "out": "plugin.yml",
+    },
+)
+
+def bukkit_plugin(name, srcs, deps, main, author="", version=""):
+    ymlname = name + "-yml"
+    plugin_yml_gen(
+        name = ymlname,
+        author = author,
+        version = version,
+        main = main,
+    )
+
+    jarname = name + "-jar"
+    native.java_binary(
+        name = jarname,
+        create_executable = False,
+        srcs = srcs,
+        deps = deps,
+        classpath_resources = [":" + ymlname],
+    )
+
+    copy_binary(
+        name = name + ".jar",
+        src = ":" + jarname + "_deploy.jar",
+    )
+    native.alias(
+        name = name,
+        actual = ":" + name + ".jar",
+    )
diff --git a/personal/q3k/minecraft/plugin/example/BUILD b/personal/q3k/minecraft/plugin/example/BUILD
new file mode 100644
index 0000000..e3bc13a
--- /dev/null
+++ b/personal/q3k/minecraft/plugin/example/BUILD
@@ -0,0 +1,11 @@
+load("//personal/q3k/minecraft/plugin:defs.bzl", "bukkit_plugin")
+bukkit_plugin(
+    name = "example",
+    main = "hscloud.personal.q3k.minecraft.plugin.example.Main",
+    srcs = [
+        "Main.java"
+    ],
+    deps = [
+        "@maven//:org_spigotmc_spigot_api",
+    ],
+)
diff --git a/personal/q3k/minecraft/plugin/example/Main.java b/personal/q3k/minecraft/plugin/example/Main.java
new file mode 100644
index 0000000..a67ee78
--- /dev/null
+++ b/personal/q3k/minecraft/plugin/example/Main.java
@@ -0,0 +1,15 @@
+package hscloud.personal.q3k.minecraft.plugin.example;
+
+import org.bukkit.plugin.java.JavaPlugin;
+
+public class Main extends JavaPlugin {
+    @Override
+    public void onEnable() {
+        System.out.println("enabled");
+    }
+
+    @Override
+    public void onDisable() {
+        System.out.println("disabled");
+    }
+}
diff --git a/personal/q3k/minecraft/plugin/genpluginyml.go b/personal/q3k/minecraft/plugin/genpluginyml.go
new file mode 100644
index 0000000..1174f8f
--- /dev/null
+++ b/personal/q3k/minecraft/plugin/genpluginyml.go
@@ -0,0 +1,76 @@
+package main
+
+import (
+	"encoding/json"
+	"flag"
+	"fmt"
+	"io/ioutil"
+	"log"
+	"strings"
+)
+
+var (
+	flagName    string
+	flagAuthor  string
+	flagMain    string
+	flagVersion string
+
+	flagStatusFile string
+	flagOutFile    string
+)
+
+func main() {
+	flag.StringVar(&flagName, "name", "", "plugin name")
+	flag.StringVar(&flagAuthor, "author", "", "plugin author")
+	flag.StringVar(&flagMain, "main", "", "plugin main class")
+	flag.StringVar(&flagVersion, "version", "", "plugin version, if not given, workspace status will be used")
+	flag.StringVar(&flagStatusFile, "status_file", "", "path to workspace status file for version generation")
+	flag.StringVar(&flagOutFile, "out_file", "plugin.yml", "path to output plugin.yml")
+	flag.Parse()
+
+	if flagVersion == "" {
+		status, err := ioutil.ReadFile(flagStatusFile)
+		if err != nil {
+			log.Fatalf("ReadFile(%q): %v", flagStatusFile, err)
+		}
+
+		for _, line := range strings.Split(string(status), "\n") {
+			line = strings.TrimSpace(line)
+			parts := strings.Fields(line)
+			if len(parts) != 2 {
+				continue
+			}
+			if parts[0] == "STABLE_GIT_VERSION" {
+				flagVersion = fmt.Sprintf("hscloud-git-%s", parts[1])
+			}
+		}
+	}
+
+	if flagVersion == "" {
+		log.Fatalf("could not determine version from status")
+	}
+
+	// a yaml is a json, a json is a yaml
+	yml := struct {
+		Name       string `json:"name"`
+		Version    string `json:"version"`
+		Author     string `json:"author"`
+		Main       string `json:"main"`
+		APIVersion string `json:"api-version"`
+	}{
+		Name:       flagName,
+		Version:    flagVersion,
+		Author:     flagAuthor,
+		Main:       flagMain,
+		APIVersion: "1.15",
+	}
+
+	out, err := json.Marshal(&yml)
+	if err != nil {
+		log.Fatalf("marshal: %v", err)
+	}
+	err = ioutil.WriteFile(flagOutFile, out, 0644)
+	if err != nil {
+		log.Fatalf("WriteFile(%q): %v", out, err)
+	}
+}
diff --git a/personal/q3k/minecraft/plugin/hscloud/BUILD b/personal/q3k/minecraft/plugin/hscloud/BUILD
new file mode 100644
index 0000000..418c5c5
--- /dev/null
+++ b/personal/q3k/minecraft/plugin/hscloud/BUILD
@@ -0,0 +1,19 @@
+load("//personal/q3k/minecraft/plugin:defs.bzl", "bukkit_plugin")
+bukkit_plugin(
+    name = "hscloud",
+    main = "hscloud.personal.q3k.minecraft.plugin.hscloud.Main",
+    author = "q3k",
+    srcs = [
+        "Main.java",
+        "StateSynchronizer.java",
+    ],
+    deps = [
+        "//personal/q3k/minecraft/plugin/hscloud/proto:hscloud_java_grpc",
+        "//personal/q3k/minecraft/plugin/hscloud/proto:hscloud_java_proto",
+        "@maven//:org_spigotmc_spigot_api",
+        "@io_grpc_grpc_java//api",
+        "@io_grpc_grpc_java//stub",
+        "@maven//:io_grpc_grpc_netty_shaded",
+        "@maven//:io_grpc_grpc_services",
+    ],
+)
diff --git a/personal/q3k/minecraft/plugin/hscloud/Main.java b/personal/q3k/minecraft/plugin/hscloud/Main.java
new file mode 100644
index 0000000..242bbb1
--- /dev/null
+++ b/personal/q3k/minecraft/plugin/hscloud/Main.java
@@ -0,0 +1,108 @@
+package hscloud.personal.q3k.minecraft.plugin.hscloud;
+
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+import java.util.ArrayList;
+import java.util.logging.Logger;
+
+import io.grpc.Server;
+import io.grpc.ServerBuilder;
+import io.grpc.protobuf.services.ProtoReflectionService;
+import io.grpc.stub.StreamObserver;
+import org.bukkit.Bukkit;
+import org.bukkit.World;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.java.JavaPlugin;
+import org.bukkit.plugin.java.JavaPlugin;
+import org.bukkit.scheduler.BukkitScheduler;
+
+import hscloud.personal.q3k.minecraft.plugin.hscloud.proto.IntrospectorGrpc;
+import hscloud.personal.q3k.minecraft.plugin.hscloud.proto.Proto;
+
+
+public class Main extends JavaPlugin {
+    private Server server_;
+    private static final Logger logger_ = Logger.getLogger(Main.class.getName());
+    private static final int port_ = 2137;
+
+    public StateSynchronizer synchronizer_;
+
+    public Main() {
+        synchronizer_ = new StateSynchronizer();
+        server_ = ServerBuilder
+            .forPort(port_)
+            .addService(new IntrospectorService(synchronizer_))
+            .addService(ProtoReflectionService.newInstance())
+            .build();
+    }
+
+    @Override
+    public void onEnable() {
+
+        BukkitScheduler scheduler = getServer().getScheduler();
+        scheduler.scheduleSyncRepeatingTask(this, new Runnable() {
+            @Override
+            public void run() {
+                ArrayList<StateSynchronizer.Player> players = new ArrayList<StateSynchronizer.Player>();
+                for (Player p : Bukkit.getOnlinePlayers()) {
+                    StateSynchronizer.Player pp = new StateSynchronizer.Player(p.getPlayerListName(), p.getUniqueId().toString());
+                    players.add(pp);
+                }
+                synchronizer_.setPlayers(players.toArray(new StateSynchronizer.Player[0]));
+
+                World world = Bukkit.getWorld("world");
+                if (world != null) {
+                    synchronizer_.setTime(world.getTime());
+                }
+            }
+        }, 0, 20L);
+
+        try {
+            server_.start();
+        } catch (IOException e) {
+            logger_.severe("could not start gRPC");
+            e.printStackTrace(System.err);
+            return;
+        }
+        logger_.info("gRPC started, listening on " + port_);
+    }
+
+    @Override
+    public void onDisable() {
+        if (server_ != null) {
+            try {
+                server_.shutdown().awaitTermination(30, TimeUnit.SECONDS);
+            } catch (InterruptedException e) {
+                logger_.severe("could not stop gRPC");
+                e.printStackTrace(System.err);
+            }
+        }
+        server_ = null;
+    }
+
+    public static class IntrospectorService extends IntrospectorGrpc.IntrospectorImplBase {
+        private StateSynchronizer synchronizer_;
+
+        public IntrospectorService(StateSynchronizer synchronizer) {
+            synchronizer_ = synchronizer;
+        }
+
+        @Override
+        public void status(Proto.StatusRequest request, StreamObserver<Proto.StatusResponse> responseObserver) {
+            StateSynchronizer.Player[] players = synchronizer_.getPlayers();
+
+            Proto.StatusResponse.Builder builder = Proto.StatusResponse.newBuilder();
+            builder.setTime(synchronizer_.getTime());
+            for (StateSynchronizer.Player p : players) {
+                builder.addPlayers(Proto.Player.newBuilder()
+                    .setUsername(p.getName())
+                    .setUuid(p.getUUID())
+                    .build());
+
+
+            }
+            responseObserver.onNext(builder.build());
+            responseObserver.onCompleted();
+        }
+    }
+}
diff --git a/personal/q3k/minecraft/plugin/hscloud/StateSynchronizer.java b/personal/q3k/minecraft/plugin/hscloud/StateSynchronizer.java
new file mode 100644
index 0000000..a10f5d5
--- /dev/null
+++ b/personal/q3k/minecraft/plugin/hscloud/StateSynchronizer.java
@@ -0,0 +1,49 @@
+package hscloud.personal.q3k.minecraft.plugin.hscloud;
+
+public class StateSynchronizer {
+    private Player[] players_;
+    private long time_;
+    private Object lock_ = new Object();
+
+    public void setPlayers(Player[] players) {
+        synchronized(lock_) {
+            players_ = players;
+        }
+    }
+
+    public void setTime(long time) {
+        synchronized(lock_) {
+            time_ = time;
+        }
+    }
+
+    public Player[] getPlayers() {
+        synchronized(lock_) {
+            return players_;
+        }
+    }
+
+    public long getTime() {
+        synchronized(lock_) {
+            return time_;
+        }
+    }
+
+    public static class Player {
+        private String name_;
+        private String uuid_;
+
+        public Player(String name, String uuid) {
+            name_ = name;
+            uuid_ = uuid;
+        }
+
+        public String getName() {
+            return name_;
+        }
+
+        public String getUUID() {
+            return uuid_;
+        }
+    }
+}
diff --git a/personal/q3k/minecraft/plugin/hscloud/proto/BUILD b/personal/q3k/minecraft/plugin/hscloud/proto/BUILD
new file mode 100644
index 0000000..139d994
--- /dev/null
+++ b/personal/q3k/minecraft/plugin/hscloud/proto/BUILD
@@ -0,0 +1,20 @@
+load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@io_grpc_grpc_java//:java_grpc_library.bzl", "java_grpc_library")
+
+proto_library(
+    name = "hscloud_proto",
+    srcs = ["hscloud.proto"],
+)
+
+java_proto_library(
+    name = "hscloud_java_proto",
+    deps = [":hscloud_proto"],
+    visibility = ["//visibility:public"],
+)
+
+java_grpc_library(
+    name = "hscloud_java_grpc",
+    srcs = [":hscloud_proto"],
+    deps = [":hscloud_java_proto"],
+    visibility = ["//visibility:public"],
+)
diff --git a/personal/q3k/minecraft/plugin/hscloud/proto/hscloud.proto b/personal/q3k/minecraft/plugin/hscloud/proto/hscloud.proto
new file mode 100644
index 0000000..05b8da7
--- /dev/null
+++ b/personal/q3k/minecraft/plugin/hscloud/proto/hscloud.proto
@@ -0,0 +1,21 @@
+syntax = "proto3";
+package hscloud.personal.q3k.minecraft.plugin.hscloud;
+option java_package = "hscloud.personal.q3k.minecraft.plugin.hscloud.proto";
+option java_outer_classname = "Proto";
+
+service Introspector {
+    rpc Status(StatusRequest) returns (StatusResponse);
+}
+
+message StatusRequest {
+}
+
+message StatusResponse {
+    repeated Player players = 1;
+    int64 time = 2;
+}
+
+message Player {
+    string username = 1;
+    string uuid = 2;
+}
diff --git a/personal/q3k/minecraft/prod.jsonnet b/personal/q3k/minecraft/prod.jsonnet
index a662cce..491a28a 100644
--- a/personal/q3k/minecraft/prod.jsonnet
+++ b/personal/q3k/minecraft/prod.jsonnet
@@ -1,9 +1,10 @@
 local kube = import "../../../kube/kube.libsonnet";
+local defaultWorldguardConfig = import "worldguard.libsonnet";
 
 {
     local minecraft = self,
     versions:: {
-        "spigot-1.15.2": "registry.k0.hswaw.net/q3k/minecraft:spigot-1.15.2-r2",
+        "spigot-1.15.2": "registry.k0.hswaw.net/q3k/minecraft:spigot-1.15.2-r3",
     },
     server(name, version):: {
         local server = self,
@@ -65,11 +66,17 @@
             "enable-rcon": false,
         },
 
+        worldguardConfig:: defaultWorldguardConfig,
+
         startsh:: |||
             #!/usr/bin/env bash
             cd /home/minecraft/world
             cp /home/minecraft/config/server.properties .
             cp /home/minecraft/spigot.jar .
+            mkdir -p plugins/WorldGuard
+            cp /home/minecraft/worldedit-*.jar plugins
+            cp /home/minecraft/worldguard-*.jar plugins
+            cp /home/minecraft/config/worldguard_config.yaml plugins/WorldGuard/config.yml
             echo "eula=true" > eula.txt
 
             bash /home/minecraft/config/overviewer.sh &
@@ -93,6 +100,8 @@
             data: {
                 local properties = std.join("\n", ["%s=%s" % [k, std.toString(server.properties[k])] for k in std.objectFields(server.properties)]),
                 "server.properties": std.base64(properties),
+                local worldguardConfig = std.manifestYamlDoc(server.worldguardConfig),
+                "worldguard_config.yaml": std.base64(worldguardConfig),
                 "start.sh": std.base64(server.startsh),
                 "overviewer.sh": std.base64(server.overviewersh),
             },
@@ -132,6 +141,7 @@
                                 },
                                 ports_: {
                                     minecraft: { containerPort: 25565 },
+                                    grpc: { containerPort: 2137 },
                                 },
                                 resources: {
                                     requests: {
@@ -169,6 +179,7 @@
                 ports: [
                     { name: "minecraft", port: 25565, targetPort: 25565, protocol: "TCP" },
                     { name: "web", port: 80, targetPort: 8080, protocol: "TCP" },
+                    { name: "grpc", port: 2137, targetPort: 2137, protocol: "TCP" },
                 ],
                 type: "LoadBalancer",
                 externalTrafficPolicy: "Local",
@@ -182,6 +193,12 @@
         survival: minecraft.server("q3k-survival", "spigot-1.15.2") {
             properties+: {
                 motd: "wypierdol z polski kropka pe el",
+                "enforce-whitelist": true,
+            },
+            worldguardConfig+: {
+                mobs+: {
+                    "block-creeper-block-damage": true,
+                },
             },
         },
     },
diff --git a/personal/q3k/minecraft/worldedit-bukkit-7.1.0.jar b/personal/q3k/minecraft/worldedit-bukkit-7.1.0.jar
new file mode 100644
index 0000000..2f3a1e1
--- /dev/null
+++ b/personal/q3k/minecraft/worldedit-bukkit-7.1.0.jar
Binary files differ
diff --git a/personal/q3k/minecraft/worldguard-bukkit-7.0.2.jar b/personal/q3k/minecraft/worldguard-bukkit-7.0.2.jar
new file mode 100644
index 0000000..1bcc848
--- /dev/null
+++ b/personal/q3k/minecraft/worldguard-bukkit-7.0.2.jar
Binary files differ
diff --git a/personal/q3k/minecraft/worldguard.libsonnet b/personal/q3k/minecraft/worldguard.libsonnet
new file mode 100644
index 0000000..0755fcb
--- /dev/null
+++ b/personal/q3k/minecraft/worldguard.libsonnet
@@ -0,0 +1,190 @@
+{
+    regions: {
+        "uuid-migration": {
+            "perform-on-next-start": false,
+            "keep-names-that-lack-uuids": true,
+        },
+        "use-creature-spawn-event": true,
+        sql: {
+            use: false,
+            dsn: "jdbc:mysql://localhost/worldguard",
+            username: "worldguard",
+            password: "worldguard",
+            "table-prefix": "",
+        },
+        "use-paper-entity-origin": false,
+        enable: true,
+        "invincibility-removes-mobs": false,
+        "cancel-chat-without-recipients": true,
+        "nether-portal-protection": false,
+        "fake-player-build-override": true,
+        "explosion-flags-block-entity-damage": true,
+        "high-frequency-flags": false,
+        "protect-against-liquid-flow": false,
+        wand: "minecraft:leather",
+        "max-claim-volume": 30000,
+        "claim-only-inside-existing-regions": false,
+        "location-flags-only-inside-regions": false,
+        "max-region-count-per-player": {
+            default: 7,
+        },
+    },
+    "auto-invincible": false,
+    "auto-invincible-group": false,
+    "auto-no-drowning-group": false,
+    "use-player-move-event": true,
+    "use-player-teleports": true,
+    "use-particle-effects": true,
+    security: {
+        "deop-everyone-on-join": false,
+        "block-in-game-op-command": false,
+        "host-keys-allow-forge-clients": false,
+    },
+    "host-keys": {},
+    "summary-on-start": true,
+    "op-permissions": true,
+    "build-permission-nodes": {
+        enable: false,
+        "deny-message": "&eSorry, but you are not permitted to do that here.",
+    },
+    "event-handling": {
+        "block-entity-spawns-with-untraceable-cause": false,
+        "interaction-whitelist": [],
+        "emit-block-use-at-feet": [],
+        "ignore-hopper-item-move-events": false,
+    },
+    protection: {
+        "item-durability": true,
+        "remove-infinite-stacks": false,
+        "disable-xp-orb-drops": false,
+        "disable-obsidian-generators": false,
+    },
+    gameplay: {
+        "block-potions": [],
+        "block-potions-overly-reliably": false,
+        "disable-conduit-effects": false,
+    },
+    simulation: {
+        sponge: {
+            enable: false,
+            radius: 3,
+            redstone: false,
+        },
+    },
+    default: {
+        "pumpkin-scuba": false,
+        "disable-health-regain": false,
+    },
+    physics: {
+        "no-physics-gravel": false,
+        "no-physics-sand": false,
+        "vine-like-rope-ladders": false,
+        "allow-portal-anywhere": false,
+        "disable-water-damage-blocks": [],
+    },
+    ignition: {
+        "block-tnt": false,
+        "block-tnt-block-damage": false,
+        "block-lighter": false,
+    },
+    fire: {
+        "disable-lava-fire-spread": false,
+        "disable-all-fire-spread": false,
+        "disable-fire-spread-blocks": [],
+        "lava-spread-blocks": [],
+    },
+    mobs: {
+        "block-creeper-explosions": false,
+        "block-creeper-block-damage": false,
+        "block-wither-explosions": false,
+        "block-wither-block-damage": false,
+        "block-wither-skull-explosions": false,
+        "block-wither-skull-block-damage": false,
+        "block-enderdragon-block-damage": false,
+        "block-enderdragon-portal-creation": false,
+        "block-fireball-explosions": false,
+        "block-fireball-block-damage": false,
+        "anti-wolf-dumbness": false,
+        "allow-tamed-spawns": true,
+        "disable-enderman-griefing": false,
+        "disable-snowman-trails": false,
+        "block-painting-destroy": false,
+        "block-item-frame-destroy": false,
+        "block-armor-stand-destroy": false,
+        "block-plugin-spawning": true,
+        "block-above-ground-slimes": false,
+        "block-other-explosions": false,
+        "block-zombie-door-destruction": false,
+        "block-creature-spawn": [],
+    },
+    "player-damage": {
+        "disable-fall-damage": false,
+        "disable-lava-damage": false,
+        "disable-fire-damage": false,
+        "disable-lightning-damage": false,
+        "disable-drowning-damage": false,
+        "disable-suffocation-damage": false,
+        "disable-contact-damage": false,
+        "teleport-on-suffocation": false,
+        "disable-void-damage": false,
+        "teleport-on-void-falling": false,
+        "reset-fall-on-void-teleport": false,
+        "disable-explosion-damage": false,
+        "disable-mob-damage": false,
+        "disable-death-messages": false,
+    },
+    "chest-protection": {
+        enable: false,
+        "disable-off-check": false,
+    },
+    crops: {
+        "disable-creature-trampling": false,
+        "disable-player-trampling": false,
+    },
+    weather: {
+        "prevent-lightning-strike-blocks": [],
+        "disable-lightning-strike-fire": false,
+        "disable-thunderstorm": false,
+        "disable-weather": false,
+        "disable-pig-zombification": false,
+        "disable-villager-witchification": false,
+        "disable-powered-creepers": false,
+        "always-raining": false,
+        "always-thundering": false,
+    },
+    dynamics: {
+        "disable-mushroom-spread": false,
+        "disable-ice-melting": false,
+        "disable-snow-melting": false,
+        "disable-snow-formation": false,
+        "disable-ice-formation": false,
+        "disable-leaf-decay": false,
+        "disable-grass-growth": false,
+        "disable-mycelium-spread": false,
+        "disable-vine-growth": false,
+        "disable-crop-growth": false,
+        "disable-soil-dehydration": false,
+        "snow-fall-blocks": [],
+    },
+    blacklist: {
+        "use-as-whitelist": false,
+        logging: {
+            console: {
+                enable: true,
+            },
+            database: {
+                enable: false,
+                dsn: "jdbc:mysql://localhost:3306/minecraft",
+                user: "root",
+                pass: "",
+                table: "blacklist_events",
+            },
+            file: {
+                enable: false,
+                path: "worldguard/logs/%Y-%m-%d.log",
+                "open-files": 10,
+            },
+        },
+    },
+    "custom-metrics-charts": true,
+}
diff --git a/third_party/java/BUILD b/third_party/java/BUILD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/java/BUILD
diff --git a/third_party/java/maven_install.json b/third_party/java/maven_install.json
new file mode 100644
index 0000000..cc4555c
--- /dev/null
+++ b/third_party/java/maven_install.json
@@ -0,0 +1,1211 @@
+{
+    "dependency_tree": {
+        "conflict_resolution": {},
+        "dependencies": [
+            {
+                "coord": "com.fasterxml.jackson.core:jackson-core:2.10.1",
+                "file": "v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar",
+                    "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar"
+                ],
+                "sha256": "79bffbdcd349f69a5ac252e2b4096131704386af4fa14d95395ea9a0e423cf33"
+            },
+            {
+                "coord": "com.google.android:annotations:4.1.1.4",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar",
+                    "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar"
+                ],
+                "sha256": "ba734e1e84c09d615af6a09d33034b4f0442f8772dec120efb376d86a565ae15"
+            },
+            {
+                "coord": "com.google.api.grpc:proto-google-common-protos:1.17.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.17.0/proto-google-common-protos-1.17.0.jar",
+                "directDependencies": [
+                    "com.google.protobuf:protobuf-java:3.11.0"
+                ],
+                "dependencies": [
+                    "com.google.protobuf:protobuf-java:3.11.0"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.17.0/proto-google-common-protos-1.17.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/api/grpc/proto-google-common-protos/1.17.0/proto-google-common-protos-1.17.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/api/grpc/proto-google-common-protos/1.17.0/proto-google-common-protos-1.17.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.17.0/proto-google-common-protos-1.17.0.jar"
+                ],
+                "sha256": "ad25472c73ee470606fb500b376ae5a97973d5406c2f5c3b7d07fb25b4648b65"
+            },
+            {
+                "coord": "com.google.auth:google-auth-library-credentials:0.20.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/0.20.0/google-auth-library-credentials-0.20.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/0.20.0/google-auth-library-credentials-0.20.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/auth/google-auth-library-credentials/0.20.0/google-auth-library-credentials-0.20.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/auth/google-auth-library-credentials/0.20.0/google-auth-library-credentials-0.20.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/0.20.0/google-auth-library-credentials-0.20.0.jar"
+                ],
+                "sha256": "8a415273a5dae5c8f9080134e53b9592dc171ca5d13127488c910177c5903bd6"
+            },
+            {
+                "coord": "com.google.auth:google-auth-library-oauth2-http:0.20.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/0.20.0/google-auth-library-oauth2-http-0.20.0.jar",
+                "directDependencies": [
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.auto.value:auto-value-annotations:1.7",
+                    "com.google.auth:google-auth-library-credentials:0.20.0",
+                    "com.google.http-client:google-http-client-jackson2:1.34.0",
+                    "com.google.http-client:google-http-client:1.34.0",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.apache.httpcomponents:httpclient:4.5.10",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "commons-logging:commons-logging:1.2",
+                    "io.opencensus:opencensus-contrib-http-util:0.24.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.auto.value:auto-value-annotations:1.7",
+                    "com.google.auth:google-auth-library-credentials:0.20.0",
+                    "io.grpc:grpc-context:1.29.0",
+                    "commons-codec:commons-codec:1.11",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "com.google.http-client:google-http-client-jackson2:1.34.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.fasterxml.jackson.core:jackson-core:2.10.1",
+                    "com.google.http-client:google-http-client:1.34.0",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "org.apache.httpcomponents:httpcore:4.4.12",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/0.20.0/google-auth-library-oauth2-http-0.20.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/auth/google-auth-library-oauth2-http/0.20.0/google-auth-library-oauth2-http-0.20.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/auth/google-auth-library-oauth2-http/0.20.0/google-auth-library-oauth2-http-0.20.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/0.20.0/google-auth-library-oauth2-http-0.20.0.jar"
+                ],
+                "sha256": "43e96e8c07285c2887042eda4e35ca96522ef361f6c1843f469039d9ccdc8f8a"
+            },
+            {
+                "coord": "com.google.auto.value:auto-value-annotations:1.7",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.7/auto-value-annotations-1.7.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.7/auto-value-annotations-1.7.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/auto/value/auto-value-annotations/1.7/auto-value-annotations-1.7.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/auto/value/auto-value-annotations/1.7/auto-value-annotations-1.7.jar",
+                    "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.7/auto-value-annotations-1.7.jar"
+                ],
+                "sha256": "b134bab5082e9f49f2b45802573c78e0726e059b645323645da03e328e501f86"
+            },
+            {
+                "coord": "com.google.code.findbugs:jsr305:3.0.2",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar",
+                    "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar"
+                ],
+                "sha256": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7"
+            },
+            {
+                "coord": "com.google.code.gson:gson:2.8.6",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar",
+                    "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar"
+                ],
+                "sha256": "c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f"
+            },
+            {
+                "coord": "com.google.errorprone:error_prone_annotations:2.3.4",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar",
+                    "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar"
+                ],
+                "sha256": "baf7d6ea97ce606c53e11b6854ba5f2ce7ef5c24dddf0afa18d1260bd25b002c"
+            },
+            {
+                "coord": "com.google.guava:failureaccess:1.0.1",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar",
+                    "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar"
+                ],
+                "sha256": "a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26"
+            },
+            {
+                "coord": "com.google.guava:guava:28.2-android",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/guava/guava/28.2-android/guava-28.2-android.jar",
+                "directDependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/guava/guava/28.2-android/guava-28.2-android.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/guava/guava/28.2-android/guava-28.2-android.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/guava/guava/28.2-android/guava-28.2-android.jar",
+                    "https://repo1.maven.org/maven2/com/google/guava/guava/28.2-android/guava-28.2-android.jar"
+                ],
+                "sha256": "1faf214c94723ab9fbadfedd9af88ddc325faf669e68eab04688c3afcf59c037"
+            },
+            {
+                "coord": "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
+                    "https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar"
+                ],
+                "sha256": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99"
+            },
+            {
+                "coord": "com.google.http-client:google-http-client-jackson2:1.34.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2/1.34.0/google-http-client-jackson2-1.34.0.jar",
+                "directDependencies": [
+                    "com.fasterxml.jackson.core:jackson-core:2.10.1",
+                    "com.google.http-client:google-http-client:1.34.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.apache.httpcomponents:httpclient:4.5.10",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "commons-logging:commons-logging:1.2",
+                    "io.opencensus:opencensus-contrib-http-util:0.24.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "commons-codec:commons-codec:1.11",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.fasterxml.jackson.core:jackson-core:2.10.1",
+                    "com.google.http-client:google-http-client:1.34.0",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "org.apache.httpcomponents:httpcore:4.4.12",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2/1.34.0/google-http-client-jackson2-1.34.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/http-client/google-http-client-jackson2/1.34.0/google-http-client-jackson2-1.34.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/http-client/google-http-client-jackson2/1.34.0/google-http-client-jackson2-1.34.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2/1.34.0/google-http-client-jackson2-1.34.0.jar"
+                ],
+                "sha256": "c6c2d55048c880f0a26d3e01eb4f1c686284501397793ff6fc8239e0fd368dcc"
+            },
+            {
+                "coord": "com.google.http-client:google-http-client:1.34.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/http-client/google-http-client/1.34.0/google-http-client-1.34.0.jar",
+                "directDependencies": [
+                    "org.apache.httpcomponents:httpclient:4.5.10",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "io.opencensus:opencensus-contrib-http-util:0.24.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "org.apache.httpcomponents:httpcore:4.4.12",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.apache.httpcomponents:httpclient:4.5.10",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "commons-logging:commons-logging:1.2",
+                    "io.opencensus:opencensus-contrib-http-util:0.24.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "commons-codec:commons-codec:1.11",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "org.apache.httpcomponents:httpcore:4.4.12",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.34.0/google-http-client-1.34.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/http-client/google-http-client/1.34.0/google-http-client-1.34.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/http-client/google-http-client/1.34.0/google-http-client-1.34.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.34.0/google-http-client-1.34.0.jar"
+                ],
+                "sha256": "376abdc782970145c673446c119bbb158641bca1b311d6098adc238c58be5ed7"
+            },
+            {
+                "coord": "com.google.j2objc:j2objc-annotations:1.3",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar",
+                    "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar"
+                ],
+                "sha256": "21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b"
+            },
+            {
+                "coord": "com.google.protobuf:protobuf-java-util:3.11.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.11.0/protobuf-java-util-3.11.0.jar",
+                "directDependencies": [
+                    "com.google.code.gson:gson:2.8.6",
+                    "com.google.protobuf:protobuf-java:3.11.0"
+                ],
+                "dependencies": [
+                    "com.google.protobuf:protobuf-java:3.11.0",
+                    "com.google.code.gson:gson:2.8.6"
+                ],
+                "exclusions": [
+                    "com.google.guava:guava",
+                    "com.google.errorprone:error_prone_annotations"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.11.0/protobuf-java-util-3.11.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/protobuf/protobuf-java-util/3.11.0/protobuf-java-util-3.11.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/protobuf/protobuf-java-util/3.11.0/protobuf-java-util-3.11.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.11.0/protobuf-java-util-3.11.0.jar"
+                ],
+                "sha256": "54b4cb99ec9196f24d04a47f98416274e34aee16ebb860d5655c6c5a069705e5"
+            },
+            {
+                "coord": "com.google.protobuf:protobuf-java:3.11.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar"
+                ],
+                "sha256": "123d8b260cfdbb91a208931c2d3ea0988c6942f4f4d9303b008f005ef3a4124c"
+            },
+            {
+                "coord": "com.google.protobuf:protobuf-java:3.11.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "exclusions": [
+                    "com.google.guava:guava",
+                    "com.google.errorprone:error_prone_annotations"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar"
+                ],
+                "sha256": "123d8b260cfdbb91a208931c2d3ea0988c6942f4f4d9303b008f005ef3a4124c"
+            },
+            {
+                "coord": "com.google.truth:truth:1.0.1",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/truth/truth/1.0.1/truth-1.0.1.jar",
+                "directDependencies": [
+                    "com.google.auto.value:auto-value-annotations:1.7",
+                    "junit:junit:4.12",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.googlecode.java-diff-utils:diffutils:1.3.0",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.auto.value:auto-value-annotations:1.7",
+                    "junit:junit:4.12",
+                    "org.hamcrest:hamcrest-core:1.3",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.googlecode.java-diff-utils:diffutils:1.3.0",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/truth/truth/1.0.1/truth-1.0.1.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/truth/truth/1.0.1/truth-1.0.1.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/truth/truth/1.0.1/truth-1.0.1.jar",
+                    "https://repo1.maven.org/maven2/com/google/truth/truth/1.0.1/truth-1.0.1.jar"
+                ],
+                "sha256": "1ccf4334e7a94cf00a20a619b5462b53acf3274e00b70498bf5b28a3bc1be9b1"
+            },
+            {
+                "coord": "com.googlecode.java-diff-utils:diffutils:1.3.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar",
+                    "https://repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar"
+                ],
+                "sha256": "61ba4dc49adca95243beaa0569adc2a23aedb5292ae78aa01186fa782ebdc5c2"
+            },
+            {
+                "coord": "com.squareup.okhttp:okhttp:2.7.4",
+                "file": "v1/https/repo1.maven.org/maven2/com/squareup/okhttp/okhttp/2.7.4/okhttp-2.7.4.jar",
+                "directDependencies": [
+                    "com.squareup.okio:okio:1.13.0"
+                ],
+                "dependencies": [
+                    "com.squareup.okio:okio:1.13.0"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/squareup/okhttp/okhttp/2.7.4/okhttp-2.7.4.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/squareup/okhttp/okhttp/2.7.4/okhttp-2.7.4.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/squareup/okhttp/okhttp/2.7.4/okhttp-2.7.4.jar",
+                    "https://repo1.maven.org/maven2/com/squareup/okhttp/okhttp/2.7.4/okhttp-2.7.4.jar"
+                ],
+                "sha256": "c88be9af1509d5aeec9394a818c0fa08e26fad9d64ba134e6f977e0bb20cb114"
+            },
+            {
+                "coord": "com.squareup.okio:okio:1.13.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar",
+                    "https://repo1.maven.org/maven2/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar"
+                ],
+                "sha256": "734269c3ebc5090e3b23566db558f421f0b4027277c79ad5d176b8ec168bb850"
+            },
+            {
+                "coord": "commons-codec:commons-codec:1.11",
+                "file": "v1/https/repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/commons-codec/commons-codec/1.11/commons-codec-1.11.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/commons-codec/commons-codec/1.11/commons-codec-1.11.jar",
+                    "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar"
+                ],
+                "sha256": "e599d5318e97aa48f42136a2927e6dfa4e8881dff0e6c8e3109ddbbff51d7b7d"
+            },
+            {
+                "coord": "commons-lang:commons-lang:2.6",
+                "file": "v1/https/repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/commons-lang/commons-lang/2.6/commons-lang-2.6.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/commons-lang/commons-lang/2.6/commons-lang-2.6.jar",
+                    "https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar"
+                ],
+                "sha256": "50f11b09f877c294d56f24463f47d28f929cf5044f648661c0f0cfbae9a2f49c"
+            },
+            {
+                "coord": "commons-logging:commons-logging:1.2",
+                "file": "v1/https/repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/commons-logging/commons-logging/1.2/commons-logging-1.2.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/commons-logging/commons-logging/1.2/commons-logging-1.2.jar",
+                    "https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar"
+                ],
+                "sha256": "daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636"
+            },
+            {
+                "coord": "io.grpc:grpc-api:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-api/1.29.0/grpc-api-1.29.0.jar",
+                "directDependencies": [
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.29.0/grpc-api-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-api/1.29.0/grpc-api-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-api/1.29.0/grpc-api-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.29.0/grpc-api-1.29.0.jar"
+                ],
+                "sha256": "4837824acdd8d576d7d31a862e7391c38a1824cd2224daa68999377fdff9ae3f"
+            },
+            {
+                "coord": "io.grpc:grpc-context:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-context/1.29.0/grpc-context-1.29.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.29.0/grpc-context-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-context/1.29.0/grpc-context-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-context/1.29.0/grpc-context-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.29.0/grpc-context-1.29.0.jar"
+                ],
+                "sha256": "41426f8fa5b5ff6e8cf5d6a7a6e7b1175350bc8c8e11f352e0622e00f99c4a02"
+            },
+            {
+                "coord": "io.grpc:grpc-core:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-core/1.29.0/grpc-core-1.29.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.29.0/grpc-core-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-core/1.29.0/grpc-core-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-core/1.29.0/grpc-core-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.29.0/grpc-core-1.29.0.jar"
+                ],
+                "sha256": "d45e3ba310cf6a5d8170bcc500507977505614583c341d03c7d91658e49cf028"
+            },
+            {
+                "coord": "io.grpc:grpc-netty-shaded:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.29.0/grpc-netty-shaded-1.29.0.jar",
+                "directDependencies": [
+                    "io.grpc:grpc-core:1.29.0"
+                ],
+                "dependencies": [
+                    "io.grpc:grpc-core:1.29.0"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.29.0/grpc-netty-shaded-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-netty-shaded/1.29.0/grpc-netty-shaded-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-netty-shaded/1.29.0/grpc-netty-shaded-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.29.0/grpc-netty-shaded-1.29.0.jar"
+                ],
+                "sha256": "1e557a2f4b4a1332bb79e7f7354a031491f24e0e45aa493f0d48b555916cf049"
+            },
+            {
+                "coord": "io.grpc:grpc-protobuf-lite:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.29.0/grpc-protobuf-lite-1.29.0.jar",
+                "directDependencies": [
+                    "com.google.guava:guava:28.2-android",
+                    "io.grpc:grpc-api:1.29.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "io.grpc:grpc-api:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "exclusions": [
+                    "com.google.protobuf:protobuf-javalite"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.29.0/grpc-protobuf-lite-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-protobuf-lite/1.29.0/grpc-protobuf-lite-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-protobuf-lite/1.29.0/grpc-protobuf-lite-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.29.0/grpc-protobuf-lite-1.29.0.jar"
+                ],
+                "sha256": "ae4bbcd9bf7ad4856660807d8cba7ef4ff428f0b615bf663ba308d9a76bcab3c"
+            },
+            {
+                "coord": "io.grpc:grpc-protobuf:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.29.0/grpc-protobuf-1.29.0.jar",
+                "directDependencies": [
+                    "com.google.api.grpc:proto-google-common-protos:1.17.0",
+                    "com.google.protobuf:protobuf-java:3.11.0",
+                    "io.grpc:grpc-api:1.29.0",
+                    "io.grpc:grpc-protobuf-lite:1.29.0",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.api.grpc:proto-google-common-protos:1.17.0",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.protobuf:protobuf-java:3.11.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "io.grpc:grpc-api:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "io.grpc:grpc-protobuf-lite:1.29.0",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.29.0/grpc-protobuf-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-protobuf/1.29.0/grpc-protobuf-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-protobuf/1.29.0/grpc-protobuf-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.29.0/grpc-protobuf-1.29.0.jar"
+                ],
+                "sha256": "ee8cef64c7e10dd373aabd3a4b2ec4878e6d5b3ba43cbf55f3876ddaa79266ea"
+            },
+            {
+                "coord": "io.grpc:grpc-services:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-services/1.29.0/grpc-services-1.29.0.jar",
+                "directDependencies": [
+                    "com.google.protobuf:protobuf-java-util:3.11.0",
+                    "io.grpc:grpc-core:1.29.0",
+                    "io.grpc:grpc-protobuf:1.29.0",
+                    "io.grpc:grpc-stub:1.29.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.api.grpc:proto-google-common-protos:1.17.0",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.protobuf:protobuf-java:3.11.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-core:1.29.0",
+                    "com.google.protobuf:protobuf-java-util:3.11.0",
+                    "io.grpc:grpc-context:1.29.0",
+                    "com.google.code.gson:gson:2.8.6",
+                    "io.grpc:grpc-api:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "io.grpc:grpc-protobuf-lite:1.29.0",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "io.grpc:grpc-stub:1.29.0",
+                    "io.grpc:grpc-protobuf:1.29.0",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-services/1.29.0/grpc-services-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-services/1.29.0/grpc-services-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-services/1.29.0/grpc-services-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-services/1.29.0/grpc-services-1.29.0.jar"
+                ],
+                "sha256": "6bea2f0ec35d3071a12fccc640ca7450f1cd2ce66574456e8deec21f79464681"
+            },
+            {
+                "coord": "io.grpc:grpc-stub:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-stub/1.29.0/grpc-stub-1.29.0.jar",
+                "directDependencies": [
+                    "io.grpc:grpc-api:1.29.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "io.grpc:grpc-api:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.29.0/grpc-stub-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-stub/1.29.0/grpc-stub-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-stub/1.29.0/grpc-stub-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.29.0/grpc-stub-1.29.0.jar"
+                ],
+                "sha256": "65b01e451013d6c9f2de1392abf47190a397cbbd7f5a45e3cc9df509671a0cf8"
+            },
+            {
+                "coord": "io.netty:netty-buffer:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.48.Final/netty-buffer-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-common:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-common:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.48.Final/netty-buffer-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-buffer/4.1.48.Final/netty-buffer-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-buffer/4.1.48.Final/netty-buffer-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.48.Final/netty-buffer-4.1.48.Final.jar"
+                ],
+                "sha256": "7efc8f98224c703ef09a409e5ddffbe14f5b4b6f527d3836c1647b4d9eff8cec"
+            },
+            {
+                "coord": "io.netty:netty-codec-http2:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.48.Final/netty-codec-http2-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-codec-http:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-handler:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-codec-http:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-handler:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.48.Final/netty-codec-http2-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-codec-http2/4.1.48.Final/netty-codec-http2-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-codec-http2/4.1.48.Final/netty-codec-http2-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.48.Final/netty-codec-http2-4.1.48.Final.jar"
+                ],
+                "sha256": "359548f53cf8697ebdfa13a4700f1b9a5585573c64f2d3ed135a3197ebd51579"
+            },
+            {
+                "coord": "io.netty:netty-codec-http:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.48.Final/netty-codec-http-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-handler:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-handler:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.48.Final/netty-codec-http-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-codec-http/4.1.48.Final/netty-codec-http-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-codec-http/4.1.48.Final/netty-codec-http-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.48.Final/netty-codec-http-4.1.48.Final.jar"
+                ],
+                "sha256": "aa4b18070e7fc105f0c94a077605687bec48091274c8acc121116692c335edd0"
+            },
+            {
+                "coord": "io.netty:netty-codec-socks:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.48.Final/netty-codec-socks-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.48.Final/netty-codec-socks-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-codec-socks/4.1.48.Final/netty-codec-socks-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-codec-socks/4.1.48.Final/netty-codec-socks-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.48.Final/netty-codec-socks-4.1.48.Final.jar"
+                ],
+                "sha256": "d0dd35f9ac6892a03bb0d38ea32e683993c4308a02de5756bb5a23ecb929f917"
+            },
+            {
+                "coord": "io.netty:netty-codec:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.48.Final/netty-codec-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.48.Final/netty-codec-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-codec/4.1.48.Final/netty-codec-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-codec/4.1.48.Final/netty-codec-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.48.Final/netty-codec-4.1.48.Final.jar"
+                ],
+                "sha256": "81b4c316163a591b4f74fd2dc23a3ea45359cb817d0a9c4fc7f37dc9edfdbea8"
+            },
+            {
+                "coord": "io.netty:netty-common:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.48.Final/netty-common-4.1.48.Final.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.48.Final/netty-common-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-common/4.1.48.Final/netty-common-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-common/4.1.48.Final/netty-common-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.48.Final/netty-common-4.1.48.Final.jar"
+                ],
+                "sha256": "e44a2369566fd1fa8a0f30b12e2801de8fb405b9d1fa3894a58b6262065a9916"
+            },
+            {
+                "coord": "io.netty:netty-handler-proxy:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.48.Final/netty-handler-proxy-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-codec-http:4.1.48.Final",
+                    "io.netty:netty-codec-socks:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-codec-http:4.1.48.Final",
+                    "io.netty:netty-codec-socks:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-handler:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.48.Final/netty-handler-proxy-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-handler-proxy/4.1.48.Final/netty-handler-proxy-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-handler-proxy/4.1.48.Final/netty-handler-proxy-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.48.Final/netty-handler-proxy-4.1.48.Final.jar"
+                ],
+                "sha256": "f784f331bdb05834390c132d1534724e5371c1a19c7a62217e5f192963a9a92c"
+            },
+            {
+                "coord": "io.netty:netty-handler:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.48.Final/netty-handler-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.48.Final/netty-handler-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-handler/4.1.48.Final/netty-handler-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-handler/4.1.48.Final/netty-handler-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.48.Final/netty-handler-4.1.48.Final.jar"
+                ],
+                "sha256": "757f83c7891ad2ebad209f02d8dbca0121e03f7062c2d4ec9d00eba1a0d403d5"
+            },
+            {
+                "coord": "io.netty:netty-resolver:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.48.Final/netty-resolver-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-common:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-common:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.48.Final/netty-resolver-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-resolver/4.1.48.Final/netty-resolver-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-resolver/4.1.48.Final/netty-resolver-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.48.Final/netty-resolver-4.1.48.Final.jar"
+                ],
+                "sha256": "fb125914398ebef821def3dbb1642f9f360f39d182f00149ef3db845ebf06ad2"
+            },
+            {
+                "coord": "io.netty:netty-tcnative-boringssl-static:2.0.30.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.30.Final/netty-tcnative-boringssl-static-2.0.30.Final.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.30.Final/netty-tcnative-boringssl-static-2.0.30.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-tcnative-boringssl-static/2.0.30.Final/netty-tcnative-boringssl-static-2.0.30.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-tcnative-boringssl-static/2.0.30.Final/netty-tcnative-boringssl-static-2.0.30.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.30.Final/netty-tcnative-boringssl-static-2.0.30.Final.jar"
+                ],
+                "sha256": "61934ca753be47973fe427d1f483a1b2fbcaf56eefc71519bf35fddb036ee111"
+            },
+            {
+                "coord": "io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.48.Final/netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar",
+                "directDependencies": [
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-transport-native-unix-common:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-transport-native-unix-common:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.48.Final/netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-transport-native-epoll/4.1.48.Final/netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-transport-native-epoll/4.1.48.Final/netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.48.Final/netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar"
+                ],
+                "sha256": "7436ecfb442b299af6ecff7ae6a8d3f00fb56e081d20e82b467dad2e6ee8848f"
+            },
+            {
+                "coord": "io.netty:netty-transport-native-unix-common:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.48.Final/netty-transport-native-unix-common-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.48.Final/netty-transport-native-unix-common-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-transport-native-unix-common/4.1.48.Final/netty-transport-native-unix-common-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-transport-native-unix-common/4.1.48.Final/netty-transport-native-unix-common-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.48.Final/netty-transport-native-unix-common-4.1.48.Final.jar"
+                ],
+                "sha256": "c4142429437845d966babba5eddce47203e1f256209e455019d2538ebec58b95"
+            },
+            {
+                "coord": "io.netty:netty-transport:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.48.Final/netty-transport-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.48.Final/netty-transport-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-transport/4.1.48.Final/netty-transport-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-transport/4.1.48.Final/netty-transport-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.48.Final/netty-transport-4.1.48.Final.jar"
+                ],
+                "sha256": "6b4ba9e09a8e060bad2540845491b5fa1ca73614d157860e657f4027c91e72fd"
+            },
+            {
+                "coord": "io.opencensus:opencensus-api:0.24.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar",
+                "directDependencies": [
+                    "io.grpc:grpc-context:1.29.0"
+                ],
+                "dependencies": [
+                    "io.grpc:grpc-context:1.29.0"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar",
+                    "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar"
+                ],
+                "sha256": "f561b1cc2673844288e596ddf5bb6596868a8472fd2cb8993953fc5c034b2352"
+            },
+            {
+                "coord": "io.opencensus:opencensus-contrib-grpc-metrics:0.24.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-contrib-grpc-metrics/0.24.0/opencensus-contrib-grpc-metrics-0.24.0.jar",
+                "directDependencies": [
+                    "com.google.guava:guava:28.2-android",
+                    "io.opencensus:opencensus-api:0.24.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-grpc-metrics/0.24.0/opencensus-contrib-grpc-metrics-0.24.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/opencensus/opencensus-contrib-grpc-metrics/0.24.0/opencensus-contrib-grpc-metrics-0.24.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/opencensus/opencensus-contrib-grpc-metrics/0.24.0/opencensus-contrib-grpc-metrics-0.24.0.jar",
+                    "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-grpc-metrics/0.24.0/opencensus-contrib-grpc-metrics-0.24.0.jar"
+                ],
+                "sha256": "875582e093f11950ad3f4a50b5fee33a008023f7d1e47820a1bef05d23b9ed42"
+            },
+            {
+                "coord": "io.opencensus:opencensus-contrib-http-util:0.24.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar",
+                "directDependencies": [
+                    "com.google.guava:guava:28.2-android",
+                    "io.opencensus:opencensus-api:0.24.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar",
+                    "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar"
+                ],
+                "sha256": "7155273bbb1ed3d477ea33cf19d7bbc0b285ff395f43b29ae576722cf247000f"
+            },
+            {
+                "coord": "io.perfmark:perfmark-api:0.19.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar",
+                "directDependencies": [
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.errorprone:error_prone_annotations:2.3.4"
+                ],
+                "dependencies": [
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.errorprone:error_prone_annotations:2.3.4"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar",
+                    "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar"
+                ],
+                "sha256": "b734ba2149712409a44eabdb799f64768578fee0defe1418bb108fe32ea43e1a"
+            },
+            {
+                "coord": "javax.annotation:javax.annotation-api:1.2",
+                "file": "v1/https/repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar",
+                    "https://repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar"
+                ],
+                "sha256": "5909b396ca3a2be10d0eea32c74ef78d816e1b4ead21de1d78de1f890d033e04"
+            },
+            {
+                "coord": "junit:junit:4.12",
+                "file": "v1/https/repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar",
+                "directDependencies": [
+                    "org.hamcrest:hamcrest-core:1.3"
+                ],
+                "dependencies": [
+                    "org.hamcrest:hamcrest-core:1.3"
+                ],
+                "url": "https://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/junit/junit/4.12/junit-4.12.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/junit/junit/4.12/junit-4.12.jar",
+                    "https://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar"
+                ],
+                "sha256": "59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a"
+            },
+            {
+                "coord": "net.md-5:bungeecord-chat:jar:1.15-SNAPSHOT",
+                "file": "v1/https/oss.sonatype.org/content/repositories/snapshots/net/md-5/bungeecord-chat/1.15-SNAPSHOT/bungeecord-chat-1.15-20200509.234557-72.jar",
+                "directDependencies": [
+                    "com.google.code.gson:gson:2.8.6",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.code.gson:gson:2.8.6",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://oss.sonatype.org/content/repositories/snapshots/net/md-5/bungeecord-chat/1.15-SNAPSHOT/bungeecord-chat-1.15-20200509.234557-72.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/net/md-5/bungeecord-chat/1.15-SNAPSHOT/bungeecord-chat-1.15-20200509.234557-72.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/net/md-5/bungeecord-chat/1.15-SNAPSHOT/bungeecord-chat-1.15-20200509.234557-72.jar",
+                    "https://repo1.maven.org/maven2/net/md-5/bungeecord-chat/1.15-SNAPSHOT/bungeecord-chat-1.15-20200509.234557-72.jar"
+                ],
+                "sha256": "fd727533e2629f5383feebe28c33ac168c9d210115c832970d9b4338579ac720"
+            },
+            {
+                "coord": "org.apache.commons:commons-lang3:3.5",
+                "file": "v1/https/repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar",
+                    "https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar"
+                ],
+                "sha256": "8ac96fc686512d777fca85e144f196cd7cfe0c0aec23127229497d1a38ff651c"
+            },
+            {
+                "coord": "org.apache.httpcomponents:httpclient:4.5.10",
+                "file": "v1/https/repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.10/httpclient-4.5.10.jar",
+                "directDependencies": [
+                    "commons-codec:commons-codec:1.11",
+                    "commons-logging:commons-logging:1.2",
+                    "org.apache.httpcomponents:httpcore:4.4.12"
+                ],
+                "dependencies": [
+                    "commons-logging:commons-logging:1.2",
+                    "commons-codec:commons-codec:1.11",
+                    "org.apache.httpcomponents:httpcore:4.4.12"
+                ],
+                "url": "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.10/httpclient-4.5.10.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/apache/httpcomponents/httpclient/4.5.10/httpclient-4.5.10.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/apache/httpcomponents/httpclient/4.5.10/httpclient-4.5.10.jar",
+                    "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.10/httpclient-4.5.10.jar"
+                ],
+                "sha256": "38b9f16f504928e4db736a433b9cd10968d9ec8d6f5d0e61a64889a689172134"
+            },
+            {
+                "coord": "org.apache.httpcomponents:httpcore:4.4.12",
+                "file": "v1/https/repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.12/httpcore-4.4.12.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.12/httpcore-4.4.12.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/apache/httpcomponents/httpcore/4.4.12/httpcore-4.4.12.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/apache/httpcomponents/httpcore/4.4.12/httpcore-4.4.12.jar",
+                    "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.12/httpcore-4.4.12.jar"
+                ],
+                "sha256": "ab765334beabf0ea024484a5e90a7c40e8160b145f22d199e11e27f68d57da08"
+            },
+            {
+                "coord": "org.checkerframework:checker-compat-qual:2.5.5",
+                "file": "v1/https/repo1.maven.org/maven2/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar",
+                    "https://repo1.maven.org/maven2/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar"
+                ],
+                "sha256": "11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a"
+            },
+            {
+                "coord": "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                "file": "v1/https/repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar",
+                    "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar"
+                ],
+                "sha256": "47f05852b48ee9baefef80fa3d8cea60efa4753c0013121dd7fe5eef2e5c729d"
+            },
+            {
+                "coord": "org.hamcrest:hamcrest-core:1.3",
+                "file": "v1/https/repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
+                    "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"
+                ],
+                "sha256": "66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9"
+            },
+            {
+                "coord": "org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT",
+                "file": "v1/https/hub.spigotmc.org/nexus/content/repositories/snapshots/org/spigotmc/spigot-api/1.15.2-R0.1-SNAPSHOT/spigot-api-1.15.2-R0.1-20200509.094510-108.jar",
+                "directDependencies": [
+                    "commons-lang:commons-lang:2.6",
+                    "org.yaml:snakeyaml:1.25",
+                    "com.google.code.gson:gson:2.8.6",
+                    "net.md-5:bungeecord-chat:jar:1.15-SNAPSHOT",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "commons-lang:commons-lang:2.6",
+                    "org.yaml:snakeyaml:1.25",
+                    "com.google.code.gson:gson:2.8.6",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "net.md-5:bungeecord-chat:jar:1.15-SNAPSHOT",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/spigotmc/spigot-api/1.15.2-R0.1-SNAPSHOT/spigot-api-1.15.2-R0.1-20200509.094510-108.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/spigotmc/spigot-api/1.15.2-R0.1-SNAPSHOT/spigot-api-1.15.2-R0.1-20200509.094510-108.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/spigotmc/spigot-api/1.15.2-R0.1-SNAPSHOT/spigot-api-1.15.2-R0.1-20200509.094510-108.jar",
+                    "https://repo1.maven.org/maven2/org/spigotmc/spigot-api/1.15.2-R0.1-SNAPSHOT/spigot-api-1.15.2-R0.1-20200509.094510-108.jar"
+                ],
+                "sha256": "243c81927517f29ff2bf51303beba6470cb92ae15f82fadd0d8ba86c5715e5f8"
+            },
+            {
+                "coord": "org.yaml:snakeyaml:1.25",
+                "file": "v1/https/repo1.maven.org/maven2/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar",
+                    "https://repo1.maven.org/maven2/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar"
+                ],
+                "sha256": "b50ef33187e7dc922b26dbe4dd0fdb3a9cf349e75a08b95269901548eee546eb"
+            }
+        ],
+        "version": "0.1.0",
+        "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": 392476608
+    }
+}