build(plugins): 插件构建统一钉到 gradle 9.8 镜像与带 sha256 的 wrapper,paper-api/Limbo 对齐锁文件并启用依赖校验
This commit is contained in:
32 files changed
+2729
-97
No files matched your search
@@ -203,17 +203,15 @@ jobs:
|
||||
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
|
||||
|
||||
# The other jobs never touch the Java layer: the plugin jars were only ever
|
||||
# compiled by bootstrap on a live host, and the three test mains under
|
||||
# plugins/*/test were run by hand. JDK 21 plus the Gradle major the plugin
|
||||
# Dockerfiles pin (8.14) is that same toolchain, in CI.
|
||||
# compiled by bootstrap on a live host, and the test mains under plugins/*/test
|
||||
# were run by hand. JDK 25 is what the plugin build image runs (paper-api 26.x
|
||||
# needs it); each module's wrapper brings the Gradle the image pins.
|
||||
- uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v4.9.1
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: '21'
|
||||
java-version: '25'
|
||||
|
||||
- uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4.4.3
|
||||
with:
|
||||
gradle-version: '8.14'
|
||||
|
||||
- run: bash plugins/test.sh
|
||||
|
||||
|
||||
+6
-4
@@ -22,15 +22,17 @@ var bootstrapAssets embed.FS
|
||||
// developer's working tree carries gradle output (plugins/*/build, plugins/*/bin,
|
||||
// and for the modded loaders a decompiled Minecraft under build/) which would
|
||||
// otherwise be baked into every felis binary. Keep them explicit — add a source
|
||||
// directory here, never a parent.
|
||||
// directory here, never a parent. Each module's gradle/verification-metadata.xml rides
|
||||
// along, since Gradle builds unverified without it; the wrapper stays out, because the
|
||||
// image builds run the pinned build image's own gradle.
|
||||
//
|
||||
//go:embed deploy/game-stack.lock
|
||||
//go:embed deploy/limbo/Dockerfile deploy/limbo/entrypoint.sh
|
||||
//go:embed deploy/lobby/Dockerfile deploy/lobby/entrypoint.sh
|
||||
//go:embed deploy/paper/Dockerfile deploy/paper/entrypoint.sh
|
||||
//go:embed plugins/limbo/build.gradle plugins/limbo/settings.gradle plugins/limbo/src
|
||||
//go:embed plugins/paper/build.gradle plugins/paper/settings.gradle plugins/paper/src
|
||||
//go:embed plugins/velocity/build.gradle plugins/velocity/settings.gradle plugins/velocity/src
|
||||
//go:embed plugins/limbo/build.gradle plugins/limbo/settings.gradle plugins/limbo/src plugins/limbo/gradle/verification-metadata.xml
|
||||
//go:embed plugins/paper/build.gradle plugins/paper/settings.gradle plugins/paper/src plugins/paper/gradle/verification-metadata.xml
|
||||
//go:embed plugins/velocity/build.gradle plugins/velocity/settings.gradle plugins/velocity/src plugins/velocity/gradle/verification-metadata.xml
|
||||
//go:embed plugins/shared/src
|
||||
var gameStackAssets embed.FS
|
||||
|
||||
|
||||
+185
-11
@@ -1,6 +1,7 @@
|
||||
package felis
|
||||
|
||||
import (
|
||||
"encoding/xml"
|
||||
"io/fs"
|
||||
"os"
|
||||
"regexp"
|
||||
@@ -210,17 +211,7 @@ func requireEmbedded(t *testing.T, path string) {
|
||||
// with a strict KEY=value parser that dies on anything unexpected, so a malformed lock is a
|
||||
// failed install on every host. Check the shipped copy the same way here.
|
||||
func TestGameStackLockIsComplete(t *testing.T) {
|
||||
lock := map[string]string{}
|
||||
for line := range strings.SplitSeq(readGameStackFile(t, "deploy/game-stack.lock"), "\n") {
|
||||
if line == "" || strings.HasPrefix(line, "#") {
|
||||
continue
|
||||
}
|
||||
k, v, ok := strings.Cut(line, "=")
|
||||
if !ok {
|
||||
t.Fatalf("not a KEY=value line: %q", line)
|
||||
}
|
||||
lock[k] = v
|
||||
}
|
||||
lock := gameStackLock(t)
|
||||
m := regexp.MustCompile(`GAME_STACK_LOCK_KEYS="([^"]*)"`).FindStringSubmatch(BootstrapScript())
|
||||
if m == nil {
|
||||
t.Fatal("bootstrap.sh no longer declares GAME_STACK_LOCK_KEYS")
|
||||
@@ -313,6 +304,189 @@ func TestDockerfileBaseImagesArePinnedByDigest(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// The plugin jars are built in three places the installer controls — the lobby and limbo
|
||||
// image builds and bootstrap's Velocity build — and through each module's wrapper by a
|
||||
// developer or CI. A tag alone is whatever it points at on build day, and two Gradle
|
||||
// versions are two chances for a build to pass in one place and break in the other, so
|
||||
// all of them run one image, pinned by digest, whose Gradle is the wrappers' Gradle.
|
||||
func TestPluginBuildsRunOnePinnedGradle(t *testing.T) {
|
||||
sources := map[string]string{
|
||||
"deploy/lobby/Dockerfile": readGameStackFile(t, "deploy/lobby/Dockerfile"),
|
||||
"deploy/limbo/Dockerfile": readGameStackFile(t, "deploy/limbo/Dockerfile"),
|
||||
"deploy/bootstrap.sh": BootstrapScript(),
|
||||
}
|
||||
anyRef := regexp.MustCompile(`gradle:[\w.-]+(@sha256:\w+)?`)
|
||||
pinned := regexp.MustCompile(`^gradle:(\d+\.\d+(?:\.\d+)?)-jdk\d+@sha256:[0-9a-f]{64}$`)
|
||||
images := map[string]bool{}
|
||||
gradle := ""
|
||||
for name, body := range sources {
|
||||
refs := anyRef.FindAllString(body, -1)
|
||||
if len(refs) == 0 {
|
||||
t.Errorf("%s names no gradle image", name)
|
||||
}
|
||||
for _, ref := range refs {
|
||||
m := pinned.FindStringSubmatch(ref)
|
||||
if m == nil {
|
||||
t.Errorf("%s: %s is not a gradle image pinned by digest", name, ref)
|
||||
continue
|
||||
}
|
||||
images[ref] = true
|
||||
gradle = m[1]
|
||||
}
|
||||
}
|
||||
if len(images) != 1 {
|
||||
t.Fatalf("the plugin builds use %d different gradle images, want one: %v", len(images), images)
|
||||
}
|
||||
// bootstrap names the image once and has to spend it where it builds the jar.
|
||||
if !strings.Contains(BootstrapScript(), `"$PLUGIN_BUILD_IMAGE" gradle --no-daemon clean build`) {
|
||||
t.Error("build_velocity_plugin does not build in $PLUGIN_BUILD_IMAGE")
|
||||
}
|
||||
|
||||
for _, module := range []string{"velocity", "paper", "limbo"} {
|
||||
props := wrapperProperties(t, module)
|
||||
if want := "gradle-" + gradle + "-bin.zip"; !strings.HasSuffix(props["distributionUrl"], "/"+want) {
|
||||
t.Errorf("plugins/%s wrapper runs %s; the image builds run Gradle %s", module, props["distributionUrl"], gradle)
|
||||
}
|
||||
}
|
||||
// The mods are no part of the install, but a wrapper without a checksum runs whatever
|
||||
// the download handed it.
|
||||
for _, module := range []string{"velocity", "paper", "limbo", "fabric", "forge", "neoforge"} {
|
||||
if sum := wrapperProperties(t, module)["distributionSha256Sum"]; !regexp.MustCompile(`^[0-9a-f]{64}$`).MatchString(sum) {
|
||||
t.Errorf("plugins/%s wrapper pins no distribution sha256 (got %q)", module, sum)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Each plugin compiles against the API of the exact build the install runs, and Gradle
|
||||
// checks those bytes against the module's verification file. Nothing but this test ties
|
||||
// the three to deploy/game-stack.lock: a lock refresh that leaves them behind builds the
|
||||
// lobby against yesterday's API, or fails every image build on a checksum the file does
|
||||
// not have.
|
||||
func TestPluginApisAreTheLockedBuilds(t *testing.T) {
|
||||
lock := gameStackLock(t)
|
||||
|
||||
// Paper: paper-<mc>-<build>.jar runs; paper-api <mc>.build.<build>-<channel> compiles.
|
||||
jar := regexp.MustCompile(`/paper-([^/]+)-(\d+)\.jar$`).FindStringSubmatch(lock["PAPER_JAR_URL"])
|
||||
if jar == nil {
|
||||
t.Fatalf("PAPER_JAR_URL %s does not name paper-<mc>-<build>.jar", lock["PAPER_JAR_URL"])
|
||||
}
|
||||
dep := regexp.MustCompile(`compileOnly 'io\.papermc\.paper:paper-api:([^']+)'`).
|
||||
FindStringSubmatch(readGameStackFile(t, "plugins/paper/build.gradle"))
|
||||
if dep == nil {
|
||||
t.Fatal("plugins/paper/build.gradle declares no paper-api dependency")
|
||||
}
|
||||
if !regexp.MustCompile(`^` + regexp.QuoteMeta(jar[1]+".build."+jar[2]) + `(-[a-z]+)?$`).MatchString(dep[1]) {
|
||||
t.Errorf("paper-api %s is not the API of the locked server paper-%s-%s.jar", dep[1], jar[1], jar[2])
|
||||
}
|
||||
requireVerified(t, "paper", "io.papermc.paper", "paper-api", dep[1])
|
||||
|
||||
// Limbo: the lock's release, passed to the image build, which refuses to guess one.
|
||||
limbo := lock["LIMBO_VERSION"]
|
||||
if !strings.Contains(BootstrapScript(), `--build-arg LIMBO_VERSION="$LIMBO_VERSION"`) {
|
||||
t.Error("bootstrap.sh does not pass the locked LIMBO_VERSION to the limbo image build")
|
||||
}
|
||||
dockerfile := readGameStackFile(t, "deploy/limbo/Dockerfile")
|
||||
if !regexp.MustCompile(`(?m)^ARG LIMBO_VERSION$`).MatchString(dockerfile) ||
|
||||
!strings.Contains(dockerfile, `if [ -z "${LIMBO_VERSION:-}" ]`) {
|
||||
t.Error("deploy/limbo/Dockerfile does not require LIMBO_VERSION; a build without it would " +
|
||||
"compile against a version nobody chose")
|
||||
}
|
||||
// LOOHP publishes the jar the login gate runs as the Limbo API artifact itself, so the
|
||||
// checksum Gradle holds for it is the lock's: compiled-against and running are one file.
|
||||
if got := requireVerified(t, "limbo", "com.loohp", "Limbo", limbo)["Limbo-"+limbo+".jar"]; got != lock["LIMBO_JAR_SHA256"] {
|
||||
t.Errorf("verification-metadata.xml holds %q for Limbo-%s.jar; the login gate runs %s", got, limbo, lock["LIMBO_JAR_SHA256"])
|
||||
}
|
||||
|
||||
// Velocity: the API default is the proxy the install runs.
|
||||
api := regexp.MustCompile(`findProperty\('velocityApi'\) \?: '([^']+)'`).
|
||||
FindStringSubmatch(readGameStackFile(t, "plugins/velocity/build.gradle"))
|
||||
if api == nil {
|
||||
t.Fatal("plugins/velocity/build.gradle has no velocityApi default")
|
||||
}
|
||||
if api[1] != lock["VELOCITY_VERSION"] {
|
||||
t.Errorf("velocity-api defaults to %s; the install runs Velocity %s", api[1], lock["VELOCITY_VERSION"])
|
||||
}
|
||||
requireVerified(t, "velocity", "com.velocitypowered", "velocity-api", api[1])
|
||||
}
|
||||
|
||||
// requireVerified asserts the module's shipped verification file checks metadata and
|
||||
// pins group:name:version, and returns that component's artifact sha256s by file name.
|
||||
func requireVerified(t *testing.T, module, group, name, version string) map[string]string {
|
||||
t.Helper()
|
||||
path := "plugins/" + module + "/gradle/verification-metadata.xml"
|
||||
var doc struct {
|
||||
VerifyMetadata bool `xml:"configuration>verify-metadata"`
|
||||
Components []struct {
|
||||
Group string `xml:"group,attr"`
|
||||
Name string `xml:"name,attr"`
|
||||
Version string `xml:"version,attr"`
|
||||
Artifacts []struct {
|
||||
Name string `xml:"name,attr"`
|
||||
SHA256 []struct {
|
||||
Value string `xml:"value,attr"`
|
||||
} `xml:"sha256"`
|
||||
} `xml:"artifact"`
|
||||
} `xml:"components>component"`
|
||||
}
|
||||
if err := xml.Unmarshal([]byte(readGameStackFile(t, path)), &doc); err != nil {
|
||||
t.Fatalf("%s: %v", path, err)
|
||||
}
|
||||
if !doc.VerifyMetadata {
|
||||
t.Errorf("%s does not verify metadata; a swapped pom could redirect the graph", path)
|
||||
}
|
||||
for _, c := range doc.Components {
|
||||
if c.Group != group || c.Name != name || c.Version != version {
|
||||
continue
|
||||
}
|
||||
sums := map[string]string{}
|
||||
for _, a := range c.Artifacts {
|
||||
if len(a.SHA256) > 0 {
|
||||
sums[a.Name] = a.SHA256[0].Value
|
||||
}
|
||||
}
|
||||
if sums[name+"-"+version+".jar"] == "" {
|
||||
t.Errorf("%s pins %s:%s:%s but no sha256 for its jar", path, group, name, version)
|
||||
}
|
||||
return sums
|
||||
}
|
||||
t.Errorf("%s has no checksum for %s:%s:%s; the build would refuse it", path, group, name, version)
|
||||
return nil
|
||||
}
|
||||
|
||||
// wrapperProperties reads a module's gradle-wrapper.properties off disk: the wrappers are
|
||||
// for developers and CI, and nothing embeds them.
|
||||
func wrapperProperties(t *testing.T, module string) map[string]string {
|
||||
t.Helper()
|
||||
b, err := os.ReadFile("plugins/" + module + "/gradle/wrapper/gradle-wrapper.properties")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
props := map[string]string{}
|
||||
for line := range strings.SplitSeq(string(b), "\n") {
|
||||
if k, v, ok := strings.Cut(strings.TrimSpace(line), "="); ok && !strings.HasPrefix(k, "#") {
|
||||
props[k] = strings.ReplaceAll(v, `\:`, ":")
|
||||
}
|
||||
}
|
||||
return props
|
||||
}
|
||||
|
||||
// gameStackLock parses the shipped deploy/game-stack.lock the way bootstrap.sh does.
|
||||
func gameStackLock(t *testing.T) map[string]string {
|
||||
t.Helper()
|
||||
lock := map[string]string{}
|
||||
for line := range strings.SplitSeq(readGameStackFile(t, "deploy/game-stack.lock"), "\n") {
|
||||
if line == "" || strings.HasPrefix(line, "#") {
|
||||
continue
|
||||
}
|
||||
k, v, ok := strings.Cut(line, "=")
|
||||
if !ok {
|
||||
t.Fatalf("not a KEY=value line: %q", line)
|
||||
}
|
||||
lock[k] = v
|
||||
}
|
||||
return lock
|
||||
}
|
||||
|
||||
func readGameStackFile(t *testing.T, name string) string {
|
||||
t.Helper()
|
||||
b, err := gameStackAssets.ReadFile(name)
|
||||
|
||||
+6
-2
@@ -372,6 +372,9 @@ SYSTEM_SERVER_IMAGES="${STATE_DIR}/system-server-images"
|
||||
PG_FIREWALL_RULES="${STATE_DIR}/postgres-firewall.nft"
|
||||
PG_FIREWALL_SERVICE="/etc/systemd/system/felis-postgres-firewall.service"
|
||||
JRE_DIR="/opt/felis/jre"
|
||||
# The gradle image the lobby and limbo Dockerfiles build their plugins in, digest
|
||||
# included; build_velocity_plugin runs the same one.
|
||||
PLUGIN_BUILD_IMAGE="gradle:9.8.0-jdk25@sha256:2b2fc1b1dfc3604a2acc916839f36eb5ee48fd7f232427fc5faca224c73bcb01"
|
||||
K3S_BIN_DIR="${K3S_BIN_DIR:-/usr/local/bin}"
|
||||
K3S_BIN="${K3S_BIN_DIR}/k3s"
|
||||
# k3s's containerd mirror config, written by configure_registry_mirror. A variable
|
||||
@@ -2126,7 +2129,8 @@ atomic_install_file() {
|
||||
|
||||
# build_velocity_plugin compiles plugins/velocity in the same gradle image the two
|
||||
# Dockerfiles use, and drops the jar where Velocity will look for it. Docker is the
|
||||
# toolchain here on purpose: the host needs no JDK and no gradle, only a JRE.
|
||||
# toolchain here on purpose: the host needs no JDK and no gradle, only a JRE. Gradle
|
||||
# checks every dependency against plugins/velocity/gradle/verification-metadata.xml.
|
||||
build_velocity_plugin() {
|
||||
log "building felis-velocity.jar (gradle in a container; the host gets no JDK)"
|
||||
prepare_velocity_layout
|
||||
@@ -2134,7 +2138,7 @@ build_velocity_plugin() {
|
||||
docker run --rm \
|
||||
-v "${GAME_STACK_DIR}:/src:z" \
|
||||
-w /src/plugins/velocity \
|
||||
gradle:8.14-jdk21 gradle --no-daemon clean build \
|
||||
"$PLUGIN_BUILD_IMAGE" gradle --no-daemon clean build \
|
||||
|| die "felis-velocity plugin build failed"
|
||||
local -a jars=( "${GAME_STACK_DIR}"/plugins/velocity/build/libs/felis-velocity-*.jar )
|
||||
[ "${#jars[@]}" -eq 1 ] && [ -f "${jars[0]}" ] \
|
||||
|
||||
+14
-10
@@ -29,22 +29,26 @@
|
||||
# overridable via FELIS_HEALTH_PORT) and returns 200 only after the first tick.
|
||||
|
||||
# ---- build the felis-limbo plugin jar ----
|
||||
# gradle:*-jdk21 — an official Gradle image on JDK 21. JDK 21 is required because
|
||||
# current LOOHP/Limbo releases ship Java 21 API classes (class-file major 65); a
|
||||
# JDK 17 fails to read them with "wrong version 65.0, should be 61.0". The image
|
||||
# also provides the `gradle` binary (this tree vendors no Gradle wrapper).
|
||||
# build.gradle still targets release 17 bytecode so the plugin loads on Java 17+.
|
||||
FROM gradle:8.14-jdk21@sha256:5c4c0c4284de4a19951e82ac78f86dbcda2e136644bbfe159beba7ea3420cc80 AS plugin
|
||||
# The same pinned Gradle image as the lobby build (see deploy/lobby/Dockerfile). Its JDK
|
||||
# must be >= 21 because current LOOHP/Limbo releases ship Java 21 API classes
|
||||
# (class-file major 65); a JDK 17 fails to read them with "wrong version 65.0, should be
|
||||
# 61.0". build.gradle still targets release 17 bytecode so the plugin loads on Java 17+.
|
||||
FROM gradle:9.8.0-jdk25@sha256:2b2fc1b1dfc3604a2acc916839f36eb5ee48fd7f232427fc5faca224c73bcb01 AS plugin
|
||||
WORKDIR /src
|
||||
# Copy what the limbo module needs: its own tree plus the shared link core it
|
||||
# srcDir-includes (../shared/src/main/java → /src/plugins/shared/src/main/java), so
|
||||
# the account-link client + config loader compile straight into the jar.
|
||||
COPY plugins/limbo/ ./plugins/limbo/
|
||||
COPY plugins/shared/ ./plugins/shared/
|
||||
ARG LIMBO_VERSION=+
|
||||
RUN cd plugins/limbo \
|
||||
&& (test -x ./gradlew && ./gradlew --no-daemon -PlimboVersion="$LIMBO_VERSION" build \
|
||||
|| gradle --no-daemon -PlimboVersion="$LIMBO_VERSION" build) \
|
||||
# The Limbo API release to compile against: deploy/game-stack.lock's LIMBO_VERSION, which
|
||||
# bootstrap passes. Required — the API is checked against the checksum
|
||||
# plugins/limbo/gradle/verification-metadata.xml holds for that release.
|
||||
ARG LIMBO_VERSION
|
||||
RUN if [ -z "${LIMBO_VERSION:-}" ]; then \
|
||||
echo "LIMBO_VERSION is required (deploy/game-stack.lock)" >&2; exit 1; \
|
||||
fi \
|
||||
&& cd plugins/limbo \
|
||||
&& gradle --no-daemon -PlimboVersion="$LIMBO_VERSION" build \
|
||||
&& cp build/libs/*.jar /felis-limbo.jar
|
||||
|
||||
# ---- assemble the runtime ----
|
||||
|
||||
@@ -25,16 +25,19 @@
|
||||
# Secret) and refuses to start without it: a lobby that cannot verify the proxy's signed
|
||||
# handshake would trust an offline, forgeable UUID.
|
||||
|
||||
# ---- build the felis-paper plugin jar (Paper API is Java 21) ----
|
||||
# gradle:8.14-jdk21 — an official Gradle image on JDK 21 (this tree vendors no Gradle
|
||||
# wrapper, and a bare JDK image ships no `gradle`). JDK 21 matches the Paper API.
|
||||
FROM gradle:8.14-jdk21@sha256:5c4c0c4284de4a19951e82ac78f86dbcda2e136644bbfe159beba7ea3420cc80 AS plugin
|
||||
# ---- build the felis-paper plugin jar (Paper API is Java 25) ----
|
||||
# The official Gradle image on JDK 25, the Gradle version plugins/*/gradle/wrapper pins.
|
||||
# The limbo Dockerfile and bootstrap's velocity build use this same image, digest and all
|
||||
# (bootstrap_asset_test.go holds the three together). The image's own `gradle` runs the
|
||||
# build rather than the module's wrapper, which would download the same distribution
|
||||
# again on every image build. The build checks every dependency against
|
||||
# plugins/paper/gradle/verification-metadata.xml and fails on a mismatch.
|
||||
FROM gradle:9.8.0-jdk25@sha256:2b2fc1b1dfc3604a2acc916839f36eb5ee48fd7f232427fc5faca224c73bcb01 AS plugin
|
||||
WORKDIR /src
|
||||
COPY plugins/paper/ ./plugins/paper/
|
||||
COPY plugins/shared/ ./plugins/shared/
|
||||
RUN cd plugins/paper \
|
||||
&& (test -x ./gradlew && ./gradlew --no-daemon build \
|
||||
|| gradle --no-daemon build) \
|
||||
&& gradle --no-daemon build \
|
||||
&& cp build/libs/*.jar /felis-paper.jar
|
||||
|
||||
# ---- assemble the runtime ----
|
||||
|
||||
@@ -10,7 +10,10 @@
|
||||
# and hashed here; Paper and Velocity come from Fill's content-addressed URLs.
|
||||
#
|
||||
# Review the diff before committing: MC_VERSION moves the login gate's protocol, and the
|
||||
# lobby, plain-Paper image and every client follow it.
|
||||
# lobby, plain-Paper image and every client follow it. The plugins compile against these
|
||||
# same builds (paper-api, the Limbo API, velocity-api) with their checksums pinned in
|
||||
# plugins/*/gradle/verification-metadata.xml, so a moved build also moves those; go test .
|
||||
# names what is left to bring along.
|
||||
set -Eeuo pipefail
|
||||
|
||||
here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
@@ -70,4 +73,4 @@ if [ "$check" = 1 ]; then
|
||||
die "upstream has newer builds than game-stack.lock"
|
||||
fi
|
||||
cp "$tmp" "$LOCK"
|
||||
ok "game-stack.lock updated; run go test . and the bootstrap tests, then commit"
|
||||
ok "game-stack.lock updated; move plugins/paper's paper-api pin to the new Paper build and regenerate the plugins' gradle/verification-metadata.xml (plugins/README.md \"Dependency verification\"), run go test . and the bootstrap tests, then commit"
|
||||
@@ -1,5 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=a4b4158601f8636cdeeab09bd76afb640030bb5b144aafe261a5e8af027dc612
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
|
||||
networkTimeout=10000
|
||||
retries=0
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
plugins {
|
||||
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
|
||||
// An exact release, never a range: a range resolves to whatever ForgeGradle published
|
||||
// last, so the same sources could build differently from one day to the next.
|
||||
id 'net.minecraftforge.gradle' version '6.0.54'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=a4b4158601f8636cdeeab09bd76afb640030bb5b144aafe261a5e8af027dc612
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
|
||||
networkTimeout=10000
|
||||
retries=0
|
||||
|
||||
+19
-17
@@ -5,16 +5,11 @@ plugins {
|
||||
group = 'best.lolicon.felis'
|
||||
version = '0.1.0'
|
||||
|
||||
// Build with a JDK 21 toolchain but emit portable Java 17 bytecode (options.release
|
||||
// below). Current LOOHP/Limbo releases ship Java 21 API classes (class-file major
|
||||
// 65), so the compiler JDK must be >= 21 to *read* them — a JDK 17 fails with
|
||||
// "wrong version 65.0, should be 61.0". Targeting release 17 keeps the plugin
|
||||
// loadable on any Limbo running Java 17+. See deploy/limbo/Dockerfile (21-jdk).
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
}
|
||||
}
|
||||
// Emit portable Java 17 bytecode (options.release below) from whatever JDK runs Gradle.
|
||||
// Current LOOHP/Limbo releases ship Java 21 API classes (class-file major 65), so that
|
||||
// JDK must be >= 21 to *read* them — a JDK 17 fails with "wrong version 65.0, should be
|
||||
// 61.0". The plugin build image and CI both run JDK 25. Targeting release 17 keeps the
|
||||
// plugin loadable on any Limbo running Java 17+.
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
@@ -38,11 +33,18 @@ sourceSets {
|
||||
}
|
||||
}
|
||||
|
||||
// The Limbo API version this plugin compiles against. It is CODE-ONLY in this Go
|
||||
// repo (not built by CI); a deployer building the image passes the release that
|
||||
// matches the Limbo.jar they bundle, e.g. -PlimboVersion=0.7.11-ALPHA. Kept a
|
||||
// property so no specific build number is hardcoded into the tree.
|
||||
def limboVersion = project.findProperty('limboVersion') ?: '+'
|
||||
// The Limbo API version this plugin compiles against: the release the login-gate image
|
||||
// bundles, deploy/game-stack.lock's LIMBO_VERSION. deploy/bootstrap.sh passes it to the
|
||||
// image build and plugins/test.sh reads it from the lock, e.g.
|
||||
// -PlimboVersion=2026.0.3-ALPHA. It has no default: LOOHP's repository serves no
|
||||
// maven-metadata.xml, so a dynamic version cannot resolve, and a guessed one would
|
||||
// compile against an API the gate does not run. gradle/verification-metadata.xml holds
|
||||
// the checksum of the locked release, so a lock refresh regenerates it (see
|
||||
// plugins/README.md "Dependency verification").
|
||||
def limboVersion = project.findProperty('limboVersion')
|
||||
if (!limboVersion) {
|
||||
throw new GradleException('pass -PlimboVersion=<LIMBO_VERSION from deploy/game-stack.lock>')
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// Limbo provides its own API at runtime (the plugin is loaded into the Limbo
|
||||
@@ -52,7 +54,7 @@ dependencies {
|
||||
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
options.encoding = 'UTF-8'
|
||||
// Portable output: read the Java 21 Limbo API with the JDK 21 toolchain above,
|
||||
// but emit Java 17 bytecode so the plugin loads on any Limbo running Java 17+.
|
||||
// Portable output: read the Java 21 Limbo API with a JDK >= 21, but emit Java 17
|
||||
// bytecode so the plugin loads on any Limbo running Java 17+.
|
||||
options.release = 17
|
||||
}
|
||||
@@ -0,0 +1,354 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<verification-metadata xmlns="https://schema.gradle.org/dependency-verification" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schema.gradle.org/dependency-verification https://schema.gradle.org/dependency-verification/dependency-verification-1.4.xsd">
|
||||
<configuration>
|
||||
<verify-metadata>true</verify-metadata>
|
||||
<verify-signatures>false</verify-signatures>
|
||||
</configuration>
|
||||
<components>
|
||||
<component group="com.github.Querz" name="NBT" version="6.1">
|
||||
<artifact name="NBT-6.1.jar">
|
||||
<sha256 value="b8e0cdddca0cbdff3e488d5fdd77aca1b3bdf6adac3af0c9d106d637ac3c93ca" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="NBT-6.1.pom">
|
||||
<sha256 value="84994a92fd8a87c2dda1519cd487bea0e283f872d4d895f2048a6ffab326131d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.auto.service" name="auto-service-aggregator" version="1.1.1">
|
||||
<artifact name="auto-service-aggregator-1.1.1.pom">
|
||||
<sha256 value="e2dc3e263a5db0cc8172fb2eb9bcd232acecfdc96e817103eab3c8d9f1900c6a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.auto.service" name="auto-service-annotations" version="1.1.1">
|
||||
<artifact name="auto-service-annotations-1.1.1.jar">
|
||||
<sha256 value="16a76dd00a2650568447f5d6e3a9e2c809d9a42367d56b45215cfb89731f4d24" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="auto-service-annotations-1.1.1.pom">
|
||||
<sha256 value="1659fd0a25cea9fa9abfb18deb9d7b180cce3aceab16ff9e625461567e44a2df" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.code.findbugs" name="jsr305" version="3.0.2">
|
||||
<artifact name="jsr305-3.0.2.jar">
|
||||
<sha256 value="766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="jsr305-3.0.2.pom">
|
||||
<sha256 value="19889dbdf1b254b2601a5ee645b8147a974644882297684c798afe5d63d78dfe" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.code.gson" name="gson" version="2.13.1">
|
||||
<artifact name="gson-2.13.1.jar">
|
||||
<sha256 value="94855942d4992f112946d3de1c334e709237b8126d8130bf07807c018a4a2120" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="gson-2.13.1.pom">
|
||||
<sha256 value="c0f65722d75c0e58cd1835b3046046f606b5da699904161f8db6b78feb9b401a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.code.gson" name="gson-parent" version="2.13.1">
|
||||
<artifact name="gson-parent-2.13.1.pom">
|
||||
<sha256 value="f8810ace50ddfe3fda83d1126de65d99d5d2515a14a36b88beb1b99a47697836" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_annotations" version="2.38.0">
|
||||
<artifact name="error_prone_annotations-2.38.0.jar">
|
||||
<sha256 value="6661d5335090a5fc61dd869d2095bc6c1e2156e3aa47a6e4ababdf64c99a7889" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="error_prone_annotations-2.38.0.pom">
|
||||
<sha256 value="3007bef8aff3ae8ea12d81c3feacb4f15979b2cf5c3e38fc9189a98dea141167" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_parent" version="2.38.0">
|
||||
<artifact name="error_prone_parent-2.38.0.pom">
|
||||
<sha256 value="e62458a6a3e63081bc7c57b3c0fac9f04f76ce32f606532db69fe2b3d47b934c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="failureaccess" version="1.0.2">
|
||||
<artifact name="failureaccess-1.0.2.jar">
|
||||
<sha256 value="8a8f81cf9b359e3f6dfa691a1e776985c061ef2f223c9b2c80753e1b458e8064" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="failureaccess-1.0.2.pom">
|
||||
<sha256 value="19ebc6f4bdb4edbb3d07b6ee994f846b54ef295582a9b5634719ffa9f31d03b2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava" version="33.3.1-jre">
|
||||
<artifact name="guava-33.3.1-jre.jar">
|
||||
<sha256 value="4bf0e2c5af8e4525c96e8fde17a4f7307f97f8478f11c4c8e35a0e3298ae4e90" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="guava-33.3.1-jre.module">
|
||||
<sha256 value="41858c84753fd96a6b7c51122fccef39558c91cc08264e08506bcf20e0e63733" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava-parent" version="26.0-android">
|
||||
<artifact name="guava-parent-26.0-android.pom">
|
||||
<sha256 value="f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava-parent" version="33.3.1-jre">
|
||||
<artifact name="guava-parent-33.3.1-jre.pom">
|
||||
<sha256 value="55441db27e8869dfefe053059bdf478bdc7e95585642bf391f0023345fd56287" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="listenablefuture" version="9999.0-empty-to-avoid-conflict-with-guava">
|
||||
<artifact name="listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar">
|
||||
<sha256 value="b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom">
|
||||
<sha256 value="18d4b1db26153d4e55079ce1f76bb1fe05cdb862ef9954a88cbcc4ff38b8679b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.j2objc" name="j2objc-annotations" version="3.0.0">
|
||||
<artifact name="j2objc-annotations-3.0.0.jar">
|
||||
<sha256 value="88241573467ddca44ffd4d74aa04c2bbfd11bf7c17e0c342c94c9de7a70a7c64" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="j2objc-annotations-3.0.0.pom">
|
||||
<sha256 value="23b3d039e168ad89dd114698e6dd7be383f4a2c577b8877d82c73a6515e74a17" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.googlecode.json-simple" name="json-simple" version="1.1.1">
|
||||
<artifact name="json-simple-1.1.1.jar">
|
||||
<sha256 value="4e69696892b88b41c55d49ab2fdcc21eead92bf54acc588c0050596c3b75199c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="json-simple-1.1.1.pom">
|
||||
<sha256 value="665f63590defb63d62add21d3525362cf937cf6a1c05e4b0145bae8da8a57f83" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.loohp" name="Limbo" version="2026.0.3-ALPHA">
|
||||
<artifact name="Limbo-2026.0.3-ALPHA.jar">
|
||||
<sha256 value="a2de91fcaa2255aed8a111b8786f370213423c7798eee778c00d016d83aa65d2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="Limbo-2026.0.3-ALPHA.pom">
|
||||
<sha256 value="57e78eed8b712c6e59fff9e68ec7429953608668584563b009307e4cdb3b26b1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="io.netty" name="netty-bom" version="4.2.1.Final">
|
||||
<artifact name="netty-bom-4.2.1.Final.pom">
|
||||
<sha256 value="0558ec5e376752d90fe9a35f9746768f3d08679e8396e1671052850917051737" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="junit" name="junit" version="4.10">
|
||||
<artifact name="junit-4.10.jar">
|
||||
<sha256 value="36a747ca1e0b86f6ea88055b8723bb87030d627766da6288bf077afdeeb0f75a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="junit-4.10.pom">
|
||||
<sha256 value="22a1bf0baae8b6106b7ad8026ecf27c59e7e47ddb49d62975036beadb2c62eb5" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-api" version="4.26.1">
|
||||
<artifact name="adventure-api-4.26.1.jar">
|
||||
<sha256 value="551e536b9ea868f30e72c7900a309b35124ee7d4889fa3b3aed0910299751a26" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-api-4.26.1.module">
|
||||
<sha256 value="f9758c168027086c99d9a26673764ea8b80d536f20c26c598dc17052b13acafa" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-bom" version="4.26.1">
|
||||
<artifact name="adventure-bom-4.26.1.module">
|
||||
<sha256 value="98d1f5cbcf5a80677262bc2bc705fc4c0b52365e98ba4c20473b3963b1366c71" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-bom-4.26.1.pom">
|
||||
<sha256 value="296b21955ff65b8b50898b4a7d59cb183703007aa31bf7617d529132e5275223" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-key" version="4.26.1">
|
||||
<artifact name="adventure-key-4.26.1.jar">
|
||||
<sha256 value="eec172d63db77b40eb7abeeb25f65eedea89bd30264d057b68b12fecb731be5e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-key-4.26.1.module">
|
||||
<sha256 value="a3bdd4d75cf0c5e53c7f8b1e61b189f8ef4aae59d131b5f97d4ef29438337b10" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-nbt" version="4.26.1">
|
||||
<artifact name="adventure-nbt-4.26.1.jar">
|
||||
<sha256 value="f26ef6bff5fcdd817902b4dfd353561d98cb131b4ecb67341ff00ef2ed1336f8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-nbt-4.26.1.module">
|
||||
<sha256 value="99bf65703f46da68c56dde6c301420dba15cf8e84037eb3f5ec326851047eb4c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-gson" version="4.26.1">
|
||||
<artifact name="adventure-text-serializer-gson-4.26.1.jar">
|
||||
<sha256 value="e4a908dedc4acb4305083d916d362ddc2b21ecf452d577a0be665280bddae9fc" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-gson-4.26.1.module">
|
||||
<sha256 value="0a211629416e356dbd1fd011724aeb9098b4c0bcf3a0525fd38fcb21abf478b0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-json" version="4.26.1">
|
||||
<artifact name="adventure-text-serializer-json-4.26.1.jar">
|
||||
<sha256 value="55c64b4333d5d2968a0125b8f29dae7cfba15392d5f99f78dbaea711cb0d4dc2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-json-4.26.1.module">
|
||||
<sha256 value="725e47910ab01b4a59d29a93c3ff2d0a47b1760c0c1b6c384f86c2a959b30792" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-legacy" version="4.26.1">
|
||||
<artifact name="adventure-text-serializer-legacy-4.26.1.jar">
|
||||
<sha256 value="721107bc213572454df1bfbe438dba630e30457550c750b7a154b35dc3264aa8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-legacy-4.26.1.module">
|
||||
<sha256 value="51e76677d339a56e2b8fb37e3704775ff3e2ffeac3023e54e5b6b2862c5899bd" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-plain" version="4.26.1">
|
||||
<artifact name="adventure-text-serializer-plain-4.26.1.jar">
|
||||
<sha256 value="39b9bfe5790f645605ff5464382c0e062476f48f9bfb2548801f275f12faf405" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-plain-4.26.1.module">
|
||||
<sha256 value="c8d3361dec1e655185ab2aa871288d78f6749ff24f377cca2af2b82b6e61b48b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="examination-api" version="1.3.0">
|
||||
<artifact name="examination-api-1.3.0.jar">
|
||||
<sha256 value="c9237ffecb05428f6eff86216246ac70ce0b47b04c08ea7ca35020fde57f8492" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="examination-api-1.3.0.module">
|
||||
<sha256 value="d2b1da3d190bc1bbfcc837db8016921bb81b20f6331da586a5e1262244b06df0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="examination-string" version="1.3.0">
|
||||
<artifact name="examination-string-1.3.0.jar">
|
||||
<sha256 value="7d01fc25a4bb3af0e1662685455f4541fbf4626216ea5846e455c1491e156b8c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="examination-string-1.3.0.module">
|
||||
<sha256 value="a9fa478afc2a4346f8a5be091f5e14666860192dd865b1e3d8592296646c74fe" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="option" version="1.1.0">
|
||||
<artifact name="option-1.1.0.jar">
|
||||
<sha256 value="97b69b4b17dfe02217c9131ad342564cbc9aebd04c75eb689639b5f78fd4b11c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="option-1.1.0.module">
|
||||
<sha256 value="36d9f9d59a1fcc609367aaccaa249319603e5247f6a8fe112b73bab921ac70d8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.md-5" name="bungeecord-chat" version="1.21-R0.3">
|
||||
<artifact name="bungeecord-chat-1.21-R0.3.jar">
|
||||
<sha256 value="b7f3fcaf69b720249bfabdb2ff05598301ea607d7e9b42c03c1a738742cf9b0d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="bungeecord-chat-1.21-R0.3.pom">
|
||||
<sha256 value="a2e2f8b14a85147a357cc0069961869c7a91dc054f0165368f8e373974ee4058" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.md-5" name="bungeecord-dialog" version="1.21-R0.3">
|
||||
<artifact name="bungeecord-dialog-1.21-R0.3.jar">
|
||||
<sha256 value="97cb052ffe54af1cc61e791fbf47bd1e2861c74e9ce3b2b22dff98ac5fff0f45" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="bungeecord-dialog-1.21-R0.3.pom">
|
||||
<sha256 value="f565c5450b5ec9a19b34575bba0ab707ecda676ae3d37d7410898b31470ca4a2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.md-5" name="bungeecord-parent" version="1.21-R0.3">
|
||||
<artifact name="bungeecord-parent-1.21-R0.3.pom">
|
||||
<sha256 value="8d6815aaabeb7771093564c3d9d2ef315f471ec9812ca82d47b19a194aaaad72" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.md-5" name="bungeecord-serializer" version="1.21-R0.3">
|
||||
<artifact name="bungeecord-serializer-1.21-R0.3.jar">
|
||||
<sha256 value="08208e5f892c04b315a7ff366d09509e28b2928f0118a7490752492f9c66aa12" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="bungeecord-serializer-1.21-R0.3.pom">
|
||||
<sha256 value="049603e2801fb760731c4c7bc566e50dece2376fdd3f70acdb7eeeaf0a381a3c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache" name="apache" version="35">
|
||||
<artifact name="apache-35.pom">
|
||||
<sha256 value="ea297dcd114136e8b8e8b630230d52a76c2fc69f6c5db25d672b1857000728b8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.commons" name="commons-lang3" version="3.18.0">
|
||||
<artifact name="commons-lang3-3.18.0.jar">
|
||||
<sha256 value="4eeeae8d20c078abb64b015ec158add383ac581571cddc45c68f0c9ae0230720" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="commons-lang3-3.18.0.pom">
|
||||
<sha256 value="aa254b373b6f6d46bc9dca86331b072a8ab86eb25ea9921fd439618392e98a16" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.commons" name="commons-parent" version="85">
|
||||
<artifact name="commons-parent-85.pom">
|
||||
<sha256 value="d189ff2c0027e96bb65d31e6f227ed2af966169b36af1e973dd5ba08926dc7b5" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.checkerframework" name="checker-qual" version="3.43.0">
|
||||
<artifact name="checker-qual-3.43.0.jar">
|
||||
<sha256 value="3fbc2e98f05854c3df16df9abaa955b91b15b3ecac33623208ed6424640ef0f6" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="checker-qual-3.43.0.module">
|
||||
<sha256 value="f8163327245ab8625532948c72a930548cd97f34d6c3fe860fa6aec5a34d79b4" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.fusesource" name="fusesource-pom" version="1.12">
|
||||
<artifact name="fusesource-pom-1.12.pom">
|
||||
<sha256 value="c40d960daadcef7b01c1b1c6657afbac4fffb5e53168f8fcb0b28b84e6fdcca1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.fusesource.jansi" name="jansi" version="2.4.2">
|
||||
<artifact name="jansi-2.4.2.jar">
|
||||
<sha256 value="0b7b8b003a90ea491579b62f5118828e45112914c65589b00faa49d6ec785839" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="jansi-2.4.2.pom">
|
||||
<sha256 value="2e8af2f81d0c995508bd67c989de1ec216eb6a476093f598f4214ecf61128df0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.hamcrest" name="hamcrest-core" version="1.1">
|
||||
<artifact name="hamcrest-core-1.1.jar">
|
||||
<sha256 value="0361d1493ff0d94f861359efea91200720635072134792efb7217f6e09d5cffb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="hamcrest-core-1.1.pom">
|
||||
<sha256 value="397387f406c68ccb403f477ccbec1c818cfc6b8ff4fada5a33e26183a8417c83" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.hamcrest" name="hamcrest-parent" version="1.1">
|
||||
<artifact name="hamcrest-parent-1.1.pom">
|
||||
<sha256 value="14e6950a1a6298cbcb83cf9429cac415ff273167f6f15876859413b0d6c07e3a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains" name="annotations" version="26.0.2-1">
|
||||
<artifact name="annotations-26.0.2-1.jar">
|
||||
<sha256 value="2037be378980d3ba9333e97955f3b2cde392aa124d04ca73ce2eee6657199297" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="annotations-26.0.2-1.module">
|
||||
<sha256 value="9fe86aeb64b86323e8e579503b11a038a140694c13b6804343f8a4dc9a3a46b1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jline" name="jline" version="3.30.5">
|
||||
<artifact name="jline-3.30.5.jar">
|
||||
<sha256 value="5a73281cd7cd21e2f70205f1549958fd16584a2cd8d178cf363b5af2f6ee9765" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="jline-3.30.5.pom">
|
||||
<sha256 value="d2654c3a576bef9804b41ae04337b970d7bcc09cd6b397fdfe4ecc39ed0862c3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jspecify" name="jspecify" version="1.0.0">
|
||||
<artifact name="jspecify-1.0.0.jar">
|
||||
<sha256 value="1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="jspecify-1.0.0.module">
|
||||
<sha256 value="d307ca77a54e18ac1ef1aaed4e5bbe014bd2f49f29e1d2f813e47c278283195b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.junit" name="junit-bom" version="5.13.1">
|
||||
<artifact name="junit-bom-5.13.1.module">
|
||||
<sha256 value="33c07ab9724790a6e5859ba07d69117ac530439724545a81c4179e3272c75de8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="junit-bom-5.13.1.pom">
|
||||
<sha256 value="fa68451ea830572ed43ffe51d75b6a05f7a5e665a602a51f49d6be02063a65f3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.sonatype.oss" name="oss-parent" version="7">
|
||||
<artifact name="oss-parent-7.pom">
|
||||
<sha256 value="b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.sonatype.oss" name="oss-parent" version="9">
|
||||
<artifact name="oss-parent-9.pom">
|
||||
<sha256 value="fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.yaml" name="snakeyaml" version="2.4">
|
||||
<artifact name="snakeyaml-2.4.jar">
|
||||
<sha256 value="ef779af5d29a9dde8cc70ce0341f5c6f7735e23edff9685ceaa9d35359b7bb7f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="snakeyaml-2.4.pom">
|
||||
<sha256 value="e154a3231cd6cde68aabf274fd18964d49a9c1a5f5e9ed3bf471e9ae7bdf08e6" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
</components>
|
||||
</verification-metadata>
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=bafd5ce9cfaea0fbccfdc8439a1ac42fbd4cd9c89dc9a988228d8a2639a58e6c
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.0-bin.zip
|
||||
networkTimeout=10000
|
||||
retries=0
|
||||
retryBackOffMs=500
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
+248
@@ -0,0 +1,248 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# gradlew start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh gradlew
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
} >&2
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||
else
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
Vendored
+112
@@ -0,0 +1,112 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
@rem SPDX-License-Identifier: Apache-2.0
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem gradlew startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables, and ensure extensions are enabled
|
||||
setlocal EnableExtensions
|
||||
|
||||
@rem Catch executions from older scripts and ensure they exit cleanly.
|
||||
@rem This can be removed once we can be reasonably confident that few people
|
||||
@rem will be migrating directly to this new wrapper.
|
||||
goto afterSafetyNet
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
goto exitWithErrorLevel
|
||||
:afterSafetyNet
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@rem This is normally unused
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
1>&2 echo.
|
||||
1>&2 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
1>&2 echo.
|
||||
1>&2 echo Please set the JAVA_HOME variable in your environment to match the
|
||||
1>&2 echo location of your Java installation.
|
||||
|
||||
"%COMSPEC%" /c exit 1
|
||||
goto exitWithErrorLevel
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
1>&2 echo.
|
||||
1>&2 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
1>&2 echo.
|
||||
1>&2 echo Please set the JAVA_HOME variable in your environment to match the
|
||||
1>&2 echo location of your Java installation.
|
||||
|
||||
"%COMSPEC%" /c exit 1
|
||||
goto exitWithErrorLevel
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
|
||||
|
||||
@rem Execute gradlew
|
||||
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
|
||||
@rem which allows us to clear the local environment before executing the java command
|
||||
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel & goto exitWithErrorLevel
|
||||
|
||||
@rem This label must not be changed. We rely on old scripts being able to jump to this point.
|
||||
:exitWithErrorLevel
|
||||
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
|
||||
"%COMSPEC%" /c exit %ERRORLEVEL%
|
||||
@@ -19,6 +19,7 @@ import com.sun.net.httpserver.HttpExchange;
|
||||
import com.sun.net.httpserver.HttpServer;
|
||||
|
||||
import net.kyori.adventure.inventory.Book;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.event.ClickEvent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
@@ -99,6 +100,9 @@ public final class FelisLimboPlugin extends LimboPlugin implements Listener {
|
||||
|
||||
private static final Logger LOG = Logger.getLogger("FelisLimbo");
|
||||
private static final String HEALTH_PATH = "/healthz";
|
||||
// Limbo deprecated the String channel overload; its Key overload sends key.toString(),
|
||||
// which for "felis:control" is the same channel string.
|
||||
private static final Key CONTROL_CHANNEL = Key.key(Control.CHANNEL);
|
||||
private static final int DEFAULT_PORT = 8080;
|
||||
|
||||
// Poll cadence and window. 20 ticks ≈ 1s at Limbo's tick rate; polling once a
|
||||
@@ -392,7 +396,7 @@ public final class FelisLimboPlugin extends LimboPlugin implements Listener {
|
||||
|
||||
private void sendRelease(Player player) {
|
||||
try {
|
||||
player.sendPluginMessage(Control.CHANNEL, Control.encode(ControlFrame.loginRelease(player.getName())));
|
||||
player.sendPluginMessage(CONTROL_CHANNEL, Control.encode(ControlFrame.loginRelease(player.getName())));
|
||||
} catch (IOException | RuntimeException e) {
|
||||
// The next attempt sends again; the window bounds how long we keep trying.
|
||||
LOG.warning("FelisLimbo: could not send the lobby release for " + player.getUniqueId()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=61ad310d3c7d3e5da131b76bbf22b5a4c0786e9d892dae8c1658d4b484de3caa
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
|
||||
networkTimeout=10000
|
||||
retries=0
|
||||
|
||||
@@ -5,15 +5,15 @@ plugins {
|
||||
group = 'best.lolicon.felis'
|
||||
version = '0.1.0'
|
||||
|
||||
// Paper 1.21 runs on Java 21, and its API is published as a Java-21 artifact, so
|
||||
// this one module needs a Java-21 toolchain (the rest of the suite is 17). The
|
||||
// toolchain block makes that requirement explicit and self-enforcing: Gradle uses a
|
||||
// detected JDK 21 to compile, regardless of which JDK runs Gradle, and fails loudly
|
||||
// if none is present. The shared codec is plain Java-17 source, which 21 compiles
|
||||
// The lobby runs Paper 26.x, which needs Java 25, and paper-api 26.x is published as a
|
||||
// Java-25 artifact (its Gradle module metadata declares org.gradle.jvm.version = 25), so
|
||||
// this module compiles with a Java-25 toolchain. The toolchain block makes that explicit
|
||||
// and self-enforcing: Gradle uses a detected JDK 25 whichever JDK runs Gradle, and fails
|
||||
// loudly if none is present. The shared codec is plain Java-17 source, which 25 compiles
|
||||
// forward-compatibly.
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
languageVersion = JavaLanguageVersion.of(25)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,13 @@ repositories {
|
||||
dependencies {
|
||||
// paper-api is compile-only (the server provides it at runtime). It pulls in
|
||||
// Bukkit + Adventure, which is all the lobby face needs.
|
||||
compileOnly 'io.papermc.paper:paper-api:1.21.4-R0.1-SNAPSHOT'
|
||||
//
|
||||
// Pinned to the API of the exact server the lobby image bundles: deploy/game-stack.lock's
|
||||
// PAPER_JAR_URL is paper-<mc>-<build>.jar, and PaperMC publishes that build's API as
|
||||
// <mc>.build.<build>-<channel>. A release build, never a -SNAPSHOT, so the same sources
|
||||
// compile against the same bytes every time (gradle/verification-metadata.xml checks
|
||||
// them). deploy/bootstrap_test.sh fails when this and the lock drift apart.
|
||||
compileOnly 'io.papermc.paper:paper-api:26.3.build.40-alpha'
|
||||
}
|
||||
|
||||
// The lobby is a PURE UI face (spec §12): it speaks only the felis:control
|
||||
|
||||
@@ -0,0 +1,583 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<verification-metadata xmlns="https://schema.gradle.org/dependency-verification" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schema.gradle.org/dependency-verification https://schema.gradle.org/dependency-verification/dependency-verification-1.4.xsd">
|
||||
<configuration>
|
||||
<verify-metadata>true</verify-metadata>
|
||||
<verify-signatures>false</verify-signatures>
|
||||
</configuration>
|
||||
<components>
|
||||
<component group="biz.aQute.bnd" name="biz.aQute.bnd.annotation" version="7.1.0">
|
||||
<artifact name="biz.aQute.bnd.annotation-7.1.0.jar">
|
||||
<sha256 value="f69c2de3a695c113d125ac8053c92a680a3ce9d02ea25845095cf2d4626a7663" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="biz.aQute.bnd.annotation-7.1.0.pom">
|
||||
<sha256 value="5822df49183df922ba59ae773a2d8cceb86ae1e20f41f19873131dd182494f7a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.fasterxml" name="oss-parent" version="69">
|
||||
<artifact name="oss-parent-69.pom">
|
||||
<sha256 value="3856d584aaa1c8e33ce94c67244f71f6f70538a259ffe8e781761b9faaad875f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.fasterxml.jackson" name="jackson-bom" version="2.19.2">
|
||||
<artifact name="jackson-bom-2.19.2.pom">
|
||||
<sha256 value="22006be70fd018099e99c6c27ac0982320f3a0f3c2ce053c55703579a5eea303" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.fasterxml.jackson" name="jackson-parent" version="2.19.3">
|
||||
<artifact name="jackson-parent-2.19.3.pom">
|
||||
<sha256 value="23d186c8d8cd06015d022c710c715423d660d49e2973b15870b029cc26018682" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.auto.service" name="auto-service-aggregator" version="1.1.1">
|
||||
<artifact name="auto-service-aggregator-1.1.1.pom">
|
||||
<sha256 value="e2dc3e263a5db0cc8172fb2eb9bcd232acecfdc96e817103eab3c8d9f1900c6a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.auto.service" name="auto-service-annotations" version="1.1.1">
|
||||
<artifact name="auto-service-annotations-1.1.1.jar">
|
||||
<sha256 value="16a76dd00a2650568447f5d6e3a9e2c809d9a42367d56b45215cfb89731f4d24" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="auto-service-annotations-1.1.1.pom">
|
||||
<sha256 value="1659fd0a25cea9fa9abfb18deb9d7b180cce3aceab16ff9e625461567e44a2df" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.code.gson" name="gson" version="2.14.0">
|
||||
<artifact name="gson-2.14.0.jar">
|
||||
<sha256 value="2cbd119bf1961c28788310963dc80ba65f58cdeec1dd139c8bdb1240faa2c36f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="gson-2.14.0.pom">
|
||||
<sha256 value="1fa0122c0e3733192642861c36be4c6f799a795327a23bdd2922691b6e9ba480" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.code.gson" name="gson-parent" version="2.14.0">
|
||||
<artifact name="gson-parent-2.14.0.pom">
|
||||
<sha256 value="82b0f6694c5758ab8bb07e05630208d50f589d4b5e04fd0a046d59cdf7ba3d1d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_annotations" version="2.47.0">
|
||||
<artifact name="error_prone_annotations-2.47.0.pom">
|
||||
<sha256 value="d80c889a4a6f711f6945fbee79e05ec247b178a567e9d5abf58eb26ebf0a0752" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_annotations" version="2.48.0">
|
||||
<artifact name="error_prone_annotations-2.48.0.jar">
|
||||
<sha256 value="b49c5c958316ed67a09c699dda9aa749caf434d51d863dea599ef36a49b9c855" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="error_prone_annotations-2.48.0.pom">
|
||||
<sha256 value="189e09ad0489c325e90daaa9d5c8f406330602fa366609bca07cbcdad03ab9da" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_parent" version="2.47.0">
|
||||
<artifact name="error_prone_parent-2.47.0.pom">
|
||||
<sha256 value="2368a990c7a63095e1d0d44459d5a4092f0eb31f8562bd12cdf0e1c877b6a685" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_parent" version="2.48.0">
|
||||
<artifact name="error_prone_parent-2.48.0.pom">
|
||||
<sha256 value="b33fa8a45c9f1794a5008c0b2d83a84eb28b5d0117a6d156f003f9f09be7410f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="failureaccess" version="1.0.3">
|
||||
<artifact name="failureaccess-1.0.3.jar">
|
||||
<sha256 value="cbfc3906b19b8f55dd7cfd6dfe0aa4532e834250d7f080bd8d211a3e246b59cb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="failureaccess-1.0.3.pom">
|
||||
<sha256 value="c54beff37f6d42d43e14722d54a522c9ad51ef97fc5b79277e62a3ebf882f3bb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava" version="33.6.0-jre">
|
||||
<artifact name="guava-33.6.0-jre.jar">
|
||||
<sha256 value="dc573e1fca4fd5454f4a5fd3d7da2df03002876a4175bafc14a95980dd7713b3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="guava-33.6.0-jre.module">
|
||||
<sha256 value="2baf73ce839ae48e4b9e0083e256b0e58fc3bf8fc78fc3fbe797bbc89011216e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava-parent" version="26.0-android">
|
||||
<artifact name="guava-parent-26.0-android.pom">
|
||||
<sha256 value="f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava-parent" version="33.4.0-android">
|
||||
<artifact name="guava-parent-33.4.0-android.pom">
|
||||
<sha256 value="7220ede61026596fbc720ee4b93246fa2d14f328058532b59ef053de397c7d83" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava-parent" version="33.6.0-jre">
|
||||
<artifact name="guava-parent-33.6.0-jre.pom">
|
||||
<sha256 value="374bd31f61b1cf612bee9ab2e4d70bbdf77dd85a49b431f809d4fbdc901f2dd4" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="listenablefuture" version="9999.0-empty-to-avoid-conflict-with-guava">
|
||||
<artifact name="listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar">
|
||||
<sha256 value="b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom">
|
||||
<sha256 value="18d4b1db26153d4e55079ce1f76bb1fe05cdb862ef9954a88cbcc4ff38b8679b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.j2objc" name="j2objc-annotations" version="3.1">
|
||||
<artifact name="j2objc-annotations-3.1.jar">
|
||||
<sha256 value="84d3a150518485f8140ea99b8a985656749629f6433c92b80c75b36aba3b099b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="j2objc-annotations-3.1.pom">
|
||||
<sha256 value="14570838500034fc1b47c8205ce1c9d6b255c1ccdd2d1afdcdcbf75e89b24a33" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.mojang" name="brigadier" version="1.3.11">
|
||||
<artifact name="brigadier-1.3.11.jar">
|
||||
<sha256 value="9d09cf4819de83dfcd38bcb212d5f2227131791cef3abbfca3321d6fb2b9a64d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="brigadier-1.3.11.pom">
|
||||
<sha256 value="b127fb6ff506e1a582ab3704714c0d5e171309c02ff2400469d07225fb8f2e72" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="io.papermc.paper" name="paper-api" version="26.3.build.40-alpha">
|
||||
<artifact name="paper-api-26.3.build.40-alpha.jar">
|
||||
<sha256 value="b0d5f48b1ab224ac47b4c51faa0a33a5c4de484e067124aa3f70a251b4894597" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="paper-api-26.3.build.40-alpha.module">
|
||||
<sha256 value="048daa9238d4dce7ef560e7764ee76835e6a8e6f6bea22d419b37a8b5caea60d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="it.unimi.dsi" name="fastutil" version="8.5.18">
|
||||
<artifact name="fastutil-8.5.18.jar">
|
||||
<sha256 value="9094ae67d01d0ad246f886f11ad557fc2e79c72cbf3feed83e1512a8ae90a74a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="fastutil-8.5.18.pom">
|
||||
<sha256 value="184dbca49a7d03e3a1df9f0f97b462096e849f5ad05c5cf7b386226ec159ef79" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="jakarta.platform" name="jakarta.jakartaee-bom" version="9.1.0">
|
||||
<artifact name="jakarta.jakartaee-bom-9.1.0.pom">
|
||||
<sha256 value="df98e0266219fdbb82562826d79a3a20776a8ba02aa787f0f0765a538654c8a4" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="jakarta.platform" name="jakartaee-api-parent" version="9.1.0">
|
||||
<artifact name="jakartaee-api-parent-9.1.0.pom">
|
||||
<sha256 value="a7702c487026802784b5797b62330a8b8d6592bf0f4737b25c67a5eac82659c0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="javax.inject" name="javax.inject" version="1">
|
||||
<artifact name="javax.inject-1.jar">
|
||||
<sha256 value="91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="javax.inject-1.pom">
|
||||
<sha256 value="943e12b100627804638fa285805a0ab788a680266531e650921ebfe4621a8bfa" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-api" version="5.2.0">
|
||||
<artifact name="adventure-api-5.2.0.jar">
|
||||
<sha256 value="7e52fe7190be3e87b3b3f71712cfa12315fcd27109f302a7b440c12f01fae827" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-api-5.2.0.module">
|
||||
<sha256 value="aedb09655a22ff56f6a919f64455abb4056f366b849fd78872e6f7839151b769" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-bom" version="5.2.0">
|
||||
<artifact name="adventure-bom-5.2.0.module">
|
||||
<sha256 value="3db1aa6e9c97aaf8cb578927d0a23fb49bba587937a774772e6c18a4bbd4a017" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-bom-5.2.0.pom">
|
||||
<sha256 value="0519e02407da6b270bb50ca4922fd9324aea212e453cecc2628ef7d2847d6c88" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-key" version="5.2.0">
|
||||
<artifact name="adventure-key-5.2.0.jar">
|
||||
<sha256 value="0184d173200e2eef8fbc791f622d1d58fd459f8930c616b5a4fe79e83eda6c55" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-key-5.2.0.module">
|
||||
<sha256 value="99f741e2b4ef8cf1cc3176fd1e9131169ee1c5a7f11eed96d05a6e8f5a1e58ee" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-logger-slf4j" version="5.2.0">
|
||||
<artifact name="adventure-text-logger-slf4j-5.2.0.jar">
|
||||
<sha256 value="ae79b7f3846c5d973b37c7eec03190bd44e182918d1346e7705c5991a1b5dfb3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-logger-slf4j-5.2.0.module">
|
||||
<sha256 value="d011268693d25d4fd899708ffacf74238d02ca2fde0438276d4c6069133748c9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-minimessage" version="5.2.0">
|
||||
<artifact name="adventure-text-minimessage-5.2.0.jar">
|
||||
<sha256 value="e1871aba1511dbe49cff211c10f85682886014161e5d629318aa69583c31a2c0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-minimessage-5.2.0.module">
|
||||
<sha256 value="f10b4485fdc0c1873b750659ac592e1f53a4c4c9b1b80df4721df74f0d9f304e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-gson" version="5.2.0">
|
||||
<artifact name="adventure-text-serializer-gson-5.2.0.jar">
|
||||
<sha256 value="5b2ad1c8a65e7fa0811279b51a45d5fc574b6a6354097b545e4fdb5b68aaed73" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-gson-5.2.0.module">
|
||||
<sha256 value="c2ff73be8b1f77debe61bc9714b73a6a26378692e662e0569cbee95770c3ff24" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-json" version="5.2.0">
|
||||
<artifact name="adventure-text-serializer-json-5.2.0.jar">
|
||||
<sha256 value="adb5410006175b9aa6343bfadd0bd11c4a6955ee2abc1a58abe2a3fa6cbd9ab5" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-json-5.2.0.module">
|
||||
<sha256 value="7d7b674f989a49985a57aa97f380476ee70522a9983e8582a8da143a9b1eb4ec" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-legacy" version="5.2.0">
|
||||
<artifact name="adventure-text-serializer-legacy-5.2.0.jar">
|
||||
<sha256 value="1231a0de417de66c59e2f2a3892ecca6b8d48621df6f1d9a2f81b01f57e328b7" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-legacy-5.2.0.module">
|
||||
<sha256 value="b1d2a3780d1c94773b076b3ba1ce1668a5b2f3699edb39d189a8b61d55a4db62" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-plain" version="5.2.0">
|
||||
<artifact name="adventure-text-serializer-plain-5.2.0.jar">
|
||||
<sha256 value="f6424cc038a631b79cc4b74b6b353d5d007c99b38f9be482e0c2448a00eecd21" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-plain-5.2.0.module">
|
||||
<sha256 value="a814a14a977889aee879a50c361f8e92489c267c5f7bf5f43297025fc0b5ad59" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="option" version="1.1.0">
|
||||
<artifact name="option-1.1.0.jar">
|
||||
<sha256 value="97b69b4b17dfe02217c9131ad342564cbc9aebd04c75eb689639b5f78fd4b11c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="option-1.1.0.module">
|
||||
<sha256 value="36d9f9d59a1fcc609367aaccaa249319603e5247f6a8fe112b73bab921ac70d8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.md-5" name="bungeecord-chat" version="1.21-R0.2-deprecated+build.21">
|
||||
<artifact name="bungeecord-chat-1.21-R0.2-deprecated+build.21.jar">
|
||||
<sha256 value="ce930b3ee048520a0ab538eb8d1627b301367fc1b300837235387aded6d89ba1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="bungeecord-chat-1.21-R0.2-deprecated+build.21.module">
|
||||
<sha256 value="72a987109d1e1faf039e0d4cecbff369a9ea5fa87b3d1df19ae692706101c649" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache" name="apache" version="23">
|
||||
<artifact name="apache-23.pom">
|
||||
<sha256 value="bc10624e0623f36577fac5639ca2936d3240ed152fb6d8d533ab4d270543491c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache" name="apache" version="31">
|
||||
<artifact name="apache-31.pom">
|
||||
<sha256 value="555d0c9eaa69c042aff924927b9381e8f8174136d355eead445224452e6291cc" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.commons" name="commons-lang3" version="3.12.0">
|
||||
<artifact name="commons-lang3-3.12.0.jar">
|
||||
<sha256 value="d919d904486c037f8d193412da0c92e22a9fa24230b9d67a57855c5c31c7e94e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="commons-lang3-3.12.0.pom">
|
||||
<sha256 value="82d31f1dcc4583effd744e979165b16da64bf86bca623fc5d1b03ed94f45c85a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.commons" name="commons-parent" version="52">
|
||||
<artifact name="commons-parent-52.pom">
|
||||
<sha256 value="75dbe8f34e98e4c3ff42daae4a2f9eb4cbcd3b5f1047d54460ace906dbb4502e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.groovy" name="groovy-bom" version="4.0.27">
|
||||
<artifact name="groovy-bom-4.0.27.module">
|
||||
<sha256 value="d6c2254c8347b84cda84caf74914a187c2f377e4284e8d8bb3f901521810aa8b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="groovy-bom-4.0.27.pom">
|
||||
<sha256 value="aa44eb52bfdfe61d27b3e450d2b348d88deaa3437ab4d9d49a84095348f9f6fb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.logging.log4j" name="log4j" version="2.26.0">
|
||||
<artifact name="log4j-2.26.0.pom">
|
||||
<sha256 value="e5fab1fdd146db8980cee0dd1383f5faf8a7926606fac8bdaa9bfef17c98d5c4" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.logging.log4j" name="log4j-api" version="2.26.0">
|
||||
<artifact name="log4j-api-2.26.0.jar">
|
||||
<sha256 value="820de7bbaf430eaf2e3e5ccb92f23e2085797c5ac4d4f7fc6c8b660fbefa1dbc" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="log4j-api-2.26.0.module">
|
||||
<sha256 value="a124f0264f630a45fb6f419f4614742978b5b51728f09e6403035f1d63dc4c21" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.logging.log4j" name="log4j-bom" version="2.26.0">
|
||||
<artifact name="log4j-bom-2.26.0.pom">
|
||||
<sha256 value="d4af18d02dcefc657f5a497f339c14b9fde554686c7c81c5f8072be165db7578" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven" name="maven" version="3.9.6">
|
||||
<artifact name="maven-3.9.6.pom">
|
||||
<sha256 value="ba0bf325c52954058e9a7029e40273a1fe06be4a50530f6a4eba46c558a1e4ac" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven" name="maven-artifact" version="3.9.6">
|
||||
<artifact name="maven-artifact-3.9.6.jar">
|
||||
<sha256 value="ad7a0fb408f8e47585ccc0d0011e0b501d93bfc9888d369bbd4a043d19475073" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-artifact-3.9.6.pom">
|
||||
<sha256 value="b610a3b025982b98576d7664900ace31362f005827051f3698e649d289f3ffb5" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven" name="maven-builder-support" version="3.9.6">
|
||||
<artifact name="maven-builder-support-3.9.6.jar">
|
||||
<sha256 value="e1f4d2784459ce8a34b9dae1829a1999b569e483e21ee9faa7368691e729296e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-builder-support-3.9.6.pom">
|
||||
<sha256 value="7de976b8ceb1a66afe267f2aa7d615700d09c51107aade2189f69fe433482a50" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven" name="maven-model" version="3.9.6">
|
||||
<artifact name="maven-model-3.9.6.jar">
|
||||
<sha256 value="4f8f07fdb6b8701fa89a23a2edf830808fd65892d90cce40c0e6df7c8f2fcb62" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-model-3.9.6.pom">
|
||||
<sha256 value="c4d7eccb285e621113e543ef293fd27dfa8d12ea06121f357bcb11ebd807ae75" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven" name="maven-model-builder" version="3.9.6">
|
||||
<artifact name="maven-model-builder-3.9.6.jar">
|
||||
<sha256 value="5f96dafbc411ee4b1e8426368d0d31d05ab5a4dace69808143142a0017598721" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-model-builder-3.9.6.pom">
|
||||
<sha256 value="c8c2b71b708398fa0779c348474e0effe47791bfcc80f9229219f30b3a2a452c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven" name="maven-parent" version="41">
|
||||
<artifact name="maven-parent-41.pom">
|
||||
<sha256 value="762fcdd4ce8621c5fa0a2cf6495ad26972a8093eb432aa3e402bc2d4e2500c53" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven" name="maven-repository-metadata" version="3.9.6">
|
||||
<artifact name="maven-repository-metadata-3.9.6.jar">
|
||||
<sha256 value="e047a67b204c434994253e2ab5bdff5fe8cb7ada9316ac3e754c39f900ea847b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-repository-metadata-3.9.6.pom">
|
||||
<sha256 value="a7d62714a91bf4a71c403b1d8be6128619f22d225ee3455bbb4ba177841a5e63" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven" name="maven-resolver-provider" version="3.9.6">
|
||||
<artifact name="maven-resolver-provider-3.9.6.jar">
|
||||
<sha256 value="73b00b244b7b9e285654a45e765892bf5d369da77d42b5b4b5429122ed198a33" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-resolver-provider-3.9.6.pom">
|
||||
<sha256 value="302964c57bce880cee7ed22d3577761a86146b5a9562b537df932225db8bc0b7" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven.resolver" name="maven-resolver" version="1.9.18">
|
||||
<artifact name="maven-resolver-1.9.18.pom">
|
||||
<sha256 value="fb1dd4e554cd2dbcede9615294921e70b183533f467913acd9a3787ffdd6943b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven.resolver" name="maven-resolver-api" version="1.9.18">
|
||||
<artifact name="maven-resolver-api-1.9.18.jar">
|
||||
<sha256 value="ebfb9e1dfeea3c2017905184581e007874b4eaac9d28bfffcfe5133d70ac6339" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-resolver-api-1.9.18.pom">
|
||||
<sha256 value="8290daa0cd7fbba0767b07368669228387cabae99a13c3433fbd4570629ae384" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven.resolver" name="maven-resolver-impl" version="1.9.18">
|
||||
<artifact name="maven-resolver-impl-1.9.18.jar">
|
||||
<sha256 value="6bb9c90d007098004749c867da2eaf5785fc1139907718749c1097bdb2929bf8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-resolver-impl-1.9.18.pom">
|
||||
<sha256 value="bfe016ba9256670d2a4efc41cf7f03c2c84e83c6eae4c74c99794329e865befb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven.resolver" name="maven-resolver-named-locks" version="1.9.18">
|
||||
<artifact name="maven-resolver-named-locks-1.9.18.jar">
|
||||
<sha256 value="098de7bbc5b0b26c3eff74ac30ffba6680fdab9bf4aebab95c3f5e2fe9eaeea8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-resolver-named-locks-1.9.18.pom">
|
||||
<sha256 value="1740da534d398473f6c4ee4ca4e904c3469ea9e9b4df3b625f424c0b80755f44" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven.resolver" name="maven-resolver-spi" version="1.9.18">
|
||||
<artifact name="maven-resolver-spi-1.9.18.jar">
|
||||
<sha256 value="d364fce9a17b0e0b073c26efa92af95b29c00c42943dced4a1168a7923fd3fe1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-resolver-spi-1.9.18.pom">
|
||||
<sha256 value="489c2bd376eefe079393ac314e1ee0e373e474d222d28311a49b83e07f6a200a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.apache.maven.resolver" name="maven-resolver-util" version="1.9.18">
|
||||
<artifact name="maven-resolver-util-1.9.18.jar">
|
||||
<sha256 value="2eb0ea667bc489384478231dda7516407d4b5b22a138077229871de9362a7ae2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="maven-resolver-util-1.9.18.pom">
|
||||
<sha256 value="a98e6af5cdf1b2456486ae0bb8128e52fee8d6996629af60606bbc9c1aadf8ec" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.checkerframework" name="checker-qual" version="4.2.3">
|
||||
<artifact name="checker-qual-4.2.3.jar">
|
||||
<sha256 value="f868f731f6e37db3e1c2140d06016477989959a2d13fc5bed9c46760cffd5ba0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="checker-qual-4.2.3.module">
|
||||
<sha256 value="59be7e8a548a2cbdc490fd0a72315fe327cc17f7c922964ccc45114a94bc5e1e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.codehaus.plexus" name="plexus" version="10">
|
||||
<artifact name="plexus-10.pom">
|
||||
<sha256 value="bba9c521064b9ca132ce97cc1cc7eb4afc2dbe32bc88cb872c88e99f6162301f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.codehaus.plexus" name="plexus" version="5.1">
|
||||
<artifact name="plexus-5.1.pom">
|
||||
<sha256 value="a343e44ff5796aed0ea60be11454c935ce20ab1c5f164acc8da574482dcbc7e9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.codehaus.plexus" name="plexus-interpolation" version="1.26">
|
||||
<artifact name="plexus-interpolation-1.26.jar">
|
||||
<sha256 value="b3b5412ce17889103ea564bcdfcf9fb3dfa540344ffeac6b538a73c9d7182662" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="plexus-interpolation-1.26.pom">
|
||||
<sha256 value="e1c10b3a6335641eb74a668daa9ee86ae4ab06610174e59ba07c8c68042327f7" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.codehaus.plexus" name="plexus-utils" version="3.5.1">
|
||||
<artifact name="plexus-utils-3.5.1.jar">
|
||||
<sha256 value="86e0255d4c879c61b4833ed7f13124e8bb679df47debb127326e7db7dd49a07b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="plexus-utils-3.5.1.pom">
|
||||
<sha256 value="94ff68edeb48204d12c99189c767164d3a9f778a1372d1dce11a41462e6236f2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.eclipse.ee4j" name="project" version="1.0.7">
|
||||
<artifact name="project-1.0.7.pom">
|
||||
<sha256 value="205c039a42cbae3556efbeb04a483eb3a3cf9550bd75bf84260dc8f28218f105" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.eclipse.sisu" name="org.eclipse.sisu.inject" version="0.9.0.M2">
|
||||
<artifact name="org.eclipse.sisu.inject-0.9.0.M2.jar">
|
||||
<sha256 value="9b62bcfc352a2ec87da8b01e37c952a54d358bbb1af3f212648aeafe7ab2dbb5" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="org.eclipse.sisu.inject-0.9.0.M2.pom">
|
||||
<sha256 value="05666f27941117ccadfab6329118c1c348f8b838ce89ed23182c151cb2943ee9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.eclipse.sisu" name="sisu-inject" version="0.9.0.M2">
|
||||
<artifact name="sisu-inject-0.9.0.M2.pom">
|
||||
<sha256 value="7630f4cd4d1620067fa83e1d748b012cffa0655e5380cc0e4a5e283d3b441fdb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains" name="annotations" version="26.1.0">
|
||||
<artifact name="annotations-26.1.0.jar">
|
||||
<sha256 value="ebc7aec252ed0c7d2d04c039d7f00e69f7b86b1f493c741d67b3ef31b986b054" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="annotations-26.1.0.module">
|
||||
<sha256 value="5b4eeb8dba61e753816153e0c73f562b20e017e39393952d4de4dd31b77260bb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.joml" name="joml" version="1.10.9">
|
||||
<artifact name="joml-1.10.9.jar">
|
||||
<sha256 value="feca4db853371704338621c120acc5cc32300d8af635fa42414b6213301e216b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="joml-1.10.9.module">
|
||||
<sha256 value="75d21164f264c79c331a60634b0e5ebdc6fdd391b536369ad74fda4b068d71d8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jspecify" name="jspecify" version="1.0.0">
|
||||
<artifact name="jspecify-1.0.0.jar">
|
||||
<sha256 value="1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="jspecify-1.0.0.module">
|
||||
<sha256 value="d307ca77a54e18ac1ef1aaed4e5bbe014bd2f49f29e1d2f813e47c278283195b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.junit" name="junit-bom" version="5.13.4">
|
||||
<artifact name="junit-bom-5.13.4.module">
|
||||
<sha256 value="e959288fde1b1b050d9bc082fc786789128da5d2853091468fca504104bdf400" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="junit-bom-5.13.4.pom">
|
||||
<sha256 value="d7a08a99b2502f0bb68cd4e1f984f0bf69324aaa208bd0f73366c03fc3548a42" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.junit" name="junit-bom" version="5.7.1">
|
||||
<artifact name="junit-bom-5.7.1.module">
|
||||
<sha256 value="9854e3894d64b2485207e0046bca07b3d42d169e782f4fa8c9ce229a78faee04" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="junit-bom-5.7.1.pom">
|
||||
<sha256 value="0b9b14a3d62106fafe8c68a717b87b87ad18685899451b753c04fa41b6857784" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.mockito" name="mockito-bom" version="4.11.0">
|
||||
<artifact name="mockito-bom-4.11.0.pom">
|
||||
<sha256 value="d8531a746c988f7f68ed5f188cdea945006aea993ec5df9e524e0d27d61491da" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.osgi" name="org.osgi.annotation.bundle" version="2.0.0">
|
||||
<artifact name="org.osgi.annotation.bundle-2.0.0.jar">
|
||||
<sha256 value="b9c9546ec5be3ebc2e85ba4919150ad76d64594805282fc895133a47d264a7ae" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="org.osgi.annotation.bundle-2.0.0.pom">
|
||||
<sha256 value="8b9cf8a4129ebf5278f2634d3509c372283961ad0fdcc85a245bb35d7a22a5c8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.osgi" name="org.osgi.annotation.versioning" version="1.1.2">
|
||||
<artifact name="org.osgi.annotation.versioning-1.1.2.jar">
|
||||
<sha256 value="f51f235e80df8ffbc30ef1b557b6ea38a696632d675404ec117e952978b8b863" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="org.osgi.annotation.versioning-1.1.2.pom">
|
||||
<sha256 value="b1d3012abffa2b7fc4a3d0baee8784494c073986b000d655a788fa617aaa2bc8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.osgi" name="org.osgi.resource" version="1.0.0">
|
||||
<artifact name="org.osgi.resource-1.0.0.jar">
|
||||
<sha256 value="81fc50f1f1d38a4af28e131907d4afe213249aab05060484edca0e60c4af9b4a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="org.osgi.resource-1.0.0.pom">
|
||||
<sha256 value="83acdf225ffb9a4a7bc582f53a4145a1f2c3bdbb428e033c00966f63c610e820" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.osgi" name="org.osgi.service.serviceloader" version="1.0.0">
|
||||
<artifact name="org.osgi.service.serviceloader-1.0.0.jar">
|
||||
<sha256 value="8f876ce2a9aa4e95b1f1952950255103e2487425050a654f3285447ba601c154" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="org.osgi.service.serviceloader-1.0.0.pom">
|
||||
<sha256 value="755751ab6c37a1a31afb5b9e4a595c0dd2efd2b50d703b21255b827c50ed6153" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.slf4j" name="slf4j-api" version="2.0.17">
|
||||
<artifact name="slf4j-api-2.0.17.jar">
|
||||
<sha256 value="7b751d952061954d5abfed7181c1f645d336091b679891591d63329c622eb832" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="slf4j-api-2.0.17.pom">
|
||||
<sha256 value="150c40287f7cecdc21b9380caac98e928c4f33c023db6b348df1c5ac977026bf" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.slf4j" name="slf4j-bom" version="2.0.17">
|
||||
<artifact name="slf4j-bom-2.0.17.pom">
|
||||
<sha256 value="f78d27b642b4b886eb839fc102b5cd9fe7f30f37599ffe68185be4e1609031e9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.slf4j" name="slf4j-parent" version="2.0.17">
|
||||
<artifact name="slf4j-parent-2.0.17.pom">
|
||||
<sha256 value="95cd71e852dfdb29126e58b7b939d57ec2b2e6024391852e0b545dee082bbf3b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.sonatype.oss" name="oss-parent" version="7">
|
||||
<artifact name="oss-parent-7.pom">
|
||||
<sha256 value="b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.sonatype.oss" name="oss-parent" version="9">
|
||||
<artifact name="oss-parent-9.pom">
|
||||
<sha256 value="fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.springframework" name="spring-framework-bom" version="5.3.39">
|
||||
<artifact name="spring-framework-bom-5.3.39.module">
|
||||
<sha256 value="f88b40e2a50333b40b42f181eee272b75ec75dd8666cb145bd90b15b97e183e3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="spring-framework-bom-5.3.39.pom">
|
||||
<sha256 value="f6d481093e75767cba1ac7e1db38f8f692cbe3e38744693371a75aeb21c6148b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.yaml" name="snakeyaml" version="2.2">
|
||||
<artifact name="snakeyaml-2.2.jar">
|
||||
<sha256 value="1467931448a0817696ae2805b7b8b20bfb082652bf9c4efaed528930dc49389b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="snakeyaml-2.2.pom">
|
||||
<sha256 value="e982eadc788c69cf2e4de50a9f632b182c31dba50612830d348fc4b4ba8dd7d6" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
</components>
|
||||
</verification-metadata>
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=bafd5ce9cfaea0fbccfdc8439a1ac42fbd4cd9c89dc9a988228d8a2639a58e6c
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.0-bin.zip
|
||||
networkTimeout=10000
|
||||
retries=0
|
||||
retryBackOffMs=500
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
+248
@@ -0,0 +1,248 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# gradlew start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh gradlew
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
} >&2
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||
else
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
Vendored
+112
@@ -0,0 +1,112 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
@rem SPDX-License-Identifier: Apache-2.0
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem gradlew startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables, and ensure extensions are enabled
|
||||
setlocal EnableExtensions
|
||||
|
||||
@rem Catch executions from older scripts and ensure they exit cleanly.
|
||||
@rem This can be removed once we can be reasonably confident that few people
|
||||
@rem will be migrating directly to this new wrapper.
|
||||
goto afterSafetyNet
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
goto exitWithErrorLevel
|
||||
:afterSafetyNet
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@rem This is normally unused
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
1>&2 echo.
|
||||
1>&2 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
1>&2 echo.
|
||||
1>&2 echo Please set the JAVA_HOME variable in your environment to match the
|
||||
1>&2 echo location of your Java installation.
|
||||
|
||||
"%COMSPEC%" /c exit 1
|
||||
goto exitWithErrorLevel
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
1>&2 echo.
|
||||
1>&2 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
1>&2 echo.
|
||||
1>&2 echo Please set the JAVA_HOME variable in your environment to match the
|
||||
1>&2 echo location of your Java installation.
|
||||
|
||||
"%COMSPEC%" /c exit 1
|
||||
goto exitWithErrorLevel
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
|
||||
|
||||
@rem Execute gradlew
|
||||
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
|
||||
@rem which allows us to clear the local environment before executing the java command
|
||||
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel & goto exitWithErrorLevel
|
||||
|
||||
@rem This label must not be changed. We rely on old scripts being able to jump to this point.
|
||||
:exitWithErrorLevel
|
||||
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
|
||||
"%COMSPEC%" /c exit %ERRORLEVEL%
|
||||
@@ -12,7 +12,7 @@
|
||||
# Each module pins its own Gradle via its vendored wrapper (fabric/forge: 8.8,
|
||||
# neoforge: 8.14) and targets a Java-17 Minecraft line (1.20.1 / 1.20.4), so run
|
||||
# this on JDK 17. The plugin jars bootstrap installs are different modules with a
|
||||
# different gate: plugins/test.sh (JDK 21). The first run here downloads and
|
||||
# different gate: plugins/test.sh (JDK 25). The first run here downloads and
|
||||
# decompiles Minecraft (minutes); the Gradle caches make later runs much faster.
|
||||
set -euo pipefail
|
||||
|
||||
|
||||
+16
-27
@@ -3,7 +3,8 @@
|
||||
#
|
||||
# bash plugins/test.sh
|
||||
#
|
||||
# Two gates, both runnable on any machine with a JDK 21 and Gradle:
|
||||
# Two gates, both runnable on any machine with a JDK 25 (Gradle comes from each
|
||||
# module's wrapper, sha256-pinned):
|
||||
#
|
||||
# 1. The hand-written, framework-free test mains under shared/test and
|
||||
# velocity/test. They check what "compiles" cannot: the felis:control codec
|
||||
@@ -22,14 +23,15 @@
|
||||
# test of what we ship).
|
||||
#
|
||||
# 2. Production compile gates: the velocity/paper/limbo plugin jars — the three
|
||||
# bootstrap bakes into the proxy and the game images — are built with the same
|
||||
# Gradle major the plugin Dockerfiles pin, so a compile break is a red check
|
||||
# here instead of an install-time surprise. limbo compiles against the API
|
||||
# release bootstrap would bundle (resolved below, same source the installer
|
||||
# reads), because the module's `+` default cannot resolve on its own.
|
||||
# bootstrap bakes into the proxy and the game images — are built through each
|
||||
# module's wrapper, the same Gradle the plugin build image runs, with every
|
||||
# dependency checked against the module's gradle/verification-metadata.xml. A
|
||||
# compile break or a swapped artifact is a red check here instead of an
|
||||
# install-time surprise. limbo compiles against the API release the login gate
|
||||
# bundles: deploy/game-stack.lock's LIMBO_VERSION, which bootstrap passes too.
|
||||
#
|
||||
# No test framework and no wrapper: the mains are the same javac one-liners their
|
||||
# javadocs document, so a local run and CI run the same bytes.
|
||||
# No test framework: the mains are the same javac one-liners their javadocs document,
|
||||
# so a local run and CI run the same bytes.
|
||||
set -euo pipefail
|
||||
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")/.."
|
||||
@@ -121,24 +123,11 @@ java -cp "$work/opcard-classes:$adventure_api:$adventure_key:$examination_api" \
|
||||
# --- 2. production compile gates ------------------------------------------------
|
||||
|
||||
for module in velocity paper; do
|
||||
echo "==> gradle --no-daemon -p plugins/$module build"
|
||||
gradle --no-daemon -p "plugins/$module" build
|
||||
echo "==> plugins/$module: ./gradlew --no-daemon build"
|
||||
( cd "plugins/$module" && ./gradlew --no-daemon build )
|
||||
done
|
||||
|
||||
# limbo is special: it compiles against the LOOHP/Limbo API release that the
|
||||
# installer bundles, and that release is published nowhere except the CI artifact
|
||||
# name (Limbo-<version>-<mc>.jar) — the same place deploy/bootstrap.sh reads it.
|
||||
# The module's `+` version default cannot resolve (LOOHP's repository serves no
|
||||
# maven-metadata.xml), so a bare `gradle -p plugins/limbo build` is never a valid
|
||||
# command; the version must come from here or from bootstrap.
|
||||
echo "==> resolving the newest LOOHP/Limbo CI build (for -PlimboVersion)"
|
||||
limbo_meta="$(curl -fsSL --retry 5 --retry-delay 2 \
|
||||
https://ci.loohpjames.com/job/Limbo/lastSuccessfulBuild/api/json)" \
|
||||
|| { echo "cannot read the LOOHP/Limbo CI build metadata; the limbo gate cannot pick a version" >&2; exit 1; }
|
||||
limbo_file="$(printf '%s' "$limbo_meta" | grep -o 'Limbo-[0-9A-Za-z._-]*\.jar' || true)"
|
||||
limbo_file="${limbo_file%%$'\n'*}"
|
||||
[ -n "$limbo_file" ] || { echo "no Limbo jar in the LOOHP/Limbo CI artifact list" >&2; exit 1; }
|
||||
limbo_version="${limbo_file%.jar}"; limbo_version="${limbo_version%-*}"; limbo_version="${limbo_version#Limbo-}"
|
||||
[ -n "$limbo_version" ] || { echo "cannot parse the Limbo version out of ${limbo_file}" >&2; exit 1; }
|
||||
echo "==> gradle --no-daemon -p plugins/limbo build (Limbo ${limbo_version})"
|
||||
gradle --no-daemon -p plugins/limbo -PlimboVersion="$limbo_version" build
|
||||
limbo_version="$(sed -n 's/^LIMBO_VERSION=//p' deploy/game-stack.lock)"
|
||||
[ -n "$limbo_version" ] || { echo "deploy/game-stack.lock sets no LIMBO_VERSION" >&2; exit 1; }
|
||||
echo "==> plugins/limbo: ./gradlew --no-daemon -PlimboVersion=${limbo_version} build"
|
||||
( cd plugins/limbo && ./gradlew --no-daemon -PlimboVersion="$limbo_version" build )
|
||||
@@ -25,9 +25,12 @@ def velocityApi = findProperty('velocityApi') ?: '3.5.1'
|
||||
// unreleased — zero published builds; only the snapshot exists), build with a JDK 25
|
||||
// toolchain and both knobs turned up:
|
||||
//
|
||||
// gradle build -PvelocityApi=4.0.0-SNAPSHOT -PjavaTarget=25
|
||||
// ./gradlew build -PvelocityApi=4.0.0-SNAPSHOT -PjavaTarget=25 --dependency-verification lenient
|
||||
//
|
||||
// That build is a CHECK, not an artifact — the jar we deploy is the default 21 one.
|
||||
// That build is a CHECK, not an artifact — the jar we deploy is the default 21 one. The
|
||||
// lenient flag is part of it: gradle/verification-metadata.xml pins the checksums of the
|
||||
// 3.5.1 graph, and a snapshot's bytes change with every publish, so strict verification
|
||||
// (the default) refuses it.
|
||||
def javaTarget = JavaVersion.toVersion(findProperty('javaTarget') ?: '21')
|
||||
|
||||
java {
|
||||
|
||||
@@ -0,0 +1,388 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<verification-metadata xmlns="https://schema.gradle.org/dependency-verification" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schema.gradle.org/dependency-verification https://schema.gradle.org/dependency-verification/dependency-verification-1.4.xsd">
|
||||
<configuration>
|
||||
<verify-metadata>true</verify-metadata>
|
||||
<verify-signatures>false</verify-signatures>
|
||||
</configuration>
|
||||
<components>
|
||||
<component group="aopalliance" name="aopalliance" version="1.0">
|
||||
<artifact name="aopalliance-1.0.jar">
|
||||
<sha256 value="0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="aopalliance-1.0.pom">
|
||||
<sha256 value="26e82330157d6b844b67a8064945e206581e772977183e3e31fec6058aa9a59b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.github.ben-manes.caffeine" name="caffeine" version="3.2.3">
|
||||
<artifact name="caffeine-3.2.3.jar">
|
||||
<sha256 value="ca70c90a5d1ce1511880ce9c93d4ad22108f61111d3daf91eb52762b571bd179" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="caffeine-3.2.3.module">
|
||||
<sha256 value="8d9a3b980e9bd70412ee339b2456313617b3b8ae2e8689f9b3cbf0640cd58f3c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google" name="google" version="5">
|
||||
<artifact name="google-5.pom">
|
||||
<sha256 value="e09d345e73ca3fbca7f3e05f30deb74e9d39dd6b79a93fee8c511f23417b6828" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.auto.service" name="auto-service-aggregator" version="1.1.1">
|
||||
<artifact name="auto-service-aggregator-1.1.1.pom">
|
||||
<sha256 value="e2dc3e263a5db0cc8172fb2eb9bcd232acecfdc96e817103eab3c8d9f1900c6a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.auto.service" name="auto-service-annotations" version="1.1.1">
|
||||
<artifact name="auto-service-annotations-1.1.1.jar">
|
||||
<sha256 value="16a76dd00a2650568447f5d6e3a9e2c809d9a42367d56b45215cfb89731f4d24" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="auto-service-annotations-1.1.1.pom">
|
||||
<sha256 value="1659fd0a25cea9fa9abfb18deb9d7b180cce3aceab16ff9e625461567e44a2df" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.code.gson" name="gson" version="2.13.2">
|
||||
<artifact name="gson-2.13.2.jar">
|
||||
<sha256 value="dd0ce1b55a3ed2080cb70f9c655850cda86c206862310009dcb5e5c95265a5e0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="gson-2.13.2.pom">
|
||||
<sha256 value="3aa06aa7c0f9af092961a42d09578e4324be146348a0ee6ed47857f7c2677b76" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.code.gson" name="gson-parent" version="2.13.2">
|
||||
<artifact name="gson-parent-2.13.2.pom">
|
||||
<sha256 value="83ab528a9d50fd76aeb8ad6f727b3ee9cb766586255774ed16ca8c4c76d9dacd" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_annotations" version="2.41.0">
|
||||
<artifact name="error_prone_annotations-2.41.0.pom">
|
||||
<sha256 value="a151df1e2e0b48618d8b06a180748a29b3abb39b1b2396f6a1c879a727488c6e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_annotations" version="2.43.0">
|
||||
<artifact name="error_prone_annotations-2.43.0.jar">
|
||||
<sha256 value="48272e75c16e1f7bdc7bd19529ccacd5ee170404701d7f5a23441bb5847957f5" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="error_prone_annotations-2.43.0.pom">
|
||||
<sha256 value="4f6b8889afa8debdbe1e3fe2a5f8e66e2216ca0b563f26b4e54138730eecdc80" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_parent" version="2.41.0">
|
||||
<artifact name="error_prone_parent-2.41.0.pom">
|
||||
<sha256 value="c538388d760a5c1c98dcf06f6ed3cfe5f11a651827db5cbd2ed8288c795cad42" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_parent" version="2.43.0">
|
||||
<artifact name="error_prone_parent-2.43.0.pom">
|
||||
<sha256 value="bb92c4584d0211bd59beca4fb276170f5dc50fe346146e93578d2dab26033e10" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="failureaccess" version="1.0.3">
|
||||
<artifact name="failureaccess-1.0.3.jar">
|
||||
<sha256 value="cbfc3906b19b8f55dd7cfd6dfe0aa4532e834250d7f080bd8d211a3e246b59cb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="failureaccess-1.0.3.pom">
|
||||
<sha256 value="c54beff37f6d42d43e14722d54a522c9ad51ef97fc5b79277e62a3ebf882f3bb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava" version="33.5.0-jre">
|
||||
<artifact name="guava-33.5.0-jre.jar">
|
||||
<sha256 value="1e301f0c52ac248b0b14fdc3d12283c77252d4d6f48521d572e7d8c4c2cc4ac7" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="guava-33.5.0-jre.module">
|
||||
<sha256 value="77ed42c8c8b2cebbb93ac9e07543ff6418aa24bdb8517580cf5324e9a6510956" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava-parent" version="26.0-android">
|
||||
<artifact name="guava-parent-26.0-android.pom">
|
||||
<sha256 value="f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava-parent" version="33.4.0-android">
|
||||
<artifact name="guava-parent-33.4.0-android.pom">
|
||||
<sha256 value="7220ede61026596fbc720ee4b93246fa2d14f328058532b59ef053de397c7d83" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava-parent" version="33.5.0-jre">
|
||||
<artifact name="guava-parent-33.5.0-jre.pom">
|
||||
<sha256 value="68719e687c6e4c9ff3e0fecbef7bd20896f0f4f7b314743ed33c72f962568215" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="listenablefuture" version="9999.0-empty-to-avoid-conflict-with-guava">
|
||||
<artifact name="listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar">
|
||||
<sha256 value="b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom">
|
||||
<sha256 value="18d4b1db26153d4e55079ce1f76bb1fe05cdb862ef9954a88cbcc4ff38b8679b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.inject" name="guice" version="7.0.0">
|
||||
<artifact name="guice-7.0.0.jar">
|
||||
<sha256 value="de5b0e359bd7b03ca42806b368846efd95484380fe05ae2a4ea71bc338c59c00" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="guice-7.0.0.pom">
|
||||
<sha256 value="9446ac2f27aaf0303a59a237e2aa95daa1dec75881f8923772f47d33a4dc7977" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.inject" name="guice-parent" version="7.0.0">
|
||||
<artifact name="guice-parent-7.0.0.pom">
|
||||
<sha256 value="49aebfee3e6ceb861a882b9df3fcf3bc9f5aa4625257378b0c6cdab84a3f4f64" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.j2objc" name="j2objc-annotations" version="3.1">
|
||||
<artifact name="j2objc-annotations-3.1.jar">
|
||||
<sha256 value="84d3a150518485f8140ea99b8a985656749629f6433c92b80c75b36aba3b099b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="j2objc-annotations-3.1.pom">
|
||||
<sha256 value="14570838500034fc1b47c8205ce1c9d6b255c1ccdd2d1afdcdcbf75e89b24a33" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.moandjiezana.toml" name="toml4j" version="0.7.2">
|
||||
<artifact name="toml4j-0.7.2.jar">
|
||||
<sha256 value="f5475e63e7e89e5db62223489aec7a56bd303543772077a17c2cb54c19ca3a20" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="toml4j-0.7.2.pom">
|
||||
<sha256 value="5b76216737f2da9383953accc9ba58f6e739d344678799e6d4d082cf6e1d6bd3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.velocitypowered" name="velocity-api" version="3.5.1">
|
||||
<artifact name="velocity-api-3.5.1.jar">
|
||||
<sha256 value="c4c3fcf3d5ef20bb7d5839211d6c27c57da4dbcc94cc44ecc304fa8dccb55ff0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="velocity-api-3.5.1.module">
|
||||
<sha256 value="c90d3acd6690769f6247dc20355d32d86b88940bd57c318c1684f846666d0d21" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="io.leangen.geantyref" name="geantyref" version="1.3.16">
|
||||
<artifact name="geantyref-1.3.16.jar">
|
||||
<sha256 value="7f1d591092d5142b6aaa7cf59f94c4c74d57dbeef03b2f8262949f8f36bac6e3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="geantyref-1.3.16.pom">
|
||||
<sha256 value="24281b63832eb4ef1064e7ddfdbe7b796aae1abf88798adbf4d0b9669baba4a4" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="jakarta.inject" name="jakarta.inject-api" version="2.0.1">
|
||||
<artifact name="jakarta.inject-api-2.0.1.jar">
|
||||
<sha256 value="f7dc98062fccf14126abb751b64fab12c312566e8cbdc8483598bffcea93af7c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="jakarta.inject-api-2.0.1.pom">
|
||||
<sha256 value="e7fd7232e96307a575b2494c9367d68cf43ec98244aace3ccc23e1773ffa6fda" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-api" version="4.26.1">
|
||||
<artifact name="adventure-api-4.26.1.jar">
|
||||
<sha256 value="551e536b9ea868f30e72c7900a309b35124ee7d4889fa3b3aed0910299751a26" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-api-4.26.1.module">
|
||||
<sha256 value="f9758c168027086c99d9a26673764ea8b80d536f20c26c598dc17052b13acafa" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-bom" version="4.26.1">
|
||||
<artifact name="adventure-bom-4.26.1.module">
|
||||
<sha256 value="98d1f5cbcf5a80677262bc2bc705fc4c0b52365e98ba4c20473b3963b1366c71" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-bom-4.26.1.pom">
|
||||
<sha256 value="296b21955ff65b8b50898b4a7d59cb183703007aa31bf7617d529132e5275223" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-key" version="4.26.1">
|
||||
<artifact name="adventure-key-4.26.1.jar">
|
||||
<sha256 value="eec172d63db77b40eb7abeeb25f65eedea89bd30264d057b68b12fecb731be5e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-key-4.26.1.module">
|
||||
<sha256 value="a3bdd4d75cf0c5e53c7f8b1e61b189f8ef4aae59d131b5f97d4ef29438337b10" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-logger-slf4j" version="4.26.1">
|
||||
<artifact name="adventure-text-logger-slf4j-4.26.1.jar">
|
||||
<sha256 value="009a99518d9b4f0ec54665f209724813bf98a2c1ff020aeabcf34a3699fd1dfa" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-logger-slf4j-4.26.1.module">
|
||||
<sha256 value="e28677ae5244987ba9eac0f1233386466507a8f53ecc0ac01c4760eb067e758a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-minimessage" version="4.26.1">
|
||||
<artifact name="adventure-text-minimessage-4.26.1.jar">
|
||||
<sha256 value="1d43451e9af473252dc8af3e8084238d5ce68ad43af0e3b7383eb3d4b63fff9f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-minimessage-4.26.1.module">
|
||||
<sha256 value="1a3b2384c47104c82f27eeeb7a38ff03cf3b03e507e1c7b0528387bbc13d149e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-ansi" version="4.26.1">
|
||||
<artifact name="adventure-text-serializer-ansi-4.26.1.jar">
|
||||
<sha256 value="79507c36685932166689423be279ea796db42b95d96da2a794cf9624280cb145" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-ansi-4.26.1.module">
|
||||
<sha256 value="352497c66b09d11266446aa3f760fbf3688ef95968b78f8cffbd6a14a9eab808" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-commons" version="4.26.1">
|
||||
<artifact name="adventure-text-serializer-commons-4.26.1.jar">
|
||||
<sha256 value="66527fef559da4d91cda692491034f903d5b01e835de1b091edfbb6b51cee5a2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-commons-4.26.1.module">
|
||||
<sha256 value="3c7d73197040007b6d88eaf76d582dca082c40b698499454729714dff28a6f07" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-gson" version="4.26.1">
|
||||
<artifact name="adventure-text-serializer-gson-4.26.1.jar">
|
||||
<sha256 value="e4a908dedc4acb4305083d916d362ddc2b21ecf452d577a0be665280bddae9fc" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-gson-4.26.1.module">
|
||||
<sha256 value="0a211629416e356dbd1fd011724aeb9098b4c0bcf3a0525fd38fcb21abf478b0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-json" version="4.26.1">
|
||||
<artifact name="adventure-text-serializer-json-4.26.1.jar">
|
||||
<sha256 value="55c64b4333d5d2968a0125b8f29dae7cfba15392d5f99f78dbaea711cb0d4dc2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-json-4.26.1.module">
|
||||
<sha256 value="725e47910ab01b4a59d29a93c3ff2d0a47b1760c0c1b6c384f86c2a959b30792" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-legacy" version="4.26.1">
|
||||
<artifact name="adventure-text-serializer-legacy-4.26.1.jar">
|
||||
<sha256 value="721107bc213572454df1bfbe438dba630e30457550c750b7a154b35dc3264aa8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-legacy-4.26.1.module">
|
||||
<sha256 value="51e76677d339a56e2b8fb37e3704775ff3e2ffeac3023e54e5b6b2862c5899bd" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="adventure-text-serializer-plain" version="4.26.1">
|
||||
<artifact name="adventure-text-serializer-plain-4.26.1.jar">
|
||||
<sha256 value="39b9bfe5790f645605ff5464382c0e062476f48f9bfb2548801f275f12faf405" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="adventure-text-serializer-plain-4.26.1.module">
|
||||
<sha256 value="c8d3361dec1e655185ab2aa871288d78f6749ff24f377cca2af2b82b6e61b48b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="ansi" version="1.1.1">
|
||||
<artifact name="ansi-1.1.1.jar">
|
||||
<sha256 value="b6c569e1a0925b9eeb349e12db35e2237556107e3336657e0b2ebde261d8afd7" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="ansi-1.1.1.module">
|
||||
<sha256 value="765f6f82954924092a8c2e37b87a9a5c9be5632034ae819ad911b69aa0bc2a53" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="examination-api" version="1.3.0">
|
||||
<artifact name="examination-api-1.3.0.jar">
|
||||
<sha256 value="c9237ffecb05428f6eff86216246ac70ce0b47b04c08ea7ca35020fde57f8492" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="examination-api-1.3.0.module">
|
||||
<sha256 value="d2b1da3d190bc1bbfcc837db8016921bb81b20f6331da586a5e1262244b06df0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="examination-string" version="1.3.0">
|
||||
<artifact name="examination-string-1.3.0.jar">
|
||||
<sha256 value="7d01fc25a4bb3af0e1662685455f4541fbf4626216ea5846e455c1491e156b8c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="examination-string-1.3.0.module">
|
||||
<sha256 value="a9fa478afc2a4346f8a5be091f5e14666860192dd865b1e3d8592296646c74fe" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.kyori" name="option" version="1.1.0">
|
||||
<artifact name="option-1.1.0.jar">
|
||||
<sha256 value="97b69b4b17dfe02217c9131ad342564cbc9aebd04c75eb689639b5f78fd4b11c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="option-1.1.0.module">
|
||||
<sha256 value="36d9f9d59a1fcc609367aaccaa249319603e5247f6a8fe112b73bab921ac70d8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.checkerframework" name="checker-qual" version="3.53.0">
|
||||
<artifact name="checker-qual-3.53.0.jar">
|
||||
<sha256 value="7ca002815d92fad79e966b375c2ee7b2b4bf953024bc9a5d5e0c59df13ff5af8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="checker-qual-3.53.0.module">
|
||||
<sha256 value="119d69d41349783cc1ebd392b24b61d6f380860147a80b2885b8f7fca3ab13bf" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.eclipse.ee4j" name="project" version="1.0.6">
|
||||
<artifact name="project-1.0.6.pom">
|
||||
<sha256 value="4e7d8329d8da7dcf30779d824241be145f27108932f5a5a24eb907677bc8d72d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains" name="annotations" version="26.0.2-1">
|
||||
<artifact name="annotations-26.0.2-1.jar">
|
||||
<sha256 value="2037be378980d3ba9333e97955f3b2cde392aa124d04ca73ce2eee6657199297" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="annotations-26.0.2-1.module">
|
||||
<sha256 value="9fe86aeb64b86323e8e579503b11a038a140694c13b6804343f8a4dc9a3a46b1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jspecify" name="jspecify" version="1.0.0">
|
||||
<artifact name="jspecify-1.0.0.jar">
|
||||
<sha256 value="1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="jspecify-1.0.0.module">
|
||||
<sha256 value="d307ca77a54e18ac1ef1aaed4e5bbe014bd2f49f29e1d2f813e47c278283195b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.slf4j" name="slf4j-api" version="2.0.17">
|
||||
<artifact name="slf4j-api-2.0.17.jar">
|
||||
<sha256 value="7b751d952061954d5abfed7181c1f645d336091b679891591d63329c622eb832" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="slf4j-api-2.0.17.pom">
|
||||
<sha256 value="150c40287f7cecdc21b9380caac98e928c4f33c023db6b348df1c5ac977026bf" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.slf4j" name="slf4j-bom" version="2.0.17">
|
||||
<artifact name="slf4j-bom-2.0.17.pom">
|
||||
<sha256 value="f78d27b642b4b886eb839fc102b5cd9fe7f30f37599ffe68185be4e1609031e9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.slf4j" name="slf4j-parent" version="2.0.17">
|
||||
<artifact name="slf4j-parent-2.0.17.pom">
|
||||
<sha256 value="95cd71e852dfdb29126e58b7b939d57ec2b2e6024391852e0b545dee082bbf3b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.sonatype.oss" name="oss-parent" version="7">
|
||||
<artifact name="oss-parent-7.pom">
|
||||
<sha256 value="b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.sonatype.oss" name="oss-parent" version="9">
|
||||
<artifact name="oss-parent-9.pom">
|
||||
<sha256 value="fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.spongepowered" name="configurate-core" version="4.2.0">
|
||||
<artifact name="configurate-core-4.2.0.jar">
|
||||
<sha256 value="06c1e9f7789a189af0c0156ebe9f469da7cc674233f43e8133c83131edd9f7e0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="configurate-core-4.2.0.module">
|
||||
<sha256 value="cb177d2afc1d611110b454bf1fbe0224af90aa74a457dcff4ce3185c6da8652f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.spongepowered" name="configurate-gson" version="4.2.0">
|
||||
<artifact name="configurate-gson-4.2.0.jar">
|
||||
<sha256 value="7aa71c61043f96911ce793a5fec25138134841d163a7637a349f59df480b50c5" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="configurate-gson-4.2.0.module">
|
||||
<sha256 value="3794562fa3ef180cbf1292b502bfe57675d0133ee7a9a75a0c74998f7c83b944" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.spongepowered" name="configurate-hocon" version="4.2.0">
|
||||
<artifact name="configurate-hocon-4.2.0.jar">
|
||||
<sha256 value="ff13759a465998107f8898150751b9d0cf77b5b5ffb9b5ec16ccea9cf229893e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="configurate-hocon-4.2.0.module">
|
||||
<sha256 value="039eb0af1a95d4402869b98050c6a2692dabc0038859f8c86d4e4b5a27e382fe" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.spongepowered" name="configurate-yaml" version="4.2.0">
|
||||
<artifact name="configurate-yaml-4.2.0.jar">
|
||||
<sha256 value="6294f085316188bffb71bb05ef36bf8755a288ed925c791952e1e8d7bfc8ba4c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="configurate-yaml-4.2.0.module">
|
||||
<sha256 value="b10e69cc8c8e5a3e6a0e02df89ab819e4b412fa93b1c03bf928a02e6bed8a20e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.yaml" name="snakeyaml" version="2.5">
|
||||
<artifact name="snakeyaml-2.5.jar">
|
||||
<sha256 value="e6682acf1ace77508ef13649cbf4f8d09d2cf5457bdb61d25ffb6ac0233d78dd" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="snakeyaml-2.5.pom">
|
||||
<sha256 value="ba01ae7a744cb52fe8ecf3b023cbc32e0ccc8c6beef9f26de77a47808239447d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
</components>
|
||||
</verification-metadata>
|
||||
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=bafd5ce9cfaea0fbccfdc8439a1ac42fbd4cd9c89dc9a988228d8a2639a58e6c
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.0-bin.zip
|
||||
networkTimeout=10000
|
||||
retries=0
|
||||
retryBackOffMs=500
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
+248
@@ -0,0 +1,248 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# gradlew start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh gradlew
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
} >&2
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||
else
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
Vendored
+112
@@ -0,0 +1,112 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
@rem SPDX-License-Identifier: Apache-2.0
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem gradlew startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables, and ensure extensions are enabled
|
||||
setlocal EnableExtensions
|
||||
|
||||
@rem Catch executions from older scripts and ensure they exit cleanly.
|
||||
@rem This can be removed once we can be reasonably confident that few people
|
||||
@rem will be migrating directly to this new wrapper.
|
||||
goto afterSafetyNet
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
goto exitWithErrorLevel
|
||||
:afterSafetyNet
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@rem This is normally unused
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
1>&2 echo.
|
||||
1>&2 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
1>&2 echo.
|
||||
1>&2 echo Please set the JAVA_HOME variable in your environment to match the
|
||||
1>&2 echo location of your Java installation.
|
||||
|
||||
"%COMSPEC%" /c exit 1
|
||||
goto exitWithErrorLevel
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
1>&2 echo.
|
||||
1>&2 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
1>&2 echo.
|
||||
1>&2 echo Please set the JAVA_HOME variable in your environment to match the
|
||||
1>&2 echo location of your Java installation.
|
||||
|
||||
"%COMSPEC%" /c exit 1
|
||||
goto exitWithErrorLevel
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
|
||||
|
||||
@rem Execute gradlew
|
||||
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
|
||||
@rem which allows us to clear the local environment before executing the java command
|
||||
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel & goto exitWithErrorLevel
|
||||
|
||||
@rem This label must not be changed. We rely on old scripts being able to jump to this point.
|
||||
:exitWithErrorLevel
|
||||
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
|
||||
"%COMSPEC%" /c exit %ERRORLEVEL%
|
||||
Reference in new issue
Block a user