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 interactions
  6. package lavaplayer
  7. package requests
  8. package syntax
  9. package util
  10. package voice

Type Members

  1. sealed trait APIMessage extends AnyRef

    Base trait normal messages.

  2. case class APIMessageCacheUpdate[Data](data: Data, sendEvent: (CacheState) => List[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: 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. APIMessage s 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: Seq[RawActivity] = Nil, status: PresenceStatus = PresenceStatus.Online, afk: Boolean = false, compress: Compress = Compress.ZLibStreamCompress, eventDecoders: EventDecoders = GatewayProtocol.ackcordEventDecoders, 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.


    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], toGatewayPublish: Sink[GatewayMessage[Any], NotUsed], toGatewaySubscribe: Source[GatewayMessage[Any], NotUsed], fromGatewayPublish: Sink[GatewayMessage[Any], NotUsed], fromGatewaySubscribe: 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, GatewayGuild], 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, maxRequestsPerSecond: Int = 50, counter404s: Boolean = true) 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.


    Max amount of requests per second before the ratelimiter will assume it's globally ratelimited, and hold off on sending requests.


    If the ratelimiter should keep track of previous 404s, and stop letting URIs with the same destination pass.

  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 APIMessageCacheUpdate extends Serializable
  18. object AckCord
  19. object CacheEventCreator
  20. object CacheSnapshot
  21. object CacheStreams
  22. object ChannelEventListenerMessage
  23. object DiscordClientActor
  24. object DiscordShard
  25. object EventListenerBuilder extends Serializable
  26. object EventListenerMessage
  27. object EventRegistration extends Serializable
  28. object Events extends Serializable
  29. object GuildEventListenerMessage
  30. object GuildUserEventListenerMessage
  31. object MemoryCacheSnapshot extends Serializable
  32. object MusicManager
  33. object OptFuture
  34. object RequestCacheUpdate extends Serializable
  35. object RequestRunner
  36. object ShardShutdownManager
  37. object SnowflakeMap extends Serializable
  38. object TextChannelEventListenerMessage
  39. object TextGuildChannelEventListenerMessage
  40. object VGuildChannelEventListenerMessage

Inherited from AnyRef

Inherited from Any