From d424e7d76883ed776bf2e53831d272d417516cd8 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Thu, 13 Jan 2022 19:06:48 +0100 Subject: [PATCH] Make events run particles --- .../java/com/alttd/AltitudeParticles.java | 13 +++--- .../alttd/listeners/BlockBreakListener.java | 29 +++++++++---- .../alttd/listeners/BlockPlaceListener.java | 29 +++++++++---- .../com/alttd/listeners/DeathListener.java | 41 +++++++++++++++++++ .../alttd/listeners/PlayerJoinListener.java | 39 ++++++++++++++---- 5 files changed, 117 insertions(+), 34 deletions(-) create mode 100644 src/main/java/com/alttd/listeners/DeathListener.java diff --git a/src/main/java/com/alttd/AltitudeParticles.java b/src/main/java/com/alttd/AltitudeParticles.java index 9ec16fa..cb04597 100644 --- a/src/main/java/com/alttd/AltitudeParticles.java +++ b/src/main/java/com/alttd/AltitudeParticles.java @@ -3,10 +3,8 @@ package com.alttd; import com.alttd.commands.CommandManager; import com.alttd.config.Config; import com.alttd.config.DatabaseConfig; -import com.alttd.listeners.GUIListener; -import com.alttd.listeners.BlockBreakListener; -import com.alttd.listeners.BlockPlaceListener; -import com.alttd.listeners.PlayerJoinListener; +import com.alttd.listeners.*; +import com.alttd.objects.APartType; import com.alttd.util.Logger; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -38,9 +36,10 @@ public class AltitudeParticles extends JavaPlugin { private void registerEvents() { PluginManager pluginManager = getServer().getPluginManager(); - pluginManager.registerEvents(new PlayerJoinListener(), this); - pluginManager.registerEvents(new BlockBreakListener(), this); - pluginManager.registerEvents(new BlockPlaceListener(), this); + pluginManager.registerEvents(new PlayerJoinListener(APartType.TRAIL, APartType.HEAD), this); + pluginManager.registerEvents(new BlockBreakListener(APartType.BREAK_PLACE_BLOCK), this); + pluginManager.registerEvents(new BlockPlaceListener(APartType.BREAK_PLACE_BLOCK), this); + pluginManager.registerEvents(new DeathListener(APartType.DEATH), this); pluginManager.registerEvents(new GUIListener(), this); } diff --git a/src/main/java/com/alttd/listeners/BlockBreakListener.java b/src/main/java/com/alttd/listeners/BlockBreakListener.java index e449366..43f0c02 100644 --- a/src/main/java/com/alttd/listeners/BlockBreakListener.java +++ b/src/main/java/com/alttd/listeners/BlockBreakListener.java @@ -1,28 +1,39 @@ 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.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.scheduler.BukkitRunnable; import java.util.List; public class BlockBreakListener implements Listener { + private final List particlesToActivate; + public BlockBreakListener(APartType... particleTypes) { particlesToActivate = List.of(particleTypes); } + @EventHandler public void onBlockBreak(BlockBreakEvent event) { - PlayerSettings player = PlayerSettings.getPlayer(event.getPlayer().getUniqueId()); - if (!player.hasActiveParticles()) - return; - particlesToActivate.forEach(aPartType -> { - ParticleSet particleSet = player.getParticles(aPartType); - if (particleSet == null) - return; - particleSet.run(event.getBlock().getLocation()); - }); + new BukkitRunnable() { + @Override + public void run() { + PlayerSettings playerSettings = PlayerSettings.getPlayer(event.getPlayer().getUniqueId()); + if (!playerSettings.hasActiveParticles()) + return; + particlesToActivate.forEach(aPartType -> { + ParticleSet particleSet = playerSettings.getParticles(aPartType); + if (particleSet == null) + return; + particleSet.run(event.getBlock().getLocation()); + }); + } + }.runTaskAsynchronously(AltitudeParticles.getInstance()); } } diff --git a/src/main/java/com/alttd/listeners/BlockPlaceListener.java b/src/main/java/com/alttd/listeners/BlockPlaceListener.java index 32e7669..572114e 100644 --- a/src/main/java/com/alttd/listeners/BlockPlaceListener.java +++ b/src/main/java/com/alttd/listeners/BlockPlaceListener.java @@ -1,28 +1,39 @@ 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.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.scheduler.BukkitRunnable; import java.util.List; public class BlockPlaceListener implements Listener { + private final List particlesToActivate; + public BlockPlaceListener(APartType... particleTypes) { particlesToActivate = List.of(particleTypes); } + @EventHandler public void onBlockPlace(BlockPlaceEvent event) { - PlayerSettings player = PlayerSettings.getPlayer(event.getPlayer().getUniqueId()); - if (!player.hasActiveParticles()) - return; - particlesToActivate.forEach(aPartType -> { - ParticleSet particleSet = player.getParticles(aPartType); - if (particleSet == null) - return; - particleSet.run(event.getBlock().getLocation()); - }); + new BukkitRunnable() { + @Override + public void run() { + PlayerSettings playerSettings = PlayerSettings.getPlayer(event.getPlayer().getUniqueId()); + if (!playerSettings.hasActiveParticles()) + return; + particlesToActivate.forEach(aPartType -> { + ParticleSet particleSet = playerSettings.getParticles(aPartType); + if (particleSet == null) + return; + particleSet.run(event.getBlock().getLocation()); + }); + } + }.runTaskAsynchronously(AltitudeParticles.getInstance()); } } diff --git a/src/main/java/com/alttd/listeners/DeathListener.java b/src/main/java/com/alttd/listeners/DeathListener.java new file mode 100644 index 0000000..ed3d3d8 --- /dev/null +++ b/src/main/java/com/alttd/listeners/DeathListener.java @@ -0,0 +1,41 @@ +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.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.scheduler.BukkitRunnable; + +import java.util.List; + +public class DeathListener implements Listener { + + private final List particlesToActivate; + + public DeathListener(APartType... particleTypes) { + particlesToActivate = List.of(particleTypes); + } + + @EventHandler + public void onDeath(PlayerDeathEvent event) { + new BukkitRunnable() { + @Override + public void run() { + Player player = event.getPlayer(); + PlayerSettings playerSettings = PlayerSettings.getPlayer(player.getUniqueId()); + if (!playerSettings.hasActiveParticles()) + return; + particlesToActivate.forEach(aPartType -> { + ParticleSet particleSet = playerSettings.getParticles(aPartType); + if (particleSet == null) + return; + particleSet.run(player.getLocation()); + }); + } + }.runTaskAsynchronously(AltitudeParticles.getInstance()); + } +} diff --git a/src/main/java/com/alttd/listeners/PlayerJoinListener.java b/src/main/java/com/alttd/listeners/PlayerJoinListener.java index a183ee1..f3dd57c 100644 --- a/src/main/java/com/alttd/listeners/PlayerJoinListener.java +++ b/src/main/java/com/alttd/listeners/PlayerJoinListener.java @@ -2,29 +2,50 @@ package com.alttd.listeners; import com.alttd.AltitudeParticles; import com.alttd.database.Queries; +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.Listener; +import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.scheduler.BukkitRunnable; +import java.util.List; import java.util.UUID; public class PlayerJoinListener implements Listener { + private final List particlesToActivate; + + public PlayerJoinListener(APartType... particleTypes) { + particlesToActivate = List.of(particleTypes); + } + @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { - new PlayerSettings(true, true, event.getPlayer().getUniqueId()); //TODO REMOVE -// new BukkitRunnable() { //TODO uncomment -// @Override -// public void run() { -// UUID uuid = event.getPlayer().getUniqueId(); + new BukkitRunnable() { + @Override + public void run() { //TODO uncomment + Player player = event.getPlayer(); + new PlayerSettings(true, true, player.getUniqueId()); //TODO REMOVE +// UUID uuid = player.getUniqueId(); // PlayerSettings playerSettings = PlayerSettings.getPlayer(uuid); // if (playerSettings == null) Queries.getPlayerSettings(uuid); -// -// //TODO activate particles sync/async??? -// } -// }.runTaskAsynchronously(AltitudeParticles.getInstance()); + + PlayerSettings playerSettings = PlayerSettings.getPlayer(player.getUniqueId()); + if (!playerSettings.hasActiveParticles()) + return; + particlesToActivate.forEach(aPartType -> { + ParticleSet particleSet = playerSettings.getParticles(aPartType); + if (particleSet == null) + return; + particleSet.run(player.getLocation()); + }); + } + }.runTaskAsynchronously(AltitudeParticles.getInstance()); + } }