From 9c6e9aef64b3c566f7e56702c0540fd1139975a1 Mon Sep 17 00:00:00 2001
From: modmuss50 <modmuss50@gmail.com>
Date: Sun, 8 May 2016 10:13:21 +0100
Subject: [PATCH] Update to new forge registry system

---
 .../techreborn/client/StackToolTipEvent.java  |   2 +-
 .../command/TechRebornDevCommand.java         |   9 +-
 .../java/techreborn/dev/JsonGenerator.java    |   2 +-
 src/main/java/techreborn/init/ModBlocks.java  | 161 ++++++++++--------
 .../java/techreborn/proxies/ClientProxy.java  |   2 +-
 5 files changed, 96 insertions(+), 80 deletions(-)

diff --git a/src/main/java/techreborn/client/StackToolTipEvent.java b/src/main/java/techreborn/client/StackToolTipEvent.java
index d1c41acb8..ccfe22a11 100644
--- a/src/main/java/techreborn/client/StackToolTipEvent.java
+++ b/src/main/java/techreborn/client/StackToolTipEvent.java
@@ -62,7 +62,7 @@ public class StackToolTipEvent
 			{
 				Block block = Block.getBlockFromItem(event.getItemStack().getItem());
 				if (block != null && (block instanceof BlockContainer || block instanceof ITileEntityProvider)
-						&& Block.REGISTRY.getNameForObject(block).getResourceDomain().contains("techreborn"))
+						&& block.getRegistryName().getResourceDomain().contains("techreborn"))
 				{
 					TileEntity tile = block.createTileEntity(Minecraft.getMinecraft().theWorld,
 							block.getDefaultState());
diff --git a/src/main/java/techreborn/command/TechRebornDevCommand.java b/src/main/java/techreborn/command/TechRebornDevCommand.java
index 7a03d0783..fbcd4c1ee 100644
--- a/src/main/java/techreborn/command/TechRebornDevCommand.java
+++ b/src/main/java/techreborn/command/TechRebornDevCommand.java
@@ -94,14 +94,7 @@ public class TechRebornDevCommand extends CommandBase
 		} else if ("getname".equals(args[0])) {
 			EntityPlayer player = (EntityPlayer) sender;
 			if (player.getHeldItem(EnumHand.MAIN_HAND) != null) {
-				if(GameData.getItemRegistry().containsValue(player.getHeldItem(EnumHand.MAIN_HAND).getItem())){
-					sender.addChatMessage(new TextComponentString(GameData.getItemRegistry().getNameForObject(player.getHeldItem(EnumHand.MAIN_HAND).getItem()) + ":" + player.getHeldItem(EnumHand.MAIN_HAND).getItemDamage()));
-				} else {
-					Block block = Block.getBlockFromItem(player.getHeldItem(EnumHand.MAIN_HAND).getItem());
-					if (block != null && block != Blocks.AIR) {
-						sender.addChatMessage(new TextComponentString(GameData.getBlockRegistry().getNameForObject(block) + ":" + player.getHeldItem(EnumHand.MAIN_HAND).getItemDamage()));
-					}
-				}
+				sender.addChatMessage(new TextComponentString(player.getHeldItem(EnumHand.MAIN_HAND).getItem().getRegistryName() + ":" + player.getHeldItem(EnumHand.MAIN_HAND).getItemDamage()));
 			} else {
 				((EntityPlayer) sender).addChatComponentMessage(new TextComponentString("hold an item!"));
 			}
diff --git a/src/main/java/techreborn/dev/JsonGenerator.java b/src/main/java/techreborn/dev/JsonGenerator.java
index d9585a1f6..b4d0a1010 100644
--- a/src/main/java/techreborn/dev/JsonGenerator.java
+++ b/src/main/java/techreborn/dev/JsonGenerator.java
@@ -60,7 +60,7 @@ public class JsonGenerator {
         for(Object object : RebornCore.jsonDestroyer.objectsToDestroy){
             if(object instanceof BlockMachineBase){
                 BlockMachineBase base = (BlockMachineBase) object;
-                String name = GameData.getBlockRegistry().getNameForObject(base).getResourcePath().replace("tile.techreborn.", "");
+                String name = base.getRegistryName().getResourcePath().replace("tile.techreborn.", "");
                 File state = new File(blockstates, name + ".json");
                 if(state.exists()){
                     state.delete();
diff --git a/src/main/java/techreborn/init/ModBlocks.java b/src/main/java/techreborn/init/ModBlocks.java
index b9e2113a7..92eae6da5 100644
--- a/src/main/java/techreborn/init/ModBlocks.java
+++ b/src/main/java/techreborn/init/ModBlocks.java
@@ -3,7 +3,9 @@ package techreborn.init;
 import net.minecraft.block.Block;
 import net.minecraft.block.material.Material;
 import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemBlock;
 import net.minecraft.item.ItemStack;
+import net.minecraft.util.ResourceLocation;
 import net.minecraftforge.fml.common.registry.GameRegistry;
 import net.minecraftforge.oredict.OreDictionary;
 import reborncore.common.tile.TileMachineBase;
@@ -138,6 +140,8 @@ import techreborn.tiles.transformers.TileHVTransformer;
 import techreborn.tiles.transformers.TileLVTransformer;
 import techreborn.tiles.transformers.TileMVTransformer;
 
+import java.lang.reflect.InvocationTargetException;
+
 public class ModBlocks
 {
 
@@ -217,266 +221,285 @@ public class ModBlocks
 	public static void init()
 	{
 		thermalGenerator = new BlockThermalGenerator();
-		GameRegistry.registerBlock(thermalGenerator, "techreborn.thermalGenerator");
+		registerBlock(thermalGenerator, "techreborn.thermalGenerator");
 		GameRegistry.registerTileEntity(TileThermalGenerator.class, "TileThermalGeneratorTR");
 
 		quantumTank = new BlockQuantumTank();
-		GameRegistry.registerBlock(quantumTank, ItemBlockQuantumTank.class, "techreborn.quantumTank");
+		registerBlock(quantumTank, ItemBlockQuantumTank.class, "techreborn.quantumTank");
 		GameRegistry.registerTileEntity(TileQuantumTank.class, "TileQuantumTankTR");
 
 		quantumChest = new BlockQuantumChest();
-		GameRegistry.registerBlock(quantumChest, ItemBlockQuantumChest.class, "techreborn.quantumChest");
+		registerBlock(quantumChest, ItemBlockQuantumChest.class, "techreborn.quantumChest");
 		GameRegistry.registerTileEntity(TileQuantumChest.class, "TileQuantumChestTR");
 
 		digitalChest = new BlockDigitalChest();
-		GameRegistry.registerBlock(digitalChest, ItemBlockDigitalChest.class, "techreborn.digitalChest");
+		registerBlock(digitalChest, ItemBlockDigitalChest.class, "techreborn.digitalChest");
 		GameRegistry.registerTileEntity(TileDigitalChest.class, "TileDigitalChestTR");
 
 		centrifuge = new BlockCentrifuge();
-		GameRegistry.registerBlock(centrifuge, "techreborn.centrifuge");
+		registerBlock(centrifuge, "techreborn.centrifuge");
 		GameRegistry.registerTileEntity(TileCentrifuge.class, "TileCentrifugeTR");
 
 		RollingMachine = new BlockRollingMachine(Material.ROCK);
-		GameRegistry.registerBlock(RollingMachine, "rollingmachine");
+		registerBlock(RollingMachine, "rollingmachine");
 		GameRegistry.registerTileEntity(TileRollingMachine.class, "TileRollingMachineTR");
 
 		BlastFurnace = new BlockBlastFurnace(Material.ROCK);
-		GameRegistry.registerBlock(BlastFurnace, "blastFurnace");
+		registerBlock(BlastFurnace, "blastFurnace");
 		GameRegistry.registerTileEntity(TileBlastFurnace.class, "TileBlastFurnaceTR");
 
 		AlloySmelter = new BlockAlloySmelter(Material.ROCK);
-		GameRegistry.registerBlock(AlloySmelter, "alloySmelter");
+		registerBlock(AlloySmelter, "alloySmelter");
 		GameRegistry.registerTileEntity(TileAlloySmelter.class, "TileAlloySmalterTR");
 
 		IndustrialGrinder = new BlockIndustrialGrinder(Material.ROCK);
-		GameRegistry.registerBlock(IndustrialGrinder, "grinder");
+		registerBlock(IndustrialGrinder, "grinder");
 		GameRegistry.registerTileEntity(TileIndustrialGrinder.class, "TileIndustrialGrinderTR");
 
 		ImplosionCompressor = new BlockImplosionCompressor(Material.ROCK);
-		GameRegistry.registerBlock(ImplosionCompressor, "implosioncompressor");
+		registerBlock(ImplosionCompressor, "implosioncompressor");
 		GameRegistry.registerTileEntity(TileImplosionCompressor.class, "TileImplosionCompressorTR");
 
 		MatterFabricator = new BlockMatterFabricator(Material.ROCK);
-		GameRegistry.registerBlock(MatterFabricator, "matterfabricator");
+		registerBlock(MatterFabricator, "matterfabricator");
 		GameRegistry.registerTileEntity(TileMatterFabricator.class, "TileMatterFabricatorTR");
 
 		ChunkLoader = new BlockChunkLoader(Material.ROCK);
-		GameRegistry.registerBlock(ChunkLoader, "chunkloader");
+		registerBlock(ChunkLoader, "chunkloader");
 		GameRegistry.registerTileEntity(TileChunkLoader.class, "TileChunkLoaderTR");
 
 		chargeBench = new BlockChargeBench(Material.ROCK);
-		GameRegistry.registerBlock(chargeBench, "chargebench");
+		registerBlock(chargeBench, "chargebench");
 		GameRegistry.registerTileEntity(TileChargeBench.class, "TileChargeBench");
 
 		playerDetector = new BlockPlayerDetector();
-		GameRegistry.registerBlock(playerDetector, ItemBlockPlayerDetector.class, "playerDetector");
+		registerBlock(playerDetector, ItemBlockPlayerDetector.class, "playerDetector");
 		GameRegistry.registerTileEntity(TilePlayerDectector.class, "TilePlayerDectectorTR");
 
 		MachineCasing = new BlockMachineCasing(Material.ROCK);
-		GameRegistry.registerBlock(MachineCasing, ItemBlockMachineCasing.class, "machinecasing");
+		registerBlock(MachineCasing, ItemBlockMachineCasing.class, "machinecasing");
 		GameRegistry.registerTileEntity(TileMachineCasing.class, "TileMachineCasingTR");
 
 		ore = new BlockOre(Material.ROCK);
-		GameRegistry.registerBlock(ore, ItemBlockOre.class, "techreborn.ore");
+		registerBlock(ore, ItemBlockOre.class, "techreborn.ore");
 
 		ore2 = new BlockOre2(Material.ROCK);
-		GameRegistry.registerBlock(ore2, ItemBlockOre2.class, "techreborn.ore2");
+		registerBlock(ore2, ItemBlockOre2.class, "techreborn.ore2");
 
 		storage = new BlockStorage(Material.IRON);
-		GameRegistry.registerBlock(storage, ItemBlockStorage.class, "techreborn.storage");
+		registerBlock(storage, ItemBlockStorage.class, "techreborn.storage");
 
 		storage2 = new BlockStorage2(Material.IRON);
-		GameRegistry.registerBlock(storage2, ItemBlockStorage2.class, "techreborn.storage2");
+		registerBlock(storage2, ItemBlockStorage2.class, "techreborn.storage2");
 
 		Dragoneggenergysiphoner = new BlockDragonEggSiphoner(Material.ROCK);
-		GameRegistry.registerBlock(Dragoneggenergysiphoner, "dragoneggenergsiphon");
+		registerBlock(Dragoneggenergysiphoner, "dragoneggenergsiphon");
 		GameRegistry.registerTileEntity(TileDragonEggSiphoner.class, "TileDragonEggSiphonerTR");
 
 		Magicenergeyconverter = new BlockMagicEnergyConverter(Material.ROCK);
-		GameRegistry.registerBlock(Magicenergeyconverter, "magicenergyconverter");
+		registerBlock(Magicenergeyconverter, "magicenergyconverter");
 
 		AssemblyMachine = new BlockAssemblingMachine(Material.ROCK);
-		GameRegistry.registerBlock(AssemblyMachine, "assemblymachine");
+		registerBlock(AssemblyMachine, "assemblymachine");
 		GameRegistry.registerTileEntity(TileAssemblingMachine.class, "TileAssemblyMachineTR");
 
 		DieselGenerator = new BlockDieselGenerator(Material.ROCK);
-		GameRegistry.registerBlock(DieselGenerator, "dieselgenerator");
+		registerBlock(DieselGenerator, "dieselgenerator");
 		GameRegistry.registerTileEntity(TileDieselGenerator.class, "TileDieselGeneratorTR");
 
 		IndustrialElectrolyzer = new BlockIndustrialElectrolyzer(Material.ROCK);
-		GameRegistry.registerBlock(IndustrialElectrolyzer, "industrialelectrolyzer");
+		registerBlock(IndustrialElectrolyzer, "industrialelectrolyzer");
 		GameRegistry.registerTileEntity(TileIndustrialElectrolyzer.class, "TileIndustrialElectrolyzerTR");
 
 		MagicalAbsorber = new BlockMagicEnergyAbsorber(Material.ROCK);
-		GameRegistry.registerBlock(MagicalAbsorber, "magicrnergyabsorber");
+		registerBlock(MagicalAbsorber, "magicrnergyabsorber");
 
 		Semifluidgenerator = new BlockSemiFluidGenerator(Material.ROCK);
-		GameRegistry.registerBlock(Semifluidgenerator, "semifluidgenerator");
+		registerBlock(Semifluidgenerator, "semifluidgenerator");
 		GameRegistry.registerTileEntity(TileSemifluidGenerator.class, "TileSemifluidGeneratorTR");
 
 		Gasturbine = new BlockGasTurbine(Material.ROCK);
-		GameRegistry.registerBlock(Gasturbine, "gasturbine");
+		registerBlock(Gasturbine, "gasturbine");
 		GameRegistry.registerTileEntity(TileGasTurbine.class, "TileGassTurbineTR");
 
 		AlloyFurnace = new BlockAlloyFurnace(Material.ROCK);
-		GameRegistry.registerBlock(AlloyFurnace, "alloyfurnace");
+		registerBlock(AlloyFurnace, "alloyfurnace");
 		GameRegistry.registerTileEntity(TileAlloyFurnace.class, "TileAlloyFurnaceTR");
 
 		ChemicalReactor = new BlockChemicalReactor(Material.ROCK);
-		GameRegistry.registerBlock(ChemicalReactor, "chemicalreactor");
+		registerBlock(ChemicalReactor, "chemicalreactor");
 		GameRegistry.registerTileEntity(TileChemicalReactor.class, "TileChemicalReactorTR");
 
 		Idsu = new BlockIDSU();
-		GameRegistry.registerBlock(Idsu, "idsu");
+		registerBlock(Idsu, "idsu");
 		GameRegistry.registerTileEntity(TileIDSU.class, "TileIDSUTR");
 
 		Aesu = new BlockAESU();
-		GameRegistry.registerBlock(Aesu, ItemBlockAesu.class, "aesu");
+		registerBlock(Aesu, ItemBlockAesu.class, "aesu");
 		GameRegistry.registerTileEntity(TileAesu.class, "TileAesuTR");
 
 		Lesu = new BlockLESU();
-		GameRegistry.registerBlock(Lesu, "lesu");
+		registerBlock(Lesu, "lesu");
 		GameRegistry.registerTileEntity(TileLesu.class, "TileLesuTR");
 
 		Supercondensator = new BlockSupercondensator(Material.ROCK);
-		GameRegistry.registerBlock(Supercondensator, "supercondensator");
+		registerBlock(Supercondensator, "supercondensator");
 
 		LesuStorage = new BlockLESUStorage(Material.ROCK);
-		GameRegistry.registerBlock(LesuStorage, "lesustorage");
+		registerBlock(LesuStorage, "lesustorage");
 		GameRegistry.registerTileEntity(TileLesuStorage.class, "TileLesuStorageTR");
 
 		Distillationtower = new BlockDistillationTower(Material.ROCK);
-		GameRegistry.registerBlock(Distillationtower, "distillationtower");
+		registerBlock(Distillationtower, "distillationtower");
 
 		ElectricCraftingTable = new BlockElectricCraftingTable(Material.ROCK);
-		GameRegistry.registerBlock(ElectricCraftingTable, "electriccraftingtable");
+		registerBlock(ElectricCraftingTable, "electriccraftingtable");
 
 		VacuumFreezer = new BlockVacuumFreezer(Material.ROCK);
-		GameRegistry.registerBlock(VacuumFreezer, "vacuumfreezer");
+		registerBlock(VacuumFreezer, "vacuumfreezer");
 		GameRegistry.registerTileEntity(TileVacuumFreezer.class, "TileVacuumFreezerTR");
 
 		PlasmaGenerator = new BlockPlasmaGenerator(Material.ROCK);
-		GameRegistry.registerBlock(PlasmaGenerator, "plasmagenerator");
+		registerBlock(PlasmaGenerator, "plasmagenerator");
 
 		ComputerCube = new BlockComputerCube(Material.ROCK);
-		GameRegistry.registerBlock(ComputerCube, "computercube");
+		registerBlock(ComputerCube, "computercube");
 
 		FusionControlComputer = new BlockFusionControlComputer(Material.ROCK);
-		GameRegistry.registerBlock(FusionControlComputer, "fusioncontrolcomputer");
+		registerBlock(FusionControlComputer, "fusioncontrolcomputer");
 		GameRegistry.registerTileEntity(TileEntityFusionController.class, "TileEntityFustionControllerTR");
 
 		FusionCoil = new BlockFusionCoil(Material.ROCK);
-		GameRegistry.registerBlock(FusionCoil, "fusioncoil");
+		registerBlock(FusionCoil, "fusioncoil");
 
 		LightningRod = new BlockLightningRod(Material.ROCK);
-		GameRegistry.registerBlock(LightningRod, "lightningrod");
+		registerBlock(LightningRod, "lightningrod");
 
 		heatGenerator = new BlockHeatGenerator(Material.ROCK);
-		GameRegistry.registerBlock(heatGenerator, "heatgenerator");
+		registerBlock(heatGenerator, "heatgenerator");
 		GameRegistry.registerTileEntity(TileHeatGenerator.class, "TileHeatGeneratorTR");
 
 		industrialSawmill = new BlockIndustrialSawmill(Material.ROCK);
-		GameRegistry.registerBlock(industrialSawmill, "industrialSawmill");
+		registerBlock(industrialSawmill, "industrialSawmill");
 		GameRegistry.registerTileEntity(TileIndustrialSawmill.class, "TileIndustrialSawmillTR");
 
 		machineframe = new BlockMachineFrame(Material.IRON);
-		GameRegistry.registerBlock(machineframe, ItemBlockMachineFrame.class, "techreborn.machineFrame");
+		registerBlock(machineframe, ItemBlockMachineFrame.class, "techreborn.machineFrame");
 
 		Grinder = new BlockGrinder(Material.IRON);
-		GameRegistry.registerBlock(Grinder, "techreborn.grinder");
+		registerBlock(Grinder, "techreborn.grinder");
 		GameRegistry.registerTileEntity(TileGrinder.class, "TileGrinderTR");
 
 		Generator = new BlockGenerator();
-		GameRegistry.registerBlock(Generator, "techreborn.generator");
+		registerBlock(Generator, "techreborn.generator");
 		GameRegistry.registerTileEntity(TileGenerator.class, "TileGeneratorTR");
 
 		Extractor = new BlockExtractor(Material.IRON);
-		GameRegistry.registerBlock(Extractor, "techreborn.extractor");
+		registerBlock(Extractor, "techreborn.extractor");
 		GameRegistry.registerTileEntity(TileExtractor.class, "TileExtractorTR");
 
 		Compressor = new BlockCompressor(Material.IRON);
-		GameRegistry.registerBlock(Compressor, "techreborn.compressor");
+		registerBlock(Compressor, "techreborn.compressor");
 		GameRegistry.registerTileEntity(TileCompressor.class, "TileCompressorTR");
 
 		ElectricFurnace = new BlockElectricFurnace(Material.IRON);
-		GameRegistry.registerBlock(ElectricFurnace, "techreborn.electricfurnace");
+		registerBlock(ElectricFurnace, "techreborn.electricfurnace");
 		GameRegistry.registerTileEntity(TileElectricFurnace.class, "TileElectricFurnaceTR");
 
 		solarPanel = new BlockSolarPanel();
-		GameRegistry.registerBlock(solarPanel, "techreborn.solarpanel");
+		registerBlock(solarPanel, "techreborn.solarpanel");
 		GameRegistry.registerTileEntity(TileSolarPanel.class, "TileSolarPanel");
 
 		waterMill = new BlockWaterMill();
-		GameRegistry.registerBlock(waterMill, "techreborn.watermill");
+		registerBlock(waterMill, "techreborn.watermill");
 		GameRegistry.registerTileEntity(TileWaterMill.class, "TileWaterMill");
 
 		windMill = new BlockWindMill();
-		GameRegistry.registerBlock(windMill, "techreborn.windmill");
+		registerBlock(windMill, "techreborn.windmill");
 		GameRegistry.registerTileEntity(TileWindMill.class, "TileWindMill");
 
 		GameRegistry.registerTileEntity(TileMachineBase.class, "TileMachineBaseTR");
 
 		rubberLog = new BlockRubberLog();
-		GameRegistry.registerBlock(rubberLog, "rubberLog");
+		registerBlock(rubberLog, "rubberLog");
 
 		rubberPlanks = new BlockRubberPlank();
-		GameRegistry.registerBlock(rubberPlanks, "rubberPlanks");
+		registerBlock(rubberPlanks, "rubberPlanks");
 
 		rubberLeaves = new BlockRubberLeaves();
-		GameRegistry.registerBlock(rubberLeaves, "rubberLeaves");
+		registerBlock(rubberLeaves, "rubberLeaves");
 
 		rubberSapling = new BlockRubberSapling();
-		GameRegistry.registerBlock(rubberSapling, ItemBlockRubberSapling.class, "rubberSapling");
+		registerBlock(rubberSapling, ItemBlockRubberSapling.class, "rubberSapling");
 
 		ironFence = new BlockIronFence();
-		GameRegistry.registerBlock(ironFence, "ironFence");
+		registerBlock(ironFence, "ironFence");
 
 		reinforcedglass = new BlockReinforcedGlass(Material.GLASS);
-		GameRegistry.registerBlock(reinforcedglass, "reinforcedglass");
+		registerBlock(reinforcedglass, "reinforcedglass");
 
 		recycler = new BlockRecycler(Material.IRON);
-		GameRegistry.registerBlock(recycler, "recycler");
+		registerBlock(recycler, "recycler");
 		GameRegistry.registerTileEntity(TileRecycler.class, "TileRecyclerTR");
 
 		batBox = new BlockBatBox();
-		GameRegistry.registerBlock(batBox, "batBox");
+		registerBlock(batBox, "batBox");
 		GameRegistry.registerTileEntity(TileBatBox.class, "TileBatBox");
 
 		mfe = new BlockMFE();
-		GameRegistry.registerBlock(mfe, "mfe");
+		registerBlock(mfe, "mfe");
 		GameRegistry.registerTileEntity(TileMFE.class, "TileMFE");
 
 		mfsu = new BlockMFSU();
-		GameRegistry.registerBlock(mfsu, "mfsu");
+		registerBlock(mfsu, "mfsu");
 		GameRegistry.registerTileEntity(TileMFSU.class, "TileMFSU");
 
 		lvt = new BlockLVTransformer();
-		GameRegistry.registerBlock(lvt, "lvt");
+		registerBlock(lvt, "lvt");
 		GameRegistry.registerTileEntity(TileLVTransformer.class, "TileLVTransformer");
 
 		mvt = new BlockMVTransformer();
-		GameRegistry.registerBlock(mvt, "mvt");
+		registerBlock(mvt, "mvt");
 		GameRegistry.registerTileEntity(TileMVTransformer.class, "TileMVTransformer");
 
 		hvt = new BlockHVTransformer();
-		GameRegistry.registerBlock(hvt, "hvt");
+		registerBlock(hvt, "hvt");
 		GameRegistry.registerTileEntity(TileHVTransformer.class, "TileHVTransformer");
 
 		ironFurnace = new BlockIronFurnace();
-		GameRegistry.registerBlock(ironFurnace, "ironfurnace");
+		registerBlock(ironFurnace, "ironfurnace");
 		GameRegistry.registerTileEntity(TileIronFurnace.class, "TileIronFurnaceTR");
 
 		nuke = new BlockNuke();
-		GameRegistry.registerBlock(nuke, "nuke");
+		registerBlock(nuke, "nuke");
 
 		scrapboxinator = new BlockScrapboxinator(Material.IRON);
-		GameRegistry.registerBlock(scrapboxinator, "scrapboxinator");
+		registerBlock(scrapboxinator, "scrapboxinator");
 		GameRegistry.registerTileEntity(TileScrapboxinator.class, "TileScrapboxinatorTR");
 
 		registerOreDict();
 		Core.logHelper.info("TechReborns Blocks Loaded");
 	}
 
+	public static void registerBlock(Block block, String name){
+		block.setRegistryName(name);
+		GameRegistry.register(block);
+		GameRegistry.register(new ItemBlock(block), block.getRegistryName());
+	}
+
+	public static void registerBlock(Block block, Class<? extends ItemBlock> itemclass, String name){
+		block.setRegistryName(name);
+		GameRegistry.register(block);
+		try {
+			ItemBlock itemBlock = itemclass.getConstructor(Block.class).newInstance(block);
+			itemBlock.setRegistryName(name);
+			GameRegistry.register(itemBlock);
+		} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
+			e.printStackTrace();
+		}
+
+	}
+
 	public static void registerOreDict()
 	{
 		OreDictionary.registerOre("oreGalena", new ItemStack(ore, 1, 0));
diff --git a/src/main/java/techreborn/proxies/ClientProxy.java b/src/main/java/techreborn/proxies/ClientProxy.java
index eed36322e..a6a30a924 100644
--- a/src/main/java/techreborn/proxies/ClientProxy.java
+++ b/src/main/java/techreborn/proxies/ClientProxy.java
@@ -99,7 +99,7 @@ public class ClientProxy extends CommonProxy
 	}
 
 	public static ResourceLocation getItemLocation(Item item) {
-		Object o = GameData.getItemRegistry().getNameForObject(item);
+		Object o = item.getRegistryName();
 		if(o == null) {
 			return null;
 		}