1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Неподтвержденные плагины", создана пользователем Rider3217, 31 июл 2015.

  1. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    PvpProtect - защита от пвп в креативе/флае/гуде/ванише а так же спавна яиц и использование зелий.
    [​IMG]
    Особенности:
    • Защита от 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'
    [​IMG]
    Автор идеи: @Boss_Demon
    [​IMG]
     
    Последнее редактирование: 13 апр 2017
  2. Niksmile

    Niksmile Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Smiley
    Caused by: unacceptable character '' (0xFFFD) special characters are not allowed
    in "<string>", position 8
    Воу,мой косяк.
     
  3. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Вы текст в конфиге меняли?
     
  4. Niksmile

    Niksmile Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Smiley
    Я его русифицировал,видимо криво
    Воть
    pvp: '&cНет урона из-за %mode%'
    spawnegg: '&cЧто бы спавнить мобов выключите %mode%'
    damagepotion: '&cВы не можете использовать зелья во время %mode%'
     
  5. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    @slenky,@RikkiLook Я просто хотел напомнить и ускорить модерацию.
    А так же хотел спросить, сколько нужно создать и выложить плагинов что бы получить группу "Девелопер"?
    Можно посмотреть?
     
    Последнее редактирование: 31 июл 2015
  6. Niksmile

    Niksmile Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Smiley
    Выше написал.
    Кароч,не переводит,что у 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
     
  7. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Странно, у меня работает. У вас UTF-8 Без BOM? А стандартный перевод работает?
     
  8. Niksmile

    Niksmile Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Smiley
    Да без бома,скиньте рус версию будте добры.
     
  9. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
  10. Niksmile

    Niksmile Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Smiley
    Нечего не пойму,всё норм. Странно. Ну да ладно. Спсибки) Хороший плагин.
     
  11. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Вы можете или помочь добавить функции в этот или дать идею на новый в этой теме: http://rubukkit.org/threads/vashi-idei-moi-plaginy.105012 ,если хотите.
     
  12. Niksmile

    Niksmile Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Smiley
    Я так понял это намного лучше чем NoFlyPvp
     
  13. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Обновление #3
    ==========================================
    Версия: 1.1
    Функционал:

    • Добавлена команда /pvpprotect reload - перезагрузка конфига(Требуется право pvpprotect.reload).
    • Добавлена настройка %mode% в конфиге.
    ВНИМАНИЕ: Обновление не тестировалось!
    ==========================================
     
    Последнее редактирование: 31 июл 2015
  14. LomNar

    LomNar Активный участник Пользователь

    Баллы:
    78
    Skype:
    radius981
    Имя в Minecraft:
    LomNar
    Растешь! Помню когда-то ты хотел научиться и вот результат. Удачи тебе!) А мне лень xD
    P.S: Иди на турнички. Я уже 1.5 года на них болдею.
     
    Последнее редактирование: 31 июл 2015
  15. Niksmile

    Niksmile Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Smiley
    Проверил всё хорошо работает. Рус конфиг
    [​IMG]
    pvp: '&cНет урона из-за %mode%'
    spawnegg: '&cЧто бы спавнить мобов выключите режим %mode%'
    damagepotion: '&cВы не можете использовать зелья во время %mode%'
    creative: 'Креатив(а)'
    fly: 'Полёт(а)'
    vanish: 'Невидимост(и)'
    god: 'Бессмерти(я)'
     
    Последнее редактирование: 1 авг 2015
  16. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Я на тарнике 30 раз подтягивался, щас 20.
    Да ну,что вы там сделаете лучше?
    Я что то не заметил что там можно что то поменять и сделать лучше.
     
  17. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Можно, индусского кода полно.
     
  18. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Дай мне пример что бы я понял и исправлял.
    Я заметил, есть там код не очень, но это не индусский код.
    Почитайте трактовку о индусском коде.
    А код я исправлю.
    Дорогой вы наш, так вам хватит? https://yadi.sk/d/bDJycKr5iD8Wt
    Если что то можно поправить скажите.
     
  19. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Код:
    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;
      }
    }
    

    Код:
    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;
      }
    }
    
     
  20. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Суть одна и та же, у тебя только код поменьше, но учту.
     

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