From c1749efb2dfbfa7dbb2a128f3021118f31e0ac70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 31 Jan 2016 17:58:13 +0100 Subject: [PATCH] Log restored chunk loader ticket locations, closes #1616. --- .../cil/oc/common/event/ChunkloaderUpgradeHandler.scala | 6 +++++- .../li/cil/oc/server/component/UpgradeChunkloader.scala | 8 +++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/scala/li/cil/oc/common/event/ChunkloaderUpgradeHandler.scala b/src/main/scala/li/cil/oc/common/event/ChunkloaderUpgradeHandler.scala index 6562aadb7..a7ac0cb86 100644 --- a/src/main/scala/li/cil/oc/common/event/ChunkloaderUpgradeHandler.scala +++ b/src/main/scala/li/cil/oc/common/event/ChunkloaderUpgradeHandler.scala @@ -3,6 +3,7 @@ package li.cil.oc.common.event import java.util import cpw.mods.fml.common.eventhandler.SubscribeEvent +import li.cil.oc.OpenComputers import li.cil.oc.api.event.RobotMoveEvent import li.cil.oc.server.component.UpgradeChunkloader import li.cil.oc.util.BlockPosition @@ -22,10 +23,13 @@ object ChunkloaderUpgradeHandler extends LoadingCallback { override def ticketsLoaded(tickets: util.List[Ticket], world: World) { for (ticket <- tickets) { val data = ticket.getModData - restoredTickets += data.getString("address") -> ticket + val address = data.getString("address") + restoredTickets += address -> ticket if (data.hasKey("x") && data.hasKey("z")) { val x = data.getInteger("x") val z = data.getInteger("z") + OpenComputers.log.info(s"Restoring chunk loader ticket for upgrade at chunk ($x, $z) with address $address.") + ForgeChunkManager.forceChunk(ticket, new ChunkCoordIntPair(x, z)) } } diff --git a/src/main/scala/li/cil/oc/server/component/UpgradeChunkloader.scala b/src/main/scala/li/cil/oc/server/component/UpgradeChunkloader.scala index 4d050b17e..a3834459c 100644 --- a/src/main/scala/li/cil/oc/server/component/UpgradeChunkloader.scala +++ b/src/main/scala/li/cil/oc/server/component/UpgradeChunkloader.scala @@ -3,10 +3,10 @@ package li.cil.oc.server.component import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.api -import li.cil.oc.api.network.EnvironmentHost import li.cil.oc.api.machine.Arguments import li.cil.oc.api.machine.Callback import li.cil.oc.api.machine.Context +import li.cil.oc.api.network.EnvironmentHost import li.cil.oc.api.network._ import li.cil.oc.api.prefab import li.cil.oc.common.event.ChunkloaderUpgradeHandler @@ -44,8 +44,10 @@ class UpgradeChunkloader(val host: EnvironmentHost) extends prefab.ManagedEnviro override def onConnect(node: Node) { super.onConnect(node) if (node == this.node) { - ticket = ChunkloaderUpgradeHandler.restoredTickets.remove(node.address). - orElse(host match { + if (ChunkloaderUpgradeHandler.restoredTickets.contains(node.address)) { + OpenComputers.log.info(s"Reclaiming chunk loader ticket at (${host.xPosition()}, ${host.yPosition()}, ${host.zPosition()}) in dimension ${host.world().provider.dimensionId}.") + } + ticket = ChunkloaderUpgradeHandler.restoredTickets.remove(node.address).orElse(host match { case context: Context if context.isRunning => Option(ForgeChunkManager.requestTicket(OpenComputers, host.world, ForgeChunkManager.Type.NORMAL)) case _ => None })