Protect wolves under certain conditions (#507)
- Protects wolves unless the attacker is being targeted by the wolf.
This commit is contained in:
parent
832ec7ed86
commit
522d225548
|
|
@ -48,6 +48,7 @@ import org.bukkit.entity.WaterMob;
|
||||||
import org.bukkit.entity.Llama;
|
import org.bukkit.entity.Llama;
|
||||||
import org.bukkit.entity.Donkey;
|
import org.bukkit.entity.Donkey;
|
||||||
import org.bukkit.entity.Mule;
|
import org.bukkit.entity.Mule;
|
||||||
|
import org.bukkit.entity.Wolf;
|
||||||
import org.bukkit.entity.minecart.ExplosiveMinecart;
|
import org.bukkit.entity.minecart.ExplosiveMinecart;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
|
|
@ -988,6 +989,25 @@ public class EntityEventHandler implements Listener
|
||||||
if(sendErrorMessagesToPlayers) GriefPrevention.sendMessage(attacker, TextMode.Err, Messages.CantFightWhileImmune);
|
if(sendErrorMessagesToPlayers) GriefPrevention.sendMessage(attacker, TextMode.Err, Messages.CantFightWhileImmune);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// disallow players attacking tamed wolves (dogs) unless under attack by said wolf
|
||||||
|
else if (tameable.getType() == EntityType.WOLF)
|
||||||
|
{
|
||||||
|
if (!tameable.getOwner().equals(attacker))
|
||||||
|
{
|
||||||
|
if (((Wolf) tameable).getTarget() != null)
|
||||||
|
{
|
||||||
|
if (((Wolf) tameable).getTarget() == attacker) return;
|
||||||
|
}
|
||||||
|
event.setCancelled(true);
|
||||||
|
String ownerName = GriefPrevention.instance.getServer().getOfflinePlayer(ownerID).getName();
|
||||||
|
String message = GriefPrevention.instance.dataStore.getMessage(Messages.NoDamageClaimedEntity, ownerName);
|
||||||
|
if (attacker.hasPermission("griefprevention.ignoreclaims"))
|
||||||
|
message += " " + GriefPrevention.instance.dataStore.getMessage(Messages.IgnoreClaimsAdvertisement);
|
||||||
|
if (sendErrorMessagesToPlayers)
|
||||||
|
GriefPrevention.sendMessage(attacker, TextMode.Err, message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user