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

Права

  • Автор темы Автор темы Tyzun
  • Дата начала Дата начала

Tyzun

Старожил
Баллы
153
Имя в 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
Плагин сам работает, а вот права нет.
 
Назад
Верх