Do what you want, exactly how you want it.

Latest version Build Status

AckCord is a Scala Discord, using Akka. AckCord's focus is on letting choose the level of abstraction you want. Want to work with the raw events from the gateway? Sure. Maybe you don't want to bother with any of the underlying implementation and technicalities. Works for that too. Only interested in the REST requests, then pull in that module and ignore the rest. AckCord is fast, reactive, modular, and clean, focusing on letting you write good code.

For more info see the see the microsite, the examples or the ScalaDoc(which you can find on the microsite).

While AckCord is still in active development, you can try AckCord by adding some of these to your build.sbt file.

resolvers += Resolver.JCenterRepository
libraryDependencies += "net.katsstuff" %% "ackcord"                 % "0.15.0" //For high level API, includes all the other modules
libraryDependencies += "net.katsstuff" %% "ackcord-core"            % "0.15.0" //Low level core API
libraryDependencies += "net.katsstuff" %% "ackcord-commands-core"   % "0.15.0" //Low to mid level Commands API
libraryDependencies += "net.katsstuff" %% "ackcord-lavaplayer-core" % "0.15.0" //Low level lavaplayer API

The AckCord module map

      +----> voice -----------------------> lavaplayer-core -+ 
      |                                         ^            |   
      |                                         |            v   
 data +----> gateway --> core ------------------+-------> ackcord
      |                   ^                     |            ^   
      |                   |                     v            |
      +----> requests ----+-> commands ---> commands-core ---+

Lastly, join our Discord server (we got cookies).