From 103a611b8e626c3676194d54cde5ce3cfe2692c6 Mon Sep 17 00:00:00 2001 From: tastybento Date: Sat, 17 Aug 2024 08:03:39 -0700 Subject: [PATCH 1/5] Version 2.5.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e549820f6..34c5a56ed 100644 --- a/pom.xml +++ b/pom.xml @@ -88,7 +88,7 @@ -LOCAL - 2.5.0 + 2.5.1 bentobox-world https://sonarcloud.io ${project.basedir}/lib From d82b3488a2c6eb50011ece47e99f9f69945923ef Mon Sep 17 00:00:00 2001 From: tastybento Date: Sun, 18 Aug 2024 19:40:08 -0700 Subject: [PATCH 2/5] Expand crop harvesting #2472 --- .../flags/protection/BlockInteractionListener.java | 3 ++- .../flags/protection/BreakBlocksListener.java | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/world/bentobox/bentobox/listeners/flags/protection/BlockInteractionListener.java b/src/main/java/world/bentobox/bentobox/listeners/flags/protection/BlockInteractionListener.java index 496ae5238..e2db22df3 100644 --- a/src/main/java/world/bentobox/bentobox/listeners/flags/protection/BlockInteractionListener.java +++ b/src/main/java/world/bentobox/bentobox/listeners/flags/protection/BlockInteractionListener.java @@ -123,7 +123,8 @@ public class BlockInteractionListener extends FlagListener case DRAGON_EGG -> this.checkIsland(e, player, loc, Flags.DRAGON_EGG); case END_PORTAL_FRAME, RESPAWN_ANCHOR -> this.checkIsland(e, player, loc, Flags.PLACE_BLOCKS); case GLOW_ITEM_FRAME, ITEM_FRAME -> this.checkIsland(e, player, loc, Flags.ITEM_FRAME); - case SWEET_BERRY_BUSH, CAVE_VINES -> this.checkIsland(e, player, loc, Flags.BREAK_BLOCKS); + case SWEET_BERRY_BUSH -> this.checkIsland(e, player, loc, Flags.HARVEST); + case CAVE_VINES -> this.checkIsland(e, player, loc, Flags.BREAK_BLOCKS); case CAKE -> this.checkIsland(e, player, loc, Flags.CAKE); case CHISELED_BOOKSHELF -> this.checkIsland(e, player, loc, Flags.BOOKSHELF); case LAVA_CAULDRON -> diff --git a/src/main/java/world/bentobox/bentobox/listeners/flags/protection/BreakBlocksListener.java b/src/main/java/world/bentobox/bentobox/listeners/flags/protection/BreakBlocksListener.java index bf8ec1cab..df7acc554 100644 --- a/src/main/java/world/bentobox/bentobox/listeners/flags/protection/BreakBlocksListener.java +++ b/src/main/java/world/bentobox/bentobox/listeners/flags/protection/BreakBlocksListener.java @@ -5,7 +5,6 @@ import org.bukkit.Material; import org.bukkit.Tag; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.type.CaveVinesPlant; -import org.bukkit.entity.AbstractArrow; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.EnderCrystal; import org.bukkit.entity.ItemFrame; @@ -23,6 +22,7 @@ import org.bukkit.event.vehicle.VehicleDamageEvent; import com.google.common.base.Enums; +import world.bentobox.bentobox.BentoBox; import world.bentobox.bentobox.api.flags.FlagListener; import world.bentobox.bentobox.lists.Flags; @@ -38,15 +38,21 @@ public class BreakBlocksListener extends FlagListener { Player p = e.getPlayer(); Location l = e.getBlock().getLocation(); Material m = e.getBlock().getType(); + BentoBox.getInstance().logDebug(m); if (m.equals(Material.MELON) || m.equals(Material.PUMPKIN)) { this.checkIsland(e, p, l, Flags.HARVEST); } else { // Crops - if (Tag.CROPS.isTagged(m) + if ((Tag.CROPS.isTagged(m) && !m.equals(Material.MELON_STEM) && !m.equals(Material.PUMPKIN_STEM) && !m.equals(Material.ATTACHED_MELON_STEM) - && !m.equals(Material.ATTACHED_PUMPKIN_STEM)) { + && !m.equals(Material.ATTACHED_PUMPKIN_STEM)) + || m == Material.COCOA + || m == Material.SWEET_BERRY_BUSH + || m == Material.BAMBOO + || m == Material.NETHER_WART + ) { this.checkIsland(e, p, l, Flags.HARVEST); } else { checkIsland(e, p, l, Flags.BREAK_BLOCKS); From 04745330c785d11aad64ce06d0f8785dada892eb Mon Sep 17 00:00:00 2001 From: DinoFeng <97534094+DinoFengz@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:38:48 +0800 Subject: [PATCH 3/5] Update RemoveMobsListener.java Prevent null value --- .../worldsettings/RemoveMobsListener.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/world/bentobox/bentobox/listeners/flags/worldsettings/RemoveMobsListener.java b/src/main/java/world/bentobox/bentobox/listeners/flags/worldsettings/RemoveMobsListener.java index 51824aad8..59e73fd18 100644 --- a/src/main/java/world/bentobox/bentobox/listeners/flags/worldsettings/RemoveMobsListener.java +++ b/src/main/java/world/bentobox/bentobox/listeners/flags/worldsettings/RemoveMobsListener.java @@ -24,15 +24,19 @@ public class RemoveMobsListener extends FlagListener { || e.getCause().equals(TeleportCause.SPECTATE)) { return; } - // Return if this is a small teleport - if (e.getTo().getWorld().equals(e.getPlayer().getWorld()) && - e.getTo().distanceSquared(e.getPlayer().getLocation()) < getPlugin().getSettings().getClearRadius() * getPlugin().getSettings().getClearRadius()) { - return; - } - // Only process if flag is active - if (getIslands().locationIsOnIsland(e.getPlayer(), e.getTo()) && Flags.REMOVE_MOBS.isSetForWorld(e.getTo().getWorld())) { - Bukkit.getScheduler().runTask(getPlugin(), () -> getIslands().clearArea(e.getTo())); + + if(e.getTo() != null) { + // Return if this is a small teleport + if (e.getTo().getWorld().equals(e.getPlayer().getWorld()) && + e.getTo().distanceSquared(e.getPlayer().getLocation()) < getPlugin().getSettings().getClearRadius() * getPlugin().getSettings().getClearRadius()) { + return; + } + // Only process if flag is active + if (getIslands().locationIsOnIsland(e.getPlayer(), e.getTo()) && Flags.REMOVE_MOBS.isSetForWorld(e.getTo().getWorld())) { + Bukkit.getScheduler().runTask(getPlugin(), () -> getIslands().clearArea(e.getTo())); + } } + } @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) From 9305bf7163b779065a7e8ebabd10f126db71901d Mon Sep 17 00:00:00 2001 From: DinoFeng <97534094+DinoFengz@users.noreply.github.com> Date: Tue, 20 Aug 2024 20:17:58 +0800 Subject: [PATCH 4/5] test build --- .../listeners/flags/worldsettings/RemoveMobsListener.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/world/bentobox/bentobox/listeners/flags/worldsettings/RemoveMobsListener.java b/src/main/java/world/bentobox/bentobox/listeners/flags/worldsettings/RemoveMobsListener.java index 59e73fd18..5ccc1fab0 100644 --- a/src/main/java/world/bentobox/bentobox/listeners/flags/worldsettings/RemoveMobsListener.java +++ b/src/main/java/world/bentobox/bentobox/listeners/flags/worldsettings/RemoveMobsListener.java @@ -31,6 +31,7 @@ public class RemoveMobsListener extends FlagListener { e.getTo().distanceSquared(e.getPlayer().getLocation()) < getPlugin().getSettings().getClearRadius() * getPlugin().getSettings().getClearRadius()) { return; } + // Only process if flag is active if (getIslands().locationIsOnIsland(e.getPlayer(), e.getTo()) && Flags.REMOVE_MOBS.isSetForWorld(e.getTo().getWorld())) { Bukkit.getScheduler().runTask(getPlugin(), () -> getIslands().clearArea(e.getTo())); From fdbb2480b430a47c0fa7d0d9b4e9fbc6807e08e4 Mon Sep 17 00:00:00 2001 From: tastybento Date: Tue, 20 Aug 2024 21:58:12 -0700 Subject: [PATCH 5/5] Fix NPE when setting the protection center --- .../java/world/bentobox/bentobox/database/objects/Island.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/world/bentobox/bentobox/database/objects/Island.java b/src/main/java/world/bentobox/bentobox/database/objects/Island.java index 848b98863..c9b585a9b 100644 --- a/src/main/java/world/bentobox/bentobox/database/objects/Island.java +++ b/src/main/java/world/bentobox/bentobox/database/objects/Island.java @@ -1747,7 +1747,7 @@ public class Island implements DataObject, MetaDataAble { * @since 1.16.0 */ public void setProtectionCenter(Location location) throws IOException { - if (this.location.equals(location)) { + if (this.getProtectionCenter().equals(location)) { return; // nothing to do } if (!this.inIslandSpace(location)) {