Make events run particles

This commit is contained in:
Teriuihi 2022-01-13 19:06:48 +01:00
parent 960ec50228
commit d424e7d768
5 changed files with 117 additions and 34 deletions

View File

@ -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);
}

View File

@ -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<APartType> 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());
}
}

View File

@ -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<APartType> 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());
}
}

View File

@ -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<APartType> 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());
}
}

View File

@ -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<APartType> 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());
}
}