From 4a2254c1fb6df9023e5c59a677c5c18fb64e7b3e Mon Sep 17 00:00:00 2001 From: MidnightTale Date: Thu, 13 Apr 2023 11:28:55 +0700 Subject: [PATCH] prevent it from being immediately --- src/main/java/xyz/hynse/foliaflow/FoliaFlow.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java b/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java index 06c4646..5162083 100644 --- a/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java +++ b/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java @@ -13,6 +13,8 @@ import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.util.Vector; +import java.util.HashSet; +import java.util.Set; import java.util.concurrent.TimeUnit; public class FoliaFlow extends JavaPlugin implements Listener { @@ -22,10 +24,11 @@ public class FoliaFlow extends JavaPlugin implements Listener { private final Vector velocity4 = new Vector(1, 0.5, 0); private final Vector[] velocities = {velocity1, velocity2, velocity3, velocity4}; private int counter = 0; - //private final Set movingBlocks = new HashSet<>(); + private final Set movingBlocks = new HashSet<>(); private ScheduledTask task; + @Override public void onEnable() { super.onEnable(); @@ -42,6 +45,8 @@ public class FoliaFlow extends JavaPlugin implements Listener { counter++; Vector velocity = velocities[index]; entity.setVelocity(velocity); + // Remove the block from the movingBlocks set after a delay, to prevent it from being immediately moved again + getServer().getScheduler().runTaskLater(this, () -> movingBlocks.remove(loc.getBlock().getLocation()), 20L); } } }