Как сделать дроп с блока

Версия Minecraft
1.7.10
1,357
109
233
Как сделать дроп не со своего блока? Я хочу чтобы мой предмет дропался с, допустим, земли. Как это сделать? И да, если сможете, то можете дать код (будет вообще шикарно).
 
Решение
Изменить\добавить\убрать дроп можно с помощью эвента BlockEvent.HarvestDropsEvent.
Java:
@SubscribeEvent
public void event1(BlockEvent.HarvestDropsEvent event){
  //если блок - земля
  if(event.block == Blocks.dirt){
      //Тут уже изменяешь дроп
      event.drops.add(new ItemStack(Items.diamond));
  }
}
2,932
44
598
Последнее редактирование:
Изменить\добавить\убрать дроп можно с помощью эвента BlockEvent.HarvestDropsEvent.
Java:
@SubscribeEvent
public void event1(BlockEvent.HarvestDropsEvent event){
  //если блок - земля
  if(event.block == Blocks.dirt){
      //Тут уже изменяешь дроп
      event.drops.add(new ItemStack(Items.diamond));
  }
}
 
Последнее редактирование:
2,932
44
598
Но ведь это нарушение правила:
  • Все блоки кода должны быть оформлены с помощью bb-кода "code" с указанием правильного языка программирования
1519897528509.png
 
Последнее редактирование:
2,932
44
598
после съедания появлялся предмет
Java:
        public void onFoodEaten(ItemStack itemStack, World world, EntityPlayer entity) {
            onFoodEaten(itemStack, world, entity);

                if (entity instanceof EntityPlayer)
                    ((EntityPlayer) entity).inventory.addItemStackToInventory(new ItemStack(Items.diamond, 1));
                                                                                         //(modid.мой_предмет, количество)
            }
 
1,357
109
233
Да кстати, с предметом у тебя неверный код. Там лишний onFoodEaten был:
Java:
    public void onFoodEaten(ItemStack itemStack, World world, EntityPlayer entity) {
//Здесь было лишнее//
            if (entity instanceof EntityPlayer)
                ((EntityPlayer) entity).inventory.addItemStackToInventory(new ItemStack(Items.glass_bottle, 1));
    }
 
Сверху