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

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

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

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

    fswr33 Новичок Пользователь

    Баллы:
    21
    Нужно чтобы плагин отменял выполнение команды другого плагина если игрок является донатером
    Код:
        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. Хостинг MineCraft
    <
  3. Starr

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

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

    fswr33 Новичок Пользователь

    Баллы:
    21
  5. Starr

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

    Баллы:
    98
    Имя в Minecraft:
    _Starr_
    Гугли. Гугл - наше всё.
     
  6. LomNar

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

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

    fswr33 Новичок Пользователь

    Баллы:
    21
    Вообще не реагирует на команду
    Код:
        @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Нельзя банить донатеров!");
                        }
                    }
                }
            }
     
  8. LomNar

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

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

    fswr33 Новичок Пользователь

    Баллы:
    21
    По-моему тут что-то не так
    Код:
        @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Нельзя банить донатеров!");
                        }
                    }
                }
            }
     
  10. Den_Abr

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

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

    fswr33 Новичок Пользователь

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

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