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

Помогите Работа с инвентарями. Как ложить в инвентарь определенную вещь?

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    KoreeeZ
    Здравствуйте!
    Задача: мы получаем с помощью команды инвентарь ̶в̶ ̶к̶о̶т̶о̶р̶ы̶й̶ ̶м̶о̶ж̶е̶м̶ ̶п̶о̶л̶о̶ж̶и̶т̶ь̶ ̶Т̶О̶Л̶Ь̶К̶О̶ ̶з̶а̶д̶а̶н̶н̶ы̶й̶ ̶н̶а̶м̶и̶ ̶п̶р̶е̶д̶м̶е̶т̶, так же нужно считывать что и сколько лежит в этом инвентаре (и выводить в чат) при выходе из него.

    Я создал инвентарь и запретил какие либо-действия с ним.
    Код:
        @EventHandler
        public void onInventoryClick (InventoryClickEvent e){
            Player p = (Player) e.getWhoClicked();
            ItemStack itemmelon = new ItemStack(Material.MELON);
          
            if (e.getInventory().getName().equalsIgnoreCase("Продажа арбузов")){
                e.setCancelled(true);
               //скорее всего здесь нужна доработка, но какая сам не понимаю
            } 
        }
    
    Возможно я выбрал не столь подходящий Евент, ну не знаю... Помогите, пожалуйста
     
    Последнее редактирование: 17 мар 2017
  2. Хостинг MineCraft
    <
  3. iD3LSY

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Ну так-то, если ты закрываешь инвентарь, то тебе нужен InventoryCloseEvent...
     
  4. Автор темы
    KoreeeZ

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

    Баллы:
    66
    Имя в Minecraft:
    KoreeeZ
    А остальное? Как мне разрешить взаимодействие только определенному предмету, а также подсчитывать его?
     
  5. iD3LSY

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Если ты на счет того, чтобы нельзя было засовывать ничего, кроме арбузов, то
    Код:
    if(e.getCurrentItem().getType() != Material.MELON) e.setCancelled(true);
     
  6. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ненадежно, кладем предмет в равслот и жмякаем number_key. Наипали систему.
     
  7. iD3LSY

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Эмм.. В каком смысле? :D. Что за rawSlot? Как то его держать нужно особенно!?
     
  8. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Код:
            if(e.getAction() == InventoryAction.HOTBAR_SWAP) {
                ItemStack item = e.getWhoClicked().getInventory().getItem(e.getHotbarButton());
                Тут проверяем наш предмет.
            }
    Осторожно, нулл если ничего нет.
     
  9. iD3LSY

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Воу, никогда не замечал. Спасибо :)
     
  10. OsipXD

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

    Баллы:
    173
    Skype:
    osip.fatkullin
    Имя в Minecraft:
    OsipXD
    Насколько я помню, PLACE_SOME используется, когда кладётся часть предметов, которой не хватает до полного стака. Например в руке 10 предметов, а в слоте 60, таким образом только 4 положится в слот.
    Но это не точно.
     

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