Помогите Ремонт вещей за изумруды

stanislavNichik

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Craftorium
Помогите реализовать фикс вещей через GUI. Должно быть так:
Кладешь в инвентарь 1 изумруд и предмет восстанавливается на 50. Кладешь 8 - на 400.
Вот такой код вообще непонятно как работает:
Код:
    @EventHandler
    public void OnClick(InventoryClickEvent e) {
        if (e.getInventory().getTitle() == "Ремонт вещей")  {
            Inventory inv = e.getInventory();
            int em = 0;
            for (int i = 0; i<=44; i++) {
                if (inv.getItem(i)==null) continue;
                if (inv.getItem(i).getType() == Material.EMERALD) {
                    em++;
                }
            }
            ItemStack item = e.getWhoClicked().getInventory().getItemInMainHand().clone();
            Short d = item.getDurability();
            Short dur = ((short) (d - (em*50)));
            if (dur < 0) {
                dur = 0;
            }
            item.setDurability(dur);
            inv.setItem(24, item);
        }
    }
 
Помогите реализовать фикс вещей через GUI. Должно быть так:
Кладешь в инвентарь 1 изумруд и предмет восстанавливается на 50. Кладешь 8 - на 400.
Вот такой код вообще непонятно как работает:
Код:
    @EventHandler
    public void OnClick(InventoryClickEvent e) {
        if (e.getInventory().getTitle() == "Ремонт вещей")  {
            Inventory inv = e.getInventory();
            int em = 0;
            for (int i = 0; i<=44; i++) {
                if (inv.getItem(i)==null) continue;
                if (inv.getItem(i).getType() == Material.EMERALD) {
                    em++;
                }
            }
            ItemStack item = e.getWhoClicked().getInventory().getItemInMainHand().clone();
            Short d = item.getDurability();
            Short dur = ((short) (d - (em*50)));
            if (dur < 0) {
                dur = 0;
            }
            item.setDurability(dur);
            inv.setItem(24, item);
        }
    }
Смотри, а не легче сделать типо при клике в своём инвентаре изумрудом по предмету, так и красивее будет
 
Смотри, а не легче сделать типо при клике в своём инвентаре изумрудом по предмету, так и красивее будет
Хорошая идея. А как узнать каким предметом игрок нажимает? И как потом этот предмет забрать?
 
Хорошая идея. А как узнать каким предметом игрок нажимает? И как потом этот предмет забрать?
PHP:
ItemStack item = e.getCursor();
if(item != null && !item.getMaterial().equals(Material.AIR){
if((item.getAmount()-1) <= 0) return;
item.setAmount(item.getAmount()-1);
e.setCancelled(true)
}
 
Назад
Верх