Added 3 new listeners

This commit is contained in:
Teriuihi 2022-01-13 23:15:21 +01:00
parent 70251bbce7
commit 0140e5f293
4 changed files with 149 additions and 0 deletions

View File

@ -42,6 +42,9 @@ public class AltitudeParticles extends JavaPlugin {
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 RightClickListener(APartType.CLICK_BLOCK), this);
pluginManager.registerEvents(new KillListener(APartType.ATTACK), this);
pluginManager.registerEvents(new TeleportArriveListener(APartType.TELEPORT_ARRIVE), this);
pluginManager.registerEvents(new DeathListener(APartType.DEATH), this);
pluginManager.registerEvents(new GUIListener(), this);
}

View File

@ -0,0 +1,45 @@
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.EntityDeathEvent;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.List;
public class KillListener implements Listener {
private final List<APartType> particlesToActivate;
public KillListener(APartType... particleTypes) {
particlesToActivate = List.of(particleTypes);
}
@EventHandler(priority = EventPriority.MONITOR)
public void onKill(EntityDeathEvent event) {
if (event.isCancelled())
return;
Player player = event.getEntity().getKiller();
if (player == null)
return;
new BukkitRunnable() {
@Override
public void run() {
PlayerSettings playerSettings = PlayerSettings.getPlayer(player.getUniqueId());
if (!playerSettings.hasActiveParticles())
return;
particlesToActivate.forEach(aPartType -> {
ParticleSet particleSet = playerSettings.getParticles(aPartType);
if (particleSet == null)
return;
particleSet.run(event.getEntity().getLocation());
});
}
}.runTaskAsynchronously(AltitudeParticles.getInstance());
}
}

View File

@ -0,0 +1,57 @@
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;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
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;
public class RightClickListener implements Listener {
private final List<APartType> particlesToActivate;
public RightClickListener(APartType... particleTypes) {
particlesToActivate = List.of(particleTypes);
}
@EventHandler(priority = EventPriority.MONITOR)
public void onEmptyRightClick(PlayerInteractEvent event) {
EquipmentSlot hand = event.getHand();
if (hand == null || !hand.equals(EquipmentSlot.OFF_HAND) || !event.getAction().equals(Action.RIGHT_CLICK_BLOCK))
return;
ItemStack itemStack = event.getItem();
if (itemStack != null && !itemStack.getType().equals(Material.AIR))
return;
Block clickedBlock = event.getClickedBlock();
if (clickedBlock == null)
return;
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

@ -0,0 +1,44 @@
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.player.PlayerTeleportEvent;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.List;
public class TeleportArriveListener implements Listener {
private final List<APartType> particlesToActivate;
public TeleportArriveListener(APartType... particleTypes) {
particlesToActivate = List.of(particleTypes);
}
@EventHandler(priority = EventPriority.MONITOR)
public void onTeleportArrive(PlayerTeleportEvent event) {
if (event.isCancelled())
return;
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(event.getTo());
});
}
}.runTaskAsynchronously(AltitudeParticles.getInstance());
}
}