@SubscribeEvent
public void event1(BlockEvent.HarvestDropsEvent event){
//если блок - земля
if(event.block == Blocks.dirt){
//Тут уже изменяешь дроп
event.drops.add(new ItemStack(Items.diamond));
}
}
А эвентхандлер зарегал?Из обычного, не дропает итем, всё указано верно (раз 5 проверил).
BlockEvent.BreakEvent
? Плюс у брейка нету event.drops
. Если и использовать его, то придется вручную спавнить EntityItem с нужным предметом.@SubscribeEvent
public void breakBlock(BlockEvent.BreakEvent event) {
if (event.getState().getBlock() == Blocks.ICE) {
event.getWorld().spawnEntity(new EntityItem(event.getWorld(), event.getPos().getX(), event.getPos().getY(), event.getPos().getZ(), new ItemStack(item)));
}
}
Это костыли. Для этого есть специальный эвент.Если и использовать его, то придется вручную спавнить EntityItem с нужным предметом.
Вроде никакой разницы нет. А по семантике - хуже.Так красивее форматирование