Не создается метод предмета (item)

Версия Minecraft
1.16.3
API
Forge
96
2
6
Пытаюсь сделать так, что-бы если ты ПКМаешь по мобу, он пропадал, но...
1609190609746.png
1609190625216.png
 
Решение
1.16.4
Java:
@Override
public ActionResultType itemInteractionForEntity(ItemStack stack, PlayerEntity playerIn, LivingEntity target, Hand hand) {
    target.remove();
    return ActionResultType.SUCCESS;
}
pig-remove-demo.gif
170
2
53
Твой класс должен быть расширен от 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();
    }
 
170
2
53
Какой из указанных выше вариантов ты сделал?
Если ты выбрал первый вариант, то это нормально, что при его использовании умираешь ты, для первого варианта я отталкивался от твоего кода, а не от твоего ТЗ. Если ты выбрал второй вариант, то значит LivingEntity получает игрока вместо цели.
 
96
2
6
Какой из указанных выше вариантов ты сделал?
Если ты выбрал первый вариант, то это нормально, что при его использовании умираешь ты, для первого варианта я отталкивался от твоего кода, а не от твоего ТЗ. Если ты выбрал второй вариант, то значит LivingEntity получает игрока вместо цели.
Выбрал первый вариант, т.к. мне нужно, что-бы имирала ентити, по которой я кликаю. А экран смерти - это я kill прописал, иначе я-бы не сдвинулся с места
 
170
2
53
Чтобы умирал Entity используй второй вариант.
Как я сказал ранее, первый вариант не является решением твоей проблемы, он лишь отталкивался от твоего кода.
Проблема в том, что в коде у тебя одна проблема, а в техническом задании у тебя стоит вовсе не та задача, которая тебе необходима
 
96
2
6
Чтобы умирал Entity используй второй вариант.
Как я сказал ранее, первый вариант не является решением твоей проблемы, он лишь отталкивался от твоего кода.
Проблема в том, что в коде у тебя одна проблема, а в техническом задании у тебя стоит вовсе не та задача, которая тебе необходима
Да, возможно я написал не правильный код. Но мне нужен не ивент
если тебе нужно с любым предметом, то тебе стоит использовать ивент
так-как мне нужно именно с моим предметом.
В общем, мне нужно, что-бы при ПКМ по ентити она пропадала
 
96
2
6
Посмотри в Item, может там есть какой-то метод по клику на LivinEntity и используй его
Или же в ивенте проверяй если предмет, которым кликнули - нужный тебе предмет, то убивай.
Так вот в том-то и дело, что я все возможные методы перепробовал уже (искал как-зар в Item)
Пример кода:
@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();
    }
Зачем ты пытаешься убрать игрока?)

Просто оставлю это тут....
1609238066191.png
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
1.16.4
Java:
@Override
public ActionResultType itemInteractionForEntity(ItemStack stack, PlayerEntity playerIn, LivingEntity target, Hand hand) {
    target.remove();
    return ActionResultType.SUCCESS;
}
pig-remove-demo.gif
 
Сверху