mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-15 10:21:45 -04:00
Added try-catch to suppress errors when trying to release a ticket for a world that's currently being unloaded. Closes #710.
This commit is contained in:
parent
0ae0d5d67e
commit
2947ded770
@ -40,7 +40,9 @@ object ChunkloaderUpgradeHandler extends LoadingCallback {
|
||||
// so if the save is because the game is being quit the tickets aren't
|
||||
// actually being cleared. This will *usually* not be a problem, but it
|
||||
// has room for improvement.
|
||||
restoredTickets.values.foreach(ForgeChunkManager.releaseTicket)
|
||||
restoredTickets.values.foreach(ticket => try ForgeChunkManager.releaseTicket(ticket) catch {
|
||||
case _: Throwable => // Ignored.
|
||||
})
|
||||
restoredTickets.clear()
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,9 @@ class UpgradeChunkloader(val host: EnvironmentHost) extends prefab.ManagedEnviro
|
||||
super.update()
|
||||
if (host.world.getTotalWorldTime % Settings.get.tickFrequency == 0 && ticket.isDefined) {
|
||||
if (!node.tryChangeBuffer(-Settings.get.chunkloaderCost * Settings.get.tickFrequency)) {
|
||||
ticket.foreach(ForgeChunkManager.releaseTicket)
|
||||
ticket.foreach(ticket => try ForgeChunkManager.releaseTicket(ticket) catch {
|
||||
case _: Throwable => // Ignored.
|
||||
})
|
||||
ticket = None
|
||||
}
|
||||
}
|
||||
@ -54,7 +56,9 @@ class UpgradeChunkloader(val host: EnvironmentHost) extends prefab.ManagedEnviro
|
||||
override def onDisconnect(node: Node) {
|
||||
super.onDisconnect(node)
|
||||
if (node == this.node) {
|
||||
ticket.foreach(ForgeChunkManager.releaseTicket)
|
||||
ticket.foreach(ticket => try ForgeChunkManager.releaseTicket(ticket) catch {
|
||||
case _: Throwable => // Ignored.
|
||||
})
|
||||
ticket = None
|
||||
}
|
||||
}
|
||||
@ -75,7 +79,9 @@ class UpgradeChunkloader(val host: EnvironmentHost) extends prefab.ManagedEnviro
|
||||
ChunkloaderUpgradeHandler.updateLoadedChunk(this)
|
||||
}
|
||||
else if (!enabled && ticket.isDefined) {
|
||||
ticket.foreach(ForgeChunkManager.releaseTicket)
|
||||
ticket.foreach(ticket => try ForgeChunkManager.releaseTicket(ticket) catch {
|
||||
case _: Throwable => // Ignored.
|
||||
})
|
||||
ticket = None
|
||||
}
|
||||
ticket.isDefined
|
||||
|
Loading…
x
Reference in New Issue
Block a user