Помогите Действия с дропом в мире

HaloSpartan

Активный участник
Пользователь
Баллы
66
Привет, мне нужна помощь, у меня есть код "гранаты":

Код:
if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK)
        {
            if(p.getItemInHand().getType() != Material.MAGMA_CREAM) return;
            {
                p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1);
                Entity drop_det = loc.getWorld().dropItemNaturally(loc, new ItemStack(Material.MAGMA_CREAM));
                drop_det.setVelocity(loc.getDirection().multiply(4).normalize());
                new BukkitRunnable() {
                   
                    @Override
                    public void run() {
                    loc.getWorld().createExplosion(drop_det.getLocation(), 0, false);
                    drop_det.remove();
                    }
                }.runTaskLater(this, 60);
            }
        }
И что мне нужно:
1)предмет который появляется в мире нельзя было подобрать
2)если предметов больше 1 рядом, чтобы они не сползались в стак
(3 бонусный вопрос, сори я дурачёк, но как в "runTaskLater(this, 60)" вместо "this" указать mainClass плагина, чтобы ранабл работал в других классах кроме мейна)

Заранее благодарю

P.S версия 1.13
 
Последнее редактирование:
1) PlayerPickupItemEvent
3) Жесть, передай экземпляр mainClass через конструктор.
 
1) PlayerPickupItemEvent
3) Жесть, передай экземпляр mainClass через конструктор.
зачем PickupEvent?

rubukkit.JPG

Хотя, ивент можно использовать при поднятии item воронкой. Кстати, setPickupDelay также не даст им стакнутся (вроде)
Потом таймером удаляешь item (если что делал на 1.12.2, на 1.13 мб иначе)
 
Последнее редактирование:
Назад
Верх