Как изменить дроп с блока при помощи ивента?

Версия Minecraft
1.15+
API
Forge
Именно при помощи ивента. Через Loot Tables в моей ситуации ничего не выйдет. Пробовал HarvestDropsEvent event, но он не работает. Так полагаю, что этот
ивент не для того нужен :/ Буду благодарен за помощь!
@SubscribeEvent
public void test2(BlockEvent.HarvestDropsEvent event)
{
if(event.getState().getBlock() == Blocks.STONE && event.getWorld().getBlockState(event.getPos().down()).getBlock() == Blocks.DIAMOND_BLOCK)
{ event.getDrops().clear();
event.getDrops().add(new ItemStack(Items.DIAMOND, 1));
}
}
UPD: пример изменил, чтобы он больше похож на мою проблему
 
Последнее редактирование:
1,153
48
126
Попробуй заменить файл data/minecraft/loot_tables/blocks/stone.json на свой.
Вот пример:
stone.json:
{
  "type": "minecraft:block",
  "pools": [
    {
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:alternatives",
          "children": [
            {
              "type": "minecraft:item",
              "conditions": [
                {
                  "condition": "minecraft:match_tool",
                  "predicate": {
                    "enchantments": [
                      {
                        "enchantment": "minecraft:silk_touch",
                        "levels": {
                          "min": 1
                        }
                      }
                    ]
                  }
                }
              ],
              "name": "minecraft:stone"
            },
            {
              "type": "minecraft:item",
              "conditions": [
                {
                  "condition": "minecraft:survives_explosion"
                }
              ],
              "name": "minecraft:diamond"
            }
          ]
        }
      ]
    }
  ]
}
 
Попробуй заменить файл data/minecraft/loot_tables/blocks/stone.json на свой.
Вот пример:
Спасибо, но код был для примера, и как я уже сказал выше, json-ами мою задачу никак не решить. Особенность ситуации в том, что мне надо, чтобы дроп ванильного блока зависел от блока, на котором он стоит, а это можно прописать только ивентами. Если возможно вообще
 
Сверху