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

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

Discussion in 'Разработка плагинов для новичков' started by kovand, Jun 18, 2016.

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

    kovand Участник Пользователь

    Trophy Points:
    36
    Имя в Minecraft:
    1kovand1
    Я накодил небольшой плагин, компилятор ошибок не выдает, но в игре нечего не работает.
    P.s этот плагин я кодил для себя, т.к NoFlyPvp Со своей главной обязаностью не справляется, говорят что это баг, и может быть, что этот баг в самом Bukkit-е?
    Code:
    package me.kovand.AntiFLYPVP;
    
    import org.bukkit.ChatColor;
    import org.bukkit.GameMode;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class AntiFLYPVP extends JavaPlugin implements Listener
    {
    
        boolean isEnabled;
        public void config()
        {
            FileConfiguration config = this.getConfig();
            if(!config.isBoolean("enable"))
                config.set("enable", true);
            this.saveConfig();
            isEnabled = config.getBoolean("enabled");
            if(isEnabled == false)
            {
                getServer().getPluginManager().disablePlugin(this);
                return;
            }
        }
        @Override
        public void onEnable()
        {
            config();
         
        }
     
        @EventHandler(priority = EventPriority.LOWEST)
        public void onEntityDamageByEntity(EntityDamageByEntityEvent e)
        {
         
            if(e.getDamager() instanceof Player && e instanceof Player)
            {
                Player pl = (Player)e;
                if(pl.isFlying() || pl.getGameMode() == (GameMode.CREATIVE))
                {
                pl.setFlying(false);
                pl.setGameMode(getServer().getDefaultGameMode());
                pl.sendMessage(ChatColor.RED+"Mayday! Mayday! Mayday! Нас подбили, мы падаем!");
                return;
                }
             
                Player pld = (Player)e.getDamager();
                if(pld.isFlying() || pld.getGameMode() == (GameMode.CREATIVE))
                    {
                    e.setCancelled(true);
                    pld.sendMessage(ChatColor.RED+"Вы не можете драться в полете или креативе");
                    pld.setFlying(false);
                    pld.setGameMode(getServer().getDefaultGameMode());
                    return;
                    }
             
             
            }
         
        }
    }
    
    [

    Code:
    name: AntiFLYPVP
    main: me.kovand.AntiFLYPVP.AntiFLYPVP
    version: 1.0
    
     
  2. Хостинг MineCraft
    <
  3. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    убери
    e.getEntity()
     
  4. Автор темы
    kovand

    kovand Участник Пользователь

    Trophy Points:
    36
    Имя в Minecraft:
    1kovand1
    Всмысле вместо (Player)e?
     
  5. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Player pl = (Player)e.getEntity();
     
  6. Автор темы
    kovand

    kovand Участник Пользователь

    Trophy Points:
    36
    Имя в Minecraft:
    1kovand1
    А e instanceof Player вообще убрать?[DOUBLEPOST=1466259687,1466259449][/DOUBLEPOST]А еще он имеет привычку дисаблиться вне зависимости от значения isEnabled
     
  7. Larin

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

    Trophy Points:
    103
    Ты хоть понимаешь, для чего нужен instanceof?
     
  8. Автор темы
    kovand

    kovand Участник Пользователь

    Trophy Points:
    36
    Имя в Minecraft:
    1kovand1
    Понимаю
     
  9. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ты не зарегестрировал евент.
    Code:
    package me.kovand.AntiFLYPVP;
    import org.bukkit.ChatColor;
    import org.bukkit.GameMode;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    public class AntiFLYPVP extends JavaPlugin implements Listener
    {
        boolean isEnabled;
        public void config()
        {
            this.saveDefaultConfig();
            FileConfiguration config = this.getConfig();
            if(!config.isBoolean("enable")){
                config.set("enable", true);
                this.saveConfig();
            }
            isEnabled = config.getBoolean("enabled");
            if(!isEnabled)
            {
                getServer().getPluginManager().disablePlugin(this);
                return;
            }
        }
        @Override
        public void onEnable()
        {
            config();
          Bukkit.getPluginManager().registerEvents(this, this);
    
        
        }
        @EventHandler(priority = EventPriority.LOWEST)
        public void onEntityDamageByEntity(EntityDamageByEntityEvent e)
        {
        
            if(e.getDamager().getType() == EntityType.PLAYER && e.getEntity().getType() == EntityType.PLAYER)
            {
                Player pl = (Player)e.getEntity();
                if(pl.isFlying() || pl.getGameMode() == (GameMode.CREATIVE))
                {
                pl.setFlying(false);
                pl.setGameMode(getServer().getDefaultGameMode());
                pl.sendMessage(ChatColor.RED+"Mayday! Mayday! Mayday! Нас подбили, мы падаем!");
                return;
                }
            
                Player pld = (Player)e.getDamager();
                if(pld.isFlying() || pld.getGameMode() == (GameMode.CREATIVE))
                    {
                    e.setCancelled(true);
                    pld.sendMessage(ChatColor.RED+"Вы не можете драться в полете или креативе");
                    pld.setFlying(false);
                    pld.setGameMode(getServer().getDefaultGameMode());
                    return;
                    }
            
            
            }
        
        }
    }
    
     
  10. Автор темы
    kovand

    kovand Участник Пользователь

    Trophy Points:
    36
    Имя в Minecraft:
    1kovand1
    Бывает,невнимательный я сегодня[DOUBLEPOST=1466260351,1466260266][/DOUBLEPOST]А дисаблится почему?
     
  11. VamPerchick

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

    Trophy Points:
    76
    Потому что.:lol:
     
  12. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Не надежно, можно напичать хак, который будет прописывать команду на флай или гм, как только нам сменили режим.
     
  13. Автор темы
    kovand

    kovand Участник Пользователь

    Trophy Points:
    36
    Имя в Minecraft:
    1kovand1
    И что ты предлагаешь?
    У меня две идеи:
    Первая: Сделать кик;
    Вторая:Запретить смену гм или включение флая на опред. время после их отключения
    Я все равно планировал отключение гм и флая делать опциональным, так что не смертельно
     

Share This Page