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

Помогите С кодом

efwio

Активный участник
Пользователь
Баллы
88
Имя в Minecraft
TheEfwio
У меня не работает код выдачи предметов игроку
Код:
p.getInventory().addItem(new ItemStack(4, 64));
Этот тоже не работает
Код:
PlayerInventory inv = p.getInventory();
inv.addItem(new ItemStack(4, 64));
 
У меня не работает код выдачи предметов игроку
Код:
p.getInventory().addItem(new ItemStack(4, 64));
Этот тоже не работает
Код:
PlayerInventory inv = p.getInventory();
inv.addItem(new ItemStack(4, 64));
Метод весь покажи
 
Код:
public boolean onCommand(CommandSender sender, Command command, String label, String args[])       
if(command.getName().equalsIgnoreCase("bpjoin")) {
            p.getInventory().addItem(new ItemStack(4, 64));
        return true;
        }
    {
         return false;
        }
 
Код:
public boolean onCommand(CommandSender sender, Command command, String label, String args[])      
if(command.getName().equalsIgnoreCase("bpjoin")) {
            p.getInventory().addItem(new ItemStack(4, 64));
        return true;
        }
    {
         return false;
        }
А ты удостоверился, что метод onCommand() вызывается?
 
Сижу параллельно на буржуйском сообществе буккита, и вижу подобную проблему с такой же ошибкой.
В аргументах onCommand() допущена ошибка.
Надо так
Код:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
 
У меня все равно p подчеркивается как ошибка
 
А как определить?
 
А как определить?
Да, учи java. А потом учи Bukkit API
аргумент CommandSender sender - это тот, кто исполнил команду
Это может быть игрок, консоль, командный блок или еще что-либо.
Сначала нужно удостовериться, что это именно игрок:
Java:
if(sender instanceof Player){
    ...
}
а теперь, удостоверившись, можем присвоить значение переменной p, принудительно приведя ее к типу Player:
Java:
if(sender instanceof Player){
    Player p = (Player) sender;
    /* тут работай с переменной p как хочешь */
    return true;
}
Чтобы не возникло еще вопросов:
тот код, что я привел, нужно вставить во внутрь метода onCommand
А после этой конструкции сделать return false;

Еще замечание:
Java:
command.getName().equalsIgnoreCase("bpjoin")
Эта проверка лишняя.
Метод и так регистрируется ТОЛЬКО НА ОДНУ команду, и проверять соответствие не обязательно.
Исключением является случай, когда мы регистрируем алиасы.
 
Спасибо но это я уже понял! И нашел свою ошибку + определил переменную
 

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

Назад
Верх