Как реализовать событие PlayerInteractEvent.EntityInteract 1.16+

Версия Minecraft
1.16.1
API
Forge
Здравствуйте, я новичёк в создании minecraft mods.
Хотел бы спросить у опытных кодеров.
Как можно реализовать событие где при нажатии правой кнопки мыши по живой сущности, выдавало предмет.
Пытался искать и нашёл только реализацию PlayerInteractblock.

Не судите строго, это моя первая реализация события :)

Java:
package com.ip_thirteen.kazakhstanrpg.event;

import com.ip_thirteen.kazakhstanrpg.KazakhstanRpg;

import net.minecraft.block.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.Hand;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus;


@Mod.EventBusSubscriber(modid = KazakhstanRpg.MOD_ID, bus = Bus.FORGE)

public  class BucketEvent {
    @SubscribeEvent
    public static void WaterBucketEvent(PlayerInteractEvent.RightClickBlock event)  
    {
        ItemStack is = event.getPlayer().getHeldItem(Hand.MAIN_HAND);       
        if(is != null && (is.getItem() == Items.BUCKET))                      
        {
            if(event.getWorld().getBlockState(event.getPos()).getBlock() == Blocks.IRON_BLOCK);
            {
                event.getPlayer().inventory.addItemStackToInventory(new ItemStack(Items.MILK_BUCKET));
            }
        }
    }
}
 
Последнее редактирование модератором:
Решение
засунул код в кодблок, а то нечитабельно же было

Буквально сразу-же над RightClickBlock там ещё есть PlayerInteractEvent.EntityInteract, который вызывается при рмб по сущности - то бишь то что тебе надо;

bus = Bus.FORGE указывать необязательно, это дефолт;

В названиях пакетов обычно не делают нижних подчёркиваний (и больших букв), и код на Java обычно пишут в K&R стиле

necauqua

когда-то был anti344
Администратор
1,216
27
172
засунул код в кодблок, а то нечитабельно же было

Буквально сразу-же над RightClickBlock там ещё есть PlayerInteractEvent.EntityInteract, который вызывается при рмб по сущности - то бишь то что тебе надо;

bus = Bus.FORGE указывать необязательно, это дефолт;

В названиях пакетов обычно не делают нижних подчёркиваний (и больших букв), и код на Java обычно пишут в K&R стиле
 
Сверху