I think your main class NewDawn has to annotated with @EventBusSubscriber(modid = [your_modid], bus = Bus.MOD), but leave "@Mod"
Then the methods with @SubribeEvent (like your ore gen) will be executed
Add a configurated feature in the biome (probably an OreFeature if generated in clusters) with your own FillerBlockType created using FillerBlockType#create. If you're generating clusters of one, use ReplaceBlockFeature where you only need to provide a blockstate of the target and new state. Remember to call these methods within a DeferredWorkQueue within your FMLCommonSetupEvent as they are not thread-safe.
Why don't extend NewChatGui and use accesstransformer to make the needed fields/methods public.
And don't use reflections if you can use forge's events.
Cancel InitGuiEvent.Pre when the chat should be opened and open your own on InitGuiEvent.Post
Howdy
you might find this tutorial project useful
https://github.com/TheGreyGhost/MinecraftByExample
see mbe04 but probably a TileEntity and TileEntityRender is more suited to what you're trying to do (mbe20, mbe21).
-TGG