From d18ab3ef49aba82d061e302a721e4325f16ea57b Mon Sep 17 00:00:00 2001 From: XiaoMoMi <972454774@qq.com> Date: Sun, 10 Mar 2024 08:45:34 +0800 Subject: [PATCH] fix bugs --- .../customcrops/api/mechanic/misc/image/WaterBar.java | 2 +- .../customcrops/api/mechanic/requirement/State.java | 1 + build.gradle.kts | 2 +- .../momirealms/customcrops/mechanic/item/CustomProvider.java | 2 +- .../customcrops/mechanic/item/ItemManagerImpl.java | 4 ++-- .../mechanic/item/custom/AbstractCustomListener.java | 3 ++- .../mechanic/item/custom/oraxen/OraxenListener.java | 4 ++-- .../mechanic/item/custom/oraxen/OraxenProvider.java | 4 +++- .../customcrops/mechanic/world/block/MemoryCrop.java | 5 +++++ .../customcrops/mechanic/world/block/MemoryPot.java | 5 +++++ .../customcrops/mechanic/world/block/MemorySprinkler.java | 5 +++++ plugin/src/main/resources/contents/crops/default.yml | 4 ++-- plugin/src/main/resources/plugin.yml | 3 +-- 13 files changed, 31 insertions(+), 13 deletions(-) diff --git a/api/src/main/java/net/momirealms/customcrops/api/mechanic/misc/image/WaterBar.java b/api/src/main/java/net/momirealms/customcrops/api/mechanic/misc/image/WaterBar.java index 0cbe359..c1879d6 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/mechanic/misc/image/WaterBar.java +++ b/api/src/main/java/net/momirealms/customcrops/api/mechanic/misc/image/WaterBar.java @@ -25,7 +25,7 @@ public record WaterBar(String left, String empty, String full, String right) { public String getWaterBar(int current, int max) { return left + - String.valueOf(full).repeat(current) + + String.valueOf(full).repeat(Math.min(current, max)) + String.valueOf(empty).repeat(Math.max(max - current, 0)) + right; } diff --git a/api/src/main/java/net/momirealms/customcrops/api/mechanic/requirement/State.java b/api/src/main/java/net/momirealms/customcrops/api/mechanic/requirement/State.java index cbb0dd6..73d9836 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/mechanic/requirement/State.java +++ b/api/src/main/java/net/momirealms/customcrops/api/mechanic/requirement/State.java @@ -43,6 +43,7 @@ public class State { setArg("{x}", String.valueOf(location.getBlockX())); setArg("{y}", String.valueOf(location.getBlockY())); setArg("{z}", String.valueOf(location.getBlockZ())); + setArg("{world}", location.getWorld().getName()); } public Player getPlayer() { diff --git a/build.gradle.kts b/build.gradle.kts index 7355535..e28846f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { allprojects { project.group = "net.momirealms" - project.version = "3.4.0.0" + project.version = "3.4.0.1" apply() apply(plugin = "java") diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/CustomProvider.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/CustomProvider.java index 0b41ca4..e854fcb 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/CustomProvider.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/CustomProvider.java @@ -69,7 +69,7 @@ public interface CustomProvider { default void removeAnythingAt(Location location) { if (!removeBlock(location)) { - Collection entities = location.getWorld().getNearbyEntities(location.toCenterLocation(), 0.5,0.5,0.5); + Collection entities = location.getWorld().getNearbyEntities(location.toCenterLocation(), 0.5,0.51,0.5); entities.removeIf(entity -> { EntityType type = entity.getType(); return type != EntityType.ITEM_FRAME diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java index 1a1d644..f96e76f 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java @@ -2009,11 +2009,11 @@ public class ItemManagerImpl implements ItemManager { SimpleLocation simpleLocation = SimpleLocation.of(location); Optional optionalPot = plugin.getWorldManager().getPotAt(simpleLocation); if (optionalPot.isEmpty()) { - LogUtils.warn("Found a pot without data broken by " + state.getPlayer().getName() + " at " + simpleLocation); + plugin.debug("Found a pot without data broken by " + state.getPlayer().getName() + " at " + simpleLocation); return FunctionResult.RETURN; } if (!optionalPot.get().getKey().equals(pot.getKey())) { - LogUtils.warn("Found a pot having inconsistent data broken by " + state.getPlayer().getName() + " at " + simpleLocation + "."); + plugin.debug("Found a pot having inconsistent data broken by " + state.getPlayer().getName() + " at " + simpleLocation + "."); plugin.getWorldManager().removePotAt(simpleLocation); return FunctionResult.RETURN; } diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/AbstractCustomListener.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/AbstractCustomListener.java index a71463d..5f1c49e 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/AbstractCustomListener.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/AbstractCustomListener.java @@ -32,6 +32,7 @@ import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; 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; @@ -79,7 +80,7 @@ public abstract class AbstractCustomListener implements Listener { ); } - @EventHandler (ignoreCancelled = true) + @EventHandler (ignoreCancelled = true, priority = EventPriority.LOW) public void onBreakBlock(BlockBreakEvent event) { Player player = event.getPlayer(); this.itemManager.handlePlayerBreakBlock( diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java index e1351d7..ac068d6 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java @@ -66,7 +66,7 @@ public class OraxenListener extends AbstractCustomListener { public void onBreakFurniture(OraxenFurnitureBreakEvent event) { super.onBreakFurniture( event.getPlayer(), - event.getBlock().getLocation(), + event.getBaseEntity().getLocation().toBlockLocation(), event.getMechanic().getItemID(), event ); @@ -76,7 +76,7 @@ public class OraxenListener extends AbstractCustomListener { public void onInteractFurniture(OraxenFurnitureInteractEvent event) { super.onInteractFurniture( event.getPlayer(), - event.getBlock().getLocation(), + event.getBaseEntity().getLocation().toBlockLocation(), event.getMechanic().getItemID(), event.getBaseEntity(), event diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenProvider.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenProvider.java index 54d79c1..6df9c96 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenProvider.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenProvider.java @@ -21,8 +21,10 @@ import io.th0rgal.oraxen.api.OraxenBlocks; import io.th0rgal.oraxen.api.OraxenFurniture; import io.th0rgal.oraxen.api.OraxenItems; import io.th0rgal.oraxen.items.ItemBuilder; +import io.th0rgal.oraxen.mechanics.Mechanic; import io.th0rgal.oraxen.mechanics.provided.gameplay.furniture.FurnitureMechanic; import io.th0rgal.oraxen.mechanics.provided.gameplay.noteblock.NoteBlockMechanic; +import io.th0rgal.oraxen.mechanics.provided.gameplay.stringblock.StringBlockMechanic; import net.momirealms.customcrops.mechanic.item.CustomProvider; import org.bukkit.Location; import org.bukkit.Material; @@ -65,7 +67,7 @@ public class OraxenProvider implements CustomProvider { @Override public String getBlockID(Block block) { - NoteBlockMechanic mechanic = OraxenBlocks.getNoteBlockMechanic(block); + Mechanic mechanic = OraxenBlocks.getOraxenBlock(block.getLocation()); if (mechanic == null) { return block.getType().name(); } diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemoryCrop.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemoryCrop.java index 23dab06..f322ece 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemoryCrop.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemoryCrop.java @@ -68,6 +68,11 @@ public class MemoryCrop extends AbstractCustomCropsBlock implements WorldCrop { @Override public void setPoint(int point) { + if (point < 0) return; + int max = getConfig().getMaxPoints(); + if (point > max) { + point = max; + } setData("point", new IntTag("point", point)); } diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemoryPot.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemoryPot.java index 498fb78..49fefed 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemoryPot.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemoryPot.java @@ -74,6 +74,11 @@ public class MemoryPot extends AbstractCustomCropsBlock implements WorldPot { @Override public void setWater(int water) { + if (water < 0) return; + int max = getConfig().getStorage(); + if (water > max) { + water = max; + } setData("water", new IntTag("water", water)); } diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemorySprinkler.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemorySprinkler.java index c275e29..8cb187e 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemorySprinkler.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/block/MemorySprinkler.java @@ -58,6 +58,11 @@ public class MemorySprinkler extends AbstractCustomCropsBlock implements WorldSp @Override public void setWater(int water) { + if (water < 0) return; + int max = getConfig().getStorage(); + if (water > max) { + water = max; + } setData("water", new IntTag("water", water)); } diff --git a/plugin/src/main/resources/contents/crops/default.yml b/plugin/src/main/resources/contents/crops/default.yml index bfe6c72..3f993fa 100644 --- a/plugin/src/main/resources/contents/crops/default.yml +++ b/plugin/src/main/resources/contents/crops/default.yml @@ -20,9 +20,9 @@ tomato: - Spring - Autumn not-met-actions: - message_action: + actionbar_action: type: message - value: "It's not a good season to plant tomato" + value: '[X] It''s not a good season to plant tomato' # Event settings events: plant: diff --git a/plugin/src/main/resources/plugin.yml b/plugin/src/main/resources/plugin.yml index 66fbf56..a3c51a8 100644 --- a/plugin/src/main/resources/plugin.yml +++ b/plugin/src/main/resources/plugin.yml @@ -22,5 +22,4 @@ softdepend: - EcoSkills - Jobs - RealisticSeasons - - AdvancedSeasons - - SlimeWorldManager \ No newline at end of file + - AdvancedSeasons \ No newline at end of file