From 208488d401a412c3072e51cf3fce09793cbab669 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Thu, 3 Apr 2025 05:09:23 +0800 Subject: [PATCH] add ahocorasick --- bukkit/build.gradle.kts | 1 + bukkit/loader/build.gradle.kts | 1 + bukkit/loader/src/main/resources/craft-engine.properties | 3 ++- client-mod/build.gradle.kts | 2 +- core/build.gradle.kts | 3 +++ .../momirealms/craftengine/core/item/ItemBuildContext.java | 2 +- .../momirealms/craftengine/core/plugin/CraftEngine.java | 3 ++- .../craftengine/core/plugin/dependency/Dependencies.java | 7 +++++++ .../plugin/locale/MiniMessageTranslationRegistryImpl.java | 6 +++--- .../core/plugin/{ => text}/minimessage/I18NTag.java | 2 +- .../core/plugin/{ => text}/minimessage/ImageTag.java | 2 +- .../plugin/{ => text}/minimessage/IndexedArgumentTag.java | 2 +- .../{ => text}/minimessage/MiniMessageTextContext.java | 2 +- .../plugin/{ => text}/minimessage/NamedArgumentTag.java | 2 +- .../core/plugin/{ => text}/minimessage/PlaceholderTag.java | 2 +- .../core/plugin/{ => text}/minimessage/ShiftTag.java | 2 +- gradle.properties | 1 + server-mod/build.gradle.kts | 4 ++-- 18 files changed, 31 insertions(+), 16 deletions(-) rename core/src/main/java/net/momirealms/craftengine/core/plugin/{ => text}/minimessage/I18NTag.java (95%) rename core/src/main/java/net/momirealms/craftengine/core/plugin/{ => text}/minimessage/ImageTag.java (97%) rename core/src/main/java/net/momirealms/craftengine/core/plugin/{ => text}/minimessage/IndexedArgumentTag.java (96%) rename core/src/main/java/net/momirealms/craftengine/core/plugin/{ => text}/minimessage/MiniMessageTextContext.java (79%) rename core/src/main/java/net/momirealms/craftengine/core/plugin/{ => text}/minimessage/NamedArgumentTag.java (96%) rename core/src/main/java/net/momirealms/craftengine/core/plugin/{ => text}/minimessage/PlaceholderTag.java (95%) rename core/src/main/java/net/momirealms/craftengine/core/plugin/{ => text}/minimessage/ShiftTag.java (95%) diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts index 7b21b01a6..d2e52a736 100644 --- a/bukkit/build.gradle.kts +++ b/bukkit/build.gradle.kts @@ -93,6 +93,7 @@ tasks { 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") } } diff --git a/bukkit/loader/build.gradle.kts b/bukkit/loader/build.gradle.kts index 9c093d371..20a743b2a 100644 --- a/bukkit/loader/build.gradle.kts +++ b/bukkit/loader/build.gradle.kts @@ -72,5 +72,6 @@ tasks { 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") } } diff --git a/bukkit/loader/src/main/resources/craft-engine.properties b/bukkit/loader/src/main/resources/craft-engine.properties index 496fba7c7..1972baa7d 100644 --- a/bukkit/loader/src/main/resources/craft-engine.properties +++ b/bukkit/loader/src/main/resources/craft-engine.properties @@ -25,4 +25,5 @@ snake-yaml=${snake_yaml_version} adventure-text-minimessage=${adventure_bundle_version} adventure-text-serializer-gson=${adventure_bundle_version} adventure-text-serializer-json=${adventure_bundle_version} -netty-codec-http=${netty_version} \ No newline at end of file +netty-codec-http=${netty_version} +ahocorasick=${ahocorasick_version} \ No newline at end of file diff --git a/client-mod/build.gradle.kts b/client-mod/build.gradle.kts index e662f9c3e..0b2b01c08 100644 --- a/client-mod/build.gradle.kts +++ b/client-mod/build.gradle.kts @@ -40,7 +40,7 @@ tasks.remapJar { inputFile.set(tasks.shadowJar.get().archiveFile) destinationDirectory.set(file("$rootDir/target")) - archiveFileName.set("${base.archivesName.get()}-${project.version}.jar") + archiveFileName.set("${base.archivesName.get()}-${project.version}+${rootProject.properties["latest_minecraft_version"]}.jar") } loom { diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 5099cf31c..0770ba058 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -49,6 +49,8 @@ dependencies { compileOnly("commons-io:commons-io:${rootProject.properties["commons_io_version"]}") // Data Fixer Upper compileOnly("com.mojang:datafixerupper:${rootProject.properties["datafixerupper_version"]}") + // Aho-Corasick java implementation + compileOnly("org.ahocorasick:ahocorasick:${rootProject.properties["ahocorasick_version"]}") } java { @@ -75,6 +77,7 @@ tasks { relocate("com.saicone.rtag", "net.momirealms.craftengine.libraries.rtag") relocate("org.yaml.snakeyaml", "net.momirealms.craftengine.libraries.snakeyaml") relocate("net.kyori", "net.momirealms.craftengine.libraries") + relocate("org.ahocorasick", "net.momirealms.craftengine.libraries.ahocorasick") relocate("net.momirealms.sparrow.nbt", "net.momirealms.craftengine.libraries.nbt") } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/ItemBuildContext.java b/core/src/main/java/net/momirealms/craftengine/core/item/ItemBuildContext.java index aeb808506..2c77dcbd9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/ItemBuildContext.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/ItemBuildContext.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.item; import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import net.momirealms.craftengine.core.entity.player.Player; -import net.momirealms.craftengine.core.plugin.minimessage.*; +import net.momirealms.craftengine.core.plugin.text.minimessage.*; import net.momirealms.craftengine.core.util.context.ContextHolder; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; 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 36e73985e..684fee835 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 @@ -203,7 +203,8 @@ public abstract class CraftEngine implements Plugin { Dependencies.BOOSTED_YAML, Dependencies.MINIMESSAGE, Dependencies.TEXT_SERIALIZER_GSON, - Dependencies.TEXT_SERIALIZER_JSON + Dependencies.TEXT_SERIALIZER_JSON, + Dependencies.AHO_CORASICK ); } 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 d686ecf8d..710afff74 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 @@ -207,4 +207,11 @@ public class Dependencies { "adventure-text-serializer-json", List.of(Relocation.of("adventure", "net{}kyori{}adventure")) ); + public static final Dependency AHO_CORASICK = new Dependency( + "ahocorasick", + "org{}ahocorasick", + "ahocorasick", + "aho-corasick", + List.of(Relocation.of("ahocorasick", "org{}ahocorasick")) + ); } \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/MiniMessageTranslationRegistryImpl.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/MiniMessageTranslationRegistryImpl.java index 689f4b715..83e6b85a9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/MiniMessageTranslationRegistryImpl.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/MiniMessageTranslationRegistryImpl.java @@ -8,9 +8,9 @@ import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.util.TriState; import net.kyori.examination.Examinable; import net.kyori.examination.ExaminableProperty; -import net.momirealms.craftengine.core.plugin.minimessage.ImageTag; -import net.momirealms.craftengine.core.plugin.minimessage.IndexedArgumentTag; -import net.momirealms.craftengine.core.plugin.minimessage.ShiftTag; +import net.momirealms.craftengine.core.plugin.text.minimessage.ImageTag; +import net.momirealms.craftengine.core.plugin.text.minimessage.IndexedArgumentTag; +import net.momirealms.craftengine.core.plugin.text.minimessage.ShiftTag; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/I18NTag.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/I18NTag.java similarity index 95% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/I18NTag.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/I18NTag.java index 2af7a01e9..c805a98d6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/I18NTag.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/I18NTag.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.minimessage; +package net.momirealms.craftengine.core.plugin.text.minimessage; import net.kyori.adventure.text.minimessage.Context; import net.kyori.adventure.text.minimessage.ParsingException; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/ImageTag.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/ImageTag.java similarity index 97% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/ImageTag.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/ImageTag.java index 6e129bfcd..4e726e415 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/ImageTag.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/ImageTag.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.minimessage; +package net.momirealms.craftengine.core.plugin.text.minimessage; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.Context; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/IndexedArgumentTag.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/IndexedArgumentTag.java similarity index 96% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/IndexedArgumentTag.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/IndexedArgumentTag.java index 10d887af8..5b8c768dc 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/IndexedArgumentTag.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/IndexedArgumentTag.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.minimessage; +package net.momirealms.craftengine.core.plugin.text.minimessage; import net.kyori.adventure.text.ComponentLike; import net.kyori.adventure.text.minimessage.Context; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/MiniMessageTextContext.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/MiniMessageTextContext.java similarity index 79% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/MiniMessageTextContext.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/MiniMessageTextContext.java index 63129ca8d..e9ea34494 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/MiniMessageTextContext.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/MiniMessageTextContext.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.minimessage; +package net.momirealms.craftengine.core.plugin.text.minimessage; import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import net.momirealms.craftengine.core.util.context.ContextHolder; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/NamedArgumentTag.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/NamedArgumentTag.java similarity index 96% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/NamedArgumentTag.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/NamedArgumentTag.java index 06fcd663c..e63f82acd 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/NamedArgumentTag.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/NamedArgumentTag.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.minimessage; +package net.momirealms.craftengine.core.plugin.text.minimessage; import net.kyori.adventure.text.minimessage.Context; import net.kyori.adventure.text.minimessage.ParsingException; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/PlaceholderTag.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java similarity index 95% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/PlaceholderTag.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java index 3c78280a5..d8c478d66 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/PlaceholderTag.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.minimessage; +package net.momirealms.craftengine.core.plugin.text.minimessage; import net.kyori.adventure.text.minimessage.Context; import net.kyori.adventure.text.minimessage.ParsingException; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/ShiftTag.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/ShiftTag.java similarity index 95% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/ShiftTag.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/ShiftTag.java index 633c22b8f..0240c25fe 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/minimessage/ShiftTag.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/ShiftTag.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.minimessage; +package net.momirealms.craftengine.core.plugin.text.minimessage; import net.kyori.adventure.text.minimessage.Context; import net.kyori.adventure.text.minimessage.ParsingException; diff --git a/gradle.properties b/gradle.properties index 005ca4cf7..660e66ce0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -47,6 +47,7 @@ joml_version=1.10.8 datafixerupper_version=1.0.20 mojang_brigadier_version=1.0.18 byte_buddy_version=1.15.11 +ahocorasick_version=0.6.3 snake_yaml_version=2.3 anti_grief_version=0.13 nms_helper_version=0.34 diff --git a/server-mod/build.gradle.kts b/server-mod/build.gradle.kts index f407dd6fe..dc788e3d7 100644 --- a/server-mod/build.gradle.kts +++ b/server-mod/build.gradle.kts @@ -15,7 +15,7 @@ repositories { dependencies { implementation(project(":shared")) remapper("net.fabricmc:tiny-remapper:${rootProject.properties["tiny_remapper_version"]}:fat") - paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:${property("latest_minecraft_version")}-R0.1-SNAPSHOT") + paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:${rootProject.properties["latest_minecraft_version"]}-R0.1-SNAPSHOT") compileOnly("space.vectrix.ignite:ignite-api:${rootProject.properties["ignite_version"]}") compileOnly("net.fabricmc:sponge-mixin:${rootProject.properties["mixin_version"]}") compileOnly("io.github.llamalad7:mixinextras-common:${rootProject.properties["mixinextras_version"]}") @@ -44,7 +44,7 @@ artifacts { tasks { shadowJar { archiveClassifier = "" - archiveFileName = "${rootProject.name}-ignite-mod-${rootProject.properties["project_version"]}.jar" + archiveFileName = "${rootProject.name}-ignite-mod-${rootProject.properties["project_version"]}+${rootProject.properties["latest_minecraft_version"]}.jar" destinationDirectory.set(file("$rootDir/target")) } }