From 11642aa1ad15322935b0166d8ae4bad2cd9482f8 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sun, 4 May 2025 03:17:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9C=80=E8=A6=81=E6=97=B6=E6=89=8D=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E9=83=A8=E5=88=86=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bukkit/build.gradle.kts | 2 +- bukkit/loader/build.gradle.kts | 2 +- .../main/resources/craft-engine.properties | 3 +- core/build.gradle.kts | 7 ++- .../core/pack/host/ResourcePackHosts.java | 2 +- .../core/pack/host/impl/S3HostFactory.java | 54 +++++++++++++++++++ .../craftengine/core/plugin/CraftEngine.java | 37 +------------ .../core/plugin/dependency/Dependencies.java | 8 +++ gradle.properties | 1 + 9 files changed, 76 insertions(+), 40 deletions(-) create mode 100644 core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/S3HostFactory.java diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts index 92915efaf..607fff3b3 100644 --- a/bukkit/build.gradle.kts +++ b/bukkit/build.gradle.kts @@ -91,10 +91,10 @@ tasks { relocate("org.apache.commons.io", "net.momirealms.craftengine.libraries.commons.io") relocate("org.bstats", "net.momirealms.craftengine.libraries.bstats") relocate("com.github.benmanes.caffeine", "net.momirealms.craftengine.libraries.caffeine") - relocate("net.objecthunter.exp4j", "net.momirealms.craftengine.libraries.exp4j") relocate("net.bytebuddy", "net.momirealms.craftengine.libraries.bytebuddy") relocate("org.yaml.snakeyaml", "net.momirealms.craftengine.libraries.snakeyaml") relocate("org.ahocorasick", "net.momirealms.craftengine.libraries.ahocorasick") + relocate("com.ezylang.evalex", "net.momirealms.craftengine.libraries.evalex") } } diff --git a/bukkit/loader/build.gradle.kts b/bukkit/loader/build.gradle.kts index a373bbeff..dae694cd2 100644 --- a/bukkit/loader/build.gradle.kts +++ b/bukkit/loader/build.gradle.kts @@ -71,7 +71,7 @@ tasks { relocate("org.apache.commons.io", "net.momirealms.craftengine.libraries.commons.io") relocate("org.bstats", "net.momirealms.craftengine.libraries.bstats") relocate("com.github.benmanes.caffeine", "net.momirealms.craftengine.libraries.caffeine") - relocate("net.objecthunter.exp4j", "net.momirealms.craftengine.libraries.exp4j") + relocate("com.ezylang.evalex", "net.momirealms.craftengine.libraries.evalex") relocate("net.bytebuddy", "net.momirealms.craftengine.libraries.bytebuddy") relocate("org.yaml.snakeyaml", "net.momirealms.craftengine.libraries.snakeyaml") relocate("org.ahocorasick", "net.momirealms.craftengine.libraries.ahocorasick") diff --git a/bukkit/loader/src/main/resources/craft-engine.properties b/bukkit/loader/src/main/resources/craft-engine.properties index 5901f43dd..c94d83fa0 100644 --- a/bukkit/loader/src/main/resources/craft-engine.properties +++ b/bukkit/loader/src/main/resources/craft-engine.properties @@ -32,4 +32,5 @@ lz4=${lz4_version} netty-codec-http2=${netty_version} reactive-streams=${reactive_streams_version} amazon-sdk-s3=${amazon_awssdk_version} -amazon-sdk-eventstream=${amazon_awssdk_eventstream_version} \ No newline at end of file +amazon-sdk-eventstream=${amazon_awssdk_eventstream_version} +evalex=${evalex_version} \ No newline at end of file diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 0ba9d3b0a..83e995a17 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -52,8 +52,12 @@ dependencies { // Aho-Corasick java implementation compileOnly("org.ahocorasick:ahocorasick:${rootProject.properties["ahocorasick_version"]}") // Amazon S3 - compileOnly("software.amazon.awssdk:s3:${rootProject.properties["amazon_awssdk_version"]}") + compileOnly("software.amazon.awssdk:s3:${rootProject.properties["amazon_awssdk_version"]}") { + + } compileOnly("software.amazon.awssdk:netty-nio-client:${rootProject.properties["amazon_awssdk_version"]}") + // EvalEx + compileOnly("com.ezylang:EvalEx:${rootProject.properties["evalex_version"]}") } java { @@ -85,6 +89,7 @@ tasks { relocate("net.jpountz", "net.momirealms.craftengine.libraries.jpountz") // lz4 relocate("software.amazon.awssdk", "net.momirealms.craftengine.libraries.awssdk") // awssdk relocate("software.amazon.eventstream", "net.momirealms.craftengine.libraries.eventstream") // awssdk + relocate("com.ezylang.evalex", "net.momirealms.craftengine.libraries.evalex") } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java index ccf56c684..3c88658fd 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java @@ -27,7 +27,7 @@ public class ResourcePackHosts { register(SELF, SelfHost.FACTORY); register(EXTERNAL, ExternalHost.FACTORY); register(LOBFILE, LobFileHost.FACTORY); - register(S3, S3Host.FACTORY); + register(S3, S3HostFactory.INSTANCE); register(ALIST, AlistHost.FACTORY); register(DROPBOX, DropboxHost.FACTORY); register(ONEDRIVE, OneDriveHost.FACTORY); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/S3HostFactory.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/S3HostFactory.java new file mode 100644 index 000000000..5de2fa3b0 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/S3HostFactory.java @@ -0,0 +1,54 @@ +package net.momirealms.craftengine.core.pack.host.impl; + +import net.momirealms.craftengine.core.pack.host.ResourcePackHost; +import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; +import net.momirealms.craftengine.core.plugin.CraftEngine; +import net.momirealms.craftengine.core.plugin.dependency.Dependencies; + +import java.util.List; +import java.util.Map; + +public class S3HostFactory implements ResourcePackHostFactory { + public static final S3HostFactory INSTANCE = new S3HostFactory(); + + @Override + public ResourcePackHost create(Map arguments) { + CraftEngine.instance().dependencyManager().loadDependencies( + List.of( + Dependencies.NETTY_HTTP, + Dependencies.NETTY_HTTP2, + Dependencies.REACTIVE_STREAMS, + Dependencies.AMAZON_AWSSDK_S3, + Dependencies.AMAZON_AWSSDK_NETTY_NIO_CLIENT, + Dependencies.AMAZON_AWSSDK_SDK_CORE, + Dependencies.AMAZON_AWSSDK_AUTH, + Dependencies.AMAZON_AWSSDK_REGIONS, + Dependencies.AMAZON_AWSSDK_IDENTITY_SPI, + Dependencies.AMAZON_AWSSDK_HTTP_CLIENT_SPI, + Dependencies.AMAZON_AWSSDK_PROTOCOL_CORE, + Dependencies.AMAZON_AWSSDK_AWS_XML_PROTOCOL, + Dependencies.AMAZON_AWSSDK_JSON_UTILS, + Dependencies.AMAZON_AWSSDK_AWS_CORE, + Dependencies.AMAZON_AWSSDK_UTILS, + Dependencies.AMAZON_AWSSDK_ANNOTATIONS, + Dependencies.AMAZON_AWSSDK_CRT_CORE, + Dependencies.AMAZON_AWSSDK_CHECKSUMS, + Dependencies.AMAZON_EVENTSTREAM, + Dependencies.AMAZON_AWSSDK_PROFILES, + Dependencies.AMAZON_AWSSDK_RETRIES, + Dependencies.AMAZON_AWSSDK_ENDPOINTS_SPI, + Dependencies.AMAZON_AWSSDK_ARNS, + Dependencies.AMAZON_AWSSDK_AWS_QUERY_PROTOCOL, + Dependencies.AMAZON_AWSSDK_HTTP_AUTH_AWS, + Dependencies.AMAZON_AWSSDK_HTTP_AUTH_SPI, + Dependencies.AMAZON_AWSSDK_HTTP_AUTH, + Dependencies.AMAZON_AWSSDK_HTTP_AUTH_AWS_EVENTSTREAM, + Dependencies.AMAZON_AWSSDK_CHECKSUMS_SPI, + Dependencies.AMAZON_AWSSDK_RETRIES_SPI, + Dependencies.AMAZON_AWSSDK_METRICS_SPI, + Dependencies.AMAZON_AWSSDK_THIRD_PARTY_JACKSON_CORE + ) + ); + return S3Host.FACTORY.create(arguments); + } +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/CraftEngine.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/CraftEngine.java index af0e3fed0..83feda34f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/CraftEngine.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/CraftEngine.java @@ -287,49 +287,16 @@ public abstract class CraftEngine implements Plugin { Dependencies.GEANTY_REF, Dependencies.CLOUD_CORE, Dependencies.CLOUD_SERVICES, Dependencies.GSON, - Dependencies.SLF4J_API, Dependencies.SLF4J_SIMPLE, Dependencies.COMMONS_IO, Dependencies.ZSTD, Dependencies.BYTE_BUDDY, Dependencies.SNAKE_YAML, Dependencies.BOOSTED_YAML, Dependencies.MINIMESSAGE, - Dependencies.TEXT_SERIALIZER_GSON, Dependencies.TEXT_SERIALIZER_GSON_LEGACY, - Dependencies.TEXT_SERIALIZER_JSON, + Dependencies.TEXT_SERIALIZER_GSON, Dependencies.TEXT_SERIALIZER_GSON_LEGACY, Dependencies.TEXT_SERIALIZER_JSON, Dependencies.AHO_CORASICK, Dependencies.LZ4, - Dependencies.NETTY_HTTP, - Dependencies.NETTY_HTTP2, - Dependencies.REACTIVE_STREAMS, - Dependencies.AMAZON_AWSSDK_S3, - Dependencies.AMAZON_AWSSDK_NETTY_NIO_CLIENT, - Dependencies.AMAZON_AWSSDK_SDK_CORE, - Dependencies.AMAZON_AWSSDK_AUTH, - Dependencies.AMAZON_AWSSDK_REGIONS, - Dependencies.AMAZON_AWSSDK_IDENTITY_SPI, - Dependencies.AMAZON_AWSSDK_HTTP_CLIENT_SPI, - Dependencies.AMAZON_AWSSDK_PROTOCOL_CORE, - Dependencies.AMAZON_AWSSDK_AWS_XML_PROTOCOL, - Dependencies.AMAZON_AWSSDK_JSON_UTILS, - Dependencies.AMAZON_AWSSDK_AWS_CORE, - Dependencies.AMAZON_AWSSDK_UTILS, - Dependencies.AMAZON_AWSSDK_ANNOTATIONS, - Dependencies.AMAZON_AWSSDK_CRT_CORE, - Dependencies.AMAZON_AWSSDK_CHECKSUMS, - Dependencies.AMAZON_EVENTSTREAM, - Dependencies.AMAZON_AWSSDK_PROFILES, - Dependencies.AMAZON_AWSSDK_RETRIES, - Dependencies.AMAZON_AWSSDK_ENDPOINTS_SPI, - Dependencies.AMAZON_AWSSDK_ARNS, - Dependencies.AMAZON_AWSSDK_AWS_QUERY_PROTOCOL, - Dependencies.AMAZON_AWSSDK_HTTP_AUTH_AWS, - Dependencies.AMAZON_AWSSDK_HTTP_AUTH_SPI, - Dependencies.AMAZON_AWSSDK_HTTP_AUTH, - Dependencies.AMAZON_AWSSDK_HTTP_AUTH_AWS_EVENTSTREAM, - Dependencies.AMAZON_AWSSDK_CHECKSUMS_SPI, - Dependencies.AMAZON_AWSSDK_RETRIES_SPI, - Dependencies.AMAZON_AWSSDK_METRICS_SPI, - Dependencies.AMAZON_AWSSDK_THIRD_PARTY_JACKSON_CORE + Dependencies.EVALEX ); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/dependency/Dependencies.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/dependency/Dependencies.java index 1859a2847..285430f15 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/dependency/Dependencies.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/dependency/Dependencies.java @@ -248,6 +248,14 @@ public class Dependencies { List.of(Relocation.of("jpountz", "net{}jpountz")) ); + public static final Dependency EVALEX = new Dependency( + "evalex", + "com{}ezylang", + "EvalEx", + "evalex", + List.of(Relocation.of("evalex", "com{}ezylang{}evalex")) + ); + public static final Dependency NETTY_HTTP = new Dependency( "netty-codec-http", "io{}netty", diff --git a/gradle.properties b/gradle.properties index 4783415e2..69b28ee28 100644 --- a/gradle.properties +++ b/gradle.properties @@ -51,6 +51,7 @@ ahocorasick_version=0.6.3 snake_yaml_version=2.4 anti_grief_version=0.15 nms_helper_version=0.64.5 +evalex_version=3.5.0 reactive_streams_version=1.0.4 amazon_awssdk_version=2.31.23 amazon_awssdk_eventstream_version=1.0.1