TrashGames/src/main/java/eu/univento/trashgames/listeners/PlayerEvents.java

91 lines
3.8 KiB
Java

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