From 9988e0e8e1ec1d08f703e10f9d9ccc3ad85edf90 Mon Sep 17 00:00:00 2001 From: Nathan Perry Date: Sat, 30 Apr 2016 17:22:33 +0000 Subject: initial commit --- main.scala | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 main.scala (limited to 'main.scala') diff --git a/main.scala b/main.scala new file mode 100755 index 0000000..6f82513 --- /dev/null +++ b/main.scala @@ -0,0 +1,30 @@ +object Main { + import org.slf4j._ + import sx.blah.discord._ + + val logger = LoggerFactory getLogger Main.getClass + + def main(args: Array[String]) = { + import api._ + + val client = (new ClientBuilder withLogin (Config \ "username", Config \ "password")).login + client.getDispatcher registerListener EventHandler + } +} + +object Config { + import scala.io.Source + import org.yaml.snakeyaml._ + import scala.collection._ + import scala.collection.JavaConverters._ + import java.util.{Map => JMap} + + lazy val yaml: Map[String, Any] = ((new Yaml) load (Source fromFile "config.yml").mkString).asInstanceOf[JMap[String, Any]].asScala + + import scala.reflect.runtime.universe._ + def \[T: TypeTag](item: String): T = (yaml get item) match { + case Some(x: String) if typeOf[T] <:< typeOf[Int] => x.toInt.asInstanceOf[T] + case Some(x) => x.asInstanceOf[T] + case None => throw new IllegalStateException(s"Config had no value for '$item'.") + } +} -- cgit v1.3.1