Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

AxmeD

Старожил
Пользователь
Баллы
103
Писал плагин, который перекидывает человека в опред. группу pex.

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

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

Java:
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;
    }
}
 
строка возвращает true или false
тебе нужно исправить условие.

Код:
if (PermissionsEx.getUser(args[0]).inGroup("Bomj")) {
}
 
Всё-таки я смог найти ошибку...
Оказывается, эта строка пропускалась мимо из-за того, что группа Bomj давалась по дефолту(С трудом додумался), поэтому я вписал это:

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

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

Назад
Верх