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

Помогите Как отменить выполнение команды

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

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

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

    Баллы:
    66
    Нужно чтобы плагин отменял выполнение команды другого плагина если игрок является донатером
    Код:
        public boolean onCommand(CommandSender sender, Command command, String alias, String[] args) {
            if (alias.equalsIgnoreCase("banip")) {
                PermissionUser user = PermissionsEx.getUser(args[0]);
                PermissionGroup[] userGroups = user.getGroups();
                for (PermissionGroup group : userGroups) {
                    String plgroup = group.getName();
                    if (!(plgroup.equalsIgnoreCase("User"))) {
                        //отменяем команду /banip
                        sender.sendMessage("Нельзя");
                        return true;
                    }
                }
            }
       }
     
  2. Starr

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

    Баллы:
    98
    Тебе нужно отменять эвент и использовать не onCommand, а CommandPreprocessEvent.
    https://bukkit.org/threads/commandpreprocessevent-not-executing.144394/
     
  3. Автор темы
    fswr33

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

    Баллы:
    66
  4. Starr

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

    Баллы:
    98
    Гугли. Гугл - наше всё.
     
  5. LomNar

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

    Баллы:
    78
    Skype:
    radius981
    Имя в Minecraft:
    LomNar
    Примерно:
    String cmd = event.getMessage().split(" ")[0];
     
  6. Автор темы
    fswr33

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

    Баллы:
    66
    Вообще не реагирует на команду
    Код:
        @EventHandler
        public void onCmd(PlayerCommandPreprocessEvent event){
            Player player = event.getPlayer();
                if(event.getMessage().equalsIgnoreCase("/banip")){
                    String[] args = event.getMessage().split(" ");
                    PermissionUser user = PermissionsEx.getUser(args[0]);
                    PermissionGroup[] userGroups = user.getGroups();
                    for (PermissionGroup group : userGroups) {
                        String plgroup = group.getName();
                        if (!(plgroup.equalsIgnoreCase("User")) {
                            event.setCancelled(true);
                            player.sendMessage("§6Нельзя банить донатеров!");
                        }
                    }
                }
            }
     
  7. LomNar

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

    Баллы:
    78
    Skype:
    radius981
    Имя в Minecraft:
    LomNar
    Не правильно. Смотри выше как я написал. Аргумент который 0 будет твоя команда, а аргумент 1 это игрок
     
  8. Автор темы
    fswr33

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

    Баллы:
    66
    По-моему тут что-то не так
    Код:
        @EventHandler
        public void onCmd(PlayerCommandPreprocessEvent event){
            Player player = event.getPlayer();
            player.sendMessage("Этот текст не пишет");
            String[] args = event.getMessage().split(" ");
                if(args[0].equalsIgnoreCase("/banip") || args[0].equalsIgnoreCase("/ebanip")){
                    PermissionUser user = PermissionsEx.getUser(args[1]);
                    PermissionGroup[] userGroups = user.getGroups();
                    for (PermissionGroup group : userGroups) {
                        String plgroup = group.getName();
                        if (!(plgroup.equalsIgnoreCase("User") || plgroup.equalsIgnoreCase("madmin"))) {
                            event.setCancelled(true);
                            player.sendMessage(prefix + "§6Нельзя банить донатеров!");
                        }
                    }
                }
            }
     
  9. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Слушатель то зарегистрирован?
     
  10. Автор темы
    fswr33

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

    Баллы:
    66
    Забыл getServer().getPluginManager().registerEvents(this, this);
     
Статус темы:
Закрыта.

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