diff --git a/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/FishingGears.java b/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/FishingGears.java index 70ed0de9..b92fd78c 100644 --- a/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/FishingGears.java +++ b/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/FishingGears.java @@ -301,6 +301,23 @@ public class FishingGears { wrapped.removeTag("CustomFishing", "hook_id"); wrapped.removeTag("CustomFishing", "hook_stack"); wrapped.removeTag("CustomFishing", "hook_max_damage"); + List durabilityLore = new ArrayList<>(); + List newLore = new ArrayList<>(); + List previousLore = wrapped.lore().orElse(new ArrayList<>()); + for (String previous : previousLore) { + Component component = AdventureHelper.jsonToComponent(previous); + if (component instanceof ScoreComponent scoreComponent && scoreComponent.name().equals("cf")) { + if (scoreComponent.objective().equals("hook")) { + continue; + } else if (scoreComponent.objective().equals("durability")) { + durabilityLore.add(previous); + continue; + } + } + newLore.add(previous); + } + newLore.addAll(durabilityLore); + wrapped.lore(newLore); BukkitCustomFishingPlugin.getInstance().getSenderFactory().getAudience(context.getHolder()).playSound(Sound.sound(Key.key("minecraft:entity.item.break"), Sound.Source.PLAYER, 1, 1)); } else { wrapped.setTag(hookDamage, "CustomFishing", "hook_damage"); diff --git a/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CustomFishingItemProvider.java b/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CustomFishingItemProvider.java index aa3b4aea..3afaded0 100644 --- a/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CustomFishingItemProvider.java +++ b/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CustomFishingItemProvider.java @@ -20,6 +20,7 @@ package net.momirealms.customfishing.bukkit.integration.item; import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; import net.momirealms.customfishing.api.integration.ItemProvider; import net.momirealms.customfishing.api.mechanic.context.Context; +import net.momirealms.customfishing.api.mechanic.context.ContextKeys; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -45,7 +46,7 @@ public class CustomFishingItemProvider implements ItemProvider { // CustomFishing:TYPE:ID finalID = split[1]; } - ItemStack itemStack = BukkitCustomFishingPlugin.getInstance().getItemManager().buildInternal(Context.player(player), finalID); + ItemStack itemStack = BukkitCustomFishingPlugin.getInstance().getItemManager().buildInternal(Context.player(player).arg(ContextKeys.ID, finalID), finalID); return requireNonNull(itemStack); } diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java b/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java index 260c92f5..9f08357c 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java @@ -55,6 +55,7 @@ import net.momirealms.customfishing.common.plugin.classpath.ClassPathAppender; import net.momirealms.customfishing.common.plugin.classpath.ReflectionClassPathAppender; import net.momirealms.customfishing.common.plugin.logging.JavaPluginLogger; import net.momirealms.customfishing.common.plugin.logging.PluginLogger; +import net.momirealms.sparrow.heart.SparrowHeart; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; @@ -106,6 +107,7 @@ public class BukkitCustomFishingPluginImpl extends BukkitCustomFishingPlugin { @Override public void enable() { + SparrowHeart.getInstance(); this.configManager = new BukkitConfigManager(this); new Migration(this).start(); this.eventManager = new BukkitEventManager(this); diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/action/BukkitActionManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/action/BukkitActionManager.java index d3d600e2..50d3a7ad 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/action/BukkitActionManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/action/BukkitActionManager.java @@ -454,7 +454,7 @@ public class BukkitActionManager implements ActionManager { Player player = context.getHolder(); ItemStack itemStack = plugin.getItemManager().buildAny(context, id); if (itemStack != null) { - int maxStack = itemStack.getType().getMaxStackSize(); + int maxStack = itemStack.getMaxStackSize(); int amountToGive = amount; while (amountToGive > 0) { int perStackSize = Math.min(maxStack, amountToGive); @@ -462,9 +462,9 @@ public class BukkitActionManager implements ActionManager { ItemStack more = itemStack.clone(); more.setAmount(perStackSize); if (toInventory) { - PlayerUtils.giveItem(player, itemStack, itemStack.getAmount()); + PlayerUtils.giveItem(player, more, itemStack.getAmount()); } else { - PlayerUtils.dropItem(player, itemStack, true, true, false); + PlayerUtils.dropItem(player, more, true, true, false); } } } diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GetItemCommand.java b/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GetItemCommand.java index 44b0d495..972ffa53 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GetItemCommand.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GetItemCommand.java @@ -71,7 +71,7 @@ public class GetItemCommand extends BukkitCommandFeature { throw new RuntimeException("Unrecognized item id: " + id); } int amountToGive = amount; - int maxStack = itemStack.getType().getMaxStackSize(); + int maxStack = itemStack.getMaxStackSize(); while (amountToGive > 0) { int perStackSize = Math.min(maxStack, amountToGive); amountToGive -= perStackSize; diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GiveItemCommand.java b/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GiveItemCommand.java index 24af0952..7ea35e3a 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GiveItemCommand.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GiveItemCommand.java @@ -72,7 +72,7 @@ public class GiveItemCommand extends BukkitCommandFeature { throw new RuntimeException("Unrecognized item id: " + id); } int amountToGive = amount; - int maxStack = itemStack.getType().getMaxStackSize(); + int maxStack = itemStack.getMaxStackSize(); while (amountToGive > 0) { int perStackSize = Math.min(maxStack, amountToGive); amountToGive -= perStackSize; diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java index 9e7cfe85..eba55e0e 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java @@ -383,7 +383,7 @@ public class BukkitConfigManager extends ConfigManager { this.registerItemParser(f1, 4700, "enchantment-pool"); Function, Context>> f2 = arg -> { Section section = (Section) arg; - boolean stored = Objects.equals(section.getNameAsString(), "stored-random-enchantments"); + boolean stored = Objects.equals(section.getNameAsString(), "random-stored-enchantments"); List> enchantments = getPossibleEnchantments(section); return (item, context) -> { HashSet ids = new HashSet<>(); diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/market/BukkitMarketManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/market/BukkitMarketManager.java index e4f06f11..8243d40b 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/market/BukkitMarketManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/market/BukkitMarketManager.java @@ -411,17 +411,17 @@ public class BukkitMarketManager implements MarketManager, Listener { ItemStack itemStack = gui.inventory.getItem(slot); if (itemStack != null && itemStack.getType() != Material.AIR) { if (current.getType() == itemStack.getType() - && itemStack.getAmount() != itemStack.getType().getMaxStackSize() + && itemStack.getAmount() != itemStack.getMaxStackSize() && current.getItemMeta().equals(itemStack.getItemMeta()) ) { - int left = itemStack.getType().getMaxStackSize() - itemStack.getAmount(); + int left = itemStack.getMaxStackSize() - itemStack.getAmount(); if (current.getAmount() <= left) { itemStack.setAmount(itemStack.getAmount() + current.getAmount()); current.setAmount(0); break; } else { current.setAmount(current.getAmount() - left); - itemStack.setAmount(itemStack.getType().getMaxStackSize()); + itemStack.setAmount(itemStack.getMaxStackSize()); } } } else { diff --git a/core/src/main/resources/translations/zh_cn.yml b/core/src/main/resources/translations/zh_cn.yml index 8b7a0328..205c5ce5 100644 --- a/core/src/main/resources/translations/zh_cn.yml +++ b/core/src/main/resources/translations/zh_cn.yml @@ -40,8 +40,8 @@ argument.parse.failure.either: "无法从 '' 解析 '' 不是颜色代码" command.reload.success: "重新加载完成.耗时 毫秒译者:jhqwqmc" command.item.failure.not_exist: "物品 [] 不存在" -command.item.give.success: "成功给予 " -command.item.get.success: "成功获得 " +command.item.give.success: "成功给予 " +command.item.get.success: "成功获得 " command.item.import.failure.no_item: "无法导入空气" command.item.import.success: "物品 [] 已保存至 /plugins/CustomFishing/imported_items.yml" command.fish_finder.possible_loots: "可以钓到的战利品: " diff --git a/gradle.properties b/gradle.properties index 16cfd999..13d8e45b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ h2_driver_version=2.2.224 sqlite_driver_version=3.46.0.0 adventure_bundle_version=4.17.0 adventure_platform_version=4.3.3 -sparrow_heart_version=0.32 +sparrow_heart_version=0.33 cloud_core_version=2.0.0-rc.2 cloud_services_version=2.0.0-rc.2 cloud_brigadier_version=2.0.0-beta.9