Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите Не работает отмена урона

Discussion in 'Разработка плагинов для новичков' started by Очередной_адмЕн, Jan 27, 2015.

Thread Status:
Not open for further replies.
  1. Автор темы
    Очередной_адмЕн

    Очередной_адмЕн Участник Пользователь

    Trophy Points:
    36
    Вообщем вот написал плагин:
    Code:
    public class sp extends JavaPlugin implements Listener {
        GodComponent g;
    
        public void onEnable(){
            getServer().getPluginManager().registerEvents(this, this);
            CommandBook cmb = (CommandBook)Bukkit.getPluginManager().getPlugin("CommandBook");
            g = cmb.getComponentManager().getComponent(GodComponent.class);
        }
      
        @EventHandler
        public void onAttack(EntityDamageByEntityEvent e) {
            if(e.getDamager() instanceof Player & e.getEntity() instanceof Player) {
              Player p = (Player)e.getDamager();
              if(!p.isOp()){
                if(p.getGameMode() == GameMode.CREATIVE){
                    e.setCancelled(true);
                    p.setGameMode(GameMode.SURVIVAL);
                }    
                if(g.hasGodMode(p)) {
                    e.setCancelled(true);
                    g.disableGodMode(p);
                }
                if(p.isFlying()) {
                    e.setCancelled(true);
                    p.setFlying(false);
                }
            }
        
        }
       }
           
      
    }
    Отмена урона и переключение в выживание, если атакующий креатив работает, но вот отмена флая и год мода(год мод из CommandBook) не работает. Подскажите, что не так.
     
    Last edited: Jan 27, 2015
  2. Хостинг MineCraft
    <
  3. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    А ты попробуй использовать Fly из bukkit'a.
    Должно работать.
    Code:
    if(player.isFlying())
    player.setFlying(false);
    
     
  4. Автор темы
    Очередной_адмЕн

    Очередной_адмЕн Участник Пользователь

    Trophy Points:
    36
    Дак я и использую флай из баккита, из коммандбука только годмод.
     
  5. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    А, сорян. Не заметил. Но отмена флая должна работать...
    Попробуй установить высокую приоритетность ивента.
    И заключи код в [code=java] //тут код [/code]
     
  6. Автор темы
    Очередной_адмЕн

    Очередной_адмЕн Участник Пользователь

    Trophy Points:
    36
    Всеравно работает только отмена гейммода.
     
  7. CraftCoder

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

    Trophy Points:
    108
    Имя в Minecraft:
    CraftCoderr
    Выключай год через метадату игрока.[DOUBLEPOST=1422368863,1422368183][/DOUBLEPOST]
    Code:
    Plugin commandBook = SkyWars.get().getServer().getPluginManager().getPlugin("CommandBook");
    if (player.hasMetadata("god")) {
    if (commandBook != null && commandBook instanceof com.sk89q.commandbook.CommandBook) {
    player.removeMetadata("god", commandBook);
    }
    }
    
     
  8. Автор темы
    Очередной_адмЕн

    Очередной_адмЕн Участник Пользователь

    Trophy Points:
    36
    Спасибо. Действительно, через метадату все заработало как надо. :good:[DOUBLEPOST=1422371353][/DOUBLEPOST]CommandBook api, GodComponent, CommandBook Component
    оставил для поисковика, чтоб другие админы в случай чего не блуждали. Тему закрываю.[DOUBLEPOST=1422371897][/DOUBLEPOST]Лайк тыкну когда будет доступен.
     
Thread Status:
Not open for further replies.

Share This Page