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

Помогите Небольшая проблема

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

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

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

    Баллы:
    103
    Skype:
    ahmed136323
    Писал плагин, который перекидывает человека в опред. группу pex.

    Мне хотелось бы, чтоб команда работала только на игроке, который находится в группе "Bomj", для этого я вписал PermissionsEx.getUser(args[0]).inGroup("Bomj") {
    А дальше что надо. Ошибок нет, но эта строка работать отказывается.

    Вот полный код:

    Код:
    package ru.axmed.invite;
     
    import java.util.logging.Logger;
    import org.bukkit.Bukkit;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;
     
    import ru.tehkode.permissions.bukkit.PermissionsEx;
     
    public class InviteSys extends JavaPlugin implements Listener {
        public static final Logger _log = Logger.getLogger("Minecraft");
     
        @Override
        public void onEnable() {
            _log.info("[INV SYS] onEnable()");
            Bukkit.getPluginManager().registerEvents(this, this);
        }
     
        @Override
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            if (command.getName().equalsIgnoreCase("fdismiss")) {
     
                if (args.length > 0) {
                    if (sender.hasPermission("axmedinv.dismiss.thief")) {
                        if (PermissionsEx.getUser(args[0]).inGroup("Thief")) {
                            PermissionsEx.getUser(args[0]).removeGroup("Thief");
                            PermissionsEx.getUser(args[0]).addGroup("Bomj");
                            sender.sendMessage("Человек был изгнан из Гильдии Воров!");
                        }
                    } else if (sender.hasPermission("axmedinv.dismiss.guard")) {
                        if (PermissionsEx.getUser(args[0]).inGroup("Guard")) {
                            PermissionsEx.getUser(args[0]).removeGroup("Guard");
                            PermissionsEx.getUser(args[0]).addGroup("Bomj");
                            sender.sendMessage("Человек был изгнан из Стражи!");
                        }
                    } else if (sender.hasPermission("axmedinv.dismiss.doc")) {
                        if (PermissionsEx.getUser(args[0]).inGroup("Doc")) {
                            PermissionsEx.getUser(args[0]).removeGroup("Doc");
                            PermissionsEx.getUser(args[0]).addGroup("Bomj");
                            sender.sendMessage("Человек был изгнан из Общества Лекарей!");
                        }
                    } else if (sender.hasPermission("axmedinv.dismiss.witch")) {
                        if (PermissionsEx.getUser(args[0]).inGroup("Witch")) {
                            PermissionsEx.getUser(args[0]).removeGroup("Witch");
                            PermissionsEx.getUser(args[0]).addGroup("Bomj");
                            sender.sendMessage("Человек был изгнан из Общества Колдунов!");
                        }
                    } else if (sender.hasPermission("axmedinv.dismiss.assassin")) {
                        if (PermissionsEx.getUser(args[0]).inGroup("Assassin")) {
                            PermissionsEx.getUser(args[0]).removeGroup("Assassin");
                            PermissionsEx.getUser(args[0]).addGroup("Bomj");
                            sender.sendMessage("Человек был изгнан из Братства Ассассинов!");
                        }
                    } else if (sender.hasPermission("axmedinv.dismiss.buyer")) {
                        if (PermissionsEx.getUser(args[0]).inGroup("Buyer")) {
                            PermissionsEx.getUser(args[0]).removeGroup("Buyer");
                            PermissionsEx.getUser(args[0]).addGroup("Bomj");
                            sender.sendMessage("Человек был изгнан из Гильдии Купцов!");
                        }
                    }
                }
            } else if (command.getName().equalsIgnoreCase("finvite")) {
                if (args.length > 0) {
                    if (Bukkit.getOfflinePlayer(args[0]).isOnline()) {
                        if (PermissionsEx.getUser(args[0]).inGroup("Bomj")) {
                            if (sender.hasPermission("axmedinv.invite.thief")) {
                                PermissionsEx.getUser(args[0]).addGroup("Thief");
                                PermissionsEx.getUser(args[0]).removeGroup("Bomj");
                                sender.sendMessage("Человек был приглашен в Гильдию Воров!");
     
                            } else if (sender.hasPermission("axmedinv.invite.buyer")) {
                                PermissionsEx.getUser(args[0]).addGroup("Buyer");
                                PermissionsEx.getUser(args[0]).removeGroup("Bomj");
                                sender.sendMessage("Человек был приглашен в Гильдию Купцов!");
     
                            } else if (sender.hasPermission("axmedinv.invite.doc")) {
                                PermissionsEx.getUser(args[0]).addGroup("Doc");
                                PermissionsEx.getUser(args[0]).removeGroup("Bomj");
                                sender.sendMessage("Человек был приглашен в Общество Лекарей!");
     
                            } else if (sender.hasPermission("axmedinv.invite.witch")) {
                                PermissionsEx.getUser(args[0]).addGroup("Witch");
                                PermissionsEx.getUser(args[0]).removeGroup("Bomj");
                                sender.sendMessage("Человек был приглашен в Общество Колдунов!");
     
                            } else if (sender.hasPermission("axmedinv.invite.guard")) {
                                PermissionsEx.getUser(args[0]).addGroup("Guard");
                                PermissionsEx.getUser(args[0]).removeGroup("Bomj");
                                sender.sendMessage("Человек был приглашен в Стражу!");
     
                            } else if (sender.hasPermission("axmedinv.invite.assassin")) {
                                PermissionsEx.getUser(args[0]).addGroup("Assassin");
                                PermissionsEx.getUser(args[0]).removeGroup("Bomj");
                                sender.sendMessage("Человек был приглашен в Братство Ассассинов!");
     
                            }return false;
                        }
                    }
                }
            }
            return false;
        }
    }
     
    ВремяПриключений нравится это.
  2. Хостинг MineCraft
    <
  3. Автор темы
    AxmeD

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

    Баллы:
    103
    Skype:
    ahmed136323
    ФАп
     
  4. Jampire

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

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    строка возвращает true или false
    тебе нужно исправить условие.

    Код:
    if (PermissionsEx.getUser(args[0]).inGroup("Bomj")) {
    }
     
    AxmeD нравится это.
  5. Автор темы
    AxmeD

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

    Баллы:
    103
    Skype:
    ahmed136323
    Всё-таки я смог найти ошибку...
    Оказывается, эта строка пропускалась мимо из-за того, что группа Bomj давалась по дефолту(С трудом додумался), поэтому я вписал это:

    Код:
    @EventHandler
        public void onFirstJoin(PlayerJoinEvent event){
            Player player = event.getPlayer();
            if(!PermissionsEx.getUser(player).inGroup("Thief"));
            if(!PermissionsEx.getUser(player).inGroup("Guard"))
            if(!PermissionsEx.getUser(player).inGroup("Doc"))
              if(!PermissionsEx.getUser(player).inGroup("Witch"))
              if(!PermissionsEx.getUser(player).inGroup("Buyer"))
                if(!PermissionsEx.getUser(player).inGroup("Assassin")){
          PermissionsEx.getUser(player).addGroup("Worker");
        } 
    }

    То есть, если человек не состоит ни в одной из групп, то он автоматом перекидывался в аналогичную Bomj'у группу - Worker, которая НЕ даётся по дефолту.
    Вот так вот. Пишу для тех, кто столкнется с подобной ситуцацией.
     

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