diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts index 0d7569af6..6dea04b48 100644 --- a/bukkit/build.gradle.kts +++ b/bukkit/build.gradle.kts @@ -111,12 +111,21 @@ tasks { publishing { repositories { maven { + name = "releases" url = uri("https://repo.momirealms.net/releases") credentials(PasswordCredentials::class) { username = System.getenv("REPO_USERNAME") password = System.getenv("REPO_PASSWORD") } } + maven { + name = "snapshot" + url = uri("https://repo.momirealms.net/snapshots") + credentials(PasswordCredentials::class) { + username = System.getenv("REPO_USERNAME") + password = System.getenv("REPO_PASSWORD") + } + } } publications { create("mavenJava") { @@ -137,5 +146,35 @@ publishing { } } } + create("mavenJavaSnapshot") { + groupId = "net.momirealms" + artifactId = "craft-engine-bukkit" + version = "${rootProject.properties["project_version"]}-SNAPSHOT" + artifact(tasks["sourcesJar"]) + from(components["shadow"]) + pom { + name = "CraftEngine API" + url = "https://github.com/Xiao-MoMi/craft-engine" + licenses { + license { + name = "GNU General Public License v3.0" + url = "https://www.gnu.org/licenses/gpl-3.0.html" + distribution = "repo" + } + } + } + } } } + +tasks.register("publishRelease") { + group = "publishing" + description = "Publishes to the release repository" + dependsOn("publishMavenJavaPublicationToReleaseRepository") +} + +tasks.register("publishSnapshot") { + group = "publishing" + description = "Publishes to the snapshot repository" + dependsOn("publishMavenJavaSnapshotPublicationToSnapshotRepository") +} \ No newline at end of file diff --git a/core/build.gradle.kts b/core/build.gradle.kts index be15d9371..6c138b529 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -116,12 +116,21 @@ tasks { publishing { repositories { maven { + name = "releases" url = uri("https://repo.momirealms.net/releases") credentials(PasswordCredentials::class) { username = System.getenv("REPO_USERNAME") password = System.getenv("REPO_PASSWORD") } } + maven { + name = "snapshot" + url = uri("https://repo.momirealms.net/snapshots") + credentials(PasswordCredentials::class) { + username = System.getenv("REPO_USERNAME") + password = System.getenv("REPO_PASSWORD") + } + } } publications { create("mavenJava") { @@ -142,5 +151,35 @@ publishing { } } } + create("mavenJavaSnapshot") { + groupId = "net.momirealms" + artifactId = "craft-engine-core" + version = "${rootProject.properties["project_version"]}-SNAPSHOT" + artifact(tasks["sourcesJar"]) + from(components["shadow"]) + pom { + name = "CraftEngine API" + url = "https://github.com/Xiao-MoMi/craft-engine" + licenses { + license { + name = "GNU General Public License v3.0" + url = "https://www.gnu.org/licenses/gpl-3.0.html" + distribution = "repo" + } + } + } + } } +} + +tasks.register("publishRelease") { + group = "publishing" + description = "Publishes to the release repository" + dependsOn("publishMavenJavaPublicationToReleaseRepository") +} + +tasks.register("publishSnapshot") { + group = "publishing" + description = "Publishes to the snapshot repository" + dependsOn("publishMavenJavaSnapshotPublicationToSnapshotRepository") } \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/SelfHostHttpServer.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/SelfHostHttpServer.java index 755afe7dc..9a88c719c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/SelfHostHttpServer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/SelfHostHttpServer.java @@ -294,9 +294,8 @@ public class SelfHostHttpServer { } private boolean checkIpRateLimit(String clientIp) { - Bucket rateLimiter = ipRateLimiters.get(clientIp, k -> - Bucket.builder().addLimit(limitPerIp).build() - ); + if (limitPerIp == null) return true; + Bucket rateLimiter = ipRateLimiters.get(clientIp, k -> Bucket.builder().addLimit(limitPerIp).build()); assert rateLimiter != null; return rateLimiter.tryConsume(1); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/LazyReference.java b/core/src/main/java/net/momirealms/craftengine/core/util/LazyReference.java index 1a1fcfe89..bba794fd8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/util/LazyReference.java +++ b/core/src/main/java/net/momirealms/craftengine/core/util/LazyReference.java @@ -6,6 +6,8 @@ public interface LazyReference { T get(); + boolean initialized(); + static LazyReference lazyReference(final Supplier supplier) { return new LazyReference<>() { private T value; @@ -17,6 +19,11 @@ public interface LazyReference { } return this.value; } + + @Override + public boolean initialized() { + return this.value != null; + } }; } }