From 2f215e2140167e6bb278657e9895918179ed1259 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Tue, 20 May 2025 05:34:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=89=93=E5=8C=85=E8=BF=9B?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E6=9C=AC=E4=BD=93=E7=9A=84adventure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bukkit/loader/build.gradle.kts | 1 - .../main/resources/craft-engine.properties | 7 +- .../bukkit/block/BlockEventListener.java | 2 +- .../bukkit/block/BukkitCustomBlock.java | 7 +- .../furniture/BukkitFurnitureManager.java | 2 +- .../bukkit/item/BukkitCustomItem.java | 2 +- .../item/behavior/BlockItemBehavior.java | 2 +- .../item/behavior/FurnitureItemBehavior.java | 2 +- .../item/listener/ItemEventListener.java | 2 +- .../plugin/command/BukkitSenderFactory.java | 20 +-- .../plugin/network/PacketConsumers.java | 2 +- .../bukkit/util/ComponentUtils.java | 4 + core/build.gradle.kts | 3 +- .../core/block/AbstractCustomBlock.java | 2 +- .../craftengine/core/block/CustomBlock.java | 3 +- .../entity/furniture/CustomFurniture.java | 2 +- .../core/item/AbstractCustomItem.java | 2 +- .../craftengine/core/item/CustomItem.java | 3 +- .../craftengine/core/plugin/CraftEngine.java | 5 +- .../plugin/command/sender/SenderFactory.java | 5 +- .../core/plugin/dependency/Dependencies.java | 134 ++++++++++++++++-- 21 files changed, 164 insertions(+), 48 deletions(-) diff --git a/bukkit/loader/build.gradle.kts b/bukkit/loader/build.gradle.kts index 5085f47dc..f90ee42e0 100644 --- a/bukkit/loader/build.gradle.kts +++ b/bukkit/loader/build.gradle.kts @@ -21,7 +21,6 @@ dependencies { implementation(project(":bukkit:compatibility")) implementation(project(":bukkit:compatibility:legacy")) - implementation("net.kyori:adventure-platform-bukkit:${rootProject.properties["adventure_platform_version"]}") implementation("com.saicone.rtag:rtag-item:${rootProject.properties["rtag_version"]}") implementation("net.momirealms:sparrow-util:${rootProject.properties["sparrow_util_version"]}") implementation("net.momirealms:antigrieflib:${rootProject.properties["anti_grief_version"]}") diff --git a/bukkit/loader/src/main/resources/craft-engine.properties b/bukkit/loader/src/main/resources/craft-engine.properties index 9e875e126..d8ee70d9f 100644 --- a/bukkit/loader/src/main/resources/craft-engine.properties +++ b/bukkit/loader/src/main/resources/craft-engine.properties @@ -23,10 +23,9 @@ commons-io=${commons_io_version} commons-imaging=${commons_imaging_version} byte-buddy=${byte_buddy_version} 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} -adventure-text-serializer-json-legacy-impl=${adventure_bundle_version} +examination-api=1.3.0 +option=1.1.0 +adventure-api=${adventure_bundle_version} netty-codec-http=${netty_version} ahocorasick=${ahocorasick_version} lz4=${lz4_version} diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java index bc80b371d..436a2d9df 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java @@ -17,8 +17,8 @@ import net.momirealms.craftengine.core.loot.LootTable; import net.momirealms.craftengine.core.plugin.config.Config; import net.momirealms.craftengine.core.plugin.context.ContextHolder; import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext; -import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.plugin.context.event.EventTrigger; +import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.util.Cancellable; import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.craftengine.core.world.BlockPos; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitCustomBlock.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitCustomBlock.java index b6d0d7441..443c63c44 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitCustomBlock.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitCustomBlock.java @@ -10,8 +10,8 @@ import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.loot.LootTable; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext; -import net.momirealms.craftengine.core.plugin.context.function.Function; import net.momirealms.craftengine.core.plugin.context.event.EventTrigger; +import net.momirealms.craftengine.core.plugin.context.function.Function; import net.momirealms.craftengine.core.registry.BuiltInRegistries; import net.momirealms.craftengine.core.registry.Holder; import net.momirealms.craftengine.core.registry.WritableRegistry; @@ -26,7 +26,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.lang.reflect.Field; -import java.util.*; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; public class BukkitCustomBlock extends AbstractCustomBlock { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java index 621a03733..64ea33f4b 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java @@ -17,9 +17,9 @@ import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.plugin.config.Config; import net.momirealms.craftengine.core.plugin.config.ConfigParser; import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext; -import net.momirealms.craftengine.core.plugin.context.function.Function; import net.momirealms.craftengine.core.plugin.context.event.EventFunctions; import net.momirealms.craftengine.core.plugin.context.event.EventTrigger; +import net.momirealms.craftengine.core.plugin.context.function.Function; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.sound.SoundData; import net.momirealms.craftengine.core.util.Key; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/BukkitCustomItem.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/BukkitCustomItem.java index f117a6990..241646d22 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/BukkitCustomItem.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/BukkitCustomItem.java @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.item.*; import net.momirealms.craftengine.core.item.behavior.ItemBehavior; import net.momirealms.craftengine.core.item.modifier.ItemDataModifier; import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext; -import net.momirealms.craftengine.core.plugin.context.function.Function; import net.momirealms.craftengine.core.plugin.context.event.EventTrigger; +import net.momirealms.craftengine.core.plugin.context.function.Function; import net.momirealms.craftengine.core.registry.Holder; import net.momirealms.craftengine.core.util.Key; import org.bukkit.Material; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java index 05edf3460..4f4f19cf8 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java @@ -25,8 +25,8 @@ import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.config.Config; import net.momirealms.craftengine.core.plugin.context.ContextHolder; import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext; -import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.plugin.context.event.EventTrigger; +import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Cancellable; import net.momirealms.craftengine.core.util.Direction; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FurnitureItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FurnitureItemBehavior.java index 4e8238e2d..f42317250 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FurnitureItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FurnitureItemBehavior.java @@ -23,8 +23,8 @@ import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.context.ContextHolder; import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext; -import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.plugin.context.event.EventTrigger; +import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.*; import net.momirealms.craftengine.core.world.Vec3d; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/listener/ItemEventListener.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/listener/ItemEventListener.java index f602e34e1..3ac9d8823 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/listener/ItemEventListener.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/listener/ItemEventListener.java @@ -16,8 +16,8 @@ import net.momirealms.craftengine.core.item.behavior.ItemBehavior; import net.momirealms.craftengine.core.item.context.UseOnContext; import net.momirealms.craftengine.core.plugin.context.ContextHolder; import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext; -import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.plugin.context.event.EventTrigger; +import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.util.Cancellable; import net.momirealms.craftengine.core.util.Direction; import net.momirealms.craftengine.core.world.BlockHitResult; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitSenderFactory.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitSenderFactory.java index a9a2ba020..4725c79eb 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitSenderFactory.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitSenderFactory.java @@ -1,8 +1,7 @@ package net.momirealms.craftengine.bukkit.plugin.command; -import net.kyori.adventure.audience.Audience; -import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import net.momirealms.craftengine.bukkit.nms.FastNMS; import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; import net.momirealms.craftengine.bukkit.util.ComponentUtils; @@ -18,11 +17,9 @@ import org.bukkit.entity.Player; import java.util.UUID; public class BukkitSenderFactory extends SenderFactory { - private final BukkitAudiences audiences; public BukkitSenderFactory(BukkitCraftEngine plugin) { super(plugin); - this.audiences = BukkitAudiences.create(plugin.bootstrap()); } @Override @@ -41,20 +38,18 @@ public class BukkitSenderFactory extends SenderFactory audience(sender).sendMessage(message)); + String legacy = LegacyComponentSerializer.legacySection().serialize(message); + plugin().scheduler().sync().run(() -> sender.sendMessage(legacy)); } } @@ -93,6 +88,5 @@ public class BukkitSenderFactory extends SenderFactory { protected abstract String name(T sender); - protected abstract Audience audience(T sender); - protected abstract void sendMessage(T sender, Component message); protected abstract Tristate permissionState(T sender, String node); @@ -44,7 +41,7 @@ public abstract class SenderFactory

{ } public Sender console() { - return console; + return this.console; } public Sender wrap(C sender) { 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 2499f83d8..c5c54940d 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 @@ -200,37 +200,155 @@ public class Dependencies { List.of(Relocation.of("snakeyaml", "org{}yaml{}snakeyaml")) ); + public static final Dependency OPTION = new Dependency( + "option", + "net{}kyori", + "option", + "option", + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ); + + public static final Dependency ADVENTURE_API = new Dependency( + "adventure-api", + "net{}kyori", + "adventure-api", + "adventure-api", + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ); + + public static final Dependency ADVENTURE_KEY = new Dependency( + "adventure-key", + "net{}kyori", + "adventure-key", + "adventure-key", + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ) { + @Override + public String getVersion() { + return ADVENTURE_API.getVersion(); + } + }; + + public static final Dependency EXAMINATION_API = new Dependency( + "examination-api", + "net{}kyori", + "examination-api", + "examination-api", + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ); + + public static final Dependency EXAMINATION_STRING = new Dependency( + "examination-string", + "net{}kyori", + "examination-string", + "examination-string", + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ) { + @Override + public String getVersion() { + return EXAMINATION_API.getVersion(); + } + }; + public static final Dependency MINIMESSAGE = new Dependency( "adventure-text-minimessage", "net{}kyori", "adventure-text-minimessage", "adventure-text-minimessage", - List.of(Relocation.of("adventure", "net{}kyori{}adventure")) - ); + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ) { + @Override + public String getVersion() { + return ADVENTURE_API.getVersion(); + } + }; + + public static final Dependency TEXT_SERIALIZER_COMMONS = new Dependency( + "adventure-text-serializer-commons", + "net{}kyori", + "adventure-text-serializer-commons", + "adventure-text-serializer-commons", + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ) { + @Override + public String getVersion() { + return ADVENTURE_API.getVersion(); + } + }; public static final Dependency TEXT_SERIALIZER_GSON = new Dependency( "adventure-text-serializer-gson", "net{}kyori", "adventure-text-serializer-gson", "adventure-text-serializer-gson", - List.of(Relocation.of("adventure", "net{}kyori{}adventure")) - ); + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ) { + @Override + public String getVersion() { + return ADVENTURE_API.getVersion(); + } + }; public static final Dependency TEXT_SERIALIZER_GSON_LEGACY = new Dependency( "adventure-text-serializer-json-legacy-impl", "net{}kyori", "adventure-text-serializer-json-legacy-impl", "adventure-text-serializer-json-legacy-impl", - List.of(Relocation.of("adventure", "net{}kyori{}adventure")) - ); + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ) { + @Override + public String getVersion() { + return ADVENTURE_API.getVersion(); + } + }; + + public static final Dependency TEXT_SERIALIZER_LEGACY = new Dependency( + "adventure-text-serializer-legacy", + "net{}kyori", + "adventure-text-serializer-legacy", + "adventure-text-serializer-legacy", + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ) { + @Override + public String getVersion() { + return ADVENTURE_API.getVersion(); + } + }; public static final Dependency TEXT_SERIALIZER_JSON = new Dependency( "adventure-text-serializer-json", "net{}kyori", "adventure-text-serializer-json", "adventure-text-serializer-json", - List.of(Relocation.of("adventure", "net{}kyori{}adventure")) - ); + List.of(Relocation.of("option", "net{}kyori{}option"), + Relocation.of("examination", "net{}kyori{}examination"), + Relocation.of("adventure", "net{}kyori{}adventure")) + ) { + @Override + public String getVersion() { + return ADVENTURE_API.getVersion(); + } + }; public static final Dependency AHO_CORASICK = new Dependency( "ahocorasick",