101 lines
3.8 KiB
Java
101 lines
3.8 KiB
Java
/*
|
|
* Copyright (c) 2017 univento.eu - All rights reserved
|
|
* You are not allowed to use, distribute or modify this code
|
|
*/
|
|
|
|
package eu.univento.core.customitems.weapons.closecombat;
|
|
|
|
import eu.univento.core.Core;
|
|
import eu.univento.core.api.customitems.CustomItems;
|
|
import eu.univento.core.api.player.CustomPlayer;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
|
import org.bukkit.event.player.*;
|
|
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* @author joethei
|
|
* @version 1.0
|
|
*/
|
|
public class CloseCombatEvents implements Listener{
|
|
|
|
private List<CustomPlayer> thiefsDagger = new LinkedList<>();
|
|
|
|
@EventHandler
|
|
public void onEntityDamageByEntity(EntityDamageByEntityEvent e) {
|
|
if(e.getDamager() instanceof Player && e.getEntity() instanceof Player) {
|
|
if(CustomItems.valueOf(((Player) e.getDamager()).getInventory().getItemInMainHand()) != null) {
|
|
CustomItems.valueOf(((Player) e.getDamager()).getInventory().getItemInMainHand()).getActions().getPlayerHitAction().onHit(CustomPlayer.getPlayer((Player) e.getEntity()), CustomPlayer.getPlayer((Player) e.getDamager()), e.getDamage(), e.getCause());
|
|
}
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onPlayerInteract(PlayerInteractEvent e) {
|
|
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
|
|
if(CustomItems.valueOf(e.getItem()) != null) {
|
|
CustomItems.valueOf(e.getItem()).getActions().getInteractBlockAction().onInteract(p, e.getAction(), e.getClickedBlock(), e.getBlockFace());
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onPlayerInteractEntity(PlayerInteractEntityEvent e) {
|
|
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
|
|
if(CustomItems.valueOf(p.getInventory().getItemInMainHand()) != null && e.getRightClicked() instanceof Player) {
|
|
CustomItems.valueOf(p.getInventory().getItemInMainHand()).getActions().getInteractPlayerAction().onInteract(p, CustomPlayer.getPlayer((Player) e.getRightClicked()));
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void toggleSneak(PlayerToggleSneakEvent e) {
|
|
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
|
|
if(e.isSneaking()) {
|
|
if(p.getInventory().getItemInMainHand().equals(ThiefsDagger.getItemStack())) {
|
|
thiefsDagger.add(p);
|
|
p.hideToAll();
|
|
}
|
|
}else {
|
|
if(thiefsDagger.contains(p)) {
|
|
thiefsDagger.remove(p);
|
|
p.showToAll();
|
|
}
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onItemSwitch(PlayerItemHeldEvent e) {
|
|
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
|
|
if(p.getInventory().getItem(e.getNewSlot()) == ThiefsDagger.getItemStack()) {
|
|
if(p.isSneaking()) {
|
|
thiefsDagger.add(p);
|
|
p.hideToAll();
|
|
}
|
|
}
|
|
if(p.getInventory().getItem(e.getPreviousSlot()) == ThiefsDagger.getItemStack()) {
|
|
if(thiefsDagger.contains(p)) {
|
|
thiefsDagger.remove(p);
|
|
p.showToAll();
|
|
}
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onRespawn(PlayerRespawnEvent e) {
|
|
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
|
|
for(CustomPlayer player : Core.getOnlinePlayers()) {
|
|
if(thiefsDagger.contains(player)) p.hidePlayer(player);
|
|
else p.showPlayer(player);
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onItemHandSwap(PlayerSwapHandItemsEvent e) {
|
|
if(e.getPlayer().getInventory().getItemInMainHand() == ThiefsDagger.getItemStack() || e.getPlayer().getInventory().getItemInOffHand() == ThiefsDagger.getItemStack()) {
|
|
e.setCancelled(true);
|
|
}
|
|
}
|
|
} |