Помогите И что тут не так?

TheZefirrkka

Активный участник
Пользователь
Баллы
76
Java:
@Override
    public boolean onCommand(final CommandSender sender, final Command c, final String l, final String[] a) {
        if (c.getName().equalsIgnoreCase("perm")) {
            Player p = (Player) sender;
            if (!p.hasPermission("perms.perm")) {
                Utls.PMsg(p, "&4&lУ вас нету прав на использование данной команды!");
                return true;
            }
            if (a.length == 0) {
                Utls.sendMsg(p, "&c-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
                Utls.sendMsg(p, "&c/perm add <nick> <permission> - выдать право");
                Utls.sendMsg(p, "&c/perm del <nick> <permission> - удалить право");
                Utls.sendMsg(p, "&c/perm - информация о правах");
                Utls.sendMsg(p, "&c-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
                return true;
            }
            if(a.length == 3){
                if (a[0].equalsIgnoreCase("add")) {
                    Player target = Bukkit.getPlayerExact(a[0]);
                    PermissionsEx.getUser(target).addPermission(a[1]);
                    Utls.PMsg(p, "Вы выдали игроку " + target + " право" + a[1]);
                    return true;
                   
                }
                if (a[0].equalsIgnoreCase("del")) {
                    Player target = Bukkit.getPlayerExact(a[0]);
                    PermissionsEx.getUser(target).removePermission(a[1]);
                    Utls.PMsg(p, "Вы отняли у игрока " + target + " право" + a[1]);
                    return true;
                }
            }
               
            }
        return false;
}
}
 
До этого все команды работали, что тут не так?
 
Java:
@Override
    public boolean onCommand(final CommandSender sender, final Command c, final String l, final String[] a) {
        if (c.getName().equalsIgnoreCase("perm")) {
            Player p = (Player) sender;
            if (!p.hasPermission("perms.perm")) {
                Utls.PMsg(p, "&4&lУ вас нету прав на использование данной команды!");
                return true;
            }
            if (a.length == 0) {
                Utls.sendMsg(p, "&c-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
                Utls.sendMsg(p, "&c/perm add <nick> <permission> - выдать право");
                Utls.sendMsg(p, "&c/perm del <nick> <permission> - удалить право");
                Utls.sendMsg(p, "&c/perm - информация о правах");
                Utls.sendMsg(p, "&c-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
                return true;
            }
            if(a.length == 3){
                if (a[0].equalsIgnoreCase("add")) {
                    Player target = Bukkit.getPlayerExact(a[0]);
                    PermissionsEx.getUser(target).addPermission(a[1]);
                    Utls.PMsg(p, "Вы выдали игроку " + target + " право" + a[1]);
                    return true;
                  
                }
                if (a[0].equalsIgnoreCase("del")) {
                    Player target = Bukkit.getPlayerExact(a[0]);
                    PermissionsEx.getUser(target).removePermission(a[1]);
                    Utls.PMsg(p, "Вы отняли у игрока " + target + " право" + a[1]);
                    return true;
                }
            }
              
            }
        return false;
}
}
В строке Bukkit.getPlayerExact(a[0]); ты передаешь в параметры метода слово add, а нужно ник игрока.А вообще, этот метод устарел, и может работать некорректно.
 
В строке Bukkit.getPlayerExact(a[0]); ты передаешь в параметры метода слово add, а нужно ник игрока.А вообще, этот метод устарел, и может работать некорректно.
Ну это опечатка, исправил, но код всё равно на работает.
 
Делай через кейсы, намного удобнее
 
Отправку сообщений?
Нет, обработку аргументов
Нету смысла, не поможет.
final String a и String a - одно и то же, только с final переменную в будующем нельзя изменять
А смысл? Он его не изменяет.
 
У меня код работает, разве что нужно добавить метод getName() к target'у в этих строчках:
Java:
p.sendMessage("Вы выдали игроку " + target.getName() + " право" + a[1]);
p.sendMessage("Вы отняли у игрока " + target.getName() + " право" + a[1]);
А проблема скорее всего в регистрации, в plugin.yml должны быть примерно следующие строчки:
Код:
commands:
    perm:
        description: This is the help command.
        usage: /perm
        permission: perm.perm
        permission-message: У вас нет прав на использование данной команды!
    perm add:
        description: This will add permission to the user.
        usage: /perm add
        permission: perm.add
        permission-message: У вас нет прав на использование данной команды!
    perm del:
        description: This will remove permission from the user.
        usage: /perm del
        permission: perm.del
        permission-message: У вас нет прав на использование данной команды!
Они есть?
 
У меня код работает, разве что нужно добавить метод getName() к target'у в этих строчках:
Java:
p.sendMessage("Вы выдали игроку " + target.getName() + " право" + a[1]);
p.sendMessage("Вы отняли у игрока " + target.getName() + " право" + a[1]);
А проблема скорее всего в регистрации, в plugin.yml должны быть примерно следующие строчки:
Код:
commands:
    perm:
        description: This is the help command.
        usage: /perm
        permission: perm.perm
        permission-message: У вас нет прав на использование данной команды!
    perm add:
        description: This will add permission to the user.
        usage: /perm add
        permission: perm.add
        permission-message: У вас нет прав на использование данной команды!
    perm del:
        description: This will remove permission from the user.
        usage: /perm del
        permission: perm.del
        permission-message: У вас нет прав на использование данной команды!
Они есть?
Лс читай
 
У меня код работает, разве что нужно добавить метод getName() к target'у в этих строчках:
Java:
p.sendMessage("Вы выдали игроку " + target.getName() + " право" + a[1]);
p.sendMessage("Вы отняли у игрока " + target.getName() + " право" + a[1]);
А проблема скорее всего в регистрации, в plugin.yml должны быть примерно следующие строчки:
Код:
commands:
    perm:
        description: This is the help command.
        usage: /perm
        permission: perm.perm
        permission-message: У вас нет прав на использование данной команды!
    perm add:
        description: This will add permission to the user.
        usage: /perm add
        permission: perm.add
        permission-message: У вас нет прав на использование данной команды!
    perm del:
        description: This will remove permission from the user.
        usage: /perm del
        permission: perm.del
        permission-message: У вас нет прав на использование данной команды!
Они есть?
Аргументы в plugin.yml?
 
Назад
Верх