From 9a0657bc298d6b5128f294a1cb9c973c2445e132 Mon Sep 17 00:00:00 2001 From: Daniel Saukel Date: Sun, 24 Oct 2021 06:42:23 +0200 Subject: [PATCH] Fix breakBlocks: placed --- .../java/de/erethon/dungeonsxl/world/DGameWorld.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/de/erethon/dungeonsxl/world/DGameWorld.java b/core/src/main/java/de/erethon/dungeonsxl/world/DGameWorld.java index 904fa4bc..6086fb2e 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/world/DGameWorld.java +++ b/core/src/main/java/de/erethon/dungeonsxl/world/DGameWorld.java @@ -54,7 +54,6 @@ import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; -import java.util.LinkedList; import java.util.List; import java.util.Set; import org.bukkit.Bukkit; @@ -81,7 +80,7 @@ public class DGameWorld extends DInstanceWorld implements GameWorld { private boolean isPlaying = false; private boolean classes = false; - private List placedBlocks = new LinkedList<>(); + private Set placedBlocks = new HashSet<>(); private Set gameBlocks = new HashSet<>(); private Set lockedDoors = new HashSet<>(); @@ -551,7 +550,11 @@ public class DGameWorld extends DInstanceWorld implements GameWorld { } } - return !mode.check(player, this, block); + boolean breakBlock = !mode.check(player, this, block); + if (breakBlock) { + placedBlocks.remove(block); + } + return breakBlock; } /** @@ -570,6 +573,7 @@ public class DGameWorld extends DInstanceWorld implements GameWorld { } if (getRules().getState(GameRule.PLACE_BLOCKS).check(player, this, block)) { + placedBlocks.add(block); return false; }