diff --git a/src/main/scala/li/cil/oc/common/EventHandler.scala b/src/main/scala/li/cil/oc/common/EventHandler.scala index baf53e527..fc73095b5 100644 --- a/src/main/scala/li/cil/oc/common/EventHandler.scala +++ b/src/main/scala/li/cil/oc/common/EventHandler.scala @@ -97,37 +97,12 @@ object EventHandler { @SubscribeEvent def onCrafting(e: ItemCraftedEvent) = { - val player = e.player - val craftedStack = e.crafting - val inventory = e.craftMatrix - if (craftedStack.isItemEqual(Items.acid.createItemStack())) { - for (i <- 0 until inventory.getSizeInventory) { - val stack = inventory.getStackInSlot(i) - if (stack != null && stack.getItem == net.minecraft.init.Items.water_bucket) { - stack.stackSize = 0 - inventory.setInventorySlotContents(i, null) - } - } - } - - if (craftedStack.isItemEqual(Items.pcb.createItemStack())) { - for (i <- 0 until inventory.getSizeInventory) { - val stack = inventory.getStackInSlot(i) - if (stack != null && stack.isItemEqual(Items.acid.createItemStack())) { - val container = new ItemStack(net.minecraft.init.Items.bucket, 1) - if (!player.inventory.addItemStackToInventory(container)) { - player.entityDropItem(container, 0) - } - } - } - } - - if (craftedStack.isItemEqual(Items.upgradeNavigation.createItemStack())) { - Registry.itemDriverFor(craftedStack) match { + if (e.crafting.isItemEqual(Items.upgradeNavigation.createItemStack())) { + Registry.itemDriverFor(e.crafting) match { case Some(driver) => var oldMap = None: Option[ItemStack] - for (i <- 0 until inventory.getSizeInventory) { - val stack = inventory.getStackInSlot(i) + for (i <- 0 until e.craftMatrix.getSizeInventory) { + val stack = e.craftMatrix.getStackInSlot(i) if (stack != null) { if (stack.isItemEqual(Items.upgradeNavigation.createItemStack())) { // Restore the map currently used in the upgrade. @@ -136,9 +111,9 @@ object EventHandler { } else if (stack.getItem == net.minecraft.init.Items.map) { // Store information of the map used for crafting in the result. - val nbt = driver.dataTag(craftedStack) + val nbt = driver.dataTag(e.crafting) val map = stack.getItem.asInstanceOf[ItemMap] - val info = map.getMapData(stack, player.getEntityWorld) + val info = map.getMapData(stack, e.player.getEntityWorld) nbt.setInteger(Settings.namespace + "xCenter", info.xCenter) nbt.setInteger(Settings.namespace + "zCenter", info.zCenter) nbt.setInteger(Settings.namespace + "scale", 128 * (1 << info.scale)) @@ -148,8 +123,8 @@ object EventHandler { } if (oldMap.isDefined) { val map = oldMap.get - if (!player.inventory.addItemStackToInventory(map)) { - player.dropPlayerItemWithRandomChoice(map, false) + if (!e.player.inventory.addItemStackToInventory(map)) { + e.player.dropPlayerItemWithRandomChoice(map, false) } } case _ =>