@Override
public ActionResultType itemInteractionForEntity(ItemStack stack, PlayerEntity playerIn, LivingEntity target, Hand hand) {
target.remove();
return ActionResultType.SUCCESS;
}
public class MyAwesomeItem extends Item {
, public ActionResultType onItemUse(ItemUseContext context) {
World worldIn = context.getWorld();
PlayerEntity livingEntityIn = context.getPlayer();
int count = context.getItem().getCount();
livingEntityIn.remove();
return ActionResultType.PASS;
}
@SubscribeEvent
public void on(PlayerInteractEvent event) {
LivingEntity livingEntity = event.getEntityLiving();
if(livingEntity == null) return;
livingEntity.remove();
}
Выбрал первый вариант, т.к. мне нужно, что-бы имирала ентити, по которой я кликаю. А экран смерти - это я kill прописал, иначе я-бы не сдвинулся с местаКакой из указанных выше вариантов ты сделал?
Если ты выбрал первый вариант, то это нормально, что при его использовании умираешь ты, для первого варианта я отталкивался от твоего кода, а не от твоего ТЗ. Если ты выбрал второй вариант, то значит LivingEntity получает игрока вместо цели.
Да, возможно я написал не правильный код. Но мне нужен не ивентЧтобы умирал Entity используй второй вариант.
Как я сказал ранее, первый вариант не является решением твоей проблемы, он лишь отталкивался от твоего кода.
Проблема в том, что в коде у тебя одна проблема, а в техническом задании у тебя стоит вовсе не та задача, которая тебе необходима
так-как мне нужно именно с моим предметом.если тебе нужно с любым предметом, то тебе стоит использовать ивент
Так вот в том-то и дело, что я все возможные методы перепробовал уже (искал как-зар в Item)Посмотри в Item, может там есть какой-то метод по клику на LivinEntity и используй его
Или же в ивенте проверяй если предмет, которым кликнули - нужный тебе предмет, то убивай.
@Override
public void onUse(World worldIn, LivingEntity livingEntityIn, ItemStack stack, int count) {
System.out.println("ASASASASASASAS");
}
Зачем ты пытаешься убрать игрока?)Твой класс должен быть расширен от Item
public class MyAwesomeItem extends Item {
,
А так-же у тебя указана версия 1.16.3, где метод onItemUsed нету, тебе необходимо использовать
Java:public ActionResultType onItemUse(ItemUseContext context) { World worldIn = context.getWorld(); PlayerEntity livingEntityIn = context.getPlayer(); int count = context.getItem().getCount(); livingEntityIn.remove(); return ActionResultType.PASS; }
Это сработает только тогда, когда ты делаешь свой предмет (И ПРОПАДЕТ НЕ МОБ,, если тебе нужно с любым предметом, то тебе стоит использовать ивент.
Java:@SubscribeEvent public void on(PlayerInteractEvent event) { LivingEntity livingEntity = event.getEntityLiving(); if(livingEntity == null) return; livingEntity.remove(); }
Да, но мне нужен именно ПКМ, а не ЛКМ, в этом и основная проблемаПросто оставлю это тут....
@Override
public ActionResultType itemInteractionForEntity(ItemStack stack, PlayerEntity playerIn, LivingEntity target, Hand hand) {
target.remove();
return ActionResultType.SUCCESS;
}