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

Права

Тема в разделе "Разработка плагинов для новичков", создана пользователем Tyzun, 22 сен 2013.

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

    Tyzun Старожил

    Баллы:
    153
    Skype:
    tyzun1997
    Имя в Minecraft:
    _Tyzun_
    Решил сделать права в рлагине так, чтоб они подходили ко всех плагинам прав. Сделал вот так:
    Код:
    package ru.tyzun.plugin.antigodpvp;
     
     
    import org.bukkit.GameMode;
     
    import org.bukkit.entity.Arrow;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.HumanEntity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.plugin.java.JavaPlugin;
     
    import com.earth2me.essentials.Essentials;
     
    public class AntiGodPvp extends JavaPlugin implements Listener {
        public Essentials ess = null;
       
        @Override
        public void onEnable() {
            getServer().getPluginManager().registerEvents(this, this);
        }
     
        @EventHandler
          public void onPlayerDamage(EntityDamageByEntityEvent event) {
            Entity defender = event.getEntity();
            Entity attacker = event.getDamager();
            if (((defender instanceof Player)) && ((attacker instanceof Player))) {
              Player pl = (Player)event.getDamager();
              if (pl.isFlying() && (!pl.hasPermission("agp.allowflypvp"))) {
                event.setCancelled(true);
              }
            }
          }
     
          @EventHandler
          public void onPlayerDamageArrow(EntityDamageByEntityEvent event)
          {
            Entity defender = event.getEntity();
            Entity damager = event.getDamager();
     
            if (((defender instanceof Player)) && ((damager instanceof Arrow))) {
              damager = ((Arrow)damager).getShooter();
              if (((damager instanceof Player)) && (((Player)damager).isFlying()) && (!((Player)damager).hasPermission("agp.allowflyshot"))) {
                event.setCancelled(true);
              }
            }
           
    }
                 
     
          @EventHandler
          public void onPlayerDamage2(EntityDamageByEntityEvent event) {
            Entity defender = event.getEntity();
            Entity attacker = event.getDamager();
            if (((defender instanceof Player)) && ((attacker instanceof Player))) {
              Player pl = (Player)event.getDamager();
              if (pl.getGameMode() == GameMode.CREATIVE && (!pl.hasPermission("agp.allowcreatpvp"))) {
                event.setCancelled(true);
              }
            }
          }
          @EventHandler
          public void onPlayerDamageArrow2(EntityDamageByEntityEvent event)
          {
            Entity defender = event.getEntity();
            Entity damager = event.getDamager();
     
            if (((defender instanceof Player)) && ((damager instanceof Arrow))) {
              damager = ((Arrow)damager).getShooter();
              if ((damager instanceof Player))
              {
                if (((HumanEntity)damager).getGameMode() == GameMode.CREATIVE && (!((Player)damager).hasPermission("agp.allowcreatshot"))) {
                  event.setCancelled(true);
                }
              }
            }
          }
         
          @EventHandler
          public void onPlayerDamage3(EntityDamageByEntityEvent event) {
            Entity defender = event.getEntity();
            Entity attacker = event.getDamager();
            if (((defender instanceof Player)) && ((attacker instanceof Player))) {
              Player pl = (Player)event.getDamager();
              if (ess.getUser(attacker).isGodModeEnabled() && (!pl.hasPermission("agp.allowgod"))) {
                event.setCancelled(true);
              }
            }
          }
     
          @EventHandler
          public void onPlayerDamageArrow3(EntityDamageByEntityEvent ev)
          {
            Entity defender = ev.getEntity();
            Entity damager = ev.getDamager();
     
            if (((defender instanceof Player)) && ((damager instanceof Arrow))) {
              damager = ((Arrow)damager).getShooter();
              if ((damager instanceof Player))
              {
                if (ess.getUser(damager).isGodModeEnabled() && (!((Player)damager).hasPermission("agp.allowgodshot"))) {
                  ev.setCancelled(true);
                }
              }
            }
          }
         
          @EventHandler
          public void onPlayerInteract(PlayerInteractEvent e)
          {
            Player p = e.getPlayer();
            if (((e.getAction() == Action.RIGHT_CLICK_AIR) || (e.getAction() == Action.RIGHT_CLICK_BLOCK)) &&
                      (p.getGameMode().equals(GameMode.CREATIVE)))
                    {
                if(
                (p.getItemInHand().getTypeId() == 373) && (!p.hasPermission("agp.potions"))){
                    e.setCancelled(true);
                }
                    }
          }
       
          }
         
          
    В plugin.yml вписал это:
    Код:
    main: ru.tyzun.plugin.antigodpvp.AntiGodPvp
    name: AntiGodPvp
    version: 0.1
    author: Tyzun
    permissions:
        agp.*:
            children:
                agp.allowflypvp: true
                agp.allowflyshot: true
                agp.allowcreatpvp: true
                agp.allowcreatshot: true
                agp.allowgod: true
                agp.allowgodshot: true
                agp.potions: true
        agp.allowflypvp:
            default: op
        agp.allowflyshot:
            default: op
        agp.allowcreatpvp:
            default: op
        agp.allowcreatshot:
            default: op
        agp.allowgod:
            default: op
        agp.allowgodshot:
            default: op
        agp.potions:
            default: op
    Плагин сам работает, а вот права нет.
     
  2. Автор темы
    Tyzun

    Tyzun Старожил

    Баллы:
    153
    Skype:
    tyzun1997
    Имя в Minecraft:
    _Tyzun_
    Все, все работает
     

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