From ff1c46a8486d9bc0b5a3baee354ff023649a8e22 Mon Sep 17 00:00:00 2001 From: Daniel Saukel Date: Wed, 8 Apr 2020 01:03:02 +0200 Subject: [PATCH] Fix windup / mob sign behavior --- .../erethon/dungeonsxl/api/sign/Windup.java | 24 +++---------------- .../dungeonsxl/sign/windup/MobSign.java | 2 +- .../dungeonsxl/sign/windup/MobSpawnTask.java | 2 +- 3 files changed, 5 insertions(+), 23 deletions(-) diff --git a/api/src/main/java/de/erethon/dungeonsxl/api/sign/Windup.java b/api/src/main/java/de/erethon/dungeonsxl/api/sign/Windup.java index 53e7fc73..950ce230 100644 --- a/api/src/main/java/de/erethon/dungeonsxl/api/sign/Windup.java +++ b/api/src/main/java/de/erethon/dungeonsxl/api/sign/Windup.java @@ -35,10 +35,6 @@ public abstract class Windup extends Deactivatable { * How many times the task is supposed to be executed (unless it is cancelled). */ protected int n; - /** - * How many times the task has been executed. - */ - protected int k; private Runnable runnable; private BukkitTask task; @@ -135,26 +131,12 @@ public abstract class Windup extends Deactivatable { this.n = n; } - /** - * Returns how many times the task has already been executed (like in SIGMA notation). - * - * @return how many times the task has already been executed (like in SIGMA notation) - */ - public int getK() { - return k; - } - - /** - * Resets k (like in SIGMA notation) to 0. - */ - public void resetK() { - k = 0; - } - @Override public void activate() { if (interval <= 0) { - runnable.run(); + for (int k = 0; k < n; k++) { + runnable.run(); + } } else { active = true; startTask(); diff --git a/core/src/main/java/de/erethon/dungeonsxl/sign/windup/MobSign.java b/core/src/main/java/de/erethon/dungeonsxl/sign/windup/MobSign.java index d8e1744c..592f29d8 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/sign/windup/MobSign.java +++ b/core/src/main/java/de/erethon/dungeonsxl/sign/windup/MobSign.java @@ -138,7 +138,6 @@ public class MobSign extends Windup { return null; } spawned = (LivingEntity) type.toEntity(spawnLoc); - spawned.setRemoveWhenFarAway(false); } else { provider.summon(mob, spawnLoc); @@ -152,6 +151,7 @@ public class MobSign extends Windup { } } + spawned.setRemoveWhenFarAway(false); spawnedMobs.add(spawned); return spawned; } diff --git a/core/src/main/java/de/erethon/dungeonsxl/sign/windup/MobSpawnTask.java b/core/src/main/java/de/erethon/dungeonsxl/sign/windup/MobSpawnTask.java index b44d9003..b1f80802 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/sign/windup/MobSpawnTask.java +++ b/core/src/main/java/de/erethon/dungeonsxl/sign/windup/MobSpawnTask.java @@ -26,7 +26,7 @@ import org.bukkit.scheduler.BukkitRunnable; public class MobSpawnTask extends BukkitRunnable { private MobSign sign; - private int k, n; + private int k = 1, n; public MobSpawnTask(MobSign sign, int n) { this.sign = sign;