mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2024-10-02 14:53:47 +00:00
PVP protection for arrows and other projectiles. Needs cleanup.
This commit is contained in:
parent
01861e5a64
commit
8281908306
|
@ -1,6 +1,5 @@
|
|||
package com.earth2me.essentials.protect;
|
||||
|
||||
import com.earth2me.essentials.EssentialsBlockListener;
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.User;
|
||||
import java.util.HashSet;
|
||||
|
@ -21,11 +20,11 @@ import org.bukkit.entity.Entity;
|
|||
import org.bukkit.entity.Fireball;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.entity.TNTPrimed;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByBlockEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByProjectileEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
|
@ -47,7 +46,7 @@ public class EssentialsProtectEntityListener extends EntityListener
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onEntityDamage(EntityDamageEvent event)
|
||||
public void onEntityDamage(final EntityDamageEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
|
@ -139,18 +138,21 @@ public class EssentialsProtectEntityListener extends EntityListener
|
|||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (event instanceof EntityDamageByProjectileEvent
|
||||
if (edEvent.getDamager() instanceof Projectile
|
||||
&& target instanceof Player
|
||||
&& prot.getSettingBool(ProtectConfig.disable_projectiles)
|
||||
&& ((prot.getSettingBool(ProtectConfig.disable_projectiles)
|
||||
&& !(user.isAuthorized("essentials.protect.damage.projectiles")
|
||||
&& !user.isAuthorized("essentials.protect.damage.disable")))
|
||||
|| (((Projectile)edEvent.getDamager()).getShooter() instanceof Player
|
||||
&& prot.getSettingBool(ProtectConfig.disable_pvp)
|
||||
&& (!user.isAuthorized("essentials.protect.pvp")
|
||||
|| !ess.getUser(((Projectile)edEvent.getDamager()).getShooter()).isAuthorized("essentials.protect.pvp")))))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
((EntityDamageByProjectileEvent)event).setBounce(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final DamageCause cause = event.getCause();
|
||||
if (target instanceof Player)
|
||||
|
@ -201,7 +203,7 @@ public class EssentialsProtectEntityListener extends EntityListener
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onEntityExplode(EntityExplodeEvent event)
|
||||
public void onEntityExplode(final EntityExplodeEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
|
@ -279,12 +281,6 @@ public class EssentialsProtectEntityListener extends EntityListener
|
|||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
/*if (EssentialsBlockListener.protectedBlocks.contains(block.getType())
|
||||
&& EssentialsBlockListener.isBlockProtected(block))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue