package com.genuineflix.co.events; import java.lang.reflect.Field; import net.minecraft.block.Block; import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraftforge.event.terraingen.OreGenEvent; import com.genuineflix.co.generator.feature.CommonGenMinable; import com.genuineflix.co.registry.MetalRegistry; import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class OreGenerationEvent { public static final Field blockField = WorldGenMinable.class.getDeclaredFields()[0]; // Blocking ores from being able to generate @SubscribeEvent public void minable(final OreGenEvent.GenerateMinable event) { if (event.generator == null || event.generator instanceof CommonGenMinable) return; if (event.generator instanceof WorldGenMinable) try { final WorldGenMinable gen = (WorldGenMinable) event.generator; final Block block = (Block) blockField.get(event.generator); if (block != null && MetalRegistry.isCommon(block)) event.setResult(Result.DENY); } catch (final Exception e) { e.printStackTrace(); } } static { blockField.setAccessible(true); } }