From 5864918442cc9587dd07b343e1b8abcfa4fef8da Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Thu, 13 Jan 2022 23:43:07 +0100 Subject: [PATCH] Only send particles to players who should be seeing them --- src/main/java/com/alttd/objects/Frame.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alttd/objects/Frame.java b/src/main/java/com/alttd/objects/Frame.java index 557a89f..0691b81 100644 --- a/src/main/java/com/alttd/objects/Frame.java +++ b/src/main/java/com/alttd/objects/Frame.java @@ -1,10 +1,13 @@ package com.alttd.objects; +import com.alttd.storage.PlayerSettings; import com.destroystokyo.paper.ParticleBuilder; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.Player; import java.util.List; +import java.util.stream.Collectors; public class Frame { List particles; @@ -19,6 +22,16 @@ public class Frame { * @param location Location to spawn particles at */ public void spawn(Location location) { - particles.forEach(particleBuilder -> particleBuilder.location(location).spawn()); + particles.forEach(particleBuilder -> particleBuilder + .location(location) + .receivers(Bukkit.getOnlinePlayers().stream() + .filter(player -> { + PlayerSettings playerSettings = PlayerSettings.getPlayer(player.getUniqueId()); + if (playerSettings == null) + return false; + return playerSettings.isSeeingParticles(); + }).collect(Collectors.toList()) + ) + .spawn()); } }