diff --git a/build.gradle b/build.gradle index 7abc9582f..c23c681a4 100644 --- a/build.gradle +++ b/build.gradle @@ -67,7 +67,7 @@ minecraft { } repositories { - maven { url "http://maven.cil.li/" } + maven { url "https://maven.cil.li/" } } configurations { diff --git a/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua b/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua index 32a945d3b..52e054734 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua @@ -26,7 +26,7 @@ shell.setAlias("..", "cd ..") shell.setAlias("df", "df -h") shell.setAlias("grep", "grep --color") shell.setAlias("more", "less --noback") -shell.setAlias("reset", "clear; resolution `cat /dev/components/by-type/gpu/0/maxResolution`") +shell.setAlias("reset", "resolution `cat /dev/components/by-type/gpu/0/maxResolution`") os.setenv("EDITOR", "/bin/edit") os.setenv("HISTSIZE", "10") diff --git a/src/main/scala/li/cil/oc/server/component/GraphicsCard.scala b/src/main/scala/li/cil/oc/server/component/GraphicsCard.scala index f38820ccc..e91b819da 100644 --- a/src/main/scala/li/cil/oc/server/component/GraphicsCard.scala +++ b/src/main/scala/li/cil/oc/server/component/GraphicsCard.scala @@ -101,7 +101,7 @@ class GraphicsCard(val tier: Int) extends AbstractManagedEnvironment with Device s.setForegroundColor(0xFFFFFF) s.setBackgroundColor(0x000000) } - else context.pause(0.2) // To discourage outputting "in realtime" to multiple screens using one GPU. + else context.pause(0) // To discourage outputting "in realtime" to multiple screens using one GPU. result(true) }) case _ => result(Unit, "not a screen") diff --git a/src/main/scala/li/cil/oc/server/machine/Machine.scala b/src/main/scala/li/cil/oc/server/machine/Machine.scala index fc353a92d..0766380e8 100644 --- a/src/main/scala/li/cil/oc/server/machine/Machine.scala +++ b/src/main/scala/li/cil/oc/server/machine/Machine.scala @@ -311,6 +311,21 @@ class Machine(val host: MachineHost) extends AbstractManagedEnvironment with mac } } + def convertArg(param: Any): AnyRef = { + param match { + case arg: java.lang.Boolean => arg + case arg: java.lang.Character => Double.box(arg.toDouble) + case arg: java.lang.Long => arg + case arg: java.lang.Number => Double.box(arg.doubleValue) + case arg: java.lang.String => arg + case arg: Array[Byte] => arg + case arg: NBTTagCompound => arg + case arg => + OpenComputers.log.warn("Trying to push signal with an unsupported argument of type " + arg.getClass.getName) + null + } + } + override def signal(name: String, args: AnyRef*): Boolean = { state.synchronized(state.top match { case Machine.State.Stopped | Machine.State.Stopping => return false @@ -322,19 +337,22 @@ class Machine(val host: MachineHost) extends AbstractManagedEnvironment with mac else { signals.enqueue(new Machine.Signal(name, args.map { case null | Unit | None => null - case arg: java.lang.Boolean => arg - case arg: java.lang.Character => Double.box(arg.toDouble) - case arg: java.lang.Long => arg - case arg: java.lang.Number => Double.box(arg.doubleValue) - case arg: java.lang.String => arg - case arg: Array[Byte] => arg case arg: Map[_, _] if arg.isEmpty || arg.head._1.isInstanceOf[String] && arg.head._2.isInstanceOf[String] => arg case arg: mutable.Map[_, _] if arg.isEmpty || arg.head._1.isInstanceOf[String] && arg.head._2.isInstanceOf[String] => arg.toMap - case arg: java.util.Map[_, _] if arg.isEmpty || arg.head._1.isInstanceOf[String] && arg.head._2.isInstanceOf[String] => arg.toMap - case arg: NBTTagCompound => arg - case arg => - OpenComputers.log.warn("Trying to push signal with an unsupported argument of type " + arg.getClass.getName) - null + case arg: java.util.Map[_, _] => { + val convertedMap = new mutable.HashMap[AnyRef, AnyRef] + for ((key, value) <- arg) { + val convertedKey = convertArg(key) + if (convertedKey != null) { + val convertedValue = convertArg(value) + if (convertedValue != null) { + convertedMap += convertedKey -> convertedValue + } + } + } + convertedMap + } + case arg => convertArg(arg) }.toArray[AnyRef])) } }