package eu.univento.trashgames.listeners; import eu.univento.core.api.Utils; import eu.univento.core.api.game.PlayerManager; import eu.univento.core.api.player.CustomPlayer; import eu.univento.trashgames.TrashGames; import eu.univento.trashgames.game.GameState; import org.bukkit.Bukkit; import org.bukkit.Effect; import org.bukkit.Material; import org.bukkit.entity.Arrow; import org.bukkit.entity.FishHook; import org.bukkit.entity.Player; import org.bukkit.entity.SpectralArrow; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerRespawnEvent; /** * @author joethei * @version 0.1 */ public class PlayerEvents implements Listener{ @EventHandler public void onDeath(PlayerDeathEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getEntity()); if(PlayerManager.contains(p)) { PlayerManager.remove(p); TrashGames.setState(GameState.RESTART); Bukkit.broadcastMessage(PlayerManager.getPlayers().get(0) + " hat gewonnen"); PlayerManager.getPlayers().get(0).getDatabasePlayer().addCoins(50); } } @EventHandler public void onRespawn(PlayerRespawnEvent e) { if(PlayerManager.size() == 1) Utils.restart(); } @EventHandler public void onDamage(EntityDamageEvent e) { if(e.getEntity() instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity()); p.sendMessage(String.valueOf(p.getHealth())); p.sendMessage("DamageModifer.Armor: " + e.getDamage(EntityDamageEvent.DamageModifier.ARMOR)); p.sendMessage("DamageModifier.Blocking: " + e.getDamage(EntityDamageEvent.DamageModifier.BLOCKING)); } } @EventHandler public void onDamageByEntity(EntityDamageByEntityEvent e) { if(e.getEntity() instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity()); if(e.getDamager() instanceof Player) { CustomPlayer t = CustomPlayer.getPlayer((Player) e.getDamager()); p.sendMessage("Du hast was abgekriegt von " + t.getDatabasePlayer().getRank().getColor() + t.getDisplayName()); } if(e.getDamager() instanceof Arrow) { Arrow arrow = (Arrow) e.getDamager(); CustomPlayer shooter = CustomPlayer.getPlayer((Player) arrow.getShooter()); p.sendMessage("Der Pfeil kam von " + shooter.getDatabasePlayer().getRank().getColor() + shooter.getDisplayName()); } if(e.getDamager() instanceof SpectralArrow) { SpectralArrow arrow = (SpectralArrow) e.getDamager(); CustomPlayer shooter = CustomPlayer.getPlayer((Player) arrow.getShooter()); p.sendMessage("Du bist nun erleuchtet worden von " + shooter.getDatabasePlayer().getRank().getColor() + shooter.getDisplayName()); } if(e.getDamager() instanceof FishHook) { FishHook hook = (FishHook) e.getDamager(); CustomPlayer shooter = CustomPlayer.getPlayer((Player) hook.getShooter()); p.sendMessage("Du wurdest geangelt von " + shooter.getDatabasePlayer().getRank().getColor() + shooter.getDisplayName()); } } } @EventHandler public void onInteract(PlayerInteractEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); if(e.getClickedBlock() == null) return; if(e.getClickedBlock().getType() == Material.CHEST) { e.setCancelled(true); p.playEffect(e.getClickedBlock().getLocation(), Effect.CLOUD, 200); } } }