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

Помогите Не работает блокировка команды

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

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

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

    Баллы:
    66
    Если есть аргументы команды то блокирует, если нет то не блокирует, скажите пожалуйста, что делать?

    Код:
    public void OnShitCommand(PlayerCommandPreprocessEvent e) {
            Player p = e.getPlayer();
            String cmd = e.getMessage();
            //getLogger().info(cmd);
            if((cmd == "/kit") | (cmd.startsWith("/kit "))) {
                if(!p.hasPermission("myanticmds.bypass")) {
                    p.sendMessage("Может тебе ещё креатив выдать?");
                    e.setCancelled(true);
                }
            }
    }
     
  2. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Во-первых, cmd == "/kit" - эта твоя проблемы, и строки обычно так не сравнивают. Вместо этого cmd.equals("/kit).
    Во-вторых, вместо | в данном случае (да и зачастую в принципе)лучше использовать ||. При использовании одной | результат проверки пускай и правильный, но проверяться будет всё условие, т.е. и запуск методов.
    В-третьих, ты можешь в принципе обойтись одной проверкой cmd.startsWith("/kit"), т.к. это в любом случае проверит их равенство.
     
  3. Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Код:
        List<String> list = ConfigManager.getStringList("Лист с командами, которые будут блокироваться");
        String message = ConfigManager.getString("Сообщение, которое будет выводиться при вводе команды из list");
    
        @EventHandler
        public void onCommand (PlayerCommandPreprocessEvent e) {
    
            Player p = e.getPlayer();
            String cmd = e.getMessage().split(" ")[0].toLowerCase();
    
            if(p.hasPermission("ТВОИ ПРАВА") || p.isOp()) return;
    
            if(!getBoolean("СТРОКА С БООЛЕАНОМ, ЕСЛИ ЕСТЬ КФГ")) return;
    
            for(int i = 0; i == cmd.length(); i++ ){
                if(!list.contains(cmd)) return;
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', message));
                e.setCancelled(true);
            }
        }
    Не нужно поливать говном качество кода)). Хочу помочь)
     
  4. Автор темы
    anton3312578859

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

    Баллы:
    66
    Я так делал, он блокирует все команды, к примеру будет какая-то команда, которая начинается со /kit и он её тоже заблокирует. Представь, игрок пишет /kitkat (к примеру), и ему пишет "Может тебе ещё креатив выдать"

    Спасибо, сейчас попробую

    Спс за помощь, но конфиг я делать для этого плагина не хочу
     
  5. alexandrage

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

    Баллы:
    173
    Команда не так блокируются, отбери пермишенс и все команда перестает работать у игрока. К чему этот велик? Все уже придумано за тебя и как надо.
     
  6. Автор темы
    anton3312578859

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

    Баллы:
    66
    Для кастомного сообщения
     
  7. alexandrage

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

    Баллы:
    173
    Игроки слишком тупые на твоем сервере?
     
  8. Автор темы
    anton3312578859

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

    Баллы:
    66
    ну вдруг диванные критики будут высирать что-то типа "ы сервер гавно кит старта нет"
     
  9. alexandrage

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

    Баллы:
    173
    Ну и шли их подальше, пусть на своем критичном серваке и играют и на чужой не смотрят.
    А для игроков распиши в лоби за что и какие права даются.
     
  10. Автор темы
    anton3312578859

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

    Баллы:
    66
    Огромное спасибо!
     

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