Ajout d'une protection pour les animaux domptés + correction debug du rechargement de la configuration + correction de bug sur la gestion des permissions

This commit is contained in:
2015-02-11 00:56:36 -05:00
parent 99bdc8af47
commit 5a9474822c
7 changed files with 167 additions and 29 deletions

View File

@@ -0,0 +1,83 @@
package net.mc_pandacraft.java.plugin.pandacraftutils.modules.cheat_protect;
import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils;
import org.bukkit.ChatColor;
import org.bukkit.entity.AnimalTamer;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
import org.bukkit.entity.Vehicle;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityTameEvent;
import org.bukkit.event.vehicle.VehicleEnterEvent;
public class TamedEntityProtectManager implements Listener {
private PandacraftUtils plugin = PandacraftUtils.getInstance();
public TamedEntityProtectManager()
{
plugin.getServer().getPluginManager().registerEvents(this, plugin);
}
@EventHandler
public void onEntityTame(EntityTameEvent event) {
if (event.getEntity().getWorld().getPVP()) return;
LivingEntity entity = event.getEntity();
AnimalTamer playerOwner = event.getOwner();
if (entity instanceof Tameable) {
Tameable tameableEntity = (Tameable) entity;
tameableEntity.setOwner(playerOwner);
if (playerOwner instanceof Player) {
Player p = (Player) playerOwner;
p.sendMessage(ChatColor.GREEN+"Vous venez de protéger cet animal");
}
}
}
@EventHandler
public void onVehicleEnter(VehicleEnterEvent event) {
if (event.getVehicle().getWorld().getPVP()) return;
Vehicle vehicle = event.getVehicle();
if (!(vehicle instanceof Tameable)) return;
Tameable tameableEntity = (Tameable) vehicle;
if (!tameableEntity.getOwner().equals(event.getEntered()))
event.setCancelled(true);
}
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent event) {
if (event.getEntity().getWorld().getPVP()) return;
Entity damager = event.getDamager();
if (!(damager instanceof Player)) return;
Entity target = event.getEntity();
if (!(target instanceof Tameable)) return;
Player p = (Player) damager;
Tameable animal = (Tameable) target;
if (!animal.getOwner().equals(p))
event.setCancelled(true);
}
}