Okay, so, I overridden Minecraft's leaves with my own blocks.
public static final RegistryObject<Block> OAK_LEAVES = register("oak_leaves", () -> new DecayingLeavesBlock(AbstractBlock.Properties.copy(Blocks.OAK_LEAVES)));
That is the item, below is for the block (and similar for the item)
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, "minecraft");
Register them to the bus
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
ModBlocks.BLOCKS.register(bus);
ModBlocks.ITEMS.register(bus);
All good and well, the block is in the game. Now comes the issue: whenever the world generates something that contained leaves (trees, bushes, etc) even from bonemealing a sampling, they generate air instead. I know it is air, because when I bonemealed a sapling, the tree's leaves were the broken texture and when looking at it with F3 it said air.
Anybody know what did I do wrong? It's not like the structures would have generated without the leaf blocks, since those get registered before anything else.