Advertisement
GenuineSounds

OreGenerationEvent

Jan 27th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.19 KB | None | 0 0
  1. package com.genuineflix.co.events;
  2.  
  3. import java.lang.reflect.Field;
  4.  
  5. import net.minecraft.block.Block;
  6. import net.minecraft.world.gen.feature.WorldGenMinable;
  7. import net.minecraftforge.event.terraingen.OreGenEvent;
  8.  
  9. import com.genuineflix.co.generator.feature.CommonGenMinable;
  10. import com.genuineflix.co.registry.MetalRegistry;
  11.  
  12. import cpw.mods.fml.common.eventhandler.Event.Result;
  13. import cpw.mods.fml.common.eventhandler.SubscribeEvent;
  14.  
  15. public class OreGenerationEvent {
  16.  
  17.     public static final Field blockField = WorldGenMinable.class.getDeclaredFields()[0];
  18.  
  19.     // Blocking ores from being able to generate
  20.     @SubscribeEvent
  21.     public void minable(final OreGenEvent.GenerateMinable event) {
  22.         if (event.generator == null || event.generator instanceof CommonGenMinable)
  23.             return;
  24.         if (event.generator instanceof WorldGenMinable)
  25.             try {
  26.                 final WorldGenMinable gen = (WorldGenMinable) event.generator;
  27.                 final Block block = (Block) blockField.get(event.generator);
  28.                 if (block != null && MetalRegistry.isCommon(block))
  29.                     event.setResult(Result.DENY);
  30.             }
  31.             catch (final Exception e) {
  32.                 e.printStackTrace();
  33.             }
  34.     }
  35.  
  36.     static {
  37.         blockField.setAccessible(true);
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement