From 26cb4474c44a656fc20aa50b722b7b3714b08041 Mon Sep 17 00:00:00 2001 From: akastijn Date: Mon, 5 Jan 2026 02:10:53 +0100 Subject: [PATCH] Refactor vanish handling by moving logic to `FrameSpawnerPlayer` and improving debug logging --- .../com/alttd/frame_spawners/FrameSpawnerPlayer.java | 10 ++++++++++ src/main/java/com/alttd/objects/ParticleSet.java | 8 +++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/alttd/frame_spawners/FrameSpawnerPlayer.java b/src/main/java/com/alttd/frame_spawners/FrameSpawnerPlayer.java index ed2b8c1..956f989 100644 --- a/src/main/java/com/alttd/frame_spawners/FrameSpawnerPlayer.java +++ b/src/main/java/com/alttd/frame_spawners/FrameSpawnerPlayer.java @@ -8,7 +8,9 @@ import com.alttd.objects.ParticleSet; import com.alttd.storage.PlayerSettings; import com.alttd.util.Logger; import com.destroystokyo.paper.ParticleBuilder; +import de.myzelyam.api.vanish.VanishAPI; import lombok.extern.slf4j.Slf4j; +import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.entity.Player; @@ -49,6 +51,10 @@ public class FrameSpawnerPlayer extends BukkitRunnable { log.info("Stopped repeating task due to player offline."); return; } + if (isVanished(player)) { + log.debug("Player {} is vanished, skipping frame spawn.", player.getName()); + return; + } Location location = player.getLocation(); float yaw = location.getYaw(); ParticleSet activeParticleSet = playerSettings.getParticles(aPartType); @@ -81,4 +87,8 @@ public class FrameSpawnerPlayer extends BukkitRunnable { if (amount != -1) amount--; } + + private boolean isVanished(Player player) { + return VanishAPI.isInvisible(player) || player.getGameMode().equals(GameMode.SPECTATOR); + } } diff --git a/src/main/java/com/alttd/objects/ParticleSet.java b/src/main/java/com/alttd/objects/ParticleSet.java index cecf9aa..6bd9410 100644 --- a/src/main/java/com/alttd/objects/ParticleSet.java +++ b/src/main/java/com/alttd/objects/ParticleSet.java @@ -8,6 +8,7 @@ import com.alttd.storage.PlayerSettings; import com.alttd.util.Logger; import de.myzelyam.api.vanish.VanishAPI; import lombok.Getter; +import lombok.extern.slf4j.Slf4j; import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.GameMode; import org.bukkit.Location; @@ -19,6 +20,7 @@ import java.util.List; import java.util.UUID; import java.util.stream.Collectors; +@Slf4j public class ParticleSet { private final List frames; @@ -53,7 +55,7 @@ public class ParticleSet { } public void run(Location location, Player player) { - if (tooSoon(player.getUniqueId()) || isVanished(player)) + if (tooSoon(player.getUniqueId())) return; FrameSpawnerLocation frameSpawnerLocation = new FrameSpawnerLocation(repeat, frames, frameDelay, location, player.getLocation().getYaw()); frameSpawnerLocation.runTaskTimerAsynchronously(AltitudeParticles.getInstance(), 0, repeatDelay); @@ -68,10 +70,6 @@ public class ParticleSet { frameSpawnerPlayer.runTaskTimerAsynchronously(AltitudeParticles.getInstance(), 0, repeatDelay); } - private boolean isVanished(Player player) { - return VanishAPI.isInvisible(player) || player.getGameMode().equals(GameMode.SPECTATOR); - } - private boolean tooSoon(UUID uuid) { PlayerSettings ps = PlayerSettings.getPlayer(uuid); if (ps.canRun(aPartType))