Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [ADMN][FIX] PvpProtect - Защита от pvp и не только [1.5.2-*.*.*]

Rider3217

Активный участник
Пользователь
Баллы
98
Имя в Minecraft
Planet0111
PvpProtect - защита от пвп в креативе/флае/гуде/ванише а так же спавна яиц и использование зелий.
8dQDWIPtxkc.jpg

Особенности:
  • Защита от pvp в Vinish от Essentials.
  • Защита от pvp в God от Essentials.
  • Защита от pvp в Creative.
  • Защита от pvp в Fly.
  • Защита от спавна мобов в ванише/гуде/креативе/флае.
  • Защита от использования в ванише/гуде/креативе/флае.

Команды и права:
  • pvpprotect.bypass - право на обход защиты.
  • /pvpprotect reload - перезагрузка конфига(Требуется право pvpprotect.reload).

Конфиг:
Код:
pvp: '&cNot damaged because of the %mode%'
spawnegg: '&cTo create mobs is not possible in the %mode%'
damagepotion: '&cYou cannot use potions during the %mode%'
#Modes
creative: 'Creative'
fly: 'Fly'
vanish: 'Vanish'
god: 'God'
8dQDWIPtxkc.jpg

Автор идеи: @Boss_Demon
​
 
Последнее редактирование:
Caused by: unacceptable character '' (0xFFFD) special characters are not allowed
in "<string>", position 8
Воу,мой косяк.
 
Вы текст в конфиге меняли?
Я его русифицировал,видимо криво
Воть
pvp: '&cНет урона из-за %mode%'
spawnegg: '&cЧто бы спавнить мобов выключите %mode%'
damagepotion: '&cВы не можете использовать зелья во время %mode%'
 
@slenky,@RikkiLook Я просто хотел напомнить и ускорить модерацию.
А так же хотел спросить, сколько нужно создать и выложить плагинов что бы получить группу "Девелопер"?
Я его русифицировал,видимо криво
Можно посмотреть?
 
Последнее редактирование:
Выше написал.
Кароч,не переводит,что у UTF-8 что кирилица.
Сам перевод
pvp: '&cНет урона из-за %mode%'
spawnegg: '&cЧто бы спавнить мобов выключите %mode%'
damagepotion: '&cВы не можете использовать зелья во время %mode%'
Консолька
[SEVERE] Cannot load plugins/PvpProtect/config.yml
org.bukkit.configuration.InvalidConfigurationException: unacceptable character '' (0xFFFD) special characters are not allowed
in "<string>", position 8
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:105)
at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:175)
at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)
at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
at ds.over.pvpprotect.PvpProtect.onEnable(PvpProtect.java:32)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
at ykt.BeYkeRYkt.BkrReload.BkrReload.loadPlugin(BkrReload.java:236)
at ykt.BeYkeRYkt.BkrReload.BkrReload.loadCommand(BkrReload.java:200)
at ykt.BeYkeRYkt.BkrReload.BkrReload.onCommand(BkrReload.java:403)
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:546)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchServerCommand(CraftServer.java:535)
at net.minecraft.server.v1_5_R3.DedicatedServer.an(DedicatedServer.java:263)
at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:228)
at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Caused by: unacceptable character '' (0xFFFD) special characters are not allowed
in "<string>", position 8
at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.java:70)
at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:50)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:399)
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53)
... 21 more
 
Выше написал.
Кароч,не переводит,что у UTF-8 что кирилица.
Сам перевод
pvp: '&cНет урона из-за %mode%'
spawnegg: '&cЧто бы спавнить мобов выключите %mode%'
damagepotion: '&cВы не можете использовать зелья во время %mode%'
Консолька
[SEVERE] Cannot load plugins/PvpProtect/config.yml
org.bukkit.configuration.InvalidConfigurationException: unacceptable character '' (0xFFFD) special characters are not allowed
in "<string>", position 8
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:105)
at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:175)
at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)
at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
at ds.over.pvpprotect.PvpProtect.onEnable(PvpProtect.java:32)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
at ykt.BeYkeRYkt.BkrReload.BkrReload.loadPlugin(BkrReload.java:236)
at ykt.BeYkeRYkt.BkrReload.BkrReload.loadCommand(BkrReload.java:200)
at ykt.BeYkeRYkt.BkrReload.BkrReload.onCommand(BkrReload.java:403)
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:546)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchServerCommand(CraftServer.java:535)
at net.minecraft.server.v1_5_R3.DedicatedServer.an(DedicatedServer.java:263)
at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:228)
at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Caused by: unacceptable character '' (0xFFFD) special characters are not allowed
in "<string>", position 8
at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.java:70)
at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:50)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:399)
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53)
... 21 more
Странно, у меня работает. У вас UTF-8 Без BOM? А стандартный перевод работает?
 
Я так понял это намного лучше чем NoFlyPvp
 
Обновление #3
==========================================
Версия: 1.1
Функционал:

  • Добавлена команда /pvpprotect reload - перезагрузка конфига(Требуется право pvpprotect.reload).
  • Добавлена настройка %mode% в конфиге.
ВНИМАНИЕ: Обновление не тестировалось!
==========================================
 
Последнее редактирование:
Растешь! Помню когда-то ты хотел научиться и вот результат. Удачи тебе!) А мне лень xD
P.S: Иди на турнички. Я уже 1.5 года на них болдею.
 
Последнее редактирование:
Проверил всё хорошо работает. Рус конфиг
-88693455.png

pvp: '&cНет урона из-за %mode%'
spawnegg: '&cЧто бы спавнить мобов выключите режим %mode%'
damagepotion: '&cВы не можете использовать зелья во время %mode%'
creative: 'Креатив(а)'
fly: 'Полёт(а)'
vanish: 'Невидимост(и)'
god: 'Бессмерти(я)'
 
Последнее редактирование:
Растешь! Помню когда-то ты хотел научиться и вот результат. Удачи тебе!) А мне лень xD
P.S: Иди на турнички. Я уже 1.5 года на них болдею.
Я на тарнике 30 раз подтягивался, щас 20.
Не писать быдло код.В каждой строчке говно код
Да ну,что вы там сделаете лучше?
Я что то не заметил что там можно что то поменять и сделать лучше.
 
Я на тарнике 30 раз подтягивался, щас 20.

Да ну,что вы там сделаете лучше?
Я что то не заметил что там можно что то поменять и сделать лучше.
Можно, индусского кода полно.
 
Можно, индусского кода полно.
Дай мне пример что бы я понял и исправлял.
Можно, индусского кода полно.
Я заметил, есть там код не очень, но это не индусский код.
Почитайте трактовку о индусском коде.
А код я исправлю.
Можно, индусского кода полно.
Дорогой вы наш, так вам хватит? https://yadi.sk/d/bDJycKr5iD8Wt
Если что то можно поправить скажите.
 
Java:
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;
  }
}

Java:
public class PvpProtect extends JavaPlugin
  implements Listener
{
  private static FileConfiguration config;
  private SimpleDateFormat data;
  private Essentials ess = null;
  private String pvp, egg, potion, vanish, god, gm, fly;

  public void onEnable()
  {
    saveDefaultConfig();
    PluginManager pm = getServer().getPluginManager();
    pm.registerEvents(this, this);
    config = getConfig();
    setupEssentials();
    pvp = ChatColor.translateAlternateColorCodes('&', config.getString("pvp"));
    egg = ChatColor.translateAlternateColorCodes('&', config.getString("spawnegg"));
    potion = ChatColor.translateAlternateColorCodes('&', config.getString("damagepotion"));
    vanish = ChatColor.translateAlternateColorCodes('&', config.getString("vanish"));
    gm = ChatColor.translateAlternateColorCodes('&', config.getString("creative"));
    god = ChatColor.translateAlternateColorCodes('&', config.getString("god"));
    fly = ChatColor.translateAlternateColorCodes('&', config.getString("fly"));
  }

  @EventHandler
  public void onDamage(EntityDamageByEntityEvent e) {
    if (e.getDamager() == null || e.getEntity() == null) return; 
    if (e.getDamager().getType() == EntityType.PLAYER) {
      Player damager = (Player)e.getDamager();
      if (!damager.hasPermission("pvpprotect.bypass") && this.ess != null){
        String msg = pvp;
        boolean cancel = true;
        if (this.ess.getUser(gamager).isVanished()) msg.replaceAll("%mode%", vanish); else
        if (this.ess.getUser(gamager).isGodModeEnabled()) msg.replaceAll("%mode%", god); else 
        if (damager.getGameMode() == GameMode.CREATIVE) msg.replaceAll("%mode%", gm); else
        if (damager.isAllowFlight()) msg.replaceAll("%mode%", fly); else cancel = false;
        event.setCancelled(cancel);
        if (cancel) damager.sendMessage(msg);
      }
    }
  }

  @EventHandler
  public void onGym(PlayerInteractEvent e) {
    if (e.getPlayer() == null) return;
    Player player = e.getPlayer();
    if (!player.hasPermission("pvpprotect.bypass") && this.ess != null){
        String msg = "";
        boolean cancel = true;
        if (player.getItemInHand().getTypeId() == 373) msg = potion; else        
        if (player.getItemInHand().getType() == Material.MONSTER_EGG) msg = egg; else cancel = false;
        if (cancel){
            if (this.ess.getUser(gamager).isVanished()) msg.replaceAll("%mode%", vanish); else
            if (this.ess.getUser(gamager).isGodModeEnabled()) msg.replaceAll("%mode%", god); else 
            if (damager.getGameMode() == GameMode.CREATIVE) msg.replaceAll("%mode%", gm); else
            if (damager.isAllowFlight()) msg.replaceAll("%mode%", fly); else cancel = false;
            player.updateInventory();
            player.sendMessage(msg);
        }
    }
  }

  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;
  }
}
 
Java:
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;
  }
}

Java:
public class PvpProtect extends JavaPlugin
  implements Listener
{
  private static FileConfiguration config;
  private SimpleDateFormat data;
  private Essentials ess = null;
  private String pvp, egg, potion, vanish, god, gm, fly;

  public void onEnable()
  {
    saveDefaultConfig();
    PluginManager pm = getServer().getPluginManager();
    pm.registerEvents(this, this);
    config = getConfig();
    setupEssentials();
    pvp = ChatColor.translateAlternateColorCodes('&', config.getString("pvp"));
    egg = ChatColor.translateAlternateColorCodes('&', config.getString("spawnegg"));
    potion = ChatColor.translateAlternateColorCodes('&', config.getString("damagepotion"));
    vanish = ChatColor.translateAlternateColorCodes('&', config.getString("vanish"));
    gm = ChatColor.translateAlternateColorCodes('&', config.getString("creative"));
    god = ChatColor.translateAlternateColorCodes('&', config.getString("god"));
    fly = ChatColor.translateAlternateColorCodes('&', config.getString("fly"));
  }

  @EventHandler
  public void onDamage(EntityDamageByEntityEvent e) {
    if (e.getDamager() == null || e.getEntity() == null) return;
    if (e.getDamager().getType() == EntityType.PLAYER) {
      Player damager = (Player)e.getDamager();
      if (!damager.hasPermission("pvpprotect.bypass") && this.ess != null){
        String msg = pvp;
        boolean cancel = true;
        if (this.ess.getUser(gamager).isVanished()) msg.replaceAll("%mode%", vanish); else
        if (this.ess.getUser(gamager).isGodModeEnabled()) msg.replaceAll("%mode%", god); else
        if (damager.getGameMode() == GameMode.CREATIVE) msg.replaceAll("%mode%", gm); else
        if (damager.isAllowFlight()) msg.replaceAll("%mode%", fly); else cancel = false;
        event.setCancelled(cancel);
        if (cancel) damager.sendMessage(msg);
      }
    }
  }

  @EventHandler
  public void onGym(PlayerInteractEvent e) {
    if (e.getPlayer() == null) return;
    Player player = e.getPlayer();
    if (!player.hasPermission("pvpprotect.bypass") && this.ess != null){
        String msg = "";
        boolean cancel = true;
        if (player.getItemInHand().getTypeId() == 373) msg = potion; else       
        if (player.getItemInHand().getType() == Material.MONSTER_EGG) msg = egg; else cancel = false;
        if (cancel){
            if (this.ess.getUser(gamager).isVanished()) msg.replaceAll("%mode%", vanish); else
            if (this.ess.getUser(gamager).isGodModeEnabled()) msg.replaceAll("%mode%", god); else
            if (damager.getGameMode() == GameMode.CREATIVE) msg.replaceAll("%mode%", gm); else
            if (damager.isAllowFlight()) msg.replaceAll("%mode%", fly); else cancel = false;
            player.updateInventory();
            player.sendMessage(msg);
        }
    }
  }

  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;
  }
}
Суть одна и та же, у тебя только код поменьше, но учту.
 

Поделиться этой страницей

Назад
Верх