From da10511b478f36eacc46412d46c74a226ab70c9b Mon Sep 17 00:00:00 2001 From: XiaoMoMi <70987828+Xiao-MoMi@users.noreply.github.com> Date: Fri, 6 Sep 2024 03:39:58 +0800 Subject: [PATCH] Fix quality crops --- .../action/builtin/ActionQualityCrops.java | 37 +++++++++---------- .../bukkit/BukkitCustomCropsPluginImpl.java | 2 +- .../bukkit/config/BukkitConfigManager.java | 2 +- 3 files changed, 19 insertions(+), 22 deletions(-) diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionQualityCrops.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionQualityCrops.java index 7440283..0bd88fc 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionQualityCrops.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionQualityCrops.java @@ -77,22 +77,14 @@ public class ActionQualityCrops extends AbstractBuiltInAction { if (context.holder() instanceof Player p) { player = p; } - ItemStack drop = generateItem(location, player, random); - if (drop != null) { - if (toInv && player != null) { - PlayerUtils.giveItem(player, drop, 1); - } else { - location.getWorld().dropItemNaturally(location, drop); - } - } + generateItem(location, player, random); } - @Nullable - public ItemStack generateItem(Location location, @Nullable Player player, int randomAmount) { + public void generateItem(Location location, @Nullable Player player, int randomAmount) { double[] ratio = ConfigManager.defaultQualityRatio(); Optional> world = plugin.getWorldManager().getWorld(location.getWorld()); if (world.isEmpty()) { - return null; + return; } Pos3 pos3 = Pos3.from(location); Fertilizer[] fertilizers = null; @@ -119,17 +111,22 @@ public class ActionQualityCrops extends AbstractBuiltInAction { ratio = newRatio; } } - for (int i = 0; i < randomAmount; i++) { - double r1 = Math.random(); - for (int j = 0; j < ratio.length; j++) { - if (r1 < ratio[j]) { - ItemStack drop = plugin.getItemManager().build(player, qualityLoots[j]); - if (drop == null || drop.getType() == Material.AIR) return null; - return drop; + outer: + for (int i = 0; i < randomAmount; i++) { + double r1 = Math.random(); + for (int j = 0; j < ratio.length; j++) { + if (r1 < ratio[j]) { + ItemStack drop = plugin.getItemManager().build(player, qualityLoots[j]); + if (drop == null || drop.getType() == Material.AIR) continue; + if (toInv && player != null) { + PlayerUtils.giveItem(player, drop, 1); + } else { + location.getWorld().dropItemNaturally(location, drop); + } + continue outer; + } } } - } - return null; } public MathValue min() { diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/BukkitCustomCropsPluginImpl.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/BukkitCustomCropsPluginImpl.java index 9604ba9..1b8451e 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/BukkitCustomCropsPluginImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/BukkitCustomCropsPluginImpl.java @@ -166,10 +166,10 @@ public class BukkitCustomCropsPluginImpl extends BukkitCustomCropsPlugin { this.translationManager = new TranslationManager(this); this.senderFactory = new BukkitSenderFactory(this); this.itemManager = new BukkitItemManager(this); + this.worldManager = new BukkitWorldManager(this); this.integrationManager = new BukkitIntegrationManager(this); this.placeholderManager = new BukkitPlaceholderManager(this); this.coolDownManager = new CoolDownManager(this); - this.worldManager = new BukkitWorldManager(this); this.hologramManager = new HologramManager(this); this.commandManager = new BukkitCommandManager(this); this.commandManager.registerDefaultFeatures(); diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java index d537419..248ba43 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java @@ -88,7 +88,7 @@ public class BukkitConfigManager extends ConfigManager { .builder() .setVersioning(new BasicVersioning("config-version")) .addIgnoredRoute(configVersion, "other-settings.placeholder-register", '.') - .addIgnoredRoute(configVersion, "settings._WORLDS_", '.') + .addIgnoredRoute(configVersion, "worlds.settings._WORLDS_", '.') .build() ); MAIN_CONFIG.save(resolveConfig("config.yml").toFile());