Prevent nametag usage unless player can kill target (#1337)
Addresses discussion #1333
This commit is contained in:
parent
64df0e8297
commit
cac5aa04f1
|
|
@ -57,6 +57,8 @@ 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.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerBucketEmptyEvent;
|
||||
|
|
@ -1319,8 +1321,10 @@ class PlayerEventHandler implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
ItemStack itemInHand = instance.getItemInHand(player, event.getHand());
|
||||
|
||||
//if preventing theft, prevent leashing claimed creatures
|
||||
if (instance.config_claims_preventTheft && entity instanceof Creature && instance.getItemInHand(player, event.getHand()).getType() == Material.LEAD)
|
||||
if (instance.config_claims_preventTheft && entity instanceof Creature && itemInHand.getType() == Material.LEAD)
|
||||
{
|
||||
Claim claim = this.dataStore.getClaimAt(entity.getLocation(), false, playerData.lastClaim);
|
||||
if (claim != null)
|
||||
|
|
@ -1334,6 +1338,19 @@ class PlayerEventHandler implements Listener
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Name tags may only be used on entities that the player is allowed to kill.
|
||||
if (itemInHand.getType() == Material.NAME_TAG)
|
||||
{
|
||||
EntityDamageByEntityEvent damageEvent = new EntityDamageByEntityEvent(player, entity, EntityDamageEvent.DamageCause.CUSTOM, 0);
|
||||
instance.getServer().getPluginManager().callEvent(damageEvent);
|
||||
if (damageEvent.isCancelled())
|
||||
{
|
||||
event.setCancelled(true);
|
||||
// Don't print message - damage event handler should have handled it.
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//when a player throws an egg
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user