mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-12 01:25:26 +02:00
entity target bypass protect permission split out to essentials.protect.entity.bypass.entityname for per entity settings
This commit is contained in:
@@ -190,7 +190,13 @@ public class EssentialsProtectEntityListener implements Listener
|
|||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onEntityTarget(final EntityTargetEvent event)
|
public void onEntityTarget(final EntityTargetEvent event)
|
||||||
{
|
{
|
||||||
if (event.getTarget().getType() == EntityType.PLAYER)
|
final Entity entity = event.getTarget();
|
||||||
|
if(entity == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (entity.getType() == EntityType.PLAYER)
|
||||||
{
|
{
|
||||||
final Player user = (Player)event.getTarget();
|
final Player user = (Player)event.getTarget();
|
||||||
if ((event.getReason() == TargetReason.CLOSEST_PLAYER
|
if ((event.getReason() == TargetReason.CLOSEST_PLAYER
|
||||||
@@ -199,7 +205,8 @@ public class EssentialsProtectEntityListener implements Listener
|
|||||||
|| event.getReason() == TargetReason.RANDOM_TARGET
|
|| event.getReason() == TargetReason.RANDOM_TARGET
|
||||||
|| event.getReason() == TargetReason.TARGET_ATTACKED_OWNER
|
|| event.getReason() == TargetReason.TARGET_ATTACKED_OWNER
|
||||||
|| event.getReason() == TargetReason.OWNER_ATTACKED_TARGET)
|
|| event.getReason() == TargetReason.OWNER_ATTACKED_TARGET)
|
||||||
&& Permissions.ENTITYTARGET.isAuthorized(user))
|
&& !prot.getSettings().getData().getPrevent().isEntitytarget()
|
||||||
|
&& !Permissions.ENTITY_TARGET_BYPASS.isAuthorized(user, event.getEntity().getType().getName().toLowerCase()))
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
@@ -3,13 +3,13 @@ package net.ess3.protect;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import net.ess3.api.IPermission;
|
import net.ess3.api.IPermission;
|
||||||
import net.ess3.bukkit.PermissionFactory;
|
import net.ess3.bukkit.PermissionFactory;
|
||||||
|
import net.ess3.permissions.DotStarPermission;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.permissions.PermissionDefault;
|
import org.bukkit.permissions.PermissionDefault;
|
||||||
|
|
||||||
|
|
||||||
public enum Permissions implements IPermission
|
public enum Permissions implements IPermission
|
||||||
{
|
{
|
||||||
ENTITYTARGET(PermissionDefault.TRUE),
|
|
||||||
PVP(PermissionDefault.TRUE),
|
PVP(PermissionDefault.TRUE),
|
||||||
PREVENTDAMAGE_FALL(PermissionDefault.FALSE),
|
PREVENTDAMAGE_FALL(PermissionDefault.FALSE),
|
||||||
PREVENTDAMAGE_CREEPER(PermissionDefault.FALSE),
|
PREVENTDAMAGE_CREEPER(PermissionDefault.FALSE),
|
||||||
@@ -70,4 +70,6 @@ public enum Permissions implements IPermission
|
|||||||
{
|
{
|
||||||
return PermissionFactory.checkPermission(sender, this);
|
return PermissionFactory.checkPermission(sender, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static DotStarPermission ENTITY_TARGET_BYPASS = new DotStarPermission("essentials.protect.entitytarget.bypass");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user