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

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

kovand

Участник
Пользователь
Баллы
36
Имя в Minecraft
1kovand1
Я накодил небольшой плагин, компилятор ошибок не выдает, но в игре нечего не работает.
P.s этот плагин я кодил для себя, т.к NoFlyPvp Со своей главной обязаностью не справляется, говорят что это баг, и может быть, что этот баг в самом Bukkit-е?
Код:
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;
                }
         
         
        }
     
    }
}
[

Код:
name: AntiFLYPVP
main: me.kovand.AntiFLYPVP.AntiFLYPVP
version: 1.0
 
А e instanceof Player вообще убрать?
А еще он имеет привычку дисаблиться вне зависимости от значения isEnabled
Ты не зарегестрировал евент.
Java:
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;
                }
        
        
        }
    
    }
}
 
Ты не зарегестрировал евент.
Java:
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;
                }
       
       
        }
   
    }
}
Бывает,невнимательный я сегодня
А дисаблится почему?
 
Не надежно, можно напичать хак, который будет прописывать команду на флай или гм, как только нам сменили режим.
 
Не надежно, можно напичать хак, который будет прописывать команду на флай или гм, как только нам сменили режим.
И что ты предлагаешь?
У меня две идеи:
Первая: Сделать кик;
Вторая:Запретить смену гм или включение флая на опред. время после их отключения
Я все равно планировал отключение гм и флая делать опциональным, так что не смертельно
 
Назад
Верх