Refactor particle spawning logic into utility class.
Moved repetitive particle spawning code into a new `SpawnParticleUtil` class to improve readability and maintainability. Updated event listeners to use the utility, simplifying their implementations while preserving functionality.
This commit is contained in:
parent
1caef4bb83
commit
a3b4922b70
|
|
@ -1,19 +1,12 @@
|
|||
package com.alttd.listeners;
|
||||
|
||||
import com.alttd.AltitudeParticles;
|
||||
import com.alttd.objects.APartType;
|
||||
import com.alttd.objects.ParticleSet;
|
||||
import com.alttd.storage.PlayerSettings;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class BlockBreakListener implements Listener {
|
||||
|
||||
|
|
@ -27,21 +20,7 @@ public class BlockBreakListener implements Listener {
|
|||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
if (event.isCancelled())
|
||||
return;
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Player player = event.getPlayer();
|
||||
UUID uuid = player.getUniqueId();
|
||||
PlayerSettings playerSettings = PlayerSettings.getPlayer(uuid);
|
||||
if (!playerSettings.hasActiveParticles())
|
||||
return;
|
||||
particlesToActivate.forEach(aPartType -> {
|
||||
ParticleSet particleSet = playerSettings.getParticles(aPartType);
|
||||
if (particleSet == null)
|
||||
return;
|
||||
particleSet.run(event.getBlock().getLocation(), player);
|
||||
});
|
||||
}
|
||||
}.runTaskAsynchronously(AltitudeParticles.getInstance());
|
||||
SpawnParticleUtil.spawnAsyncParticles(particlesToActivate, event.getPlayer(), () ->
|
||||
event.getBlock().getLocation());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +1,12 @@
|
|||
package com.alttd.listeners;
|
||||
|
||||
import com.alttd.AltitudeParticles;
|
||||
import com.alttd.objects.APartType;
|
||||
import com.alttd.objects.ParticleSet;
|
||||
import com.alttd.storage.PlayerSettings;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class BlockPlaceListener implements Listener {
|
||||
|
||||
|
|
@ -27,21 +20,7 @@ public class BlockPlaceListener implements Listener {
|
|||
public void onBlockPlace(BlockPlaceEvent event) {
|
||||
if (event.isCancelled())
|
||||
return;
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Player player = event.getPlayer();
|
||||
UUID uuid = player.getUniqueId();
|
||||
PlayerSettings playerSettings = PlayerSettings.getPlayer(uuid);
|
||||
if (!playerSettings.hasActiveParticles())
|
||||
return;
|
||||
particlesToActivate.forEach(aPartType -> {
|
||||
ParticleSet particleSet = playerSettings.getParticles(aPartType);
|
||||
if (particleSet == null)
|
||||
return;
|
||||
particleSet.run(event.getBlock().getLocation(), player);
|
||||
});
|
||||
}
|
||||
}.runTaskAsynchronously(AltitudeParticles.getInstance());
|
||||
SpawnParticleUtil.spawnAsyncParticles(particlesToActivate, event.getPlayer(), () ->
|
||||
event.getBlock().getLocation());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,18 +1,13 @@
|
|||
package com.alttd.listeners;
|
||||
|
||||
import com.alttd.AltitudeParticles;
|
||||
import com.alttd.objects.APartType;
|
||||
import com.alttd.objects.ParticleSet;
|
||||
import com.alttd.storage.PlayerSettings;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class DeathListener implements Listener {
|
||||
|
||||
|
|
@ -26,21 +21,7 @@ public class DeathListener implements Listener {
|
|||
public void onDeath(PlayerDeathEvent event) {
|
||||
if (event.isCancelled())
|
||||
return;
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Player player = event.getPlayer();
|
||||
UUID uuid = player.getUniqueId();
|
||||
PlayerSettings playerSettings = PlayerSettings.getPlayer(uuid);
|
||||
if (!playerSettings.hasActiveParticles())
|
||||
return;
|
||||
particlesToActivate.forEach(aPartType -> {
|
||||
ParticleSet particleSet = playerSettings.getParticles(aPartType);
|
||||
if (particleSet == null)
|
||||
return;
|
||||
particleSet.run(player.getLocation(), player);
|
||||
});
|
||||
}
|
||||
}.runTaskAsynchronously(AltitudeParticles.getInstance());
|
||||
SpawnParticleUtil.spawnAsyncParticles(particlesToActivate, player, player::getLocation);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +1,13 @@
|
|||
package com.alttd.listeners;
|
||||
|
||||
import com.alttd.AltitudeParticles;
|
||||
import com.alttd.objects.APartType;
|
||||
import com.alttd.objects.ParticleSet;
|
||||
import com.alttd.storage.PlayerSettings;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class KillListener implements Listener {
|
||||
private final List<APartType> particlesToActivate;
|
||||
|
|
@ -29,20 +23,6 @@ public class KillListener implements Listener {
|
|||
Player player = event.getEntity().getKiller();
|
||||
if (player == null)
|
||||
return;
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UUID uuid = player.getUniqueId();
|
||||
PlayerSettings playerSettings = PlayerSettings.getPlayer(uuid);
|
||||
if (!playerSettings.hasActiveParticles())
|
||||
return;
|
||||
particlesToActivate.forEach(aPartType -> {
|
||||
ParticleSet particleSet = playerSettings.getParticles(aPartType);
|
||||
if (particleSet == null)
|
||||
return;
|
||||
particleSet.run(event.getEntity().getLocation(), player);
|
||||
});
|
||||
}
|
||||
}.runTaskAsynchronously(AltitudeParticles.getInstance());
|
||||
SpawnParticleUtil.spawnAsyncParticles(particlesToActivate, player, () -> event.getEntity().getLocation());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
|
|||
public class PlayerQuitListener implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event) {
|
||||
public void onPlayerLeave(PlayerQuitEvent event) { //TODO particles when a player leaves
|
||||
PlayerSettings.removePlayer(event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
package com.alttd.listeners;
|
||||
|
||||
import com.alttd.AltitudeParticles;
|
||||
import com.alttd.objects.APartType;
|
||||
import com.alttd.objects.ParticleSet;
|
||||
import com.alttd.storage.PlayerSettings;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
@ -14,10 +11,8 @@ import org.bukkit.event.block.Action;
|
|||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class RightClickListener implements Listener {
|
||||
|
||||
|
|
@ -38,22 +33,7 @@ public class RightClickListener implements Listener {
|
|||
Block clickedBlock = event.getClickedBlock();
|
||||
if (clickedBlock == null)
|
||||
return;
|
||||
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Player player = event.getPlayer();
|
||||
UUID uuid = player.getUniqueId();
|
||||
PlayerSettings playerSettings = PlayerSettings.getPlayer(uuid);
|
||||
if (!playerSettings.hasActiveParticles())
|
||||
return;
|
||||
particlesToActivate.forEach(aPartType -> {
|
||||
ParticleSet particleSet = playerSettings.getParticles(aPartType);
|
||||
if (particleSet == null)
|
||||
return;
|
||||
particleSet.run(player.getLocation(), player);
|
||||
});
|
||||
}
|
||||
}.runTaskAsynchronously(AltitudeParticles.getInstance());
|
||||
SpawnParticleUtil.spawnAsyncParticles(particlesToActivate, player, player::getLocation);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
43
src/main/java/com/alttd/listeners/SpawnParticleUtil.java
Normal file
43
src/main/java/com/alttd/listeners/SpawnParticleUtil.java
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
package com.alttd.listeners;
|
||||
|
||||
import com.alttd.AltitudeParticles;
|
||||
import com.alttd.objects.APartType;
|
||||
import com.alttd.objects.ParticleSet;
|
||||
import com.alttd.storage.PlayerSettings;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class SpawnParticleUtil {
|
||||
|
||||
@FunctionalInterface
|
||||
public interface LocationConsumer {
|
||||
Location getLocation();
|
||||
}
|
||||
|
||||
public static void spawnAsyncParticles(List<APartType> particlesToActivate, Player player, LocationConsumer locationConsumer) {
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
spawn(particlesToActivate, player, locationConsumer);
|
||||
}
|
||||
}.runTaskAsynchronously(AltitudeParticles.getInstance());
|
||||
}
|
||||
|
||||
private static void spawn(List<APartType> particlesToActivate, Player player, LocationConsumer locationConsumer) {
|
||||
UUID uuid = player.getUniqueId();
|
||||
PlayerSettings playerSettings = PlayerSettings.getPlayer(uuid);
|
||||
if (!playerSettings.hasActiveParticles())
|
||||
return;
|
||||
particlesToActivate.forEach(aPartType -> {
|
||||
ParticleSet particleSet = playerSettings.getParticles(aPartType);
|
||||
if (particleSet == null)
|
||||
return;
|
||||
particleSet.run(locationConsumer.getLocation(), player);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,19 +1,12 @@
|
|||
package com.alttd.listeners;
|
||||
|
||||
import com.alttd.AltitudeParticles;
|
||||
import com.alttd.objects.APartType;
|
||||
import com.alttd.objects.ParticleSet;
|
||||
import com.alttd.storage.PlayerSettings;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class TeleportArriveListener implements Listener {
|
||||
private final List<APartType> particlesToActivate;
|
||||
|
|
@ -26,22 +19,7 @@ public class TeleportArriveListener implements Listener {
|
|||
public void onTeleportArrive(PlayerTeleportEvent event) {
|
||||
if (event.isCancelled())
|
||||
return;
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Player player = event.getPlayer();
|
||||
UUID uuid = player.getUniqueId();
|
||||
PlayerSettings playerSettings = PlayerSettings.getPlayer(uuid);
|
||||
if (!playerSettings.hasActiveParticles())
|
||||
return;
|
||||
particlesToActivate.forEach(aPartType -> {
|
||||
ParticleSet particleSet = playerSettings.getParticles(aPartType);
|
||||
if (particleSet == null)
|
||||
return;
|
||||
particleSet.run(event.getTo(), player);
|
||||
});
|
||||
}
|
||||
}.runTaskAsynchronously(AltitudeParticles.getInstance());
|
||||
SpawnParticleUtil.spawnAsyncParticles(particlesToActivate, event.getPlayer(), event::getTo);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user