diff --git a/src/main/java/com/alttd/config/ParticleConfig.java b/src/main/java/com/alttd/config/ParticleConfig.java
index 7c444aa..91bcaa7 100644
--- a/src/main/java/com/alttd/config/ParticleConfig.java
+++ b/src/main/java/com/alttd/config/ParticleConfig.java
@@ -150,7 +150,7 @@ public class ParticleConfig {
* @return A ParticleSet created from the ParticleData
*/
public ParticleSet convertToParticleSet(ParticleData particleData) {
- log.info("Converting ParticleData to ParticleSet for {}", particleData.getParticleName());
+ log.info("Converting ParticleData to ParticleSet for [{}]", particleData.getParticleName());
List loadedFrames = new ArrayList<>();
double randomOffset = particleData.getRandomOffset();
@@ -175,7 +175,11 @@ public class ParticleConfig {
aParticleList.add(new AParticle(x, y + 0.2, z, randomOffset, particleBuilder));
}
- loadedFrames.add(new Frame(aParticleList));
+ loadedFrames.add(new Frame(entry.getKey(), aParticleList));
+ }
+
+ if (Config.DEBUG) {
+ log.info("Loaded {} frames for [{}]", loadedFrames.size(), particleData.getParticleName());
}
// Create and return the ParticleSet
diff --git a/src/main/java/com/alttd/frame_spawners/FrameSpawnerPlayer.java b/src/main/java/com/alttd/frame_spawners/FrameSpawnerPlayer.java
index 895841b..20d01c1 100644
--- a/src/main/java/com/alttd/frame_spawners/FrameSpawnerPlayer.java
+++ b/src/main/java/com/alttd/frame_spawners/FrameSpawnerPlayer.java
@@ -24,7 +24,6 @@ public class FrameSpawnerPlayer extends BukkitRunnable {
private int amount;
private final List frames;
- private Iterator iterator;
private final Player player;
private final PlayerSettings playerSettings;
private final APartType aPartType;
@@ -34,7 +33,6 @@ public class FrameSpawnerPlayer extends BukkitRunnable {
public FrameSpawnerPlayer(int amount, List frames, int frameDelay, Player player, PlayerSettings playerSettings, APartType aPartType, String uniqueId, boolean stationary) {
this.amount = amount;
this.frames = frames;
- this.iterator = frames.iterator();
this.player = player;
this.playerSettings = playerSettings;
this.aPartType = aPartType;
@@ -58,26 +56,27 @@ public class FrameSpawnerPlayer extends BukkitRunnable {
Location location = player.getLocation();
float yaw = location.getYaw();
ParticleSet activeParticleSet = playerSettings.getParticles(aPartType);
- if (activeParticleSet == null || !activeParticleSet.getParticleId().equalsIgnoreCase(uniqueId) || !playerSettings.hasActiveParticles()) {
- this.cancel();
- if (Config.DEBUG)
- log.info("Stopped repeating task due to player switching/disabling particles.");
- return;
- }
+ if (shouldStopTask(activeParticleSet)) return;
if (amount == 0) {
this.cancel();
if (Config.DEBUG)
log.info("Stopped repeating task due to end of frames.");
}
- iterator = frames.iterator();
+ final Iterator iterator = frames.iterator();
+ if (Config.DEBUG) {
+ log.info("Starting frame spawn for player {}.", player.getName());
+ }
new BukkitRunnable() {
@Override
public void run() {
- if (!iterator.hasNext()) {
+ if (!iterator.hasNext() || shouldStopTask(activeParticleSet)) {
this.cancel();
return;
}
Frame next = iterator.next();
+ if (Config.DEBUG) {
+ log.info("Spawning frame with {} particles at {} for player {}", next.getKey(), location, player.getName());
+ }
if (stationary) {
next.spawn(location, yaw);
}
@@ -90,6 +89,16 @@ public class FrameSpawnerPlayer extends BukkitRunnable {
amount--;
}
+ private boolean shouldStopTask(ParticleSet activeParticleSet) {
+ if (activeParticleSet == null || !activeParticleSet.getParticleId().equalsIgnoreCase(uniqueId) || !playerSettings.hasActiveParticles()) {
+ this.cancel();
+ if (Config.DEBUG)
+ log.info("Stopped repeating task due to player switching/disabling particles.");
+ return true;
+ }
+ return false;
+ }
+
private boolean isVanished(Player player) {
return VanishAPI.isInvisible(player) || player.getGameMode().equals(GameMode.SPECTATOR);
}
diff --git a/src/main/java/com/alttd/objects/Frame.java b/src/main/java/com/alttd/objects/Frame.java
index 00581f5..3a46eeb 100644
--- a/src/main/java/com/alttd/objects/Frame.java
+++ b/src/main/java/com/alttd/objects/Frame.java
@@ -1,6 +1,7 @@
package com.alttd.objects;
import com.alttd.storage.PlayerSettings;
+import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
@@ -11,9 +12,12 @@ import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.Collectors;
public class Frame {
- List aParticles;
+ @Getter
+ private final String key;
+ private final List aParticles;
- public Frame(List aParticles) {
+ public Frame(String key, List aParticles) {
+ this.key = key;
this.aParticles = aParticles;
}