From 7542dfeed15e37cb7d2aec8085c3b3eb78ac3699 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 26 Jul 2025 23:53:11 +0800 Subject: [PATCH] fix some component issues --- .../api/action/builtin/ActionTitleNearby.java | 9 +++-- .../api/core/AbstractCustomEventListener.java | 6 ++-- .../common/helper/AdventureHelper.java | 36 ------------------- build.gradle.kts | 3 -- gradle.properties | 2 +- .../bukkit/action/PlayerActionManager.java | 28 ++++++--------- .../integration/BukkitIntegrationManager.java | 2 +- .../bukkit/item/BukkitItemManager.java | 4 +-- 8 files changed, 22 insertions(+), 68 deletions(-) diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTitleNearby.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTitleNearby.java index 924d79e..e741640 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTitleNearby.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTitleNearby.java @@ -18,7 +18,6 @@ package net.momirealms.customcrops.api.action.builtin; import dev.dejvokep.boostedyaml.block.implementation.Section; -import net.kyori.adventure.audience.Audience; import net.momirealms.customcrops.api.BukkitCustomCropsPlugin; import net.momirealms.customcrops.api.context.Context; import net.momirealms.customcrops.api.context.ContextKeys; @@ -26,6 +25,7 @@ import net.momirealms.customcrops.api.misc.value.MathValue; import net.momirealms.customcrops.api.misc.value.TextValue; import net.momirealms.customcrops.api.util.LocationUtils; import net.momirealms.customcrops.common.helper.AdventureHelper; +import net.momirealms.sparrow.heart.SparrowHeart; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -61,10 +61,9 @@ public class ActionTitleNearby extends AbstractBuiltInAction { for (Player player : location.getWorld().getPlayers()) { if (LocationUtils.getDistance(player.getLocation(), location) <= range) { context.arg(ContextKeys.TEMP_NEAR_PLAYER, player.getName()); - Audience audience = plugin.getSenderFactory().getAudience(player); - AdventureHelper.sendTitle(audience, - AdventureHelper.miniMessage(title.render(context)), - AdventureHelper.miniMessage(subtitle.render(context)), + SparrowHeart.getInstance().sendTitle(player, + AdventureHelper.componentToJson(AdventureHelper.miniMessage(title.render(context))), + AdventureHelper.componentToJson(AdventureHelper.miniMessage(subtitle.render(context))), fadeIn, stay, fadeOut ); } diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/AbstractCustomEventListener.java b/api/src/main/java/net/momirealms/customcrops/api/core/AbstractCustomEventListener.java index 41d69c4..f684dea 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/AbstractCustomEventListener.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/AbstractCustomEventListener.java @@ -17,7 +17,6 @@ package net.momirealms.customcrops.api.core; -import io.papermc.paper.event.block.BlockBreakBlockEvent; import net.momirealms.customcrops.api.BukkitCustomCropsPlugin; import net.momirealms.customcrops.api.action.ActionManager; import net.momirealms.customcrops.api.context.Context; @@ -42,7 +41,10 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Item; import org.bukkit.entity.Player; -import org.bukkit.event.*; +import org.bukkit.event.Event; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.block.*; import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.event.entity.EntityExplodeEvent; diff --git a/api/src/main/java/net/momirealms/customcrops/common/helper/AdventureHelper.java b/api/src/main/java/net/momirealms/customcrops/common/helper/AdventureHelper.java index 030e724..c5cfe43 100644 --- a/api/src/main/java/net/momirealms/customcrops/common/helper/AdventureHelper.java +++ b/api/src/main/java/net/momirealms/customcrops/common/helper/AdventureHelper.java @@ -25,9 +25,7 @@ import net.kyori.adventure.sound.Sound; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.kyori.adventure.title.Title; -import java.time.Duration; import java.util.concurrent.TimeUnit; /** @@ -103,40 +101,6 @@ public class AdventureHelper { return instance.miniMessageToJsonCache.get(miniMessage, (text) -> instance.gsonComponentSerializer.serialize(miniMessage(text))); } - /** - * Sends a title to an audience. - * - * @param audience the audience to send the title to - * @param title the title component - * @param subtitle the subtitle component - * @param fadeIn the fade-in duration in ticks - * @param stay the stay duration in ticks - * @param fadeOut the fade-out duration in ticks - */ - public static void sendTitle(Audience audience, Component title, Component subtitle, int fadeIn, int stay, int fadeOut) { - audience.showTitle(Title.title(title, subtitle, Title.Times.times(Duration.ofMillis(fadeIn * 50L), Duration.ofMillis(stay * 50L), Duration.ofMillis(fadeOut * 50L)))); - } - - /** - * Sends an action bar message to an audience. - * - * @param audience the audience to send the action bar message to - * @param actionBar the action bar component - */ - public static void sendActionBar(Audience audience, Component actionBar) { - audience.sendActionBar(actionBar); - } - - /** - * Sends a message to an audience. - * - * @param audience the audience to send the message to - * @param message the message component - */ - public static void sendMessage(Audience audience, Component message) { - audience.sendMessage(message); - } - /** * Plays a sound for an audience. * diff --git a/build.gradle.kts b/build.gradle.kts index 920ad44..65745d8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,3 @@ -import org.gradle.process.internal.ExecException -import java.io.ByteArrayOutputStream - plugins { id("java") id("com.gradleup.shadow") version "9.0.0-beta11" diff --git a/gradle.properties b/gradle.properties index eaf1de4..ff6f01b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=3.6.43 +project_version=3.6.44.1 config_version=42 project_group=net.momirealms diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/action/PlayerActionManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/action/PlayerActionManager.java index 053101b..c4a419b 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/action/PlayerActionManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/action/PlayerActionManager.java @@ -21,7 +21,6 @@ import dev.dejvokep.boostedyaml.block.implementation.Section; import net.kyori.adventure.audience.Audience; import net.kyori.adventure.key.Key; import net.kyori.adventure.sound.Sound; -import net.kyori.adventure.text.Component; import net.momirealms.customcrops.api.BukkitCustomCropsPlugin; import net.momirealms.customcrops.api.action.AbstractActionManager; import net.momirealms.customcrops.api.action.Action; @@ -95,9 +94,8 @@ public class PlayerActionManager extends AbstractActionManager { if (context.holder() == null) return; if (Math.random() > chance.evaluate(context)) return; List replaced = plugin.getPlaceholderManager().parse(context.holder(), messages, context.placeholderMap()); - Audience audience = plugin.getSenderFactory().getAudience(context.holder()); for (String text : replaced) { - audience.sendMessage(AdventureHelper.miniMessage(text)); + SparrowHeart.getInstance().sendMessage(context.holder(), AdventureHelper.componentToJson(AdventureHelper.miniMessage(text))); } }; }, "message"); @@ -108,8 +106,7 @@ public class PlayerActionManager extends AbstractActionManager { if (Math.random() > chance.evaluate(context)) return; String random = messages.get(RandomUtils.generateRandomInt(0, messages.size() - 1)); random = BukkitPlaceholderManager.getInstance().parse(context.holder(), random, context.placeholderMap()); - Audience audience = plugin.getSenderFactory().getAudience(context.holder()); - audience.sendMessage(AdventureHelper.miniMessage(random)); + SparrowHeart.getInstance().sendMessage(context.holder(), AdventureHelper.componentToJson(AdventureHelper.miniMessage(random))); }; }, "random-message"); } @@ -144,9 +141,7 @@ public class PlayerActionManager extends AbstractActionManager { return context -> { if (context.holder() == null) return; if (Math.random() > chance.evaluate(context)) return; - Audience audience = plugin.getSenderFactory().getAudience(context.holder()); - Component component = AdventureHelper.miniMessage(plugin.getPlaceholderManager().parse(context.holder(), text, context.placeholderMap())); - audience.sendActionBar(component); + SparrowHeart.getInstance().sendActionBar(context.holder(), AdventureHelper.componentToJson(AdventureHelper.miniMessage(plugin.getPlaceholderManager().parse(context.holder(), text, context.placeholderMap())))); }; }, "actionbar"); registerAction((args, chance) -> { @@ -156,8 +151,7 @@ public class PlayerActionManager extends AbstractActionManager { if (Math.random() > chance.evaluate(context)) return; String random = texts.get(RandomUtils.generateRandomInt(0, texts.size() - 1)); random = plugin.getPlaceholderManager().parse(context.holder(), random, context.placeholderMap()); - Audience audience = plugin.getSenderFactory().getAudience(context.holder()); - audience.sendActionBar(AdventureHelper.miniMessage(random)); + SparrowHeart.getInstance().sendActionBar(context.holder(), AdventureHelper.componentToJson(AdventureHelper.miniMessage(random))); }; }, "random-actionbar"); } @@ -422,10 +416,9 @@ public class PlayerActionManager extends AbstractActionManager { if (Math.random() > chance.evaluate(context)) return; final Player player = context.holder(); if (player == null) return; - Audience audience = plugin.getSenderFactory().getAudience(player); - AdventureHelper.sendTitle(audience, - AdventureHelper.miniMessage(title.render(context)), - AdventureHelper.miniMessage(subtitle.render(context)), + SparrowHeart.getInstance().sendTitle(player, + AdventureHelper.componentToJson(AdventureHelper.miniMessage(title.render(context))), + AdventureHelper.componentToJson(AdventureHelper.miniMessage(subtitle.render(context))), fadeIn, stay, fadeOut ); }; @@ -449,10 +442,9 @@ public class PlayerActionManager extends AbstractActionManager { TextValue title = TextValue.auto(titles.get(RandomUtils.generateRandomInt(0, titles.size() - 1))); TextValue subtitle = TextValue.auto(subtitles.get(RandomUtils.generateRandomInt(0, subtitles.size() - 1))); final Player player = context.holder(); - Audience audience = plugin.getSenderFactory().getAudience(player); - AdventureHelper.sendTitle(audience, - AdventureHelper.miniMessage(title.render(context)), - AdventureHelper.miniMessage(subtitle.render(context)), + SparrowHeart.getInstance().sendTitle(player, + AdventureHelper.componentToJson(AdventureHelper.miniMessage(title.render(context))), + AdventureHelper.componentToJson(AdventureHelper.miniMessage(subtitle.render(context))), fadeIn, stay, fadeOut ); }; diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/integration/BukkitIntegrationManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/integration/BukkitIntegrationManager.java index a7cbd88..da19cab 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/integration/BukkitIntegrationManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/integration/BukkitIntegrationManager.java @@ -69,7 +69,7 @@ public class BukkitIntegrationManager implements IntegrationManager { } if (isHooked("RealisticSeasons")) { registerSeasonProvider(new RealisticSeasonsProvider()); - } else if (isHooked("AdvancedSeasons", "1.4", "1.5", "1.6")) { + } else if (isHooked("AdvancedSeasons")) { registerSeasonProvider(new AdvancedSeasonsProvider()); } if (isHooked("Vault")) { diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java index 925d471..c3eb482 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java @@ -25,6 +25,7 @@ import net.momirealms.customcrops.api.core.*; import net.momirealms.customcrops.api.core.block.BreakReason; import net.momirealms.customcrops.api.core.block.CustomCropsBlock; import net.momirealms.customcrops.api.core.item.CustomCropsItem; +import net.momirealms.customcrops.api.core.mechanic.crop.CropConfig; import net.momirealms.customcrops.api.core.world.CustomCropsBlockState; import net.momirealms.customcrops.api.core.world.CustomCropsWorld; import net.momirealms.customcrops.api.core.world.Pos3; @@ -39,8 +40,8 @@ import net.momirealms.customcrops.api.util.LocationUtils; import net.momirealms.customcrops.api.util.PluginUtils; import net.momirealms.customcrops.common.helper.VersionHelper; import net.momirealms.customcrops.common.item.Item; -import org.bukkit.Registry; import org.bukkit.*; +import org.bukkit.Registry; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.Entity; @@ -526,7 +527,6 @@ public class BukkitItemManager extends AbstractItemManager { if (wrapped.hand() == EquipmentSlot.OFF_HAND && player.hasMetadata("customcrops_tick")) { List list = player.getMetadata("customcrops_tick"); if (!list.isEmpty() && player.getTicksLived() == list.get(0).asInt()) { - player.removeMetadata("customcrops_tick", plugin.getBootstrap()); return; } }