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

Помогите Постоянное возвращение false при выполнении команд

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

Статус темы:
Закрыта.
  1. Автор темы
    SenProd

    SenProd Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Senate
    Добрый вечер, я пишу плагин на дополнительные команды для сервера, все идеально работало, но вот стоило мне сегодня добавить ещё одну команду и всё перестало работать, и да я переименовал package, но везде все указал, не думаю что проблема в этом.
    При вводе команды на сервер выводится usage из plugin.yml, хотя даже в onCommands вообще нету return false
     
  2. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Лучше кодом поделись, иначе дело может не сдвинуться.
     
  3. _MRDen3000YT_

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

    Баллы:
    76
    скорее всего setExecutor(); не поставил.
     
  4. Veyn12

    Veyn12 Активный участник Пользователь Заблокирован

    Баллы:
    76
    Имя в Minecraft:
    Veynique
    Ошибка может быть и в самом блоке кода команды, кинь код хоть
     
  5. Автор темы
    SenProd

    SenProd Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Senate
    Код:
    package senprodcodes.MintCommands;
    
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    
    public class MintCMD_rcon implements CommandExecutor
    {
        private MainClass plugin;
        
        public MintCMD_rcon(MainClass mainClass)
        {
            this.plugin = mainClass;
        }
    
        @Override
        public boolean onCommand(CommandSender cs, Command cmd, String str, String[] args)
        {
            if (args.length == 0)
            {
                if (cs instanceof Player)
                {
                    final  Player pl = (Player) cs;
                    if (pl.hasPermission("MintTime.rcon"))
                    {
                        
                        if(MainClass.rconList.contains(pl))
                        {
                            MainClass.rconList.remove(pl);
                            pl.sendMessage(plugin.getConfig().getString("messages.rcon.rcon_disable").replace("&","\u00a7"));
                        }
                        else
                        {
                            MainClass.rconList.add(pl);
                            pl.sendMessage(plugin.getConfig().getString("messages.rcon.rcon_enable").replace("&","\u00a7"));
                        }
                    }
                    else
                    {
                        pl.sendMessage(plugin.getConfig().getString("messages.noperm").replace("&","\u00a7"));
                    }
                }
                return true;
            }
            return false;
        }
    }
    
     
  6. Автор темы
    SenProd

    SenProd Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Senate
    Вот, например, код команды включения режима перехвата команд, ещё есть код листенера, если надо могу скинуть
     
  7. Автор темы
    SenProd

    SenProd Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Senate
    Ах да, тут я уже поставил return false чтобы проверить, без него тоже не работает
     
  8. Автор темы
    SenProd

    SenProd Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Senate
    Код:
    package senprodcodes.MintCommands;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    
    import me.clip.placeholderapi.PlaceholderAPI;
    
    public class MintListener implements Listener
    {
        private MainClass plugin;
        
        public MintListener(MainClass mainClass)
        {
            this.plugin = mainClass;
        }
        @EventHandler
        public void onCommand(final PlayerCommandPreprocessEvent event)
        {
            for (final Player pl1 : MainClass.rconList)
            {
                Player pl2 = event.getPlayer();
                pl1.sendMessage(PlaceholderAPI.setPlaceholders(pl2, plugin.getConfig().getString("messages.rcon.rcon_cmd_format").replace("&","\u00a7").replace("{playername}","" + pl2.getName() + "").replace("{message}", "" + event.getMessage() + "").replace("{playerprefix} ", "%vault_rankprefix%")));
            }
        }
    }
    
     
  9. Sneyzi

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

    Баллы:
    76
  10. _MRDen3000YT_

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

    Баллы:
    76
    как регистрируешь команду?
     
  11. swat1x

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

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    Таким темпом ты только 1 команду зарегестрировать сможешь. Создавай новые классы и там эти команды делай. Это и удобнее и у тебя не будет этого
    Код:
    @Override
        public void onEnable() {
            getCommand("Твоя команда").setExecutor(new Класс_С_Командой());
    }
    не забудь экспортировать класс и добавить команду в plugin.yml :good:
     
  12. alexandrage

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

    Баллы:
    173
    Нет, просто будет все в одном обработчике. Костыльно и не читабельно.
     
  13. swat1x

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

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    Так он то не догадаться по названию обращаться к самой команде, а классами в разы проще. По крайней мере новичкам
     
  14. Автор темы
    SenProd

    SenProd Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Senate
    Я забыл скинуть код главного класса, изначально так и делал
     
  15. Автор темы
    SenProd

    SenProd Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Senate
    Проблема уже решена
     
Статус темы:
Закрыта.

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