Помогите Убрать предмет при клике.

Статус
Закрыто для дальнейших ответов.

DJhunter

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
DJhunter
Выдаю предмет при входе Potato. Хочу чтоб при нажатии на Patota выдавалась пожаренная картошка, а эта исчезала, но чет оно вообще не работает... Юзаю PaperSpigot
Код:
public void gift(PlayerInteractEvent e) {
Action a = e.getAction();
if(a != Action.RIGHT_CLICK_BLOCK && a != Action.RIGHT_CLICK_AIR) return;
Player p = e.getPlayer();
ItemStack item = p.getInventory().getItemInMainHand();
if (item.getType() != Material.POTATO) return;
p.getInventory().setItem(p.getInventory().firstEmpty(), new ItemStack(Material.BAKED_POTATO));
p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
}
 
Последнее редактирование:
Немного не понял, у тебя картошка обычная не исчезает же?
Или вообще ничего не работает? Ни появляется, ни исчезает?
 
PHP:
@EventHandler
public void onInteract(PlayerInteractEvent e) {
    if (e.getAction() != Action.RIGHT_CLICK_BLOCK && e.getAction() != Action.RIGHT_CLICK_AIR) return;
    Player player = e.getPlayer();
    if (player.getInventory().getItemInMainHand().getType() != Material.POTATO) return;
    int count = player.getInventory().getItemInMainHand().getAmount();
    if (count == 1) {
        player.getInventory().setItemInMainHand(new ItemStack(Material.BAKED_POTATO));
    } else {
        player.getInventory().addItem(new ItemStack(Material.BAKED_POTATO));
        player.getInventory().getItemInMainHand().setAmount(count - 1);
    }
}
 
PHP:
@EventHandler
public void onInteract(PlayerInteractEvent e) {
    if (e.getAction() != Action.RIGHT_CLICK_BLOCK && e.getAction() != Action.RIGHT_CLICK_AIR) return;
    Player player = e.getPlayer();
    if (player.getInventory().getItemInMainHand().getType() != Material.POTATO) return;
    int count = player.getInventory().getItemInMainHand().getAmount();
    if (count == 1) {
        player.getInventory().setItemInMainHand(new ItemStack(Material.BAKED_POTATO));
    } else {
        player.getInventory().addItem(new ItemStack(Material.BAKED_POTATO));
        player.getInventory().getItemInMainHand().setAmount(count - 1);
    }
}
Дай бог здоровья
 
PHP:
@EventHandler
public void onInteract(PlayerInteractEvent e) {
    if (e.getAction() != Action.RIGHT_CLICK_BLOCK && e.getAction() != Action.RIGHT_CLICK_AIR) return;
    Player player = e.getPlayer();
    if (player.getInventory().getItemInMainHand().getType() != Material.POTATO) return;
    int count = player.getInventory().getItemInMainHand().getAmount();
    if (count == 1) {
        player.getInventory().setItemInMainHand(new ItemStack(Material.BAKED_POTATO));
    } else {
        player.getInventory().addItem(new ItemStack(Material.BAKED_POTATO));
        player.getInventory().getItemInMainHand().setAmount(count - 1);
    }
}
Хотя щас попробовал добавить, не хочет забирать предмет и давать новый. Использую Spigot 1.15.2 и JavaSE 1.8
 
Немного не понял, у тебя картошка обычная не исчезает же?
Или вообще ничего не работает? Ни появляется, ни исчезает?
при заходе обычная появляется, кликаю по ней и ничего не происходит.
 
Выдаю предмет при входе Potato. Хочу чтоб при нажатии на Patota выдавалась пожаренная картошка, а эта исчезала, но чет оно вообще не работает... Юзаю PaperSpigot
Код:
public void gift(PlayerInteractEvent e) {
Action a = e.getAction();
if(a != Action.RIGHT_CLICK_BLOCK && a != Action.RIGHT_CLICK_AIR) return;
Player p = e.getPlayer();
ItemStack item = p.getInventory().getItemInMainHand();
if (item.getType() != Material.POTATO) return;
p.getInventory().setItem(p.getInventory().firstEmpty(), new ItemStack(Material.BAKED_POTATO));
p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
}
Так ты нигде не удаляешь-заменяешь предмет из MainHand
Ты просто добавляешь предмет в инвентарь и все.
 
Так ты нигде не удаляешь-заменяешь предмет из MainHand
Ты просто добавляешь предмет в инвентарь и все.
Код:
@EventHandler
public void gift(PlayerInteractEvent e) {
Action a = e.getAction();
if(a != Action.RIGHT_CLICK_BLOCK && a != Action.RIGHT_CLICK_AIR) return;
Player p = e.getPlayer();
ItemStack item = p.getInventory().getItemInMainHand();
if (!(item.getType().equals(Material.POTATO)))return;
int held = p.getInventory().getHeldItemSlot();
p.getInventory().clear(held);
p.getInventory().setItem(held, new ItemStack(Material.BAKED_POTATO));
p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
}
p.getInventory().clear(held); Я делаю же
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх