PluginManagerPlugin.scala 714 B

1234567891011121314151617181920
  1. package org.congressodeiradicali.karlmarx
  2. import com.bot4s.telegram.api.declarative.{CommandFilterMagnet, CommandImplicits}
  3. import scala.concurrent.{ExecutionContext, Future}
  4. class PluginManagerPlugin(localizer: Localizer, bot: Bot) extends Plugin with CommandImplicits {
  5. override var handlers: Map[CommandFilterMagnet, Handler] = Map {
  6. stringToCommandFilter("enable") -> { msg =>
  7. val response = msg.text.map {
  8. case "echo" => Some(new EchoPlugin(localizer, bot))
  9. case "ban" => Some(new BanPlugin(localizer, bot))
  10. case _ => None
  11. }.map {
  12. case Some(plugin) => bot.plugins :+= plugin; "Added."
  13. }
  14. Future { response }(ExecutionContext.global)
  15. }
  16. }
  17. }