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

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

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

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

    efwio Активный участник Пользователь

    Баллы:
    88
    Skype:
    theefwio
    Имя в Minecraft:
    TheEfwio
    У меня не работает код выдачи предметов игроку
    Код:
    p.getInventory().addItem(new ItemStack(4, 64)); 
    Этот тоже не работает
    Код:
    PlayerInventory inv = p.getInventory();
    inv.addItem(new ItemStack(4, 64));
     
    slavik123123123 нравится это.
  2. Хостинг MineCraft
    <
  3. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Метод весь покажи
     
    efwio нравится это.
  4. Автор темы
    efwio

    efwio Активный участник Пользователь

    Баллы:
    88
    Skype:
    theefwio
    Имя в Minecraft:
    TheEfwio
    Код:
    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;
            }
            
     
  5. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    А ты удостоверился, что метод onCommand() вызывается?
     
    efwio нравится это.
  6. Автор темы
    efwio

    efwio Активный участник Пользователь

    Баллы:
    88
    Skype:
    theefwio
    Имя в Minecraft:
    TheEfwio
    вроде да
     
  7. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Сижу параллельно на буржуйском сообществе буккита, и вижу подобную проблему с такой же ошибкой.
    В аргументах onCommand() допущена ошибка.
    Надо так
    Код:
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
     
    efwio нравится это.
  8. Автор темы
    efwio

    efwio Активный участник Пользователь

    Баллы:
    88
    Skype:
    theefwio
    Имя в Minecraft:
    TheEfwio
    У меня все равно p подчеркивается как ошибка
     
    slavik123123123 нравится это.
  9. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ну да, ты же не определил эту переменную
     
    efwio нравится это.
  10. Автор темы
    efwio

    efwio Активный участник Пользователь

    Баллы:
    88
    Skype:
    theefwio
    Имя в Minecraft:
    TheEfwio
    А как определить?
     
  11. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Учи синтаксис
     
  12. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Да, учи java. А потом учи Bukkit API
    аргумент CommandSender sender - это тот, кто исполнил команду
    Это может быть игрок, консоль, командный блок или еще что-либо.
    Сначала нужно удостовериться, что это именно игрок:
    Код:
    if(sender instanceof Player){
        ...
    }
    а теперь, удостоверившись, можем присвоить значение переменной p, принудительно приведя ее к типу Player:
    Код:
    if(sender instanceof Player){
        Player p = (Player) sender;
        /* тут работай с переменной p как хочешь */
        return true;
    }
    Чтобы не возникло еще вопросов:
    тот код, что я привел, нужно вставить во внутрь метода onCommand
    А после этой конструкции сделать return false;

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

    efwio Активный участник Пользователь

    Баллы:
    88
    Skype:
    theefwio
    Имя в Minecraft:
    TheEfwio
    Спасибо но это я уже понял! И нашел свою ошибку + определил переменную
     

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