public class PvpProtect extends JavaPlugin
implements Listener
{
private static FileConfiguration config;
private SimpleDateFormat data;
private Essentials ess = null;
public void onEnable()
{
saveDefaultConfig();
PluginManager pm = getServer().getPluginManager();
pm.registerEvents(this, this);
config = getConfig();
setupEssentials();
}
@EventHandler
public void onDamage(EntityDamageByEntityEvent e) {
if (e.getDamager() == null) return;
if (e.getEntity() == null) return;
if (e.getDamager().getType().equals(EntityType.PLAYER)) {
Player damager = (Player)e.getDamager();
if (!damager.hasPermission("pvpprotect.bypass"))
if ((this.ess != null) && (getEss().getUser(damager).isVanished())) {
e.setCancelled(true);
damager.sendMessage(config.getString("pvp").replace("&", "§").replace("%mode%", config.getString(config.getString("vanish"))));
} else if ((this.ess != null) && (getEss().getUser(damager).isGodModeEnabled())) {
e.setCancelled(true);
damager.sendMessage(config.getString("pvp").replace("&", "§").replace("%mode%", config.getString("god")));
} else if (damager.getGameMode().equals(GameMode.CREATIVE)) {
e.setCancelled(true);
damager.sendMessage(config.getString("pvp").replace("&", "§").replace("%mode%", config.getString("creative")));
} else if (damager.getAllowFlight()) {
e.setCancelled(true);
damager.sendMessage(config.getString("pvp").replace("&", "§").replace("%mode%", config.getString("fly")));
}
}
}
@EventHandler
public void onGym(PlayerInteractEvent e) {
if (e.getPlayer() == null) return;
Player player = e.getPlayer();
if (!player.hasPermission("pvpprotect.bypass"))
if ((this.ess != null) && (getEss().getUser(player).isVanished())) {
if (player.getItemInHand().getTypeId() == 373) {
e.setCancelled(true);
player.sendMessage(config.getString("damagepotion").replace("&", "§").replace("%mode%", config.getString("vanish")));
player.updateInventory();
} else if (player.getItemInHand().getType().equals(Material.MONSTER_EGG)) {
e.setCancelled(true);
player.sendMessage(config.getString("spawnegg").replace("&", "§").replace("%mode%", config.getString("vanish")));
player.updateInventory();
}
} else if ((this.ess != null) && (getEss().getUser(player).isGodModeEnabled())) {
if (player.getItemInHand().getTypeId() == 373) {
e.setCancelled(true);
player.sendMessage(config.getString("damagepotion").replace("&", "§").replace("%mode%", config.getString("god")));
player.updateInventory();
} else if (player.getItemInHand().getType().equals(Material.MONSTER_EGG)) {
e.setCancelled(true);
player.sendMessage(config.getString("spawnegg").replace("&", "§").replace("%mode%", config.getString("god")));
player.updateInventory();
}
} else if (player.getGameMode().equals(GameMode.CREATIVE)) {
if (player.getItemInHand().getTypeId() == 373) {
e.setCancelled(true);
player.sendMessage(config.getString("damagepotion").replace("&", "§").replace("%mode%", config.getString("creative")));
} else if (player.getItemInHand().getType().equals(Material.MONSTER_EGG)) {
e.setCancelled(true);
player.sendMessage(config.getString("spawnegg").replace("&", "§").replace("%mode%", config.getString("creative")));
}
} else if ((player.isFlying()) || (player.getAllowFlight()))
if (player.getItemInHand().getTypeId() == 373) {
e.setCancelled(true);
player.sendMessage(config.getString("damagepotion").replace("&", "§").replace("%mode%", config.getString("fly")));
player.updateInventory();
} else if (player.getItemInHand().getType().equals(Material.MONSTER_EGG)) {
e.setCancelled(true);
player.sendMessage(config.getString("spawnegg").replace("&", "§").replace("%mode%", config.getString("fly")));
player.updateInventory();
}
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
if ((cmd.getName().equalsIgnoreCase("pvpprotect")) && ((sender instanceof Player))) {
if ((args[0].equalsIgnoreCase("reload")) && (sender.hasPermission("pvpprotect.reload"))) {
reloadConfig();
return true;
}
return true;
}
return false;
}
public boolean setupEssentials() {
if (getServer().getPluginManager().getPlugin("Essentials") != null) {
this.ess = ((Essentials)getServer().getPluginManager().getPlugin("Essentials"));
return true;
}
return false;
}
public Essentials getEss() {
return this.ess;
}
}