package ackcord

Linear Supertypes
  1. Alphabetic
  2. By Inheritance
  1. ackcord
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
  1. Public
  2. Protected

Package Members

  1. package cachehandlers
  2. package commands
  3. package data
  4. package gateway
  5. package lavaplayer
  6. package requests
  7. package syntax
  8. package util
  9. package voice

Type Members

  1. sealed trait APIMessage extends AnyRef

    Base trait normal messages.

  2. case class APIMessageCacheUpdate[Data](data: Data, sendEvent: (CacheState) => Option[APIMessage], handler: CacheHandler[Data], registry: CacheTypeRegistry, dispatch: Dispatch[_]) extends CacheEvent with Product with Serializable

    An event that should publish an APIMessage.

    An event that should publish an APIMessage.


    The data it contains.


    The data.


    A function to gather the needed variables to send the event.


    The handler to process the data of this event with.


    The handler registry that the event will use to update the snapshot.


    The low level message that created this update.

  3. case class BatchedAPIMessageCacheUpdate(updates: Seq[APIMessageCacheUpdate[_]]) extends CacheEvent with Product with Serializable
  4. type BotAuthentication = ackcord.requests.BotAuthentication.type
  5. type Cache = Events
  6. trait CacheEvent extends AnyRef

    Represents some sort of event handled by the cache

  7. case class CacheSettings(processor: CacheProcessor = MemoryCacheSnapshot.defaultCacheProcessor, parallelism: Int = 4, cacheBufferSize: PubSubBufferSize = PubSubBufferSize(), sendGatewayEventsBufferSize: PubSubBufferSize = PubSubBufferSize(), receiveGatewayEventsBufferSize: PubSubBufferSize = PubSubBufferSize(), ignoredEvents: Seq[Class[_ <: GatewayEvent[_]]] = Nil, cacheTypeRegistry: (Logger) => CacheTypeRegistry = CacheTypeRegistry.default, partitionCacheByGuild: Boolean = false) extends Product with Serializable


    A function that runs on the cache right before a cache snapshot is produced.


    How many cache updates are constructed in parallel


    Size of the buffer for the cache


    Size of the buffer for sending gateway events


    Size of the buffer for receiving gateway events


    Events the cache will ignore. APIMessages aren't sent for these either.


    Gives you control over how entities in the cache are updated, and what values are retained in the cache.


    Instead of sharing a single cache for the entire application, this partitions the cache by guild. Each guild will in effect receive it's own cache. Cache events not specific to one guild will be sent to all caches. Unlike then default cache, this one is faster, as cache updates can be done in parallel, but might use more memory, and you need to handle cross guild cache actions yourself.

  8. trait CacheSnapshot extends AnyRef

    A representation of the cache.

  9. trait CacheSnapshotWithMaps extends CacheSnapshot

    A cache snapshot where the getters can use the maps to get their data.

  10. case class CacheState(current: MemoryCacheSnapshot, previous: MemoryCacheSnapshot) extends Product with Serializable

    Represents the state of the cache for a single point.

    Represents the state of the cache for a single point.


    The current values in the cache.


    The previous values in the cache.

  11. trait ChannelEventListenerMessage[A] extends EventListenerMessage[A]
  12. case class ClientSettings(token: String, largeThreshold: Int = 50, shardNum: Int = 0, shardTotal: Int = 1, idleSince: Option[Instant] = None, activities: Option[Seq[RawActivity]] = None, status: PresenceStatus = PresenceStatus.Online, afk: Boolean = false, guildSubscriptions: Boolean = true, compress: Compress = Compress.ZLibStreamCompress, intents: GatewayIntents = GatewayIntents.AllNonPrivileged, system: ActorSystem[Nothing] = ActorSystem(Behaviors.ignore, "AckCord"), requestSettings: RequestSettings = RequestSettings(), cacheSettings: CacheSettings = CacheSettings()) extends Product with Serializable

    Settings used when connecting to Discord.

    Settings used when connecting to Discord.


    The token for the bot.


    The large threshold.


    The shard index of this shard.


    The amount of shards.


    If the bot has been idle, set the time since.


    Send one or more activities when connecting.


    The status to use when connecting.


    If the bot should be afk when connecting.


    If Discord should sent events about user to your guilds.


    What sort of compression the gateway should use.


    Fine grained control over which events Discord should sent to your bot.


    The actor system to use.


    The request settings to use.


    Settings the cache will use.

  13. trait DiscordClient extends AnyRef

    Trait used to interface with Discord stuff from high level.

  14. class DiscordClientActor extends AbstractBehavior[Command]
  15. class DiscordClientCore extends DiscordClient
  16. trait EventListener[A, Mat] extends AnyRef
  17. case class EventListenerBuilder[+M[_], A <: APIMessage](requests: Requests, refineEvent: (APIMessage) => Option[A], actionFunction: ActionFunction[EventListenerMessage, M, Nothing]) extends ActionBuilder[EventListenerMessage, M, Nothing, A] with Product with Serializable
  18. trait EventListenerMessage[A] extends AnyRef
  19. case class EventRegistration[Mat](materialized: Mat, onDone: Future[Done], killSwitch: UniqueKillSwitch) extends Product with Serializable
  20. case class Events(publish: Sink[CacheEvent, NotUsed], subscribe: Source[(CacheEvent, CacheState), NotUsed], sendGatewayPublish: Sink[GatewayMessage[Any], NotUsed], sendGatewaySubscribe: Source[GatewayMessage[Any], NotUsed], receiveGatewayPublish: Sink[GatewayMessage[Any], NotUsed], receiveGatewaySubscribe: Source[GatewayMessage[Any], NotUsed], parallelism: Int)(implicit system: ActorSystem[Nothing]) extends Product with Serializable

    Houses streams to interact with events and messages sent to and from Discord.

    Houses streams to interact with events and messages sent to and from Discord.


    A sink used for publishing. Any elements connected to this sink is published to the cache.


    A source to subscribe to. All updates are pushed here.


    How many cache updates to construct at the same time.

  21. abstract class EventsController extends AnyRef
  22. type GatewayLogin = Login.type
  23. type GatewayLogout = Logout.type
  24. type GatewaySettings = ackcord.gateway.GatewaySettings
  25. trait GuildEventListenerMessage[A] extends EventListenerMessage[A]
  26. trait GuildUserEventListenerMessage[A] extends GuildEventListenerMessage[A] with UserEventListenerMessage[A]
  27. type JsonNull = ackcord.util.JsonNull.type
  28. type JsonOption[A] = ackcord.util.JsonOption[A]
  29. type JsonSome[A] = ackcord.util.JsonSome[A]
  30. type JsonUndefined = ackcord.util.JsonUndefined.type
  31. case class MemoryCacheSnapshot(seq: Long, botUser: @@[User, BotUser], dmChannelMap: SnowflakeMap[DMChannel, DMChannel], groupDmChannelMap: SnowflakeMap[GroupDMChannel, GroupDMChannel], unavailableGuildMap: SnowflakeMap[Guild, UnavailableGuild], guildMap: SnowflakeMap[Guild, Guild], messageMap: SnowflakeMap[TextChannel, SnowflakeMap[Message, Message]], lastTypedMap: SnowflakeMap[TextChannel, SnowflakeMap[User, Instant]], userMap: SnowflakeMap[User, User], banMap: SnowflakeMap[Guild, SnowflakeMap[User, Ban]], processor: CacheProcessor) extends CacheSnapshotWithMaps with Product with Serializable

    Represents the cache at some point in time

  32. class OptFuture[+A] extends AnyRef

    A future that might be missing a value.

    A future that might be missing a value. A nice wrapper around Future[Option[A]]

  33. case class PubSubBufferSize(perProducer: Int = 16, consumer: Int = 256) extends Product with Serializable
  34. case class RequestCacheUpdate[Data](requestResponse: RequestResponse[Data], request: Request[Data], registry: CacheTypeRegistry) extends CacheEvent with Product with Serializable

    A cache event that will try to put the data of the response into the cache.

    A cache event that will try to put the data of the response into the cache.


    The type of the request response.


    The response to the request.


    The request used to get the response.


    The handler registry that the event will use to update the snapshot.

  35. class RequestPermissionException extends Exception
  36. case class RequestSettings(relativeTime: Boolean = false, parallelism: Int = 4, bufferSize: Int = 32, maxRetryCount: Int = 3, overflowStrategy: OverflowStrategy = OverflowStrategy.backpressure, maxAllowedWait: FiniteDuration = 2.minutes) extends Product with Serializable


    Parallelism to use for requests.


    The buffer size to use for waiting requests.


    The maximum amount of times a request will be retried. Only affects requests that uses retries.


    The overflow strategy to use when the buffer is full.


    The max allowed wait time before giving up on a request.

  37. type Requests = ackcord.requests.Requests
  38. type RequestsHelper = ackcord.requests.RequestsHelper
  39. class SnowflakeMap[K, +V] extends AbstractMap[SnowflakeType[K], V] with StrictOptimizedMapOps[SnowflakeType[K], V, Map, SnowflakeMap[K, V]] with Serializable
  40. type SourceRequest[A] = Source[A, NotUsed]
  41. type Streamable[F[_]] = ackcord.util.Streamable[F]
  42. trait TextChannelEventListenerMessage[A] extends ChannelEventListenerMessage[A]
  43. trait TextGuildChannelEventListenerMessage[A] extends TextChannelEventListenerMessage[A] with GuildEventListenerMessage[A]
  44. trait UserEventListenerMessage[A] extends EventListenerMessage[A]
  45. trait VGuildChannelEventListenerMessage[A] extends ChannelEventListenerMessage[A] with GuildEventListenerMessage[A]
  46. class WrappedEventListenerMessage[A] extends EventListenerMessage[A]

Deprecated Type Members

  1. trait RequestRunner[F[_]] extends AnyRef

    (Since version 0.17) Prefer RequestHelper

Value Members

  1. val BotAuthentication: ackcord.requests.BotAuthentication.type
  2. val Cache: Events.type
  3. val GatewayLogin: Login.type
  4. val GatewayLogout: Logout.type
  5. val GatewaySettings: ackcord.gateway.GatewaySettings.type
  6. val JsonNull: ackcord.util.JsonNull.type
  7. val JsonOption: ackcord.util.JsonOption.type
  8. val JsonSome: ackcord.util.JsonSome.type
  9. val JsonUndefined: ackcord.util.JsonUndefined.type
  10. val Requests: ackcord.requests.Requests.type
  11. val Streamable: ackcord.util.Streamable.type
  12. implicit def flowFunctorInstance[In, Mat]: Functor[[β$0$]Flow[In, β$0$, Mat]]
  13. implicit def sinkContravariantInstance[Mat]: Contravariant[[α$1$]Sink[α$1$, Mat]]
  14. implicit val sourceMonadInstance: MonadError[SourceRequest, Throwable] with Alternative[SourceRequest]
  15. implicit def sourceSyntax[A, M](source: Source[A, M]): SourceFlatmap[A, M]
  16. object APIMessage
  17. object AckCord
  18. object CacheEventCreator
  19. object CacheSnapshot
  20. object CacheStreams
  21. object ChannelEventListenerMessage
  22. object DiscordClientActor
  23. object DiscordShard
  24. object EventListenerBuilder extends Serializable
  25. object EventListenerMessage
  26. object EventRegistration extends Serializable
  27. object Events extends Serializable
  28. object GuildEventListenerMessage
  29. object GuildUserEventListenerMessage
  30. object MemoryCacheSnapshot extends Serializable
  31. object MusicManager
  32. object OptFuture
  33. object RequestCacheUpdate extends Serializable
  34. object RequestRunner
  35. object ShardShutdownManager
  36. object SnowflakeMap extends Serializable
  37. object TextChannelEventListenerMessage
  38. object TextGuildChannelEventListenerMessage
  39. object VGuildChannelEventListenerMessage

Inherited from AnyRef

Inherited from Any