From 24228a225ac038e9b1298a900e12b7f74aeaaee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Fri, 25 Oct 2013 13:09:45 +0200 Subject: [PATCH] prepping for more api->java --- li/cil/oc/api/Network.scala | 8 +++---- li/cil/oc/api/network/Component.scala | 6 ++--- li/cil/oc/api/network/Node.scala | 4 ++-- li/cil/oc/api/power/Provider.scala | 8 +++---- li/cil/oc/api/power/Receiver.scala | 4 ++-- li/cil/oc/common/component/Screen.scala | 4 ++-- li/cil/oc/common/tileentity/Adapter.scala | 4 ++-- li/cil/oc/common/tileentity/DiskDrive.scala | 7 +++--- li/cil/oc/common/tileentity/Keyboard.scala | 4 ++-- li/cil/oc/server/component/CommandBlock.scala | 5 ++--- li/cil/oc/server/component/Computer.scala | 14 ++++++------ li/cil/oc/server/component/Filesystem.scala | 4 ++-- li/cil/oc/server/component/GraphicsCard.scala | 8 +++---- li/cil/oc/server/component/NetworkCard.scala | 4 ++-- li/cil/oc/server/component/Redstone.scala | 4 ++-- li/cil/oc/server/component/RedstoneCard.scala | 16 +++++++------- li/cil/oc/server/network/Network.scala | 22 ++++++++++--------- 17 files changed, 63 insertions(+), 63 deletions(-) diff --git a/li/cil/oc/api/Network.scala b/li/cil/oc/api/Network.scala index a5b78bc7b..b066816ee 100644 --- a/li/cil/oc/api/Network.scala +++ b/li/cil/oc/api/Network.scala @@ -101,7 +101,7 @@ trait Network { * @param address the address of the node to get. * @return the node with that address. */ - def node(address: String): Option[Node] + def node(address: String): Node /** * The list of all addressed nodes in this network. @@ -174,7 +174,7 @@ trait Network { * @return the result of the message being handled, if any. * @throws IllegalArgumentException if the source node is not in this network. */ - def sendToAddress(source: Node, target: String, name: String, data: AnyRef*): Option[Array[AnyRef]] + def sendToAddress(source: Node, target: String, name: String, data: AnyRef*): Array[AnyRef] /** * Sends a message to all addressed, visible neighbors of the source node. @@ -195,7 +195,7 @@ trait Network { * @throws IllegalArgumentException if the source node is not in this network. * @see `neighbors` */ - def sendToNeighbors(source: Node, name: String, data: AnyRef*): Option[Array[AnyRef]] + def sendToNeighbors(source: Node, name: String, data: AnyRef*): Array[AnyRef] /** * Sends a message to all addressed nodes visible to the source node. @@ -214,7 +214,7 @@ trait Network { * @throws IllegalArgumentException if the source node is not in this network. * @see `nodes` */ - def sendToVisible(source: Node, name: String, data: AnyRef*): Option[Array[AnyRef]] + def sendToVisible(source: Node, name: String, data: AnyRef*): Array[AnyRef] } object Network extends NetworkAPI { diff --git a/li/cil/oc/api/network/Component.scala b/li/cil/oc/api/network/Component.scala index 2b7787a20..cf69f62fd 100644 --- a/li/cil/oc/api/network/Component.scala +++ b/li/cil/oc/api/network/Component.scala @@ -89,11 +89,11 @@ trait Component extends Node { // ----------------------------------------------------------------------- // - override def receive(message: Message) = super.receive(message) orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { if (message.name == "computer.started" && canBeSeenBy(message.source)) - network.get.sendToAddress(this, message.source.address.get, "computer.signal", "component_added") + Some(network.get.sendToAddress(this, message.source.address.get, "computer.signal", "component_added")) else None - } + }.orNull // ----------------------------------------------------------------------- // diff --git a/li/cil/oc/api/network/Node.scala b/li/cil/oc/api/network/Node.scala index 100dced23..914ff2ef9 100644 --- a/li/cil/oc/api/network/Node.scala +++ b/li/cil/oc/api/network/Node.scala @@ -97,13 +97,13 @@ trait Node extends Persistable { * @param message the message to handle. * @return the result of the message being handled, if any. */ - def receive(message: Message): Option[Array[AnyRef]] = { + def receive(message: Message): Array[AnyRef] = { if (message.source == this) message.name match { case "system.connect" => onConnect() case "system.disconnect" => onDisconnect() case _ => // Ignore. } - None + null } /** diff --git a/li/cil/oc/api/power/Provider.scala b/li/cil/oc/api/power/Provider.scala index 0fe50dd5a..b00c4341e 100644 --- a/li/cil/oc/api/power/Provider.scala +++ b/li/cil/oc/api/power/Provider.scala @@ -14,7 +14,7 @@ trait Provider extends Node { var energyStorageList = mutable.Set[EnergyStorage]() - override def receive(message: Message): Option[Array[AnyRef]] = super.receive(message) orElse { + override def receive(message: Message): Array[AnyRef] = Option(super.receive(message)).orElse { if (message.source != this) { message.name match { case "system.connect" => { @@ -33,7 +33,7 @@ trait Provider extends Node { case distributor: Provider => if (isActive) { message.cancel() - return result(this) + return Array(this) } case _ => } @@ -52,7 +52,7 @@ trait Provider extends Node { } } None - } + }.orNull override protected def onConnect() { //check if other distributors already are in the network @@ -161,7 +161,7 @@ trait Provider extends Node { def searchMain() { network.foreach(_.sendToVisible(this, "power.find") match { - case Some(Array(powerDistributor: Provider)) => { + case Array(powerDistributor: Provider) => { println("found other distri") isActive = false } diff --git a/li/cil/oc/api/power/Receiver.scala b/li/cil/oc/api/power/Receiver.scala index c0ed5cad3..6742dafff 100644 --- a/li/cil/oc/api/power/Receiver.scala +++ b/li/cil/oc/api/power/Receiver.scala @@ -31,7 +31,7 @@ trait Receiver extends Node { // ----------------------------------------------------------------------- // - override def receive(message: Message) = super.receive(message) orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { message.name match { case "system.connect" => { message.source match { @@ -56,7 +56,7 @@ trait Receiver extends Node { case _ => } None - } + }.orNull override protected def onDisconnect() { super.onDisconnect() diff --git a/li/cil/oc/common/component/Screen.scala b/li/cil/oc/common/component/Screen.scala index b254b88d3..14a42bf9c 100644 --- a/li/cil/oc/common/component/Screen.scala +++ b/li/cil/oc/common/component/Screen.scala @@ -69,7 +69,7 @@ object Screen { // ----------------------------------------------------------------------- // - override def receive(message: Message) = super.receive(message).orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { message.data match { case Array(w: Integer, h: Integer) if message.name == "screen.resolution=" => result(instance.resolution = (w, h)) @@ -88,7 +88,7 @@ object Screen { instance.copy(x, y, w, h, tx, ty); result(true) case _ => None } - } + }.orNull // ----------------------------------------------------------------------- // diff --git a/li/cil/oc/common/tileentity/Adapter.scala b/li/cil/oc/common/tileentity/Adapter.scala index f4f1b3704..c0a130a95 100644 --- a/li/cil/oc/common/tileentity/Adapter.scala +++ b/li/cil/oc/common/tileentity/Adapter.scala @@ -28,7 +28,7 @@ class Adapter extends Rotatable with Node with IPeripheral { } } - override def receive(message: Message) = super.receive(message) orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { message.data match { case Array(port: Integer, answerPort: java.lang.Double, data: AnyRef) if message.name == "network.message" => for ((computer, ports) <- openPorts) if (ports.contains(port)) { @@ -37,7 +37,7 @@ class Adapter extends Rotatable with Node with IPeripheral { case _ => // Ignore. } None - } + }.orNull override protected def onConnect() { super.onConnect() diff --git a/li/cil/oc/common/tileentity/DiskDrive.scala b/li/cil/oc/common/tileentity/DiskDrive.scala index 4c413cec8..f35ba8945 100644 --- a/li/cil/oc/common/tileentity/DiskDrive.scala +++ b/li/cil/oc/common/tileentity/DiskDrive.scala @@ -20,14 +20,13 @@ class DiskDrive extends Rotatable with Component with ComponentInventory { override def canUpdate = false - override def receive(message: Message) = super.receive(message) orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { components(0) match { - case Some(node) if node.address.isDefined => - node.receive(message) + case Some(node) if node.address.isDefined => Option(node.receive(message)) case _ if message.name.startsWith("fs.") => result(Unit, "no disk") case _ => None } - } + }.orNull // ----------------------------------------------------------------------- // diff --git a/li/cil/oc/common/tileentity/Keyboard.scala b/li/cil/oc/common/tileentity/Keyboard.scala index c41b1ca16..8a96cf60e 100644 --- a/li/cil/oc/common/tileentity/Keyboard.scala +++ b/li/cil/oc/common/tileentity/Keyboard.scala @@ -24,7 +24,7 @@ class Keyboard extends Rotatable with Component { super.writeToNBT(nbt) } - override def receive(message: Message) = super.receive(message).orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { message.data match { case Array(p: Player, char: Character, code: Integer) if message.name == "keyboard.keyDown" => if (isUseableByPlayer(p)) @@ -38,7 +38,7 @@ class Keyboard extends Rotatable with Component { case _ => // Ignore. } None - } + }.orNull def isUseableByPlayer(p: Player) = worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == this && p.asInstanceOf[EntityPlayer].getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64 diff --git a/li/cil/oc/server/component/CommandBlock.scala b/li/cil/oc/server/component/CommandBlock.scala index f2643e25e..600d8e6de 100644 --- a/li/cil/oc/server/component/CommandBlock.scala +++ b/li/cil/oc/server/component/CommandBlock.scala @@ -2,7 +2,6 @@ package li.cil.oc.server.component import li.cil.oc.Config import li.cil.oc.api.network.{Component, Message, Visibility} -import net.minecraft.nbt.NBTTagCompound import net.minecraft.tileentity.TileEntityCommandBlock class CommandBlock(entity: TileEntityCommandBlock) extends Component { @@ -12,7 +11,7 @@ class CommandBlock(entity: TileEntityCommandBlock) extends Component { componentVisibility = visibility - override def receive(message: Message) = super.receive(message).orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { message.data match { case Array() if message.name == "command.value" => result(entity.getCommand) @@ -29,5 +28,5 @@ class CommandBlock(entity: TileEntityCommandBlock) extends Component { result(entity.executeCommandOnPowered(entity.worldObj) != 0) case _ => None } - } + }.get } diff --git a/li/cil/oc/server/component/Computer.scala b/li/cil/oc/server/component/Computer.scala index a637357ae..c9cd2dad8 100644 --- a/li/cil/oc/server/component/Computer.scala +++ b/li/cil/oc/server/component/Computer.scala @@ -597,17 +597,17 @@ class Computer(val owner: Computer.Environment) extends Persistable with Runnabl } def send(target: String, name: String, args: AnyRef*) = - owner.network.fold(None: Option[Array[AnyRef]])(network => { - network.node(target) match { + owner.network.fold(null: Array[AnyRef])(network => { + Option(network.node(target)) match { case Some(node: Component) if node.canBeSeenBy(this.owner) => network.sendToAddress(owner, target, name, args: _*) - case _ => Some(Array(Unit, "invalid address")) + case _ => Array(Unit, "invalid address") } }) lua.pushScalaFunction(lua => send(lua.checkString(1), lua.checkString(2), parseArguments(lua, 3): _*) match { - case Some(Array(results@_*)) => + case Array(results@_*) => results.foreach(pushResult(lua, _)) results.length case _ => 0 @@ -615,7 +615,7 @@ class Computer(val owner: Computer.Environment) extends Persistable with Runnabl lua.setGlobal("sendToAddress") lua.pushScalaFunction(lua => { - owner.network.fold(None: Option[Node])(_.node(lua.checkString(1))) match { + Option(owner.network.fold(null: Node)(_.node(lua.checkString(1)))) match { case Some(node: Component) if node.canBeSeenBy(this.owner) => lua.pushString(node.name) 1 @@ -904,7 +904,7 @@ object Computer { override val visibility = Visibility.Network - override def receive(message: Message) = super.receive(message).orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { message.data match { case Array() if message.name == "system.disconnect" && computer.isRunning => message.source match { @@ -935,7 +935,7 @@ object Computer { result(computer.isRunning) case _ => None } - } + }.orNull override protected def onConnect() { super.onConnect() diff --git a/li/cil/oc/server/component/Filesystem.scala b/li/cil/oc/server/component/Filesystem.scala index 5c336a6bd..9de8c5afa 100644 --- a/li/cil/oc/server/component/Filesystem.scala +++ b/li/cil/oc/server/component/Filesystem.scala @@ -18,7 +18,7 @@ class FileSystem(val fileSystem: api.fs.FileSystem) extends Component { componentVisibility = visibility - override def receive(message: Message) = super.receive(message).orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { try { message.data match { case Array() if message.name == "system.disconnect" && owners.contains(message.source.address.get) => @@ -157,7 +157,7 @@ class FileSystem(val fileSystem: api.fs.FileSystem) extends Component { case e: IOException => result(Unit, e.toString) } - } + }.orNull private def clean(path: Array[Byte]) = { val result = com.google.common.io.Files.simplifyPath(new String(path, "UTF-8")) diff --git a/li/cil/oc/server/component/GraphicsCard.scala b/li/cil/oc/server/component/GraphicsCard.scala index 38e1af817..cde170251 100644 --- a/li/cil/oc/server/component/GraphicsCard.scala +++ b/li/cil/oc/server/component/GraphicsCard.scala @@ -15,11 +15,11 @@ class GraphicsCard(val maxResolution: (Int, Int)) extends Component { // ----------------------------------------------------------------------- // - override def receive(message: Message) = super.receive(message).orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { message.data match { case Array(address: Array[Byte]) if message.name == "gpu.bind" => network.fold(None: Option[Array[AnyRef]])(network => { - network.node(new String(address, "UTF-8")) match { + Option(network.node(new String(address, "UTF-8"))) match { case None => result(Unit, "invalid address") case Some(node: component.Screen.Environment) => screen = node.address @@ -53,7 +53,7 @@ class GraphicsCard(val maxResolution: (Int, Int)) extends Component { trySend("screen.copy", Int.box(x.toInt - 1), Int.box(y.toInt - 1), Int.box(w.toInt), Int.box(h.toInt), Int.box(tx.toInt), Int.box(ty.toInt)) case _ => None } - } + }.orNull override protected def onDisconnect() = { super.onDisconnect() @@ -78,7 +78,7 @@ class GraphicsCard(val maxResolution: (Int, Int)) extends Component { screen match { case None => result(Unit, "no screen") case Some(screenAddress) => network.fold(None: Option[Array[AnyRef]])(net => { - net.sendToAddress(this, screenAddress, name, data: _*) + Option(net.sendToAddress(this, screenAddress, name, data: _*)) }) } } \ No newline at end of file diff --git a/li/cil/oc/server/component/NetworkCard.scala b/li/cil/oc/server/component/NetworkCard.scala index 3233f9f41..b54629804 100644 --- a/li/cil/oc/server/component/NetworkCard.scala +++ b/li/cil/oc/server/component/NetworkCard.scala @@ -13,7 +13,7 @@ class NetworkCard extends Component { componentVisibility = Visibility.Neighbors - override def receive(message: Message) = super.receive(message).orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { message.data match { case Array() if message.name == "computer.stopped" => if (network.get.neighbors(message.source).exists(_ == this)) @@ -47,7 +47,7 @@ class NetworkCard extends Component { None case _ => None // Ignore. } - } + }.orNull override def readFromNBT(nbt: NBTTagCompound) { super.readFromNBT(nbt) diff --git a/li/cil/oc/server/component/Redstone.scala b/li/cil/oc/server/component/Redstone.scala index c8209dc22..cec0b4945 100644 --- a/li/cil/oc/server/component/Redstone.scala +++ b/li/cil/oc/server/component/Redstone.scala @@ -58,7 +58,7 @@ trait Redstone extends Node { } } - override def receive(message: Message) = super.receive(message).orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { message.data match { case Array(side: ForgeDirection) if message.name == "redstone.input" && side != ForgeDirection.UNKNOWN => result(_input(side.ordinal())) @@ -69,7 +69,7 @@ trait Redstone extends Node { result(true) case _ => None } - } + }.orNull // ----------------------------------------------------------------------- // diff --git a/li/cil/oc/server/component/RedstoneCard.scala b/li/cil/oc/server/component/RedstoneCard.scala index 0da3b9630..d54656589 100644 --- a/li/cil/oc/server/component/RedstoneCard.scala +++ b/li/cil/oc/server/component/RedstoneCard.scala @@ -10,18 +10,18 @@ class RedstoneCard extends Component { componentVisibility = visibility - override def receive(message: Message) = super.receive(message).orElse { + override def receive(message: Message) = Option(super.receive(message)).orElse { message.data match { case Array(side: java.lang.Double) if message.name == "redstone.input" => - network.get.sendToAddress(this, message.source.address.get, - "redstone.input", ForgeDirection.getOrientation(side.toInt)) + Option(network.get.sendToAddress(this, message.source.address.get, + "redstone.input", ForgeDirection.getOrientation(side.toInt))) case Array(side: java.lang.Double) if message.name == "redstone.output" => - network.get.sendToAddress(this, message.source.address.get, - "redstone.output", ForgeDirection.getOrientation(side.toInt)) + Option(network.get.sendToAddress(this, message.source.address.get, + "redstone.output", ForgeDirection.getOrientation(side.toInt))) case Array(side: java.lang.Double, value: java.lang.Double) if message.name == "redstone.output=" => - network.get.sendToAddress(this, message.source.address.get, - "redstone.output=", ForgeDirection.getOrientation(side.toInt), Int.box(value.toInt)) + Option(network.get.sendToAddress(this, message.source.address.get, + "redstone.output=", ForgeDirection.getOrientation(side.toInt), Int.box(value.toInt))) case _ => None // Ignore. } - } + }.orNull } diff --git a/li/cil/oc/server/network/Network.scala b/li/cil/oc/server/network/Network.scala index caf585b3f..3e07c05bc 100644 --- a/li/cil/oc/server/network/Network.scala +++ b/li/cil/oc/server/network/Network.scala @@ -111,8 +111,8 @@ class Network private(private val addressedNodes: mutable.Map[String, Network.No // ----------------------------------------------------------------------- // override def node(address: String) = addressedNodes.get(address) match { - case Some(node) => Some(node.data) - case _ => None + case Some(node) => node.data + case _ => null } override def nodes = addressedNodes.values.map(_.data) @@ -145,8 +145,8 @@ class Network private(private val addressedNodes: mutable.Map[String, Network.No case Some(node) if node.data.visibility == Visibility.Network || (node.data.visibility == Visibility.Neighbors && neighbors(node.data).exists(_ == source)) => send(new Network.Message(source, name, Array(data: _*)), Iterable(node.data)) - case _ => None - } else None + case _ => null + } else null } override def sendToNeighbors(source: api.network.Node, name: String, data: AnyRef*) = { @@ -154,7 +154,7 @@ class Network private(private val addressedNodes: mutable.Map[String, Network.No throw new IllegalArgumentException("Source node must be in this network.") if (source.address.isDefined) send(new Network.Message(source, name, Array(data: _*)), neighbors(source).filter(_.visibility != Visibility.None)) - else None + else null } override def sendToVisible(source: api.network.Node, name: String, data: AnyRef*) = { @@ -162,7 +162,7 @@ class Network private(private val addressedNodes: mutable.Map[String, Network.No throw new IllegalArgumentException("Source node must be in this network.") if (source.address.isDefined) send(new Network.Message(source, name, Array(data: _*)), nodes(source)) - else None + else null } // ----------------------------------------------------------------------- // @@ -279,19 +279,21 @@ class Network private(private val addressedNodes: mutable.Map[String, Network.No //println("receive(" + message.name + "(" + message.data.mkString(", ") + "): " + message.source.address.get + ":" + message.source.name + " -> " + target.address.get + ":" + target.name + ")") target.receive(message) } catch { - case e: Throwable => OpenComputers.log.log(Level.WARNING, "Error in message handler", e); None + case e: Throwable => + OpenComputers.log.log(Level.WARNING, "Error in message handler", e) + null } message match { case _@(Network.ConnectMessage(_) | Network.DisconnectMessage(_)) => targets.foreach(protectedSend) - None + null case _ => - var result = None: Option[Array[AnyRef]] + var result = null: Array[AnyRef] val iterator = targets.iterator while (!message.isCanceled && iterator.hasNext) protectedSend(iterator.next()) match { - case None => // Ignore. + case null => // Ignore. case r => result = r } result