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.commands.CommandManager;
import com.alttd.config.Config; import com.alttd.config.Config;
import com.alttd.config.DatabaseConfig; import com.alttd.config.DatabaseConfig;
import com.alttd.listeners.GUIListener; import com.alttd.listeners.*;
import com.alttd.listeners.BlockBreakListener; import com.alttd.objects.APartType;
import com.alttd.listeners.BlockPlaceListener;
import com.alttd.listeners.PlayerJoinListener;
import com.alttd.util.Logger; import com.alttd.util.Logger;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@ -38,9 +36,10 @@ public class AltitudeParticles extends JavaPlugin {
private void registerEvents() { private void registerEvents() {
PluginManager pluginManager = getServer().getPluginManager(); PluginManager pluginManager = getServer().getPluginManager();
pluginManager.registerEvents(new PlayerJoinListener(), this); pluginManager.registerEvents(new PlayerJoinListener(APartType.TRAIL, APartType.HEAD), this);
pluginManager.registerEvents(new BlockBreakListener(), this); pluginManager.registerEvents(new BlockBreakListener(APartType.BREAK_PLACE_BLOCK), this);
pluginManager.registerEvents(new BlockPlaceListener(), this); pluginManager.registerEvents(new BlockPlaceListener(APartType.BREAK_PLACE_BLOCK), this);
pluginManager.registerEvents(new DeathListener(APartType.DEATH), this);
pluginManager.registerEvents(new GUIListener(), this); pluginManager.registerEvents(new GUIListener(), this);
} }

View File

@ -1,28 +1,39 @@
package com.alttd.listeners; package com.alttd.listeners;
import com.alttd.AltitudeParticles;
import com.alttd.objects.APartType; import com.alttd.objects.APartType;
import com.alttd.objects.ParticleSet; import com.alttd.objects.ParticleSet;
import com.alttd.storage.PlayerSettings; import com.alttd.storage.PlayerSettings;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.List; import java.util.List;
public class BlockBreakListener implements Listener { public class BlockBreakListener implements Listener {
private final List<APartType> particlesToActivate; private final List<APartType> particlesToActivate;
public BlockBreakListener(APartType... particleTypes) { public BlockBreakListener(APartType... particleTypes) {
particlesToActivate = List.of(particleTypes); particlesToActivate = List.of(particleTypes);
} }
@EventHandler
public void onBlockBreak(BlockBreakEvent event) { public void onBlockBreak(BlockBreakEvent event) {
PlayerSettings player = PlayerSettings.getPlayer(event.getPlayer().getUniqueId()); new BukkitRunnable() {
if (!player.hasActiveParticles()) @Override
return; public void run() {
particlesToActivate.forEach(aPartType -> { PlayerSettings playerSettings = PlayerSettings.getPlayer(event.getPlayer().getUniqueId());
ParticleSet particleSet = player.getParticles(aPartType); if (!playerSettings.hasActiveParticles())
if (particleSet == null) return;
return; particlesToActivate.forEach(aPartType -> {
particleSet.run(event.getBlock().getLocation()); 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; package com.alttd.listeners;
import com.alttd.AltitudeParticles;
import com.alttd.objects.APartType; import com.alttd.objects.APartType;
import com.alttd.objects.ParticleSet; import com.alttd.objects.ParticleSet;
import com.alttd.storage.PlayerSettings; import com.alttd.storage.PlayerSettings;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.List; import java.util.List;
public class BlockPlaceListener implements Listener { public class BlockPlaceListener implements Listener {
private final List<APartType> particlesToActivate; private final List<APartType> particlesToActivate;
public BlockPlaceListener(APartType... particleTypes) { public BlockPlaceListener(APartType... particleTypes) {
particlesToActivate = List.of(particleTypes); particlesToActivate = List.of(particleTypes);
} }
@EventHandler
public void onBlockPlace(BlockPlaceEvent event) { public void onBlockPlace(BlockPlaceEvent event) {
PlayerSettings player = PlayerSettings.getPlayer(event.getPlayer().getUniqueId()); new BukkitRunnable() {
if (!player.hasActiveParticles()) @Override
return; public void run() {
particlesToActivate.forEach(aPartType -> { PlayerSettings playerSettings = PlayerSettings.getPlayer(event.getPlayer().getUniqueId());
ParticleSet particleSet = player.getParticles(aPartType); if (!playerSettings.hasActiveParticles())
if (particleSet == null) return;
return; particlesToActivate.forEach(aPartType -> {
particleSet.run(event.getBlock().getLocation()); 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.AltitudeParticles;
import com.alttd.database.Queries; import com.alttd.database.Queries;
import com.alttd.objects.APartType;
import com.alttd.objects.ParticleSet;
import com.alttd.storage.PlayerSettings; import com.alttd.storage.PlayerSettings;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import java.util.List;
import java.util.UUID; import java.util.UUID;
public class PlayerJoinListener implements Listener { public class PlayerJoinListener implements Listener {
private final List<APartType> particlesToActivate;
public PlayerJoinListener(APartType... particleTypes) {
particlesToActivate = List.of(particleTypes);
}
@EventHandler @EventHandler
public void onPlayerJoin(PlayerJoinEvent event) { public void onPlayerJoin(PlayerJoinEvent event) {
new PlayerSettings(true, true, event.getPlayer().getUniqueId()); //TODO REMOVE new BukkitRunnable() {
// new BukkitRunnable() { //TODO uncomment @Override
// @Override public void run() { //TODO uncomment
// public void run() { Player player = event.getPlayer();
// UUID uuid = event.getPlayer().getUniqueId(); new PlayerSettings(true, true, player.getUniqueId()); //TODO REMOVE
// UUID uuid = player.getUniqueId();
// PlayerSettings playerSettings = PlayerSettings.getPlayer(uuid); // PlayerSettings playerSettings = PlayerSettings.getPlayer(uuid);
// if (playerSettings == null) Queries.getPlayerSettings(uuid); // if (playerSettings == null) Queries.getPlayerSettings(uuid);
//
// //TODO activate particles sync/async??? PlayerSettings playerSettings = PlayerSettings.getPlayer(player.getUniqueId());
// } if (!playerSettings.hasActiveParticles())
// }.runTaskAsynchronously(AltitudeParticles.getInstance()); return;
particlesToActivate.forEach(aPartType -> {
ParticleSet particleSet = playerSettings.getParticles(aPartType);
if (particleSet == null)
return;
particleSet.run(player.getLocation());
});
}
}.runTaskAsynchronously(AltitudeParticles.getInstance());
} }
} }