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

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

Discussion in 'Разработка плагинов для новичков' started by AxmeD, Apr 19, 2013.

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

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

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

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

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

    Code:
    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 Старожил Пользователь

    Trophy Points:
    103
    Skype:
    ahmed136323
    ФАп
     
  4. Jampire

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

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

    Code:
    if (PermissionsEx.getUser(args[0]).inGroup("Bomj")) {
    }
     
    AxmeD likes this.
  5. Автор темы
    AxmeD

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

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

    Code:
    @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, которая НЕ даётся по дефолту.
    Вот так вот. Пишу для тех, кто столкнется с подобной ситуцацией.
     

Share This Page