From f5ea6bb43ab7e5650510cfbef8a2e2c003b59779 Mon Sep 17 00:00:00 2001 From: jchristgit Date: Fri, 19 Apr 2024 15:36:45 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20a72d7?= =?UTF-8?q?25c49d16b0e1803d64b079c13e0db419ca4=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .build | 21 +- 404.html | 176 +-- Mix.Tasks.Gh.Docs.html | 200 +-- Nostrum.Api.Ratelimiter.html | 267 ++-- Nostrum.Api.html | 1139 +++++++++-------- Nostrum.Cache.CacheSupervisor.html | 200 +-- Nostrum.Cache.ChannelCache.ETS.html | 200 +-- Nostrum.Cache.ChannelCache.Mnesia.html | 200 +-- Nostrum.Cache.ChannelCache.NoOp.html | 200 +-- Nostrum.Cache.ChannelCache.html | 212 +-- Nostrum.Cache.ChannelGuildMapping.ETS.html | 200 +-- Nostrum.Cache.ChannelGuildMapping.Mnesia.html | 200 +-- Nostrum.Cache.ChannelGuildMapping.NoOp.html | 200 +-- Nostrum.Cache.ChannelGuildMapping.html | 219 ++-- Nostrum.Cache.GuildCache.ETS.html | 200 +-- Nostrum.Cache.GuildCache.Mnesia.html | 200 +-- Nostrum.Cache.GuildCache.NoOp.html | 200 +-- Nostrum.Cache.GuildCache.html | 215 ++-- Nostrum.Cache.Me.html | 200 +-- Nostrum.Cache.MemberCache.ETS.html | 206 +-- Nostrum.Cache.MemberCache.Mnesia.html | 200 +-- Nostrum.Cache.MemberCache.NoOp.html | 200 +-- Nostrum.Cache.MemberCache.html | 233 ++-- Nostrum.Cache.PresenceCache.ETS.html | 200 +-- Nostrum.Cache.PresenceCache.Mnesia.html | 200 +-- Nostrum.Cache.PresenceCache.NoOp.html | 200 +-- Nostrum.Cache.PresenceCache.html | 236 ++-- Nostrum.Cache.UserCache.ETS.html | 200 +-- Nostrum.Cache.UserCache.Mnesia.html | 200 +-- Nostrum.Cache.UserCache.NoOp.html | 200 +-- Nostrum.Cache.UserCache.html | 217 ++-- ...onstants.ApplicationCommandOptionType.html | 200 +-- ...ants.ApplicationCommandPermissionType.html | 200 +-- Nostrum.Constants.ApplicationCommandType.html | 200 +-- Nostrum.Constants.ButtonStyle.html | 200 +-- Nostrum.Constants.ChannelType.html | 200 +-- Nostrum.Constants.ComponentType.html | 200 +-- ...rum.Constants.InteractionCallbackType.html | 200 +-- Nostrum.Constants.InteractionType.html | 200 +-- Nostrum.Constants.TextInputStyle.html | 200 +-- Nostrum.Constants.WebhookType.html | 200 +-- Nostrum.Consumer.html | 289 +++-- Nostrum.ConsumerGroup.html | 226 ++-- Nostrum.Error.ApiError.html | 200 +-- Nostrum.Error.CacheError.html | 194 +-- Nostrum.Error.VoiceError.html | 194 +-- Nostrum.Permission.html | 277 ++-- Nostrum.Shard.Session.html | 218 ++-- Nostrum.Shard.Supervisor.html | 206 +-- Nostrum.Snowflake.html | 271 ++-- Nostrum.StateMachineTranslator.html | 212 +-- Nostrum.Store.GuildShardMapping.ETS.html | 200 +-- Nostrum.Store.GuildShardMapping.Mnesia.html | 200 +-- Nostrum.Store.GuildShardMapping.html | 219 ++-- Nostrum.Store.Supervisor.html | 200 +-- Nostrum.Store.UnavailableGuild.ETS.html | 200 +-- Nostrum.Store.UnavailableGuild.Mnesia.html | 200 +-- Nostrum.Store.UnavailableGuild.html | 225 ++-- Nostrum.Struct.ApplicationCommand.html | 206 +-- ...uct.ApplicationCommandInteractionData.html | 200 +-- ...plicationCommandInteractionDataOption.html | 200 +-- ...icationCommandInteractionDataResolved.html | 200 +-- Nostrum.Struct.AutoModerationRule.Action.html | 200 +-- ...uct.AutoModerationRule.ActionMetadata.html | 200 +-- ...ct.AutoModerationRule.TriggerMetadata.html | 200 +-- Nostrum.Struct.AutoModerationRule.html | 200 +-- Nostrum.Struct.Channel.html | 273 ++-- Nostrum.Struct.Component.ActionRow.html | 203 +-- Nostrum.Struct.Component.Button.html | 203 +-- Nostrum.Struct.Component.Option.html | 200 +-- Nostrum.Struct.Component.SelectMenu.html | 215 ++-- Nostrum.Struct.Component.TextInput.html | 203 +-- Nostrum.Struct.Component.html | 248 ++-- Nostrum.Struct.Embed.Author.html | 200 +-- Nostrum.Struct.Embed.Field.html | 200 +-- Nostrum.Struct.Embed.Footer.html | 200 +-- Nostrum.Struct.Embed.Image.html | 200 +-- Nostrum.Struct.Embed.Provider.html | 200 +-- Nostrum.Struct.Embed.Thumbnail.html | 200 +-- Nostrum.Struct.Embed.Video.html | 200 +-- Nostrum.Struct.Embed.html | 478 +++---- Nostrum.Struct.Emoji.html | 297 +++-- ...truct.Event.AutoModerationRuleExecute.html | 200 +-- Nostrum.Struct.Event.ChannelPinsUpdate.html | 200 +-- Nostrum.Struct.Event.GuildBanAdd.html | 200 +-- Nostrum.Struct.Event.GuildBanRemove.html | 200 +-- ...m.Struct.Event.GuildIntegrationDelete.html | 200 +-- ....Struct.Event.GuildIntegrationsUpdate.html | 200 +-- ...ruct.Event.GuildScheduledEventUserAdd.html | 200 +-- ...t.Event.GuildScheduledEventUserRemove.html | 200 +-- Nostrum.Struct.Event.InviteCreate.html | 200 +-- Nostrum.Struct.Event.InviteDelete.html | 200 +-- Nostrum.Struct.Event.MessageDelete.html | 200 +-- Nostrum.Struct.Event.MessageDeleteBulk.html | 200 +-- Nostrum.Struct.Event.MessageReactionAdd.html | 200 +-- ...um.Struct.Event.MessageReactionRemove.html | 200 +-- ...Struct.Event.MessageReactionRemoveAll.html | 200 +-- ...ruct.Event.MessageReactionRemoveEmoji.html | 200 +-- Nostrum.Struct.Event.PartialApplication.html | 200 +-- Nostrum.Struct.Event.PollVoteChange.html | 200 +-- Nostrum.Struct.Event.Ready.html | 200 +-- Nostrum.Struct.Event.SpeakingUpdate.html | 200 +-- Nostrum.Struct.Event.ThreadListSync.html | 200 +-- Nostrum.Struct.Event.ThreadMembersUpdate.html | 200 +-- Nostrum.Struct.Event.TypingStart.html | 200 +-- Nostrum.Struct.Event.VoiceReady.html | 200 +-- Nostrum.Struct.Event.VoiceServerUpdate.html | 200 +-- Nostrum.Struct.Event.VoiceState.html | 200 +-- Nostrum.Struct.Guild.AuditLog.html | 200 +-- Nostrum.Struct.Guild.AuditLogEntry.html | 200 +-- Nostrum.Struct.Guild.Ban.html | 200 +-- Nostrum.Struct.Guild.Integration.Account.html | 200 +-- ....Struct.Guild.Integration.Application.html | 200 +-- Nostrum.Struct.Guild.Integration.html | 206 +-- Nostrum.Struct.Guild.Member.html | 267 ++-- Nostrum.Struct.Guild.Role.html | 231 ++-- ...t.Guild.ScheduledEvent.EntityMetadata.html | 200 +-- Nostrum.Struct.Guild.ScheduledEvent.User.html | 203 +-- Nostrum.Struct.Guild.ScheduledEvent.html | 203 +-- Nostrum.Struct.Guild.UnavailableGuild.html | 203 +-- Nostrum.Struct.Guild.html | 239 ++-- Nostrum.Struct.Interaction.html | 200 +-- Nostrum.Struct.Invite.html | 200 +-- Nostrum.Struct.Message.Activity.html | 200 +-- Nostrum.Struct.Message.Application.html | 200 +-- Nostrum.Struct.Message.Attachment.html | 200 +-- Nostrum.Struct.Message.Component.html | 236 ++-- Nostrum.Struct.Message.Poll.Answer.html | 200 +-- Nostrum.Struct.Message.Poll.MediaObject.html | 200 +-- Nostrum.Struct.Message.Poll.Results.html | 200 +-- Nostrum.Struct.Message.Poll.html | 217 ++-- Nostrum.Struct.Message.Reaction.html | 200 +-- Nostrum.Struct.Message.Reference.html | 200 +-- Nostrum.Struct.Message.Sticker.html | 200 +-- Nostrum.Struct.Message.html | 203 +-- Nostrum.Struct.Overwrite.html | 200 +-- Nostrum.Struct.ThreadMember.html | 200 +-- Nostrum.Struct.User.Connection.html | 194 +-- Nostrum.Struct.User.Flags.html | 227 ++-- Nostrum.Struct.User.html | 283 ++-- Nostrum.Struct.VoiceRegion.html | 200 +-- Nostrum.Struct.VoiceWSState.html | 200 +-- Nostrum.Struct.WSState.html | 200 +-- Nostrum.Struct.Webhook.html | 200 +-- Nostrum.Token.html | 210 +-- Nostrum.Util.html | 206 +-- Nostrum.Voice.html | 387 +++--- Nostrum.epub | Bin 710072 -> 714530 bytes api-reference.html | 200 +-- api.html | 227 ++-- application_commands.html | 293 +++-- assets/logo.png | Bin 0 -> 12055 bytes dist/handlebars.templates-IHH6HKET.js | 224 ++++ dist/handlebars.templates-XWGFFSCD.js | 187 --- dist/html-GXQ6W6IF.js | 56 + dist/html-JDI3AVDD.js | 56 - dist/html-elixir-2C5PUTIB.css | 6 + dist/html-elixir-HHVY3JYD.css | 6 - ...weather-cyrillic-300-italic-M6KMXZSZ.woff2 | Bin 15244 -> 0 bytes ...weather-cyrillic-300-normal-7PAAHU3N.woff2 | Bin 15084 -> 0 bytes ...her-cyrillic-ext-300-italic-JP3ZEV2P.woff2 | Bin 20308 -> 0 bytes ...her-cyrillic-ext-300-normal-5LF5LCEK.woff2 | Bin 19320 -> 0 bytes ...rriweather-latin-300-italic-353COS6Q.woff2 | Bin 19720 -> 0 bytes ...rriweather-latin-300-normal-RWDJH4FN.woff2 | Bin 19752 -> 0 bytes ...eather-latin-ext-300-italic-MWCA36KE.woff2 | Bin 18676 -> 0 bytes ...eather-latin-ext-300-normal-K6L27CZ5.woff2 | Bin 18688 -> 0 bytes ...ather-vietnamese-300-italic-EHHNZPUO.woff2 | Bin 7996 -> 0 bytes ...ather-vietnamese-300-normal-U376L4Z4.woff2 | Bin 7796 -> 0 bytes dist/search_data-40BAA532.js | 1 + dist/search_items-D5B4DA13.js | 1 - dist/sidebar_items-7079D557.js | 1 + dist/sidebar_items-FF0CC478.js | 1 - event_handling.html | 195 +-- gateway_intents.html | 197 +-- hot_code_upgrade.html | 213 +-- index.html | 2 +- intro.html | 251 ++-- multi_node.html | 293 +++-- pluggable_caching.html | 235 ++-- search.html | 178 +-- state.html | 223 ++-- voice.html | 253 ++-- 182 files changed, 19592 insertions(+), 15420 deletions(-) create mode 100644 assets/logo.png create mode 100644 dist/handlebars.templates-IHH6HKET.js delete mode 100644 dist/handlebars.templates-XWGFFSCD.js create mode 100644 dist/html-GXQ6W6IF.js delete mode 100644 dist/html-JDI3AVDD.js create mode 100644 dist/html-elixir-2C5PUTIB.css delete mode 100644 dist/html-elixir-HHVY3JYD.css delete mode 100644 dist/merriweather-cyrillic-300-italic-M6KMXZSZ.woff2 delete mode 100644 dist/merriweather-cyrillic-300-normal-7PAAHU3N.woff2 delete mode 100644 dist/merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2 delete mode 100644 dist/merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2 delete mode 100644 dist/merriweather-latin-300-italic-353COS6Q.woff2 delete mode 100644 dist/merriweather-latin-300-normal-RWDJH4FN.woff2 delete mode 100644 dist/merriweather-latin-ext-300-italic-MWCA36KE.woff2 delete mode 100644 dist/merriweather-latin-ext-300-normal-K6L27CZ5.woff2 delete mode 100644 dist/merriweather-vietnamese-300-italic-EHHNZPUO.woff2 delete mode 100644 dist/merriweather-vietnamese-300-normal-U376L4Z4.woff2 create mode 100644 dist/search_data-40BAA532.js delete mode 100644 dist/search_items-D5B4DA13.js create mode 100644 dist/sidebar_items-7079D557.js delete mode 100644 dist/sidebar_items-FF0CC478.js diff --git a/.build b/.build index 588e39c45..566e3af20 100644 --- a/.build +++ b/.build @@ -151,14 +151,15 @@ assets/buttons.png assets/channel_types.png assets/danger_button.png assets/emoji_button.png +assets/logo.png assets/primary_button.png assets/secondary_button.png assets/select_menu.png assets/success_button.png dist/handlebars.runtime-NWIB6V2M.js -dist/handlebars.templates-XWGFFSCD.js -dist/html-JDI3AVDD.js -dist/html-elixir-HHVY3JYD.css +dist/handlebars.templates-IHH6HKET.js +dist/html-GXQ6W6IF.js +dist/html-elixir-2C5PUTIB.css dist/inconsolata-latin-400-normal-RGKDDNDD.woff2 dist/inconsolata-latin-700-normal-DTS2D7TO.woff2 dist/inconsolata-latin-ext-400-normal-K7HVGTP7.woff2 @@ -171,19 +172,9 @@ dist/lato-latin-700-normal-2XVSBPG4.woff2 dist/lato-latin-ext-300-normal-VPGGJKJL.woff2 dist/lato-latin-ext-400-normal-N27NCBWW.woff2 dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2 -dist/merriweather-cyrillic-300-italic-M6KMXZSZ.woff2 -dist/merriweather-cyrillic-300-normal-7PAAHU3N.woff2 -dist/merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2 -dist/merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2 -dist/merriweather-latin-300-italic-353COS6Q.woff2 -dist/merriweather-latin-300-normal-RWDJH4FN.woff2 -dist/merriweather-latin-ext-300-italic-MWCA36KE.woff2 -dist/merriweather-latin-ext-300-normal-K6L27CZ5.woff2 -dist/merriweather-vietnamese-300-italic-EHHNZPUO.woff2 -dist/merriweather-vietnamese-300-normal-U376L4Z4.woff2 dist/remixicon-NKANDIL5.woff2 -dist/search_items-D5B4DA13.js -dist/sidebar_items-FF0CC478.js +dist/search_data-40BAA532.js +dist/sidebar_items-7079D557.js event_handling.html gateway_intents.html hot_code_upgrade.html diff --git a/404.html b/404.html index 8036475a0..4433359a5 100644 --- a/404.html +++ b/404.html @@ -4,20 +4,21 @@ - + - 404 — Nostrum v0.9.0-alpha3 - + - - - + 404 — Nostrum v0.9.0-alpha3 + - - + + + + + @@ -36,67 +37,96 @@ } catch (error) { } -
+
- - + + + -
+
-
-
-

- +
+ +

Page not found

@@ -106,39 +136,39 @@

or using our API Reference page to find what you were looking for.

-

+

+ +

-
+
diff --git a/Mix.Tasks.Gh.Docs.html b/Mix.Tasks.Gh.Docs.html index 3ce3af82d..d53d1caea 100644 --- a/Mix.Tasks.Gh.Docs.html +++ b/Mix.Tasks.Gh.Docs.html @@ -4,20 +4,19 @@ - + + mix gh.docs — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
+
- - + -
+ + +
-
-
-

- +
+ +
+

- - - View Source - + + + View Source + - mix gh.docs - (Nostrum v0.9.0-alpha3) + mix gh.docs + (Nostrum v0.9.0-alpha3) -

+

-
+

Task that pushes docs to gh-pages branch on Discord.

-
+
+

- Link to this section - Summary + Summary

@@ -146,9 +175,8 @@

- Link to this section -Functions + Functions

@@ -177,41 +205,39 @@

run(_)

-
+
- +
diff --git a/Nostrum.Api.Ratelimiter.html b/Nostrum.Api.Ratelimiter.html index 863541ecc..12cc776c1 100644 --- a/Nostrum.Api.Ratelimiter.html +++ b/Nostrum.Api.Ratelimiter.html @@ -4,20 +4,19 @@ - + + Nostrum.Api.Ratelimiter — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,115 +35,145 @@ } catch (error) { } -
+
- - + -
+ + +
-
-
-

- +
+ +
+

- - - View Source - + + + View Source + - Nostrum.Api.Ratelimiter - (Nostrum v0.9.0-alpha3) + Nostrum.Api.Ratelimiter + (Nostrum v0.9.0-alpha3) -

+

-
+

Handles REST calls to the Discord API while respecting ratelimits.

- -

purpose

+
+ - Purpose + Purpose

Discord's API returns information about ratelimits that we must respect. This module performs serialization of these requests through a single process, thus preventing concurrency issues from arising if two processes make a remote API call at the same time.

- -

internal-module

+
+ - Internal module + Internal module

This module is intended for exclusive usage inside of nostrum, and is documented for completeness and people curious to look behind the covers.

- -

asynchronous-requests

+
+ - Asynchronous requests + Asynchronous requests

The ratelimiter is fully asynchronous internally. In theory, it also supports queueing requests in an asynchronous manner. However, support for this is currently not implemented in Nostrum.Api.

If you want to make one or multiple asynchronous requests manually, you can -use the following pattern:

req = :gen_statem.send_request(Nostrum.Api.Ratelimiter, {:queue, request})
+use the following pattern:

req = :gen_statem.send_request(Nostrum.Api.Ratelimiter, {:queue, request})
 # ...
-response = :gen_statem.receive_response(req, timeout)

where request is a map describing the request to run - see Nostrum.Api +response = :gen_statem.receive_response(req, timeout)

where request is a map describing the request to run - see Nostrum.Api for more information. You can also send multiple requests at the same time and wait for their response: see :gen_statem.reqids_add/3 and :gen_statem.wait_response/3 for more information.

- -

multi-node

+
+ - Multi-node + Multi-node

If a single global process is desired to handle all ratelimiting, the ratelimiter can theoretically be adjusted to start registered via :global. @@ -155,26 +184,26 @@

requests. With a single process, the ratelimiter can track this without hitting 429s at all, with multiple ratelimiters, the built-in requeue functionality may or may not help.

- -

inner-workings

+
+ - Inner workings + Inner workings

When a client process wants to perform some request on the Discord API, it sends a request to the :gen_statem behind this module to ask it to :queue the incoming request.

- -

connection-setup

+
+ - Connection setup + Connection setup

If the state machine is not connected to the HTTP endpoint, it will transition to the :connecting state and try to open the connection. If this succeeds, it transitions to the :connected state.

- -

queueing-requests

+
+ - Queueing requests + Queueing requests

The state machine associates a :queue.queue/1 of queued_request/0 to each individual bucket, together with an internal count of remaining calls. @@ -213,10 +242,10 @@

(:connected) once the global timeout is gone. Requests that failed because of the global ratelimit are requeued after returning back into the regular state: a warning is logged to inform you of this.

- -

failure-modes

+
+ - Failure modes + Failure modes

HTTP connection death

If the HTTP connection dies, the ratelimiter will inform each affected client by replying with {:error, {:connection_died, reason}}, where reason is @@ -229,10 +258,10 @@

HTTP connection death

If the HTTP connection dies, the ratelimiter wi not automatically kick the queue to start further running requests.

Other internal issues

Any other internal problems that are not handled appropriately in the ratelimiter will crash it, effectively resulting in the complete loss of any queued requests.

- -

implementation-benefits-drawbacks

+
+ - Implementation benefits & drawbacks + Implementation benefits & drawbacks

A history of ratelimiting

First, it is important to give a short history of nostrum's ratelimiting: pre 0.8, nostrum used to use a GenServer that would call out to ETS tables to @@ -254,16 +283,16 @@

A history of ratelimiting

First, it is important to give a short hist regular automatic pruning because the store had no idea when a bucket was no longer relevant on its own.

  • Requests would not be pipelined to run as soon as ideally possible.

  • The ratelimiter did not inform clients if their request died in-flight.

  • If the client disconnected before we returned the response, we had to handle this explicitly via handle_info.

  • The new state machine-based ratelimiter solves these problems.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -435,9 +464,8 @@

    - Link to this section -Types + Types

    @@ -614,10 +642,10 @@

    state()

    The state of the ratelimiter.

    While this has no public use, it is still documented here to provide help when tracing the ratelimiter via :sys.trace/2 or other means.

    - -

    fields

    +
    + - Fields + Fields

    • :outstanding: Outstanding (unqueued) requests per bucket alongside with the remaining calls that may be made on said bucket.

    • :running: Requests that have been sent off. Used to associate back the @@ -636,9 +664,8 @@

      state()

      - Link to this section -Functions + Functions

      @@ -900,41 +927,39 @@

      start_link(opts)

    -
    +
    -
    +
    diff --git a/Nostrum.Api.html b/Nostrum.Api.html index 7033be1c3..aca7d46e7 100644 --- a/Nostrum.Api.html +++ b/Nostrum.Api.html @@ -4,20 +4,19 @@ - + + Nostrum.Api — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,112 +35,142 @@ } catch (error) { } -
    +
    - - + -
    - -
    -
    + -

    - + - - - View Source - + + +
    + - Nostrum.Api - (Nostrum v0.9.0-alpha3) +
    + + +
    +

    + + + + View Source + -

    + Nostrum.Api + (Nostrum v0.9.0-alpha3) +

    -
    + +

    Interface for Discord's rest API.

    By default all methods in this module are ran synchronously. If you wish to have async rest operations I recommend you execute these functions inside of a task.

    Examples

    # Async Task
    -t = Task.async fn ->
    -  Nostrum.Api.get_channel_messages(12345678912345, :infinity, {})
    -end
    +t = Task.async fn ->
    +  Nostrum.Api.get_channel_messages(12345678912345, :infinity, {})
    +end
     messages = Task.await t
     
     # A lot of times we don't care about the return value of the function
    -Task.start fn ->
    -  messages = ["in", "the", "end", "it", "doesn't", "even", "matter"]
    -  Enum.each messages, &Nostrum.Api.create_message!(12345678912345, &1)
    -end

    A note about Strings and Ints

    Currently, responses from the REST api will have id fields as string. +Task.start fn -> + messages = ["in", "the", "end", "it", "doesn't", "even", "matter"] + Enum.each messages, &Nostrum.Api.create_message!(12345678912345, &1) +end

    A note about Strings and Ints

    Currently, responses from the REST api will have id fields as string. Everything received from the WS connection will have id fields as int.

    If you're processing a response from the API and trying to access something in the cache based off of an id in the response, you will need to convert it to an int using -String.to_integer/1. I'm open to suggestions for how this should be handled going forward.

    Example

    messages = Nostrum.Api.get_pinned_messages!(12345678912345)
    +String.to_integer/1. I'm open to suggestions for how this should be handled going forward.

    Example

    messages = Nostrum.Api.get_pinned_messages!(12345678912345)
     
     authors =
    -  Enum.map messages, fn msg ->
    -    author_id = String.to_integer(msg.author.id)
    -    Nostrum.Cache.User.get!(id: author_id)
    -  end
    -
    + Enum.map messages, fn msg -> + author_id = String.to_integer(msg.author.id) + Nostrum.Cache.User.get!(id: author_id) + end +
    +

    - Link to this section - Summary + Summary

    @@ -2414,9 +2443,8 @@

    - Link to this section -Types + Types

    @@ -2486,10 +2514,10 @@

    allowed_mentions()

    Represents mentions to allow in a message.

    With this option you can control when content from a message should trigger a ping. Consider using this option when you are going to display user generated content.

    - -

    allowed-values

    +
    + - Allowed values + Allowed values

    • :all (default) - Ping everything as usual
    • :none - Nobody will be pinged
    • :everyone - Allows to ping @here and @everyone
    • :users - Allows to ping users
    • :roles - Allows to ping roles
    • {:users, list} - Allows to ping list of users. Can contain up to 100 ids of users.
    • {:roles, list} - Allows to ping list of roles. Can contain up to 100 ids of roles.
    • list - a list containing the values above.
    @@ -2768,9 +2796,8 @@

    thread_without_message_params()

    - Link to this section -Functions + Functions

    @@ -2804,24 +2831,24 @@

    add_guild_member(guild_id, user_id, options situationally requires the MANAGE_NICKNAMES, MANAGE_ROLES, MUTE_MEMBERS, and DEAFEN_MEMBERS permissions.

    If successful, returns {:ok, member} or {:ok} if the user was already a member of the guild. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    • :access_token (string) - the user's oauth2 access token
    • :nick (string) - value to set users nickname to
    • :roles (list of Nostrum.Struct.Guild.Role.id/0) - array of role ids the member is assigned
    • :mute (boolean) - if the user is muted
    • :deaf (boolean) - if the user is deafened

    :access_token is always required.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.add_guild_member(
    +
    Nostrum.Api.add_guild_member(
       41771983423143937,
       18374719829378473,
       access_token: "6qrZcUqja7812RVdnEKjpzOL4CvHBFG",
       nick: "nostrum",
    -  roles: [431849301, 913809431]
    -)
    +
    roles: [431849301, 913809431] +)
    @@ -2927,12 +2954,12 @@

    add_pinned_channel_message(channel_id, mess 'MANAGE_MESSAGES' permissions. It fires the Nostrum.Consumer.message_update/0 and Nostrum.Consumer.channel_pins_update/0 events.

    If successful, returns {:ok}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.add_pinned_channel_message(43189401384091, 18743893102394)
    +
    Nostrum.Api.add_pinned_channel_message(43189401384091, 18743893102394)
    @@ -3032,17 +3059,17 @@

    batch_edit_application_command_permissions(

    Edits command permissions for a specific command for your application in a guild. You can only add up to 10 permission overwrites for a command.

    - -

    parameters

    +
    + - Parameters + Parameters

    • application_id: Application ID commands are registered under. If not given, this will be fetched from Me.
    • guild_id: Guild ID to fetch command permissions from.
    • command_id: Command ID to fetch permissions for.
    • permissions: List of partial guild application command permissions with id and permissions. You can add up to 10 overwrites per command.

    - -

    return-value

    +
    + - Return value + Return value

    This method returns a guild application command permission object, see all available values on the Discord API docs.

    @@ -3081,13 +3108,13 @@

    begin_guild_prune(guild_id, days, reason \\

    Begins a guild prune to prune members within days.

    An optional reason can be provided for the guild audit log.

    This endpoint requires the KICK_MEMBERS permission. It fires multiple Nostrum.Consumer.guild_member_remove/0 events.

    If successful, returns {:ok, %{pruned: pruned}}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.begin_guild_prune(81384788765712384, 1)
    -{:ok, %{pruned: 0}}
    +
    Nostrum.Api.begin_guild_prune(81384788765712384, 1)
    +{:ok, %{pruned: 0}}
    @@ -3226,17 +3253,17 @@

    bulk_overwrite_global_application_commands(

    Overwrite the existing global application commands.

    This action will:

    • Create any command that was provided and did not already exist
    • Update any command that was provided and already existed if its configuration changed
    • Delete any command that was not provided but existed on Discord's end

    Updates will be available in all guilds after 1 hour. Commands that do not already exist will count toward daily application command create limits.

    - -

    parameters

    +
    + - Parameters + Parameters

    • application_id: Application ID for which to overwrite the commands. If not given, this will be fetched from Me.
    • commands: List of command configurations, see the linked API documentation for reference.

    - -

    return-value

    +
    + - Return value + Return value

    Updated list of global application commands. See the official reference: https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands

    @@ -3278,17 +3305,17 @@

    bulk_overwrite_guild_application_commands(a

    Overwrite the existing guild application commands on the specified guild.

    This action will:

    • Create any command that was provided and did not already exist
    • Update any command that was provided and already existed if its configuration changed
    • Delete any command that was not provided but existed on Discord's end

    - -

    parameters

    +
    + - Parameters + Parameters

    • application_id: Application ID for which to overwrite the commands. If not given, this will be fetched from Me.
    • guild_id: Guild on which to overwrite the commands.
    • commands: List of command configurations, see the linked API documentation for reference.

    - -

    return-value

    +
    + - Return value + Return value

    Updated list of guild application commands. See the official reference: https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-guild-application-commands

    @@ -3328,26 +3355,26 @@

    create_channel_invite(channel_id, options \

    Creates an invite for a guild channel.

    An optional reason can be provided for the audit log.

    This endpoint requires the CREATE_INSTANT_INVITE permission.

    If successful, returns {:ok, invite}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.create_channel_invite(41771983423143933)
    -{:ok, Nostrum.Struct.Invite{}}
    +
    Nostrum.Api.create_channel_invite(41771983423143933)
    +{:ok, Nostrum.Struct.Invite{}}
     
    -Nostrum.Api.create_channel_invite(41771983423143933, max_uses: 20)
    -{:ok, %Nostrum.Struct.Invite{}}
    +
    Nostrum.Api.create_channel_invite(41771983423143933, max_uses: 20) +{:ok, %Nostrum.Struct.Invite{}}
    @@ -3413,13 +3440,13 @@

    create_dm(user_id)

    Create a new DM channel with a user.

    If successful, returns {:ok, dm_channel}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.create_dm(150061853001777154)
    -{:ok, %Nostrum.Struct.Channel{type: 1}}
    +
    Nostrum.Api.create_dm(150061853001777154)
    +{:ok, %Nostrum.Struct.Channel{type: 1}}
    @@ -3557,28 +3584,28 @@

    create_global_application_command(applicati If you want to test commands, use create_guild_application_command/2 instead, as commands will become available instantly there. If an existing command with the same name exists, it will be overwritten.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    return-value

    +
    + - Return value + Return value

    The created command. See the official reference: https://discord.com/developers/docs/interactions/application-commands#create-global-application-command

    - -

    example

    +
    + - Example + Example

    -
    Nostrum.Api.create_application_command(
    -  %{name: "edit", description: "ed, man! man, ed", options: []}
    -)
    +
    Nostrum.Api.create_application_command(
    +  %{name: "edit", description: "ed, man! man, ed", options: []}
    +)
    @@ -3611,13 +3638,13 @@

    create_group_dm(access_tokens, nicks)

    Creates a new group DM channel.

    If successful, returns {:ok, group_dm_channel}. Otherwise, returns a Nostrum.Api.error/0.

    access_tokens are user oauth2 tokens. nicks is a map that maps a user id to a nickname.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.create_group_dm(["6qrZcUqja7812RVdnEKjpzOL4CvHBFG"], %{41771983423143937 => "My Nickname"})
    -{:ok, %Nostrum.Struct.Channel{type: 3}}
    +
    Nostrum.Api.create_group_dm(["6qrZcUqja7812RVdnEKjpzOL4CvHBFG"], %{41771983423143937 => "My Nickname"})
    +{:ok, %Nostrum.Struct.Channel{type: 3}}
    @@ -3683,17 +3710,17 @@

    create_guild_application_command(applicatio

    Create a guild application command on the specified guild.

    The new command will be available immediately.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    return-value

    +
    + - Return value + Return value

    The created command. See the official reference: https://discord.com/developers/docs/interactions/application-commands#create-guild-application-command

    @@ -3728,10 +3755,10 @@

    create_guild_auto_moderation_rule(guild_id,

    Create a new auto-moderation rule for a guild.

    - -

    options

    +
    + - Options + Options

    @@ -3801,20 +3828,20 @@

    create_guild_channel(guild_id, options)

    Creates a channel for a guild.

    This endpoint requires the MANAGE_CHANNELS permission. It fires a Nostrum.Consumer.channel_create/0 event.

    If successful, returns {:ok, channel}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    :name is always required.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.create_guild_channel(81384788765712384, name: "elixir-nostrum", topic: "craig's domain")
    -{:ok, %Nostrum.Struct.Channel{guild_id: 81384788765712384}}
    +
    Nostrum.Api.create_guild_channel(81384788765712384, name: "elixir-nostrum", topic: "craig's domain")
    +{:ok, %Nostrum.Struct.Channel{guild_id: 81384788765712384}}
    @@ -3879,21 +3906,21 @@

    create_guild_emoji(guild_id, options, reaso

    Creates a new emoji for the given guild.

    This endpoint requires the MANAGE_EMOJIS permission. It fires a Nostrum.Consumer.guild_emojis_update/0 event.

    An optional reason can be provided for the audit log.

    If successful, returns {:ok, emoji}. Otherwise, returns Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    :name and :image are always required.

    - -

    examples

    +
    + - Examples + Examples

    image = "data:image/png;base64,YXl5IGJieSB1IGx1a2luIDQgc3VtIGZ1az8="
     
    -Nostrum.Api.create_guild_emoji(43189401384091, name: "nostrum", image: image, roles: [])
    +Nostrum.Api.create_guild_emoji(43189401384091, name: "nostrum", image: image, roles: [])
    @@ -3992,18 +4019,18 @@

    create_guild_role(guild_id, options, reason

    Creates a guild role.

    An optional reason for the audit log can be provided via reason.

    This endpoint requires the MANAGE_ROLES permission. It fires a Nostrum.Consumer.guild_role_create/0 event.

    If successful, returns {:ok, role}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.create_guild_role(41771983423143937, name: "nostrum-club", hoist: true)
    +
    Nostrum.Api.create_guild_role(41771983423143937, name: "nostrum-club", hoist: true)
    @@ -4074,10 +4101,10 @@

    create_guild_scheduled_event(guild_id, reas

    Creates a new scheduled event for the guild.

    - -

    options

    +
    + - Options + Options

    See the (official documentation)[https://discord.com/developers/docs/resources/guild-scheduled-event] for more information.

    An optional reason can be specified for the audit log.

    @@ -4142,32 +4169,32 @@

    create_interaction_response(id, token, opti

    Create a response to an interaction received from the gateway.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    attachments

    +
    + - Attachments + Attachments

    To include attachments in the response, you can include a :files field in the response. This field expects a list of attachments which can be in either of the following formats:

    - -

    example

    +
    + - Example + Example

    -
    response = %{
    +
    response = %{
       type: 4,
    -  data: %{
    +  data: %{
         content: "I copy and pasted this code."
    -  }
    -}
    -Nostrum.Api.create_interaction_response(interaction, response)

    As an alternative to passing the interaction ID and token, the + } +} +Nostrum.Api.create_interaction_response(interaction, response)

    As an alternative to passing the interaction ID and token, the original Nostrum.Struct.Interaction.t/0 can also be passed directly. See create_interaction_response/2.

    @@ -4257,54 +4284,54 @@

    create_message(channel_id, options)

    Posts a message to a guild text or DM channel.

    This endpoint requires the VIEW_CHANNEL and SEND_MESSAGES permissions. It may situationally need the SEND_MESSAGES_TTS permission. It fires the Nostrum.Consumer.message_create/0 event.

    If options is a string, options will be used as the message's content.

    If successful, returns {:ok, message}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    At least one of the following is required: :content, :file, :embeds, :poll.

    - -

    message-reference

    +
    + - Message reference + Message reference

    You can create a reply to another message on guilds using this option, given that you have the VIEW_MESSAGE_HISTORY permission. To do so, include the message_reference field in your call. The complete structure documentation can be found on the Discord Developer Portal, -but simply passing message_id will suffice:

    def my_command(msg) do
    +but simply passing message_id will suffice:

    def my_command(msg) do
       # Reply to the author - ``msg`` is a ``Nostrum.Struct.Message``
    -  Nostrum.Api.create_message(
    +  Nostrum.Api.create_message(
         msg.channel_id,
         content: "Hello",
    -    message_reference: %{message_id: msg.id}
    -  )
    -end

    Passing a list will merge the settings provided

    - -

    examples

    + message_reference: %{message_id: msg.id} + ) +end

    Passing a list will merge the settings provided

    + + - Examples + Examples

    -
    Nostrum.Api.create_message(43189401384091, content: "hello world!")
    +
    Nostrum.Api.create_message(43189401384091, content: "hello world!")
     
    -Nostrum.Api.create_message(43189401384091, "hello world!")
    +Nostrum.Api.create_message(43189401384091, "hello world!")
     
     import Nostrum.Struct.Embed
     embed =
    -  %Nostrum.Struct.Embed{}
    -  |> put_title("embed")
    -  |> put_description("new desc")
    -Nostrum.Api.create_message(43189401384091, embeds: [embed])
    +  %Nostrum.Struct.Embed{}
    +  |> put_title("embed")
    +  |> put_description("new desc")
    +Nostrum.Api.create_message(43189401384091, embeds: [embed])
     
    -Nostrum.Api.create_message(43189401384091, file: "/path/to/file.txt")
    +Nostrum.Api.create_message(43189401384091, file: "/path/to/file.txt")
     
    -Nostrum.Api.create_message(43189401384091, content: "hello world!", embeds: [embed], file: "/path/to/file.txt")
    +Nostrum.Api.create_message(43189401384091, content: "hello world!", embeds: [embed], file: "/path/to/file.txt")
     
    -Nostrum.Api.create_message(43189401384091, content: "Hello @everyone", allowed_mentions: :none)
    +
    Nostrum.Api.create_message(43189401384091, content: "Hello @everyone", allowed_mentions: :none)
    @@ -4373,17 +4400,17 @@

    create_reaction(channel_id, message_id, emo permissions. Additionally, if nobody else has reacted to the message with the emoji, this endpoint requires the ADD_REACTIONS permission. It fires a Nostrum.Consumer.message_reaction_add/0 event.

    If successful, returns {:ok}. Otherwise, returns Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    # Using a Nostrum.Struct.Emoji.
    -emoji = %Nostrum.Struct.Emoji{id: 43819043108, name: "foxbot"}
    -Nostrum.Api.create_reaction(123123123123, 321321321321, emoji)
    +emoji = %Nostrum.Struct.Emoji{id: 43819043108, name: "foxbot"}
    +Nostrum.Api.create_reaction(123123123123, 321321321321, emoji)
     
     # Using a base 16 emoji string.
    -Nostrum.Api.create_reaction(123123123123, 321321321321, "\xF0\x9F\x98\x81")
    +Nostrum.Api.create_reaction(123123123123, 321321321321, "\xF0\x9F\x98\x81")
     

    For other emoji string examples, see Nostrum.Struct.Emoji.api_name/0.

    @@ -4452,10 +4479,10 @@

    create_webhook(channel_id, args, reason \\

    Creates a webhook.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -4555,13 +4582,13 @@

    delete_channel(channel_id, reason \\ nil)Nostrum.Consumer.channel_delete/0. If a Nostrum.Struct.Channel.guild_category_channel/0 is deleted, then a Nostrum.Consumer.channel_update/0 event will fire for each channel under the category.

    If successful, returns {:ok, channel}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.delete_channel(421533712753360896)
    -{:ok, %Nostrum.Struct.Channel{id: 421533712753360896}}
    +
    Nostrum.Api.delete_channel(421533712753360896)
    +{:ok, %Nostrum.Struct.Channel{id: 421533712753360896}}
    @@ -4666,10 +4693,10 @@

    delete_global_application_command(applicati

    Delete an existing global application command.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -4702,13 +4729,13 @@

    delete_guild(guild_id)

    Deletes a guild.

    This endpoint requires that the current user is the owner of the guild. It fires the Nostrum.Consumer.guild_delete/0 event.

    If successful, returns {:ok}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.delete_guild(81384788765712384)
    -{:ok}
    +
    Nostrum.Api.delete_guild(81384788765712384)
    +{:ok}
    @@ -4771,10 +4798,10 @@

    delete_guild_application_command(applicatio

    Delete an existing guild application command.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -4943,12 +4970,12 @@

    delete_guild_role(guild_id, role_id, reason

    Deletes a role from a guild.

    An optional reason can be specified for the audit log.

    This endpoint requires the MANAGE_ROLES permission. It fires a Nostrum.Consumer.guild_role_delete/0 event.

    If successful, returns {:ok}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.delete_guild_role(41771983423143937, 392817238471936)
    +
    Nostrum.Api.delete_guild_role(41771983423143937, 392817238471936)
    @@ -5051,10 +5078,10 @@

    delete_interaction_followup_message(applica

    Delete a followup message for an interaction.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -5254,12 +5281,12 @@

    delete_invite(invite_code)

    Deletes an invite by its invite_code.

    This endpoint requires the MANAGE_CHANNELS permission.

    If successful, returns {:ok, invite}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.delete_invite("zsjUsC")
    +
    Nostrum.Api.delete_invite("zsjUsC")
    @@ -5348,12 +5375,12 @@

    delete_message(channel_id, message_id)

    Deletes a message.

    This endpoint requires the 'VIEW_CHANNEL' and 'MANAGE_MESSAGES' permission. It fires the MESSAGE_DELETE event.

    If successful, returns {:ok}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.delete_message(43189401384091, 43189401384091)
    +
    Nostrum.Api.delete_message(43189401384091, 43189401384091)
    @@ -5712,10 +5739,10 @@

    delete_webhook(webhook_id, reason \\ nil)

    Deletes a webhook.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -5755,17 +5782,17 @@

    edit_application_command_permissions(applic

    Edits command permissions for a specific command for your application in a guild. You can only add up to 10 permission overwrites for a command.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    return-value

    +
    + - Return value + Return value

    This method returns a guild application command permission object, see all available values on the Discord API docs.

    @@ -5882,17 +5909,17 @@

    edit_global_application_command(application

    Update an existing global application command.

    The updated command will be available on all guilds in around an hour.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    return-value

    +
    + - Return value + Return value

    The updated command. See the official reference: https://discord.com/developers/docs/interactions/application-commands#edit-global-application-command

    @@ -5931,17 +5958,17 @@

    edit_guild_application_command(application_

    Update an existing guild application command.

    The updated command will be available immediately.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    return-value

    +
    + - Return value + Return value

    The updated command. See the official reference: https://discord.com/developers/docs/interactions/application-commands#edit-guild-application-command

    @@ -6142,33 +6169,33 @@

    edit_message(channel_id, message_id, option

    Edits a previously sent message in a channel.

    This endpoint requires the VIEW_CHANNEL permission. It fires the Nostrum.Consumer.message_update/0 event.

    If options is a string, options will be used as the message's content.

    If successful, returns {:ok, message}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    Note that if you edit a message with attachments, all attachments that should be present after edit must be included in your request body. This includes attachments that were sent in the original request.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.edit_message(43189401384091, 1894013840914098, content: "hello world!")
    +
    Nostrum.Api.edit_message(43189401384091, 1894013840914098, content: "hello world!")
     
    -Nostrum.Api.edit_message(43189401384091, 1894013840914098, "hello world!")
    +Nostrum.Api.edit_message(43189401384091, 1894013840914098, "hello world!")
     
     import Nostrum.Struct.Embed
     embed =
    -  %Nostrum.Struct.Embed{}
    -  |> put_title("embed")
    -  |> put_description("new desc")
    -Nostrum.Api.edit_message(43189401384091, 1894013840914098, embeds: [embed])
    +  %Nostrum.Struct.Embed{}
    +  |> put_title("embed")
    +  |> put_description("new desc")
    +Nostrum.Api.edit_message(43189401384091, 1894013840914098, embeds: [embed])
     
    -Nostrum.Api.edit_message(43189401384091, 1894013840914098, content: "hello world!", embeds: [embed])
    +
    Nostrum.Api.edit_message(43189401384091, 1894013840914098, content: "hello world!", embeds: [embed])
    @@ -6303,10 +6330,10 @@

    execute_git_webhook(webhook_id, webhook_tok

    Executes a git webhook.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -6344,10 +6371,10 @@

    execute_slack_webhook(webhook_id, webhook_t

    Executes a slack webhook.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -6385,10 +6412,10 @@

    execute_webhook(webhook_id, webhook_token,

    Executes a webhook.

    - -

    parameters

    +
    + - Parameters + Parameters

    Note: If wait is true, this method will return a Message.t() on success.

    At least one of content, files or embeds should be supplied in the args parameter.

    @@ -6485,17 +6512,17 @@

    get_application_command_permissions(applica

    Fetches command permissions for a specific command for your application in a guild.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    return-value

    +
    + - Return value + Return value

    This method returns a single guild application command permission object, see all available values on the Discord API docs.

    @@ -6526,27 +6553,27 @@

    get_application_information()

    Gets the bot's OAuth2 application info.

    - -

    example

    +
    + - Example + Example

    Nostrum.Api.get_application_information
    -{:ok,
    -%{
    +{:ok,
    +%{
       bot_public: false,
       bot_require_code_grant: false,
       description: "Test",
       icon: nil,
       id: "172150183260323840",
       name: "Baba O-Riley",
    -  owner: %{
    +  owner: %{
         avatar: nil,
         discriminator: "0042",
         id: "172150183260323840",
         username: "i own a bot"
    -  },
    -}}
    + }, +}}
    @@ -6576,13 +6603,13 @@

    get_channel(channel_id)

    Gets a channel.

    If successful, returns {:ok, channel}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_channel(381889573426429952)
    -{:ok, %Nostrum.Struct.Channel{id: 381889573426429952}}
    +
    Nostrum.Api.get_channel(381889573426429952)
    +{:ok, %Nostrum.Struct.Channel{id: 381889573426429952}}
    @@ -6642,13 +6669,13 @@

    get_channel_invites(channel_id)

    Gets a list of invites for a channel.

    This endpoint requires the 'VIEW_CHANNEL' and 'MANAGE_CHANNELS' permissions.

    If successful, returns {:ok, invite}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_channel_invites(43189401384091)
    -{:ok, [%Nostrum.Struct.Invite{} | _]}
    +
    Nostrum.Api.get_channel_invites(43189401384091)
    +{:ok, [%Nostrum.Struct.Invite{} | _]}
    @@ -6707,12 +6734,12 @@

    get_channel_message(channel_id, message_id)

    Retrieves a message from a channel.

    This endpoint requires the 'VIEW_CHANNEL' and 'READ_MESSAGE_HISTORY' permissions.

    If successful, returns {:ok, message}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_channel_message(43189401384091, 198238475613443)
    +
    Nostrum.Api.get_channel_message(43189401384091, 198238475613443)
    @@ -6775,12 +6802,12 @@

    get_channel_messages(channel_id, limit, loc

    Retrieves a channel's messages around a locator up to a limit.

    This endpoint requires the 'VIEW_CHANNEL' permission. If the current user is missing the 'READ_MESSAGE_HISTORY' permission, then this function will return no messages.

    If successful, returns {:ok, messages}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_channel_messages(43189401384091, 5, {:before, 130230401384})
    +
    Nostrum.Api.get_channel_messages(43189401384091, 5, {:before, 130230401384})
    @@ -6841,10 +6868,10 @@

    get_channel_webhooks(channel_id)

    Gets a list of webhooks for a channel.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -6937,21 +6964,21 @@

    get_current_user_guilds(options \\ [])

    Gets a list of guilds the user is currently in.

    This endpoint requires the guilds OAuth2 scope.

    If successful, returns {:ok, guilds}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Api.get_current_user_guilds(limit: 1)
    -{:ok, [%Nostrum.Struct.Guild{}]}
    +
    iex> Nostrum.Api.get_current_user_guilds(limit: 1)
    +{:ok, [%Nostrum.Struct.Guild{}]}
    @@ -7014,35 +7041,35 @@

    get_global_application_commands(application

    Fetch all global commands.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    return-value

    +
    + - Return value + Return value

    A list of ApplicationCommands on success. See the official reference: https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure

    - -

    example

    +
    + - Example + Example

    iex> Nostrum.Api.get_global_application_commands
    -{:ok,
    - [
    -   %{
    +{:ok,
    + [
    +   %{
          application_id: "455589479713865749",
          description: "ed, man! man, ed",
          id: "789841753196331029",
          name: "edit"
    -   }
    - ]}
    + } + ]}
    @@ -7072,13 +7099,13 @@

    get_guild(guild_id)

    Gets a guild.

    If successful, returns {:ok, guild}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_guild(81384788765712384)
    -{:ok, %Nostrum.Struct.Guild{id: 81384788765712384}}
    +
    Nostrum.Api.get_guild(81384788765712384)
    +{:ok, %Nostrum.Struct.Guild{id: 81384788765712384}}
    @@ -7144,17 +7171,17 @@

    get_guild_application_command_permissions(a

    Fetches command permissions for all commands for your application in a guild.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    return-value

    +
    + - Return value + Return value

    This method returns a list of guild application command permission objects, see all available values on the Discord API docs.

    @@ -7191,18 +7218,18 @@

    get_guild_application_commands(application_

    Fetch all guild application commands for the given guild.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    return-value

    +
    + - Return value + Return value

    A list of ApplicationCommands on success. See the official reference: https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure

    @@ -7237,10 +7264,10 @@

    get_guild_audit_log(guild_id, options \\ []

    Get the Nostrum.Struct.Guild.AuditLog.t/0 for the given guild_id.

    - -

    options

    +
    + - Options + Options

    @@ -7396,13 +7423,13 @@

    get_guild_channels(guild_id)

    Gets a list of guild channels.

    If successful, returns {:ok, channels}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_guild_channels(81384788765712384)
    -{:ok, [%Nostrum.Struct.Channel{guild_id: 81384788765712384} | _]}
    +
    Nostrum.Api.get_guild_channels(81384788765712384)
    +{:ok, [%Nostrum.Struct.Channel{guild_id: 81384788765712384} | _]}
    @@ -7548,13 +7575,13 @@

    get_guild_invites(guild_id)

    Gets a list of invites for a guild.

    This endpoint requires the MANAGE_GUILD permission.

    If successful, returns {:ok, invites}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_guild_invites(81384788765712384)
    -{:ok, [%Nostrum.Struct.Invite{} | _]}
    +
    Nostrum.Api.get_guild_invites(81384788765712384)
    +{:ok, [%Nostrum.Struct.Invite{} | _]}
    @@ -7613,12 +7640,12 @@

    get_guild_member(guild_id, user_id)

    Gets a guild member.

    If successful, returns {:ok, member}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_guild_member(4019283754613, 184937267485)
    +
    Nostrum.Api.get_guild_member(4019283754613, 184937267485)
    @@ -7677,13 +7704,13 @@

    get_guild_prune_count(guild_id, days)

    Gets the number of members that would be removed in a prune given days.

    This endpoint requires the KICK_MEMBERS permission.

    If successful, returns {:ok, %{pruned: pruned}}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_guild_prune_count(81384788765712384, 1)
    -{:ok, %{pruned: 0}}
    +
    Nostrum.Api.get_guild_prune_count(81384788765712384, 1)
    +{:ok, %{pruned: 0}}
    @@ -7742,12 +7769,12 @@

    get_guild_roles(guild_id)

    Gets a guild's roles.

    If successful, returns {:ok, roles}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_guild_roles(147362948571673)
    +
    Nostrum.Api.get_guild_roles(147362948571673)
    @@ -7847,10 +7874,10 @@

    get_guild_scheduled_event_users(guild_id, e

    Get a list of users who have subscribed to an event.

    - -

    options

    +
    + - Options + Options

    All are optional, with their default values listed.

    @@ -7913,10 +7940,10 @@

    get_guild_webhooks(guild_id)

    Gets a list of webhooks for a guild.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -7979,20 +8006,20 @@

    get_invite(invite_code, options \\ [])

    Gets an invite by its invite_code.

    If successful, returns {:ok, invite}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_invite("zsjUsC")
    +
    Nostrum.Api.get_invite("zsjUsC")
     
    -Nostrum.Api.get_invite("zsjUsC", with_counts: true)
    +
    Nostrum.Api.get_invite("zsjUsC", with_counts: true)
    @@ -8084,12 +8111,12 @@

    get_pinned_messages(channel_id)

    Retrieves all pinned messages from a channel.

    This endpoint requires the 'VIEW_CHANNEL' and 'READ_MESSAGE_HISTORY' permissions.

    If successful, returns {:ok, messages}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_pinned_messages(43189401384091)
    +
    Nostrum.Api.get_pinned_messages(43189401384091)
    @@ -8445,13 +8472,13 @@

    get_user_dms()

    Gets a list of our user's DM channels.

    If successful, returns {:ok, dm_channels}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.get_user_dms()
    -{:ok, [%Nostrum.Struct.Channel{type: 1} | _]}
    +
    Nostrum.Api.get_user_dms()
    +{:ok, [%Nostrum.Struct.Channel{type: 1} | _]}
    @@ -8537,10 +8564,10 @@

    get_webhook(webhook_id)

    Gets a webhook by id.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -8607,10 +8634,10 @@

    get_webhook_with_token(webhook_id, webhook_

    Gets a webhook by id and token.

    This method is exactly like get_webhook/1 but does not require authentication.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -8790,18 +8817,18 @@

    list_guild_members(guild_id, options \\ %{}

    Gets a list of a guild's members.

    If successful, returns {:ok, members}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.list_guild_members(41771983423143937, limit: 1)
    +
    Nostrum.Api.list_guild_members(41771983423143937, limit: 1)
    @@ -8986,16 +9013,16 @@

    list_public_archived_threads(channel_id, op

    Returns a list of archived threads for a given channel.

    Threads are sorted by the archive_timestamp field, in descending order.

    - -

    response-body

    +
    + - Response body + Response body

    Response body is a map with the following keys:

    - -

    options

    +
    + - Options + Options

    @@ -9064,10 +9091,10 @@

    modify_channel(channel_id, options, reason Nostrum.Consumer.channel_update/0 event. If a Nostrum.Struct.Channel.guild_category_channel/0 is being modified, then this endpoint fires multiple Nostrum.Consumer.channel_update/0 events.

    If successful, returns {:ok, channel}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.modify_channel(41771983423143933, name: "elixir-nostrum", topic: "nostrum discussion")
    -{:ok, %Nostrum.Struct.Channel{id: 41771983423143933, name: "elixir-nostrum", topic: "nostrum discussion"}}
    +
    Nostrum.Api.modify_channel(41771983423143933, name: "elixir-nostrum", topic: "nostrum discussion")
    +{:ok, %Nostrum.Struct.Channel{id: 41771983423143933, name: "elixir-nostrum", topic: "nostrum discussion"}}
     
    -Nostrum.Api.modify_channel(41771983423143933)
    -{:ok, %Nostrum.Struct.Channel{id: 41771983423143933}}
    +
    Nostrum.Api.modify_channel(41771983423143933) +{:ok, %Nostrum.Struct.Channel{id: 41771983423143933}}
    @@ -9148,18 +9175,18 @@

    modify_current_user(options)

    Changes the username or avatar of the current user.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.modify_current_user(avatar: "data:image/jpeg;base64,YXl5IGJieSB1IGx1a2luIDQgc3VtIGZ1az8=")
    +
    Nostrum.Api.modify_current_user(avatar: "data:image/jpeg;base64,YXl5IGJieSB1IGx1a2luIDQgc3VtIGZ1az8=")
    @@ -9219,19 +9246,19 @@

    modify_current_user_nick(guild_id, options

    Modifies the nickname of the current user in a guild.

    If successful, returns {:ok, %{nick: nick}}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.modify_current_user_nick(41771983423143937, nick: "Nostrum")
    -{:ok, %{nick: "Nostrum"}}
    +
    Nostrum.Api.modify_current_user_nick(41771983423143937, nick: "Nostrum")
    +{:ok, %{nick: "Nostrum"}}
    @@ -9301,10 +9328,10 @@

    modify_guild(guild_id, options \\ [], reaso

    Modifies a guild's settings.

    This endpoint requires the MANAGE_GUILD permission. It fires the Nostrum.Consumer.guild_update/0 event.

    An optional reason can be provided for the audit log.

    If successful, returns {:ok, guild}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.modify_guild(451824027976073216, name: "Nose Drum")
    -{:ok, %Nostrum.Struct.Guild{id: 451824027976073216, name: "Nose Drum", ...}}
    +
    Nostrum.Api.modify_guild(451824027976073216, name: "Nose Drum")
    +{:ok, %Nostrum.Struct.Guild{id: 451824027976073216, name: "Nose Drum", ...}}
    @@ -9417,13 +9444,13 @@

    modify_guild_channel_positions(guild_id, po

    Reorders a guild's channels.

    This endpoint requires the MANAGE_CHANNELS permission. It fires multiple Nostrum.Consumer.channel_update/0 events.

    If successful, returns {:ok, channels}. Otherwise, returns a Nostrum.Api.error/0.

    positions is a list of maps that each map a channel id with a position.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.modify_guild_channel_positions(279093381723062272, [%{id: 351500354581692420, position: 2}])
    -{:ok}
    +
    Nostrum.Api.modify_guild_channel_positions(279093381723062272, [%{id: 351500354581692420, position: 2}])
    +{:ok}
    @@ -9493,18 +9520,18 @@

    modify_guild_emoji(guild_id, emoji_id, opti

    Modify the given emoji.

    This endpoint requires the MANAGE_EMOJIS permission. It fires a Nostrum.Consumer.guild_emojis_update/0 event.

    An optional reason can be provided for the audit log.

    If successful, returns {:ok, emoji}. Otherwise, returns Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.modify_guild_emoji(43189401384091, 4314301984301, name: "elixir", roles: [])
    +
    Nostrum.Api.modify_guild_emoji(43189401384091, 4314301984301, name: "elixir", roles: [])
    @@ -9611,19 +9638,19 @@

    modify_guild_member(guild_id, user_id, opti

    Modifies a guild member's attributes.

    This endpoint fires the Nostrum.Consumer.guild_member_update/0 event. It situationally requires the MANAGE_NICKNAMES, MANAGE_ROLES, MUTE_MEMBERS, DEAFEN_MEMBERS, and MOVE_MEMBERS permissions.

    If successful, returns {:ok, member}. Otherwise, returns a Nostrum.Api.error/0.

    An optional reason argument can be given for the audit log.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.modify_guild_member(41771983423143937, 637162356451, nick: "Nostrum")
    -{:ok, %Nostrum.Struct.Member{}}
    +
    Nostrum.Api.modify_guild_member(41771983423143937, 637162356451, nick: "Nostrum")
    +{:ok, %Nostrum.Struct.Member{}}
    @@ -9697,18 +9724,18 @@

    modify_guild_role(guild_id, role_id, option

    Modifies a guild role.

    This endpoint requires the MANAGE_ROLES permission. It fires a Nostrum.Consumer.guild_role_update/0 event.

    An optional reason can be specified for the audit log.

    If successful, returns {:ok, role}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    options

    +
    + - Options + Options

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.modify_guild_role(41771983423143937, 392817238471936, hoist: false, name: "foo-bar")
    +
    Nostrum.Api.modify_guild_role(41771983423143937, 392817238471936, hoist: false, name: "foo-bar")
    @@ -9779,12 +9806,12 @@

    modify_guild_role_positions(guild_id, posit

    Reorders a guild's roles.

    This endpoint requires the MANAGE_ROLES permission. It fires multiple Nostrum.Consumer.guild_role_update/0 events.

    If successful, returns {:ok, roles}. Otherwise, returns a Nostrum.Api.error/0.

    positions is a list of maps that each map a role id with a position.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.modify_guild_role_positions(41771983423143937, [%{id: 41771983423143936, position: 2}])
    +
    Nostrum.Api.modify_guild_role_positions(41771983423143937, [%{id: 41771983423143936, position: 2}])
    @@ -9919,10 +9946,10 @@

    modify_webhook(webhook_id, args, reason \\

    Modifies a webhook.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -9961,10 +9988,10 @@

    modify_webhook_with_token(webhook_id, webho

    Modifies a webhook with a token.

    This method is exactly like modify_webhook/1 but does not require authentication.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -10038,13 +10065,13 @@

    remove_guild_member(guild_id, user_id, reas

    Removes a member from a guild.

    This event requires the KICK_MEMBERS permission. It fires a Nostrum.Consumer.guild_member_remove/0 event.

    An optional reason can be provided for the audit log with reason.

    If successful, returns {:ok}. Otherwise, returns a Nostrum.Api.error/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Api.remove_guild_member(1453827904102291, 18739485766253)
    -{:ok}
    +
    Nostrum.Api.remove_guild_member(1453827904102291, 18739485766253)
    +{:ok}
    @@ -10275,10 +10302,10 @@

    start_thread(channel_id, options, reason \\

    Create a thread on a channel without an associated message.

    If successful, returns {:ok, Channel}. Otherwise returns a Nostrum.Api.error/0.

    An optional reason argument can be given for the audit log.

    - -

    options

    +
    + - Options + Options

    @@ -10317,16 +10344,16 @@

    start_thread_in_forum_channel(channel_id, o

    Create a new thread in a forum channel.

    If successful, returns {:ok, Channel}. Otherwise returns a Nostrum.Api.error/0.

    An optional reason argument can be given for the audit log.

    - -

    options

    +
    + - Options + Options

    - -

    thread-message-options

    +
    + - Thread Message Options + Thread Message Options

    At least one of content, embeds, sticker_ids, or files must be specified.

    @@ -10367,10 +10394,10 @@

    start_thread_with_message(channel_id, messa

    Create a thread on a channel message.

    The thread_id will be the same as the id of the message, as such no message can have more than one thread.

    If successful, returns {:ok, Channel}. Otherwise returns a Nostrum.Api.error/0.

    An optional reason argument can be given for the audit log.

    - -

    options

    +
    + - Options + Options

    @@ -10491,10 +10518,10 @@

    update_shard_status(pid, status, game, type

    Updates the status of the bot for a certain shard.

    - -

    parameters

    +
    + - Parameters + Parameters

    @@ -10574,41 +10601,39 @@

    update_voice_state(guild_id, channel_id, se - - + diff --git a/Nostrum.Cache.CacheSupervisor.html b/Nostrum.Cache.CacheSupervisor.html index fe423185a..fb9c3cabc 100644 --- a/Nostrum.Cache.CacheSupervisor.html +++ b/Nostrum.Cache.CacheSupervisor.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.CacheSupervisor — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.CacheSupervisor - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.CacheSupervisor + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Supervises caches for nostrum structures.

    See the documentation for the relevant submodules for details:

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -164,9 +193,8 @@

    - Link to this section -Functions + Functions

    @@ -239,41 +267,39 @@

    start_link(list)

    -
    +
    - +
    diff --git a/Nostrum.Cache.ChannelCache.ETS.html b/Nostrum.Cache.ChannelCache.ETS.html index c3a06ea1d..44fd50acd 100644 --- a/Nostrum.Cache.ChannelCache.ETS.html +++ b/Nostrum.Cache.ChannelCache.ETS.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.ChannelCache.ETS — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,96 +35,126 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.ChannelCache.ETS - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.ChannelCache.ETS + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    An ETS-based cache for channels outside of guilds.

    The supervisor defined by this module will set up the ETS table associated with it.

    If you need to get the table reference for the table used by this module, please use the table/0 function.

    Note that users should not call the functions not related to this specific implementation of the cache directly. Instead, call the functions of Nostrum.Cache.ChannelCache directly, which will dispatch to the configured cache.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -221,9 +250,8 @@

    - Link to this section -Functions + Functions

    @@ -453,41 +481,39 @@

    update(channel)

    -
    +
    - +
    diff --git a/Nostrum.Cache.ChannelCache.Mnesia.html b/Nostrum.Cache.ChannelCache.Mnesia.html index 56831ea02..2cbfbe22f 100644 --- a/Nostrum.Cache.ChannelCache.Mnesia.html +++ b/Nostrum.Cache.ChannelCache.Mnesia.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.ChannelCache.Mnesia — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,93 +35,123 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.ChannelCache.Mnesia - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.ChannelCache.Mnesia + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    An Mnesia-based cache for channels outside of guilds.

    Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information.

    To retrieve the table name used by this cache, use table/0.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -248,9 +277,8 @@

    - Link to this section -Functions + Functions

    @@ -564,41 +592,39 @@

    wrap_qlc(fun)

    -
    +
    - +
    diff --git a/Nostrum.Cache.ChannelCache.NoOp.html b/Nostrum.Cache.ChannelCache.NoOp.html index 943a93e99..92a3a4e57 100644 --- a/Nostrum.Cache.ChannelCache.NoOp.html +++ b/Nostrum.Cache.ChannelCache.NoOp.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.ChannelCache.NoOp — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.ChannelCache.NoOp - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.ChannelCache.NoOp + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A NoOp implementation for the ChannelCache

    This cache does nothing, enable it if you dont need to cache channels

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -156,9 +185,8 @@

    - Link to this section -Functions + Functions

    @@ -213,41 +241,39 @@

    start_link(init_arg)

    -
    +
    - +
    diff --git a/Nostrum.Cache.ChannelCache.html b/Nostrum.Cache.ChannelCache.html index ec0b989c4..45e20f508 100644 --- a/Nostrum.Cache.ChannelCache.html +++ b/Nostrum.Cache.ChannelCache.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.ChannelCache — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,80 +35,110 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.ChannelCache behaviour - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.ChannelCache behaviour + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Cache behaviour & dispatcher for direct message channels.

    You can call the functions provided by this module independent of which cache is configured, and it will dispatch to the configured cache implementation. The user-facing functions for reading the cache can be found in the "Reading @@ -118,10 +147,10 @@

    by setting the :channels field to a different module implementing the Nostrum.Cache.ChannelCache behaviour. Any module below Nostrum.Cache.ChannelCache can be used as a cache.

    - -

    writing-your-own-channel-cache

    +
    + - Writing your own channel cache + Writing your own channel cache

    As with the other caches, the channel cache API consists of three parts:

    • Functions called by nostrum, such as create/1 or update/1. These do not create any objects in the Discord API, they are purely created to @@ -134,16 +163,16 @@

      need to cast the data to the resulting type themselves. A possible future improvement would be moving the data casting into this module before the backing cache implementation is called.

      -

    +
    +

    - Link to this section - Summary + Summary

    @@ -287,9 +316,8 @@

    - Link to this section -Types + Types

    @@ -328,9 +356,8 @@

    reason()

    - Link to this section -Callbacks + Callbacks

    @@ -526,9 +553,8 @@

    wrap_qlc(function)

    - Link to this section -Functions + Functions

    @@ -675,41 +701,39 @@

    query_handle()

    -
    +
    -
    +
    diff --git a/Nostrum.Cache.ChannelGuildMapping.ETS.html b/Nostrum.Cache.ChannelGuildMapping.ETS.html index 22998566d..fed093df6 100644 --- a/Nostrum.Cache.ChannelGuildMapping.ETS.html +++ b/Nostrum.Cache.ChannelGuildMapping.ETS.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.ChannelGuildMapping.ETS — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.ChannelGuildMapping.ETS - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.ChannelGuildMapping.ETS + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Maps channels to guilds via :ets.

    Please use the function table/0 for retrieving a reference to the table used by nostrum.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -207,9 +236,8 @@

    - Link to this section -Functions + Functions

    @@ -408,41 +436,39 @@

    table()

    -
    +
    - +
    diff --git a/Nostrum.Cache.ChannelGuildMapping.Mnesia.html b/Nostrum.Cache.ChannelGuildMapping.Mnesia.html index eb395758e..ad33bdbc8 100644 --- a/Nostrum.Cache.ChannelGuildMapping.Mnesia.html +++ b/Nostrum.Cache.ChannelGuildMapping.Mnesia.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.ChannelGuildMapping.Mnesia — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,93 +35,123 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.ChannelGuildMapping.Mnesia - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.ChannelGuildMapping.Mnesia + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    An Mnesia-based mapping between channel and guild IDs.

    Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information.

    To retrieve the table name used by this cache, use table/0.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -218,9 +247,8 @@

    - Link to this section -Functions + Functions

    @@ -449,41 +477,39 @@

    teardown()

    -
    +
    - +
    diff --git a/Nostrum.Cache.ChannelGuildMapping.NoOp.html b/Nostrum.Cache.ChannelGuildMapping.NoOp.html index 6112bdfae..d964bd68c 100644 --- a/Nostrum.Cache.ChannelGuildMapping.NoOp.html +++ b/Nostrum.Cache.ChannelGuildMapping.NoOp.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.ChannelGuildMapping.NoOp — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.ChannelGuildMapping.NoOp - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.ChannelGuildMapping.NoOp + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    NoOp implementation for the Channel Guild map

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -156,9 +185,8 @@

    - Link to this section -Functions + Functions

    @@ -213,41 +241,39 @@

    start_link(init_arg)

    -
    +
    - +
    diff --git a/Nostrum.Cache.ChannelGuildMapping.html b/Nostrum.Cache.ChannelGuildMapping.html index d23fd8bd3..16101fcf7 100644 --- a/Nostrum.Cache.ChannelGuildMapping.html +++ b/Nostrum.Cache.ChannelGuildMapping.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.ChannelGuildMapping — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,111 +35,141 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.ChannelGuildMapping behaviour - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.ChannelGuildMapping behaviour + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Cache behaviour & dispatcher for mapping channel IDs to their respective guilds.

    - -

    purpose

    +
    + - Purpose + Purpose

    While retrieving the channels on a specific guild is trivial as they are stored on the guild, retrieving the guild a given channel belongs to is not possible with the regular data mode of channels. This module allows to retrieve guilds associated with a channel via get/1.

    - -

    configuration

    +
    + - Configuration + Configuration

    By default, nostrum will use Elixir.Nostrum.Cache.ChannelGuildMapping.ETS to store the mapping. To override this, set the [:caches, :channel_guild_mapping] setting on nostrum's application configuration:

    config :nostrum,
    -  caches: %{
    +  caches: %{
         channel_guild_mapping: MyBot.Nostrum.Cache.ChannelGuildMapping
    -  }

    This setting must be set at compile time.

    -
    + }

    This setting must be set at compile time.

    +
    +

    - Link to this section - Summary + Summary

    @@ -232,9 +261,8 @@

    - Link to this section -Callbacks + Callbacks

    @@ -365,9 +393,8 @@

    get(id)

    - Link to this section -Functions + Functions

    @@ -446,41 +473,39 @@

    get(guild_id)

    -
    +
    -
    +
    diff --git a/Nostrum.Cache.GuildCache.ETS.html b/Nostrum.Cache.GuildCache.ETS.html index 4b712e620..012c575f8 100644 --- a/Nostrum.Cache.GuildCache.ETS.html +++ b/Nostrum.Cache.GuildCache.ETS.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.GuildCache.ETS — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,80 +35,110 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.GuildCache.ETS - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.GuildCache.ETS + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    An ETS-based cache for guilds.

    The supervisor defined by this module will set up the ETS table associated with it.

    The default table name under which guilds are cached is nostrum_guilds. In addition to the cache behaviour implementations provided by this module, @@ -117,16 +146,16 @@

    implementation of the cache directly. Instead, call the functions of Nostrum.Cache.GuildCache directly, which will dispatch to the configured cache.

    -

    +
    +

    - Link to this section - Summary + Summary

    @@ -322,9 +351,8 @@

    - Link to this section -Functions + Functions

    @@ -861,41 +889,39 @@

    voice_state_update(guild_id, payload)

    -
    +
    - +
    diff --git a/Nostrum.Cache.GuildCache.Mnesia.html b/Nostrum.Cache.GuildCache.Mnesia.html index b60604882..d64148a79 100644 --- a/Nostrum.Cache.GuildCache.Mnesia.html +++ b/Nostrum.Cache.GuildCache.Mnesia.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.GuildCache.Mnesia — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,93 +35,123 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.GuildCache.Mnesia - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.GuildCache.Mnesia + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    An Mnesia-based cache for guilds.

    Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information.

    To retrieve the table name used by this cache, use table/0.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -348,9 +377,8 @@

    - Link to this section -Functions + Functions

    @@ -971,41 +999,39 @@

    wrap_qlc(fun)

    -
    +
    - +
    diff --git a/Nostrum.Cache.GuildCache.NoOp.html b/Nostrum.Cache.GuildCache.NoOp.html index 6f7a1c987..0a01c1000 100644 --- a/Nostrum.Cache.GuildCache.NoOp.html +++ b/Nostrum.Cache.GuildCache.NoOp.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.GuildCache.NoOp — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.GuildCache.NoOp - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.GuildCache.NoOp + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A cache module that does nothing.

    Useful for bots that don't need to cache guilds.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -166,9 +195,8 @@

    - Link to this section -Functions + Functions

    @@ -247,41 +275,39 @@

    start_link(init_arg)

    -
    +
    - +
    diff --git a/Nostrum.Cache.GuildCache.html b/Nostrum.Cache.GuildCache.html index 94c3cd39b..abfd836b6 100644 --- a/Nostrum.Cache.GuildCache.html +++ b/Nostrum.Cache.GuildCache.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.GuildCache — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,90 +35,120 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.GuildCache behaviour - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.GuildCache behaviour + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Cache behaviour & dispatcher for guilds.

    You can call the functions provided by this module independent of which cache is configured, and it will dispatch to the configured cache implementation.

    By default, Elixir.Nostrum.Cache.GuildCache.ETS will be used for caching guilds. You can override this in the :caches option of the :nostrum application by setting the :guilds field to a different module implementing the Nostrum.Cache.GuildCache behaviour. Any module below Nostrum.Cache.GuildCache can be used as a cache.

    - -

    writing-your-own-guild-cache

    +
    + - Writing your own guild cache + Writing your own guild cache

    As with the other caches, the guild cache API consists of two parts:

    • The functions that nostrum calls, such as create/1 or update/1. These do not create any objects in the Discord API, they are purely @@ -133,16 +162,16 @@

      need to cast the data to the resulting type themselves. A possible future improvement would be moving the data casting into this module before the backing cache implementation is called.

      -

    +
    +

    - Link to this section - Summary + Summary

    @@ -374,9 +403,8 @@

    - Link to this section -Callbacks + Callbacks

    @@ -873,9 +901,8 @@

    wrap_qlc(function)

    - Link to this section -Functions + Functions

    @@ -909,10 +936,10 @@

    fold(acc, reducer, cache \\ Nostrum.Cache.G

    Fold (reduce) over all guilds in the cache.

    - -

    parameters

    +
    + - Parameters + Parameters

    • acc: The initial accumulator. Also returned if no guilds are cached.
    • fun: Called for every guild in the result. Takes a pair in the form {guild, acc}, and must return the updated accumulator.
    • cache (optional): The cache to use. nostrum will use the cache configured @@ -1038,41 +1065,39 @@

      wrap_qlc(cache \\ Nostrum.Cache.GuildCache.

    -
    +
    - +
    diff --git a/Nostrum.Cache.Me.html b/Nostrum.Cache.Me.html index 41f72a468..ec3aab148 100644 --- a/Nostrum.Cache.Me.html +++ b/Nostrum.Cache.Me.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.Me — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.Me - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.Me + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Simple cache that stores information for the current user.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -164,9 +193,8 @@

    - Link to this section -Functions + Functions

    @@ -245,41 +273,39 @@

    start_link(list)

    -
    +
    - +
    diff --git a/Nostrum.Cache.MemberCache.ETS.html b/Nostrum.Cache.MemberCache.ETS.html index 9ad7ba239..269bb5d69 100644 --- a/Nostrum.Cache.MemberCache.ETS.html +++ b/Nostrum.Cache.MemberCache.ETS.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.MemberCache.ETS — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.MemberCache.ETS - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.MemberCache.ETS + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    An ETS-based cache for members.

    If you need to get the table reference for the table used by this module, please use the table/0 function.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -247,9 +276,8 @@

    - Link to this section -Functions + Functions

    @@ -559,10 +587,10 @@

    wrap_qlc(fun)

    Wrap QLC operations.

    - -

    safety

    +
    + - Safety + Safety

    Any QLC operations are surrounded by :ets.safe_fixtable. It is therefore recommended to finish your read quickly.

    @@ -572,41 +600,39 @@

    wrap_qlc(fun)

    -
    +
    - +
    diff --git a/Nostrum.Cache.MemberCache.Mnesia.html b/Nostrum.Cache.MemberCache.Mnesia.html index b710319e1..5114bea75 100644 --- a/Nostrum.Cache.MemberCache.Mnesia.html +++ b/Nostrum.Cache.MemberCache.Mnesia.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.MemberCache.Mnesia — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,93 +35,123 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.MemberCache.Mnesia - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.MemberCache.Mnesia + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    An Mnesia-based cache for guild members.

    Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information.

    To retrieve the table name used by this cache, use table/0.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -258,9 +287,8 @@

    - Link to this section -Functions + Functions

    @@ -600,41 +628,39 @@

    wrap_qlc(fun)

    -
    +
    - +
    diff --git a/Nostrum.Cache.MemberCache.NoOp.html b/Nostrum.Cache.MemberCache.NoOp.html index df70d91a8..bee3841d7 100644 --- a/Nostrum.Cache.MemberCache.NoOp.html +++ b/Nostrum.Cache.MemberCache.NoOp.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.MemberCache.NoOp — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.MemberCache.NoOp - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.MemberCache.NoOp + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A NoOp implementation for the MemberCache

    This cache does nothing, enable it if you dont need to cache members

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -156,9 +185,8 @@

    - Link to this section -Functions + Functions

    @@ -213,41 +241,39 @@

    start_link(init_arg)

    -
    +
    - +
    diff --git a/Nostrum.Cache.MemberCache.html b/Nostrum.Cache.MemberCache.html index f3d797059..9a35b2b1e 100644 --- a/Nostrum.Cache.MemberCache.html +++ b/Nostrum.Cache.MemberCache.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.MemberCache — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,80 +35,110 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.MemberCache behaviour - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.MemberCache behaviour + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Cache behaviour & dispatcher for guild members.

    You can call the functions provided by this module independent of which cache is configured, and it will dispatch to the configured cache implementation.

    By default, Elixir.Nostrum.Cache.MemberCache.ETS will be used for caching members. You can override this in the :caches option of the :nostrum @@ -117,16 +146,16 @@

    implementing the behaviour defined by this module.

    The user-facing functions of this module can be called with a custom cache as the final argument. This is mainly useful if you want to test the cache: by default, nostrum will use Elixir.Nostrum.Cache.MemberCache.ETS.

    -

    +
    +

    - Link to this section - Summary + Summary

    @@ -289,9 +318,8 @@

    - Link to this section -Callbacks + Callbacks

    @@ -486,10 +514,10 @@

    update(id, member)

    Update the given member for the given guild from upstream data.

    Return the guild ID that was updated, the old cached member (if the member was known to the cache), and the updated member.

    - -

    note-regarding-intents

    +
    + - Note regarding intents + Note regarding intents

    Even if the required intents to receive GUILD_MEMBER_UPDATE events are disabled to a point where we do not receive guild creation events, it is @@ -542,9 +570,8 @@

    wrap_qlc(function)

    - Link to this section -Functions + Functions

    @@ -584,17 +611,17 @@

    fold(acc, guild_id, member_reducer, cache \

    Fold (reduce) over members for the given guild ID.

    - -

    parameters

    +
    + - Parameters + Parameters

    • acc: The initial accumulator. Also returned if no guild members were found.
    • guild_id: The guild for which to reduce members.
    • fun: Called for every element in the result. Takes a pair in the form {member, acc), and must return the updated accumulator.

    - -

    return-value

    +
    + - Return value + Return value

    Returns the resulting accumulator via fun. Returns acc unchanged if no results were found.

    @@ -676,18 +703,18 @@

    fold_with_users(acc, guild_id, fun, cache \

    Calls fun on each member and its user on the given guild ID, with the given accumulator.

    - -

    parameters

    +
    + - Parameters + Parameters

    • acc (term()): The initial accumulator. Also returned if no guild members were found.
    • guild_id (Nostrum.Struct.Guild.id/0): The guild for which to reduce members.
    • fun (function()): Called for every element in the result. Takes a pair in the form {{member, user}, acc), and must return the updated accumulator.

    - -

    return-value

    +
    + - Return value + Return value

    Returns the resulting accumulator via fun. Returns acc unchanged if no results were found.

    If the user for a guild member is not found, the member and user won't be @@ -825,41 +852,39 @@

    wrap_qlc(cache \\ Nostrum.Cache.MemberCache

    -
    +
    - +
    diff --git a/Nostrum.Cache.PresenceCache.ETS.html b/Nostrum.Cache.PresenceCache.ETS.html index aa13133aa..c5daddbe4 100644 --- a/Nostrum.Cache.PresenceCache.ETS.html +++ b/Nostrum.Cache.PresenceCache.ETS.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.PresenceCache.ETS — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.PresenceCache.ETS - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.PresenceCache.ETS + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    ETS-based cache for user presences.

    If you need to get the table reference for the table used by this module, please use the table/0 function.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -217,9 +246,8 @@

    - Link to this section -Functions + Functions

    @@ -449,41 +477,39 @@

    update(new)

    -
    +
    - +
    diff --git a/Nostrum.Cache.PresenceCache.Mnesia.html b/Nostrum.Cache.PresenceCache.Mnesia.html index 5c888b833..2c0b4b77f 100644 --- a/Nostrum.Cache.PresenceCache.Mnesia.html +++ b/Nostrum.Cache.PresenceCache.Mnesia.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.PresenceCache.Mnesia — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,93 +35,123 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.PresenceCache.Mnesia - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.PresenceCache.Mnesia + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    An Mnesia-based cache for presences.

    Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information.

    To retrieve the table name used by this cache, use table/0.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -248,9 +277,8 @@

    - Link to this section -Functions + Functions

    @@ -558,41 +586,39 @@

    wrap_qlc(fun)

    -
    +
    - +
    diff --git a/Nostrum.Cache.PresenceCache.NoOp.html b/Nostrum.Cache.PresenceCache.NoOp.html index 4acc38525..4bf47e8a7 100644 --- a/Nostrum.Cache.PresenceCache.NoOp.html +++ b/Nostrum.Cache.PresenceCache.NoOp.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.PresenceCache.NoOp — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.PresenceCache.NoOp - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.PresenceCache.NoOp + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A cache module that does not cache anything.

    Useful for bots that do not need presence caching.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -166,9 +195,8 @@

    - Link to this section -Functions + Functions

    @@ -247,41 +275,39 @@

    start_link(init_arg)

    -
    +
    - +
    diff --git a/Nostrum.Cache.PresenceCache.html b/Nostrum.Cache.PresenceCache.html index 183e05abb..2d4b245c0 100644 --- a/Nostrum.Cache.PresenceCache.html +++ b/Nostrum.Cache.PresenceCache.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.PresenceCache — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,90 +35,120 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.PresenceCache behaviour - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.PresenceCache behaviour + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Cache behaviour & dispatcher for Discord presences.

    By default, Elixir.Nostrum.Cache.PresenceCache.ETS will be use for caching presences. You can override this in the :caches option of the nostrum application by setting the :presences fields to a different module implementing the Nostrum.Cache.PresenceCache behaviour. Any module below Nostrum.Cache.PresenceCache implements this behaviour and can be used as a cache.

    - -

    writing-your-own-presence-cache

    +
    + - Writing your own presence cache + Writing your own presence cache

    As with the other caches, the presence cache API consists of two parts:

    • The functions that nostrum calls, such as create/1 or update/1. These do not create any objects in the Discord API, they are purely @@ -127,16 +156,16 @@

      want to create objects on Discord, use the functions exposed by Nostrum.Api instead.

    • the QLC query handle for read operations, query_handle/0, and

    • the child_spec/1 callback for starting the cache under a supervisor.

    You need to implement both of them for nostrum to work with your custom cache.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -275,9 +304,8 @@

    - Link to this section -Types + Types

    @@ -295,8 +323,6 @@

    presence()

    - (opaque) - (since 0.5.0)
    @@ -321,9 +347,8 @@

    presence()

    - Link to this section -Callbacks + Callbacks

    @@ -483,10 +508,10 @@

    update(map)

    Update the given presence in the cache from upstream data.

    - -

    return-value

    +
    + - Return value + Return value

    Return the guild ID along with the old presence (if it was cached, otherwise nil) and the updated presence structure. If the :activities or :status @@ -536,9 +561,8 @@

    wrap_qlc(function)

    - Link to this section -Functions + Functions

    @@ -572,17 +596,17 @@

    get(guild_id, user_id, cache \\ Nostrum.Cac

    Retrieves a presence for a user from the cache by guild and id.

    If successful, returns {:ok, presence}. Otherwise returns {:error, reason}.

    - -

    example

    +
    + - Example + Example

    -
    case Nostrum.Cache.PresenceCache.get(111133335555, 222244446666) do
    -  {:ok, presence} ->
    -    "They're #{presence.status}"
    -  {:error, _reason} ->
    +
    case Nostrum.Cache.PresenceCache.get(111133335555, 222244446666) do
    +  {:ok, presence} ->
    +    "They're #{presence.status}"
    +  {:error, _reason} ->
         "They're dead Jim"
    -end
    +
    end
    @@ -678,41 +702,39 @@

    wrap_qlc(cache \\ Nostrum.Cache.PresenceCac

    -
    +
    - +
    diff --git a/Nostrum.Cache.UserCache.ETS.html b/Nostrum.Cache.UserCache.ETS.html index a51e5eb98..790e47542 100644 --- a/Nostrum.Cache.UserCache.ETS.html +++ b/Nostrum.Cache.UserCache.ETS.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.UserCache.ETS — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.UserCache.ETS - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.UserCache.ETS + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    An ETS-based cache for users.

    If you need to get the table reference for the table used by this module, please use the table/0 function.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -217,9 +246,8 @@

    - Link to this section -Functions + Functions

    @@ -448,41 +476,39 @@

    update(info)

    -
    +
    - +
    diff --git a/Nostrum.Cache.UserCache.Mnesia.html b/Nostrum.Cache.UserCache.Mnesia.html index ed8054d09..851fcc267 100644 --- a/Nostrum.Cache.UserCache.Mnesia.html +++ b/Nostrum.Cache.UserCache.Mnesia.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.UserCache.Mnesia — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,93 +35,123 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.UserCache.Mnesia - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.UserCache.Mnesia + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    An Mnesia-based cache for users.

    Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information.

    To retrieve the table name used by this cache, use table/0.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -258,9 +287,8 @@

    - Link to this section -Functions + Functions

    @@ -597,41 +625,39 @@

    wrap_qlc(fun)

    -
    +
    - +
    diff --git a/Nostrum.Cache.UserCache.NoOp.html b/Nostrum.Cache.UserCache.NoOp.html index 67c393a02..0e4ec0bf4 100644 --- a/Nostrum.Cache.UserCache.NoOp.html +++ b/Nostrum.Cache.UserCache.NoOp.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.UserCache.NoOp — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.UserCache.NoOp - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.UserCache.NoOp + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A NoOp implementation for the UserCache

    This cache does nothing, enable it if you dont need to cache users

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -156,9 +185,8 @@

    - Link to this section -Functions + Functions

    @@ -213,41 +241,39 @@

    start_link(init_arg)

    -
    +
    - +
    diff --git a/Nostrum.Cache.UserCache.html b/Nostrum.Cache.UserCache.html index 09940415c..abb8a2c0d 100644 --- a/Nostrum.Cache.UserCache.html +++ b/Nostrum.Cache.UserCache.html @@ -4,20 +4,19 @@ - + + Nostrum.Cache.UserCache — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,95 +35,125 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Cache.UserCache behaviour - (Nostrum v0.9.0-alpha3) + Nostrum.Cache.UserCache behaviour + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Cache behaviour & dispatcher for users.

    You can call the functions provided by this module independent of which cache is configured, and it will dispatch to the configured cache implementation.

    By default, Elixir.Nostrum.Cache.UserCache.ETS will be used for caching users. You can override this in the :caches option of the :nostrum application by setting the :users field to a different module implementing the behaviour defined by this module.

    See the documentation for the Nostrum.Cache.GuildCache module for more details.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -256,9 +285,8 @@

    - Link to this section -Callbacks + Callbacks

    @@ -482,9 +510,8 @@

    wrap_qlc(function)

    - Link to this section -Functions + Functions

    @@ -517,17 +544,17 @@

    get(user_id, cache \\ Nostrum.Cache.UserCac

    Retrieves a user from the cache by id.

    This function can be called with the cache to use as an optional argument. By default, the cache configured at compile time is used.

    - -

    example

    +
    + - Example + Example

    -
    case Nostrum.Cache.UserCache.get(1111222233334444) do
    -  {:ok, user} ->
    +
    case Nostrum.Cache.UserCache.get(1111222233334444) do
    +  {:ok, user} ->
         "We found " <> user.username
    -  {:error, _reason} ->
    +  {:error, _reason} ->
         "No es bueno"
    -end
    +
    end
    @@ -624,41 +651,39 @@

    wrap_qlc(cache \\ Nostrum.Cache.UserCache.E

    -
    +
    - +
    diff --git a/Nostrum.Constants.ApplicationCommandOptionType.html b/Nostrum.Constants.ApplicationCommandOptionType.html index da29fb7bc..135009085 100644 --- a/Nostrum.Constants.ApplicationCommandOptionType.html +++ b/Nostrum.Constants.ApplicationCommandOptionType.html @@ -4,20 +4,19 @@ - + + Nostrum.Constants.ApplicationCommandOptionType — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Constants.ApplicationCommandOptionType - (Nostrum v0.9.0-alpha3) + Nostrum.Constants.ApplicationCommandOptionType + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines available types used for defining application command option types for passed options For more info please refer to https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -225,9 +254,8 @@

    - Link to this section -Functions + Functions

    @@ -476,41 +504,39 @@

    user()

    -
    +
    - +
    diff --git a/Nostrum.Constants.ApplicationCommandPermissionType.html b/Nostrum.Constants.ApplicationCommandPermissionType.html index d87f01b2f..241327316 100644 --- a/Nostrum.Constants.ApplicationCommandPermissionType.html +++ b/Nostrum.Constants.ApplicationCommandPermissionType.html @@ -4,20 +4,19 @@ - + + Nostrum.Constants.ApplicationCommandPermissionType — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Constants.ApplicationCommandPermissionType - (Nostrum v0.9.0-alpha3) + Nostrum.Constants.ApplicationCommandPermissionType + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines available types for application command permissions For more info please refer to https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -161,9 +190,8 @@

    - Link to this section -Functions + Functions

    @@ -236,41 +264,39 @@

    user()

    -
    +
    - +
    diff --git a/Nostrum.Constants.ApplicationCommandType.html b/Nostrum.Constants.ApplicationCommandType.html index 9074f3bad..c5b91fefa 100644 --- a/Nostrum.Constants.ApplicationCommandType.html +++ b/Nostrum.Constants.ApplicationCommandType.html @@ -4,20 +4,19 @@ - + + Nostrum.Constants.ApplicationCommandType — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Constants.ApplicationCommandType - (Nostrum v0.9.0-alpha3) + Nostrum.Constants.ApplicationCommandType + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines available types used for selecting application command types For more info please refer to https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -161,9 +190,8 @@

    - Link to this section -Functions + Functions

    @@ -236,41 +264,39 @@

    user()

    -
    +
    - +
    diff --git a/Nostrum.Constants.ButtonStyle.html b/Nostrum.Constants.ButtonStyle.html index 5f6b3d739..29ea1833f 100644 --- a/Nostrum.Constants.ButtonStyle.html +++ b/Nostrum.Constants.ButtonStyle.html @@ -4,20 +4,19 @@ - + + Nostrum.Constants.ButtonStyle — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Constants.ButtonStyle - (Nostrum v0.9.0-alpha3) + Nostrum.Constants.ButtonStyle + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines available styles for button message components For more info please refer to https://discord.com/developers/docs/interactions/message-components#button-object-button-styles

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -177,9 +206,8 @@

    - Link to this section -Functions + Functions

    @@ -296,41 +324,39 @@

    success()

    -
    +
    - +
    diff --git a/Nostrum.Constants.ChannelType.html b/Nostrum.Constants.ChannelType.html index a60f444ce..2b5521f33 100644 --- a/Nostrum.Constants.ChannelType.html +++ b/Nostrum.Constants.ChannelType.html @@ -4,20 +4,19 @@ - + + Nostrum.Constants.ChannelType — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Constants.ChannelType - (Nostrum v0.9.0-alpha3) + Nostrum.Constants.ChannelType + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines available types for channels For more info please refer to https://discord.com/developers/docs/resources/channel#channel-object-channel-types

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -225,9 +254,8 @@

    - Link to this section -Functions + Functions

    @@ -476,41 +504,39 @@

    public_thread()

    -
    +
    - +
    diff --git a/Nostrum.Constants.ComponentType.html b/Nostrum.Constants.ComponentType.html index d5c6ac4ff..9362bfb41 100644 --- a/Nostrum.Constants.ComponentType.html +++ b/Nostrum.Constants.ComponentType.html @@ -4,20 +4,19 @@ - + + Nostrum.Constants.ComponentType — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Constants.ComponentType - (Nostrum v0.9.0-alpha3) + Nostrum.Constants.ComponentType + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines available types for message components For more info please refer to https://discord.com/developers/docs/interactions/message-components#component-object-component-types

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -217,9 +246,8 @@

    - Link to this section -Functions + Functions

    @@ -408,41 +436,39 @@

    user_select()

    -
    +
    - +
    diff --git a/Nostrum.Constants.InteractionCallbackType.html b/Nostrum.Constants.InteractionCallbackType.html index c7b3587d4..fdb7df87b 100644 --- a/Nostrum.Constants.InteractionCallbackType.html +++ b/Nostrum.Constants.InteractionCallbackType.html @@ -4,20 +4,19 @@ - + + Nostrum.Constants.InteractionCallbackType — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Constants.InteractionCallbackType - (Nostrum v0.9.0-alpha3) + Nostrum.Constants.InteractionCallbackType + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines available types for interaction callbacks For more info please refer to https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -193,9 +222,8 @@

    - Link to this section -Functions + Functions

    @@ -356,41 +384,39 @@

    update_message()

    -
    +
    - +
    diff --git a/Nostrum.Constants.InteractionType.html b/Nostrum.Constants.InteractionType.html index afc316847..7224ec443 100644 --- a/Nostrum.Constants.InteractionType.html +++ b/Nostrum.Constants.InteractionType.html @@ -4,20 +4,19 @@ - + + Nostrum.Constants.InteractionType — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Constants.InteractionType - (Nostrum v0.9.0-alpha3) + Nostrum.Constants.InteractionType + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines available types for interactions For more info please refer to https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -177,9 +206,8 @@

    - Link to this section -Functions + Functions

    @@ -296,41 +324,39 @@

    ping()

    -
    +
    - +
    diff --git a/Nostrum.Constants.TextInputStyle.html b/Nostrum.Constants.TextInputStyle.html index 52cf33f93..c28c894f1 100644 --- a/Nostrum.Constants.TextInputStyle.html +++ b/Nostrum.Constants.TextInputStyle.html @@ -4,20 +4,19 @@ - + + Nostrum.Constants.TextInputStyle — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Constants.TextInputStyle - (Nostrum v0.9.0-alpha3) + Nostrum.Constants.TextInputStyle + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines available styles for modal text inputs For more info please refer to https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-styles

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -153,9 +182,8 @@

    - Link to this section -Functions + Functions

    @@ -206,41 +234,39 @@

    short()

    -
    +
    - +
    diff --git a/Nostrum.Constants.WebhookType.html b/Nostrum.Constants.WebhookType.html index 696b90703..442e0be81 100644 --- a/Nostrum.Constants.WebhookType.html +++ b/Nostrum.Constants.WebhookType.html @@ -4,20 +4,19 @@ - + + Nostrum.Constants.WebhookType — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Constants.WebhookType - (Nostrum v0.9.0-alpha3) + Nostrum.Constants.WebhookType + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines available types for channels For more info please refer to https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -161,9 +190,8 @@

    - Link to this section -Functions + Functions

    @@ -236,41 +264,39 @@

    incoming()

    -
    +
    - +
    diff --git a/Nostrum.Consumer.html b/Nostrum.Consumer.html index 2c9845620..bf24a893a 100644 --- a/Nostrum.Consumer.html +++ b/Nostrum.Consumer.html @@ -4,20 +4,19 @@ - + + Nostrum.Consumer — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,141 +35,171 @@ } catch (error) { } -
    +
    - - + -
    - -
    -
    + -

    - + - - - View Source - + + +
    + - Nostrum.Consumer behaviour - (Nostrum v0.9.0-alpha3) +
    + + +
    +

    + + + + View Source + -

    + Nostrum.Consumer behaviour + (Nostrum v0.9.0-alpha3) +

    -
    + +

    Consumer process for gateway event handling.

    - -

    consuming-gateway-events

    +
    + - Consuming gateway events + Consuming gateway events

    Events are first ingested by nostrum's cache. Afterwards, they are sent to any subscribed consumers via Nostrum.ConsumerGroup.

    By default, nostrum will start a process for each event. This gives us free parallelism and isolation. You therefore do not need to start more than one consumer in your supervision tree. If you want to override this behaviour, implement the handle_info/2 function in your consumer. For reference, this -is the default implementation:

      def handle_info({:event, event}, state) do
    -    Task.start_link(fn ->
    -      __MODULE__.handle_event(event)
    -    end)
    -
    -    {:noreply, state}
    -  end

    - -

    running-multiple-consumers

    +is the default implementation:

      def handle_info({:event, event}, state) do
    +    Task.start_link(fn ->
    +      __MODULE__.handle_event(event)
    +    end)
    +
    +    {:noreply, state}
    +  end

    + + - Running multiple consumers + Running multiple consumers

    Every process that is in a Nostrum.ConsumerGroup receives every event: it is therefore not recommended to create multiple consumers if a single one could accomplish the job.

    - -

    example-consumer

    +
    + - Example consumer + Example consumer

    An example consumer could look as follows:

    # Sourced from examples/event_consumer.ex
    -defmodule ExampleSupervisor do
    +defmodule ExampleSupervisor do
       use Supervisor
     
    -  def start_link(args) do
    -    Supervisor.start_link(__MODULE__, args, name: __MODULE__)
    -  end
    +  def start_link(args) do
    +    Supervisor.start_link(__MODULE__, args, name: __MODULE__)
    +  end
     
       @impl true
    -  def init(_init_arg) do
    -    children = [ExampleConsumer]
    +  def init(_init_arg) do
    +    children = [ExampleConsumer]
     
    -    Supervisor.init(children, strategy: :one_for_one)
    -  end
    -end
    +    Supervisor.init(children, strategy: :one_for_one)
    +  end
    +end
     
    -defmodule ExampleConsumer do
    +defmodule ExampleConsumer do
       use Nostrum.Consumer
     
       alias Nostrum.Api
     
    -  def handle_event({:MESSAGE_CREATE, msg, _ws_state}) do
    -    case msg.content do
    +  def handle_event({:MESSAGE_CREATE, msg, _ws_state}) do
    +    case msg.content do
           "!sleep" ->
    -        Api.create_message(msg.channel_id, "Going to sleep...")
    +        Api.create_message(msg.channel_id, "Going to sleep...")
             # This won't stop other events from being handled.
    -        Process.sleep(3000)
    +        Process.sleep(3000)
     
           "!ping" ->
    -        Api.create_message(msg.channel_id, "pyongyang!")
    +        Api.create_message(msg.channel_id, "pyongyang!")
     
           "!raise" ->
             # This won't crash the entire Consumer.
    @@ -178,34 +207,34 @@ 

    _ -> :ignore - end - end + end + end # Default event handler, if you don't include this, your consumer WILL crash if # you don't have a method definition for each event type. - def handle_event(_event) do + def handle_event(_event) do :noop - end -end + end +end

    - -

    use-nostrum-consumer

    +
    + - use Nostrum.Consumer + use Nostrum.Consumer

    Using Nostrum.Consumer will:

    • use GenServer (as the consumer is built on GenServer)
    • set the behaviour to Nostrum.Consumer
    • define child_spec/1, start_link/1 and init/1 for the GenServer to automatically join the Nostrum.ConsumerGroup on boot
    • define handle_info/2 to automatically dispatch any events to your handle_event/1 via a Task
    • inject a default handle_event/1 clause to ignore any unhandled events.
    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -793,9 +822,8 @@

    - Link to this section -Types + Types

    @@ -2834,9 +2862,8 @@

    webhooks_update()

    - Link to this section -Callbacks + Callbacks

    @@ -2865,56 +2892,54 @@

    handle_event(event)

    Callback used to handle events.

    - -

    event

    +
    + - Event + Event

    event is a tuple describing the event. The tuple will include information in -the following format:

    {event_name, {event_payload(s)}, WSState.t}

    For example, a message create will look like this

    {:MESSAGE_CREATE, Nostrum.Struct.Message.t, WSState.t}

    In some cases there will be multiple payloads when something is updated, so as +the following format:

    {event_name, {event_payload(s)}, WSState.t}

    For example, a message create will look like this

    {:MESSAGE_CREATE, Nostrum.Struct.Message.t, WSState.t}

    In some cases there will be multiple payloads when something is updated, so as to include the new and the old versions. In the event of there being two payloads, -the old payload will always be first, followed by the new payload.

    {:USER_UPDATE, {old_user :: Nostrum.Struct.User.t, new_user :: Nostrum.Struct.User.t}, WSState.t()}

    For a full listing of events, please see Nostrum.Consumer.event/0.

    +the old payload will always be first, followed by the new payload.

    {:USER_UPDATE, {old_user :: Nostrum.Struct.User.t, new_user :: Nostrum.Struct.User.t}, WSState.t()}

    For a full listing of events, please see Nostrum.Consumer.event/0.

    -
    +
    - + diff --git a/Nostrum.ConsumerGroup.html b/Nostrum.ConsumerGroup.html index 364ea0c4a..545e6d3dc 100644 --- a/Nostrum.ConsumerGroup.html +++ b/Nostrum.ConsumerGroup.html @@ -4,20 +4,19 @@ - + + Nostrum.ConsumerGroup — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.ConsumerGroup - (Nostrum v0.9.0-alpha3) + Nostrum.ConsumerGroup + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Registers consumers and handles event dispatch.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -202,9 +231,8 @@

    - Link to this section -Functions + Functions

    @@ -357,10 +385,10 @@

    join(pid)

    terminates.

    Note that there is currently no filtering done. If the gateway sends a lot of messages and the event subscriber does not terminate swiftly, its message queue will keep growing.

    - -

    example

    +
    + - Example + Example

    The following example illustrates how to use this to implement inline event awaiting:

    defmodule MyBot.Command
    @@ -369,17 +397,17 @@ 

    join(pid)

    alias Nostrum.Struct.Message alias Nostrum.Struct.User - def command(%Message{author: %User{id: author_id}}) do - Api.create_message!(msg, "Reply 'y' in 5 seconds to confirm ordering a large burger menu.") - ConsumerGroup.join() - receive do - {:event, {:MESSAGE_CREATE, %Message{author: %User{id: author_id}, content: "y"}, _}} -> - Api.create_message!(msg, "The large burger menu is coming.") - after + def command(%Message{author: %User{id: author_id}}) do + Api.create_message!(msg, "Reply 'y' in 5 seconds to confirm ordering a large burger menu.") + ConsumerGroup.join() + receive do + {:event, {:MESSAGE_CREATE, %Message{author: %User{id: author_id}, content: "y"}, _}} -> + Api.create_message!(msg, "The large burger menu is coming.") + after 5_000 -> - Api.create_message!(msg, "Too slow!") - end - end + Api.create_message!(msg, "Too slow!") + end + end end
    @@ -444,41 +472,39 @@

    start_link(opts)

    -
    +
    - + diff --git a/Nostrum.Error.ApiError.html b/Nostrum.Error.ApiError.html index a2cb99b0d..6f9d8fdc6 100644 --- a/Nostrum.Error.ApiError.html +++ b/Nostrum.Error.ApiError.html @@ -4,20 +4,19 @@ - + + Nostrum.Error.ApiError — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Error.ApiError exception - (Nostrum v0.9.0-alpha3) + Nostrum.Error.ApiError exception + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Represents a failed response from the API.

    This occurs when :gun fails, or when the API doesn't respond with 200 or 204. This should only be raised explicitly when using the banged API methods.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -201,9 +230,8 @@

    - Link to this section -Types + Types

    @@ -440,41 +468,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Error.CacheError.html b/Nostrum.Error.CacheError.html index e91c7fd0d..1cf91c4a2 100644 --- a/Nostrum.Error.CacheError.html +++ b/Nostrum.Error.CacheError.html @@ -4,20 +4,19 @@ - + + Nostrum.Error.CacheError — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,122 +35,151 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Error.CacheError exception - (Nostrum v0.9.0-alpha3) + Nostrum.Error.CacheError exception + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Represents an error when interacting with the cache.

    This likely occurs because a specified item could not be found in the cache, or your were searching for something invalid. This should only occur when using the banged cache methods.

    -
    +
    +
    -
    +
    - +
    diff --git a/Nostrum.Error.VoiceError.html b/Nostrum.Error.VoiceError.html index ef8bdad04..47ad1245c 100644 --- a/Nostrum.Error.VoiceError.html +++ b/Nostrum.Error.VoiceError.html @@ -4,20 +4,19 @@ - + + Nostrum.Error.VoiceError — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,121 +35,150 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Error.VoiceError exception - (Nostrum v0.9.0-alpha3) + Nostrum.Error.VoiceError exception + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Represents an error when playing sound through voice channels.

    This occurs when attempting to play audio and the file can't be found for the ffmpeg, youtube-dl, or streamlink executables.

    -
    +
    +
    -
    +
    - +
    diff --git a/Nostrum.Permission.html b/Nostrum.Permission.html index 78f8d85a4..b176b9a2b 100644 --- a/Nostrum.Permission.html +++ b/Nostrum.Permission.html @@ -4,20 +4,19 @@ - + + Nostrum.Permission — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,101 +35,131 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Permission - (Nostrum v0.9.0-alpha3) + Nostrum.Permission + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Functions that work on permissions.

    Some functions return a list of permissions. You can use enumerable functions to work with permissions:

    alias Nostrum.Cache.GuildCache
     alias Nostrum.Struct.Guild.Member
     
    -guild = GuildCache.get!(279093381723062272)
    -member = Map.get(guild.members, 177888205536886784)
    -member_perms = Member.guild_permissions(member, guild)
    +guild = GuildCache.get!(279093381723062272)
    +member = Map.get(guild.members, 177888205536886784)
    +member_perms = Member.guild_permissions(member, guild)
     
    -if :administrator in member_perms do
    -  IO.puts("This user has the administrator permission.")
    -end
    -
    +if :administrator in member_perms do + IO.puts("This user has the administrator permission.") +end +
    +

    - Link to this section - Summary + Summary

    @@ -274,9 +303,8 @@

    - Link to this section -Types + Types

    @@ -497,9 +525,8 @@

    voice_permission()

    - Link to this section -Functions + Functions

    @@ -556,15 +583,15 @@

    from_bit(bit)

    Converts the given bit to a permission.

    This function returns :error if bit does not map to a permission.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Permission.from_bit(0x04000000)
    -{:ok, :change_nickname}
    +
    iex> Nostrum.Permission.from_bit(0x04000000)
    +{:ok, :change_nickname}
     
    -iex> Nostrum.Permission.from_bit(0)
    +iex> Nostrum.Permission.from_bit(0)
     :error
    @@ -594,15 +621,15 @@

    from_bit!(bit)

    Same as from_bit/1, but raises ArgumentError in case of failure.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Permission.from_bit!(0x04000000)
    +
    iex> Nostrum.Permission.from_bit!(0x04000000)
     :change_nickname
     
    -iex> Nostrum.Permission.from_bit!(0)
    +iex> Nostrum.Permission.from_bit!(0)
     ** (ArgumentError) expected a valid bit, got: `0`
    @@ -632,16 +659,16 @@

    from_bitset(bitset)

    Converts the given bitset to a list of permissions.

    If invalid bits are given they will be omitted from the results.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Permission.from_bitset(0x08000002)
    -[:manage_nicknames, :kick_members]
    +
    iex> Nostrum.Permission.from_bitset(0x08000002)
    +[:manage_nicknames, :kick_members]
     
    -iex> Nostrum.Permission.from_bitset(0x4000000000000)
    -[]
    +
    iex> Nostrum.Permission.from_bitset(0x4000000000000) +[]
    @@ -666,15 +693,15 @@

    is_permission(term)

    Returns true if term is a permission; otherwise returns false.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Permission.is_permission(:administrator)
    +
    iex> Nostrum.Permission.is_permission(:administrator)
     true
     
    -iex> Nostrum.Permission.is_permission(:not_a_permission)
    +iex> Nostrum.Permission.is_permission(:not_a_permission)
     false
    @@ -704,12 +731,12 @@

    to_bit(permission)

    Converts the given permission to a bit.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Permission.to_bit(:administrator)
    +
    iex> Nostrum.Permission.to_bit(:administrator)
     8
    @@ -739,12 +766,12 @@

    to_bitset(permissions)

    Converts the given enumerable of permissions to a bitset.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Permission.to_bitset([:administrator, :create_instant_invite])
    +
    iex> Nostrum.Permission.to_bitset([:administrator, :create_instant_invite])
     9
    @@ -752,41 +779,39 @@

    to_bitset(permissions)

    - - + diff --git a/Nostrum.Shard.Session.html b/Nostrum.Shard.Session.html index 27222ca74..a17ef0d8e 100644 --- a/Nostrum.Shard.Session.html +++ b/Nostrum.Shard.Session.html @@ -4,20 +4,19 @@ - + + Nostrum.Shard.Session — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,100 +35,130 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Shard.Session - (Nostrum v0.9.0-alpha3) + Nostrum.Shard.Session + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Manages a single shard's gateway connection.

    - -

    purpose

    +
    + - Purpose + Purpose

    Discord's gateway sends us events over websocket. The shard session state machine concerns it self with parsing these events and dispatching them to clients as appropriate.

    - -

    internal-module

    +
    + - Internal module + Internal module

    This module is intended for exclusive usage inside of nostrum, and is documented for completeness and people curious to look behind the covers.

    - -

    inner-workings

    +
    + - Inner workings + Inner workings

    The session is implemented via :gen_statem and can be in one of the following states:

    • disconnected: when no connection is up at all. On initial connection of @@ -145,16 +174,16 @@

      new data from the gateway, and takes care of heartbeating. If Discord fails to respond to our heartbeats, we close down the full connection and attempt to re-establish and resume events.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -270,9 +299,8 @@

    - Link to this section -Functions + Functions

    @@ -545,41 +573,39 @@

    update_voice_state(pid, guild_id, channel_i

    -
    +
    - +
    diff --git a/Nostrum.Shard.Supervisor.html b/Nostrum.Shard.Supervisor.html index 541ad307f..9522fec18 100644 --- a/Nostrum.Shard.Supervisor.html +++ b/Nostrum.Shard.Supervisor.html @@ -4,20 +4,19 @@ - + + Nostrum.Shard.Supervisor — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,85 +35,115 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Shard.Supervisor - (Nostrum v0.9.0-alpha3) + Nostrum.Shard.Supervisor + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Supervises shard processes.

    - -

    implementation

    +
    + - Implementation + Implementation

    As events are sent to the shard, the following happens:

    1. Shard looks to see what type of event it is, only dispatch events are sent to the producer.

    2. If the event is a Dispatch, the payload is converted to an atom-keyed map. @@ -132,16 +161,16 @@

      often match the payload described by the official Discord API documentation.

    3. The shard instructs the websocket client that it's ready to read more data. This prevents flooding the shard with messages that it may not be able to handle yet, thus growing the message queue and the memory usage.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -191,9 +220,8 @@

    - Link to this section -Functions + Functions

    @@ -288,41 +316,39 @@

    update_voice_state(guild_id, channel_id, se

    -
    +
    - +
    diff --git a/Nostrum.Snowflake.html b/Nostrum.Snowflake.html index ac0444240..3239f051c 100644 --- a/Nostrum.Snowflake.html +++ b/Nostrum.Snowflake.html @@ -4,20 +4,19 @@ - + + Nostrum.Snowflake — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Snowflake - (Nostrum v0.9.0-alpha3) + Nostrum.Snowflake + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Functions that work on Snowflakes.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -232,9 +261,8 @@

    - Link to this section -Types + Types

    @@ -303,9 +331,8 @@

    t()

    - Link to this section -Functions + Functions

    @@ -334,24 +361,24 @@

    cast(value)

    Attempts to convert a term into a snowflake.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Snowflake.cast(200317799350927360)
    -{:ok, 200317799350927360}
    +
    iex> Nostrum.Snowflake.cast(200317799350927360)
    +{:ok, 200317799350927360}
     
    -iex> Nostrum.Snowflake.cast("200317799350927360")
    -{:ok, 200317799350927360}
    +iex> Nostrum.Snowflake.cast("200317799350927360")
    +{:ok, 200317799350927360}
     
    -iex> Nostrum.Snowflake.cast(nil)
    -{:ok, nil}
    +iex> Nostrum.Snowflake.cast(nil)
    +{:ok, nil}
     
    -iex> Nostrum.Snowflake.cast(true)
    +iex> Nostrum.Snowflake.cast(true)
     :error
     
    -iex> Nostrum.Snowflake.cast(-1)
    +iex> Nostrum.Snowflake.cast(-1)
     :error
    @@ -409,12 +436,12 @@

    creation_time(snowflake)

    Returns the creation time of the snowflake.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Snowflake.creation_time(177888205536886784)
    +
    iex> Nostrum.Snowflake.creation_time(177888205536886784)
     ~U[2016-05-05 21:04:13.203Z]
    @@ -444,12 +471,12 @@

    dump(snowflake)

    Convert a snowflake into its external representation.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Snowflake.dump(109112383011581952)
    +
    iex> Nostrum.Snowflake.dump(109112383011581952)
     "109112383011581952"
    @@ -480,17 +507,17 @@

    from_datetime(datetime)

    Converts the given datetime into a snowflake.

    If datetime occurred before the discord epoch, the function will return :error.

    The converted snowflake's last 22 bits will be zeroed out due to missing data.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> {:ok, dt, _} = DateTime.from_iso8601("2016-05-05T21:04:13.203Z")
    -iex> Nostrum.Snowflake.from_datetime(dt)
    -{:ok, 177888205536755712}
    +
    iex> {:ok, dt, _} = DateTime.from_iso8601("2016-05-05T21:04:13.203Z")
    +iex> Nostrum.Snowflake.from_datetime(dt)
    +{:ok, 177888205536755712}
     
    -iex> {:ok, dt, _} = DateTime.from_iso8601("1998-12-25T00:00:00.000Z")
    -iex> Nostrum.Snowflake.from_datetime(dt)
    +iex> {:ok, dt, _} = DateTime.from_iso8601("1998-12-25T00:00:00.000Z")
    +iex> Nostrum.Snowflake.from_datetime(dt)
     :error
    @@ -544,21 +571,21 @@

    is_snowflake(term)

    Returns true if term is a snowflake; otherwise returns false.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Snowflake.is_snowflake(89918932789497856)
    +
    iex> Nostrum.Snowflake.is_snowflake(89918932789497856)
     true
     
    -iex> Nostrum.Snowflake.is_snowflake(-1)
    +iex> Nostrum.Snowflake.is_snowflake(-1)
     false
     
    -iex> Nostrum.Snowflake.is_snowflake(0xFFFFFFFFFFFFFFFF + 1)
    +iex> Nostrum.Snowflake.is_snowflake(0xFFFFFFFFFFFFFFFF + 1)
     false
     
    -iex> Nostrum.Snowflake.is_snowflake("117789813427535878")
    +iex> Nostrum.Snowflake.is_snowflake("117789813427535878")
     false
    @@ -566,41 +593,39 @@

    is_snowflake(term)

    - - + diff --git a/Nostrum.StateMachineTranslator.html b/Nostrum.StateMachineTranslator.html index 46e8c80fe..cb22c430b 100644 --- a/Nostrum.StateMachineTranslator.html +++ b/Nostrum.StateMachineTranslator.html @@ -4,20 +4,19 @@ - + + Nostrum.StateMachineTranslator — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.StateMachineTranslator - (Nostrum v0.9.0-alpha3) + Nostrum.StateMachineTranslator + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Translate error reports for :gen_statem modules in Elixir.

    - -

    internal-module

    +
    + - Internal module + Internal module

    This module is intended for exclusive usage inside of nostrum, and is documented for completeness and people curious to look behind the covers.

    - -

    reasoning

    +
    + - Reasoning + Reasoning

    By default, Elixir will ignore these messages altogether, see this ElixirForum @@ -129,16 +158,16 @@

    A possible workaround seems to be using the gen_state_machine library, but pulling in a library purely to have error reporting for something built-in to OTP seems pretty strange to me.

    -

    +
    +

    - Link to this section - Summary + Summary

    @@ -162,9 +191,8 @@

    - Link to this section -Functions + Functions

    @@ -195,41 +223,39 @@

    translate(min_level, arg2, arg3, arg4)

    -
    +
    - +
    diff --git a/Nostrum.Store.GuildShardMapping.ETS.html b/Nostrum.Store.GuildShardMapping.ETS.html index 2553a346e..f887380ae 100644 --- a/Nostrum.Store.GuildShardMapping.ETS.html +++ b/Nostrum.Store.GuildShardMapping.ETS.html @@ -4,20 +4,19 @@ - + + Nostrum.Store.GuildShardMapping.ETS — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,94 +35,124 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Store.GuildShardMapping.ETS - (Nostrum v0.9.0-alpha3) + Nostrum.Store.GuildShardMapping.ETS + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Maintains a mapping of guild IDs to their shard numbers using :ets.

    If programmatic access to the ETS table is needed, please use the table/0 function.

    Please do not use this module directly, apart from special functions such as table/0. Use Nostrum.Store.GuildShardMapping to call the configured mapping instead.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -209,9 +238,8 @@

    - Link to this section -Functions + Functions

    @@ -410,41 +438,39 @@

    table()

    -
    +
    - +
    diff --git a/Nostrum.Store.GuildShardMapping.Mnesia.html b/Nostrum.Store.GuildShardMapping.Mnesia.html index e00992162..02344e4d5 100644 --- a/Nostrum.Store.GuildShardMapping.Mnesia.html +++ b/Nostrum.Store.GuildShardMapping.Mnesia.html @@ -4,20 +4,19 @@ - + + Nostrum.Store.GuildShardMapping.Mnesia — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,93 +35,123 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Store.GuildShardMapping.Mnesia - (Nostrum v0.9.0-alpha3) + Nostrum.Store.GuildShardMapping.Mnesia + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Maintains a mapping of guild IDs to their shard numbers using Mnesia.

    Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information.

    To retrieve the table name used by this cache, use table/0.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -218,9 +247,8 @@

    - Link to this section -Functions + Functions

    @@ -449,41 +477,39 @@

    teardown()

    -
    +
    - +
    diff --git a/Nostrum.Store.GuildShardMapping.html b/Nostrum.Store.GuildShardMapping.html index b3366129c..88830d433 100644 --- a/Nostrum.Store.GuildShardMapping.html +++ b/Nostrum.Store.GuildShardMapping.html @@ -4,20 +4,19 @@ - + + Nostrum.Store.GuildShardMapping — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,111 +35,141 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Store.GuildShardMapping behaviour - (Nostrum v0.9.0-alpha3) + Nostrum.Store.GuildShardMapping behaviour + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Behaviour & dispatcher for storing guild to shard mappings.

    - -

    purpose

    +
    + - Purpose + Purpose

    When nostrum needs to run API calls over the gateway and multiple shards are used, it needs to determine which shard process will run the request. This module stores a mapping of guild IDs to their respective shard numbers. It is unlikely you need to use this module directly yourself.

    - -

    configuration

    +
    + - Configuration + Configuration

    By default, nostrum will use Elixir.Nostrum.Store.GuildShardMapping.ETS to store the mapping. To override this, set the [:stores, :guild_shard_mapping] setting on nostrum's application configuration:

    config :nostrum,
    -  stores: %{
    +  stores: %{
         guild_shard_mapping: MyBot.Nostrum.Store.GuildShardMapping
    -  }

    This setting must be set at compile time.

    -
    + }

    This setting must be set at compile time.

    + +

    - Link to this section - Summary + Summary

    @@ -232,9 +261,8 @@

    - Link to this section -Callbacks + Callbacks

    @@ -365,9 +393,8 @@

    get(id)

    - Link to this section -Functions + Functions

    @@ -446,41 +473,39 @@

    get(guild_id)

    -
    +
    -
    + diff --git a/Nostrum.Store.Supervisor.html b/Nostrum.Store.Supervisor.html index a8143b8e5..1d1c703d0 100644 --- a/Nostrum.Store.Supervisor.html +++ b/Nostrum.Store.Supervisor.html @@ -4,20 +4,19 @@ - + + Nostrum.Store.Supervisor — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Store.Supervisor - (Nostrum v0.9.0-alpha3) + Nostrum.Store.Supervisor + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Supervises processes managing nostrum's internal state.

    Please see the following modules for more details:

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -164,9 +193,8 @@

    - Link to this section -Functions + Functions

    @@ -245,41 +273,39 @@

    start_link(list)

    -
    +
    - +
    diff --git a/Nostrum.Store.UnavailableGuild.ETS.html b/Nostrum.Store.UnavailableGuild.ETS.html index 0657681f3..11f3e91bc 100644 --- a/Nostrum.Store.UnavailableGuild.ETS.html +++ b/Nostrum.Store.UnavailableGuild.ETS.html @@ -4,20 +4,19 @@ - + + Nostrum.Store.UnavailableGuild.ETS — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,94 +35,124 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Store.UnavailableGuild.ETS - (Nostrum v0.9.0-alpha3) + Nostrum.Store.UnavailableGuild.ETS + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Stores guilds that are currently unavailable using :ets.

    If programmatic access to the ETS table is needed, please use the table/0 function.

    Please do not use this module directly, apart from special functions such as tabname/0. Use Nostrum.Store.UnavailableGuild to call the configured mapping instead.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -199,9 +228,8 @@

    - Link to this section -Functions + Functions

    @@ -370,41 +398,39 @@

    table()

    -
    +
    - +
    diff --git a/Nostrum.Store.UnavailableGuild.Mnesia.html b/Nostrum.Store.UnavailableGuild.Mnesia.html index 0bdf2a04a..b851c8b2a 100644 --- a/Nostrum.Store.UnavailableGuild.Mnesia.html +++ b/Nostrum.Store.UnavailableGuild.Mnesia.html @@ -4,20 +4,19 @@ - + + Nostrum.Store.UnavailableGuild.Mnesia — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,93 +35,123 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Store.UnavailableGuild.Mnesia - (Nostrum v0.9.0-alpha3) + Nostrum.Store.UnavailableGuild.Mnesia + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Keeps track of unavailable guilds.

    Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information.

    To retrieve the table name used by this cache, use table/0.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -208,9 +237,8 @@

    - Link to this section -Functions + Functions

    @@ -409,41 +437,39 @@

    teardown()

    -
    +
    - +
    diff --git a/Nostrum.Store.UnavailableGuild.html b/Nostrum.Store.UnavailableGuild.html index fd90a28c3..fb4fc98a4 100644 --- a/Nostrum.Store.UnavailableGuild.html +++ b/Nostrum.Store.UnavailableGuild.html @@ -4,20 +4,19 @@ - + + Nostrum.Store.UnavailableGuild — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,85 +35,115 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Store.UnavailableGuild behaviour - (Nostrum v0.9.0-alpha3) + Nostrum.Store.UnavailableGuild behaviour + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Behaviour & dispatcher for storing unavailable guilds.

    - -

    purpose

    +
    + - Purpose + Purpose

    The GUILD_CREATE gateway event on its own provides no means to determine whether the guild we receive is a guild that the bot joined, or a guild that @@ -122,34 +151,34 @@

    keeps track of unavailable guilds we received to determine whether a guild sent over this event is unavailable or new. It is therefore unlikely this module needs to be used outside of nostrum.

    - -

    configuration

    +
    + - Configuration + Configuration

    By default, nostrum will use Elixir.Nostrum.Store.UnavailableGuild.ETS to store unavailable guilds. To override this, set the [:stores, :unavailable_guilds] setting on nostrum's application configuration:

    config :nostrum,
    -  stores: %{
    +  stores: %{
         unavailable_guilds: MyBot.Nostrum.Store.UnavailableGuild
    -  }

    This setting must be set at compile time.

    - -

    implementation

    + }

    This setting must be set at compile time.

    + + - Implementation + Implementation

    If implementing your own unavailable guild store, in addition to the callbacks of this module, you must also provide the function child_spec/1. The recommended approach is to spawn a Supervisor to manage your store.

    - + +

    - Link to this section - Summary + Summary

    @@ -221,9 +250,8 @@

    - Link to this section -Callbacks + Callbacks

    @@ -324,9 +352,8 @@

    is?(id)

    - Link to this section -Functions + Functions

    @@ -381,41 +408,39 @@

    is?(guild_id)

    -
    +
    -
    + diff --git a/Nostrum.Struct.ApplicationCommand.html b/Nostrum.Struct.ApplicationCommand.html index 77031b68f..def625fc5 100644 --- a/Nostrum.Struct.ApplicationCommand.html +++ b/Nostrum.Struct.ApplicationCommand.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.ApplicationCommand — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.ApplicationCommand - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.ApplicationCommand + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Typespecs for creating Application Commands

    Official reference: https://discord.com/developers/docs/interactions/application-commands

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -242,9 +271,8 @@

    - Link to this section -Types + Types

    @@ -514,10 +542,10 @@

    command_option()

    This defines a command's parameters. Only valid for CHAT_INPUT commands.

    - -

    notes

    +
    + - Notes + Notes

    • required parameters on a command must precede optional ones
    • for subcommands and subcommand groups, :options are its parameters
    • :options and :choices are mutually exclusive
    • :autocomplete must not be set to true if :choices is present
    • if :type is 7 then :channel_types can be a list of allowed channel types
    @@ -586,41 +614,39 @@

    command_type()

    -
    +
    - + diff --git a/Nostrum.Struct.ApplicationCommandInteractionData.html b/Nostrum.Struct.ApplicationCommandInteractionData.html index bbdae2278..da37bb4d4 100644 --- a/Nostrum.Struct.ApplicationCommandInteractionData.html +++ b/Nostrum.Struct.ApplicationCommandInteractionData.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.ApplicationCommandInteractionData — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.ApplicationCommandInteractionData - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.ApplicationCommandInteractionData + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct for interaction data.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -248,9 +277,8 @@

    - Link to this section -Types + Types

    @@ -593,41 +621,39 @@

    target_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.ApplicationCommandInteractionDataOption.html b/Nostrum.Struct.ApplicationCommandInteractionDataOption.html index 43ff9fc7e..a9fe0a792 100644 --- a/Nostrum.Struct.ApplicationCommandInteractionDataOption.html +++ b/Nostrum.Struct.ApplicationCommandInteractionDataOption.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.ApplicationCommandInteractionDataOption — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.ApplicationCommandInteractionDataOption - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.ApplicationCommandInteractionDataOption + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct for command invocation arguments.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -196,9 +225,8 @@

    - Link to this section -Types + Types

    @@ -400,41 +428,39 @@

    value()

    -
    +
    - +
    diff --git a/Nostrum.Struct.ApplicationCommandInteractionDataResolved.html b/Nostrum.Struct.ApplicationCommandInteractionDataResolved.html index 3e835cf90..31d2a9859 100644 --- a/Nostrum.Struct.ApplicationCommandInteractionDataResolved.html +++ b/Nostrum.Struct.ApplicationCommandInteractionDataResolved.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.ApplicationCommandInteractionDataResolved — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.ApplicationCommandInteractionDataResolved - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.ApplicationCommandInteractionDataResolved + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Converted interaction payload.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -206,9 +235,8 @@

    - Link to this section -Types + Types

    @@ -448,41 +476,39 @@

    users()

    -
    +
    - +
    diff --git a/Nostrum.Struct.AutoModerationRule.Action.html b/Nostrum.Struct.AutoModerationRule.Action.html index 888213af3..da0513364 100644 --- a/Nostrum.Struct.AutoModerationRule.Action.html +++ b/Nostrum.Struct.AutoModerationRule.Action.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.AutoModerationRule.Action — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.AutoModerationRule.Action - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.AutoModerationRule.Action + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Defines an action to be taken when a rule is triggered.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -162,9 +191,8 @@

    - Link to this section -Types + Types

    @@ -264,41 +292,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.AutoModerationRule.ActionMetadata.html b/Nostrum.Struct.AutoModerationRule.ActionMetadata.html index 0440c07a4..b90f8b8b2 100644 --- a/Nostrum.Struct.AutoModerationRule.ActionMetadata.html +++ b/Nostrum.Struct.AutoModerationRule.ActionMetadata.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.AutoModerationRule.ActionMetadata — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.AutoModerationRule.ActionMetadata - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.AutoModerationRule.ActionMetadata + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing any additional data used when an action is taken.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -167,9 +196,8 @@

    - Link to this section -Types + Types

    @@ -274,41 +302,39 @@

    timeout_metadata()

    -
    +
    - +
    diff --git a/Nostrum.Struct.AutoModerationRule.TriggerMetadata.html b/Nostrum.Struct.AutoModerationRule.TriggerMetadata.html index b703c5b64..7bdcadfa8 100644 --- a/Nostrum.Struct.AutoModerationRule.TriggerMetadata.html +++ b/Nostrum.Struct.AutoModerationRule.TriggerMetadata.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.AutoModerationRule.TriggerMetadata — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.AutoModerationRule.TriggerMetadata - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.AutoModerationRule.TriggerMetadata + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing the metadata of a trigger.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -166,9 +195,8 @@

    - Link to this section -Types + Types

    @@ -271,41 +299,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.AutoModerationRule.html b/Nostrum.Struct.AutoModerationRule.html index ddea310a6..36bc3252f 100644 --- a/Nostrum.Struct.AutoModerationRule.html +++ b/Nostrum.Struct.AutoModerationRule.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.AutoModerationRule — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.AutoModerationRule - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.AutoModerationRule + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing an auto-moderation rule.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -264,9 +293,8 @@

    - Link to this section -Types + Types

    @@ -675,41 +703,39 @@

    trigger_type()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Channel.html b/Nostrum.Struct.Channel.html index 2a9e51f1d..5e9235429 100644 --- a/Nostrum.Struct.Channel.html +++ b/Nostrum.Struct.Channel.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Channel — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,109 +35,139 @@ } catch (error) { } -
    +
    - - + -
    - -
    -
    + -

    - + + + - - - View Source - +
    + - Nostrum.Struct.Channel - (Nostrum v0.9.0-alpha3) +
    + + +
    +

    + + + + View Source + -

    + Nostrum.Struct.Channel + (Nostrum v0.9.0-alpha3) +

    -
    + +

    Struct and helper functions for working with channels.

    - -

    channel-struct

    +
    + - Channel Struct + Channel Struct

    -

    The channel struct is used by Nostrum to represent a Discord Channel Object. More information can be found on the Discord API Channel Documentation.

    The struct can have one of several forms depending on the type of channel. You can read more about the individual channel types below.

    A typical channel would appear as:

    %Nostrum.Struct.Channel{
    +

    The channel struct is used by Nostrum to represent a Discord Channel Object. More information can be found on the Discord API Channel Documentation.

    The struct can have one of several forms depending on the type of channel. You can read more about the individual channel types below.

    A typical channel would appear as:

    %Nostrum.Struct.Channel{
       guild_id: 766435015768539156,
       id: 827333533688397865,
       name: "announcements",
       nsfw: false,
    -  permission_overwrites: [],
    +  permission_overwrites: [],
       position: 1,
       type: 5,
    -}

    The channel struct implements String.Chars protocol through the mention/1 function. This example uses our channel from the previous code block.

    channel |> to_string()
    +}

    The channel struct implements String.Chars protocol through the mention/1 function. This example uses our channel from the previous code block.

    channel |> to_string()
     "<#766435015768539156>"

    - -

    channel-cache

    +
    + - Channel Cache + Channel Cache

    The ChannelCache module provides functionality for you to retrieve information about any channel that your application can see. It provides two functions: get/1 and get!/1.

    - -

    example

    +
    + - Example + Example

    -
    Nostrum.Cache.ChannelCache.get!(827333533688397865)
    -%Nostrum.Struct.Channel{
    +
    Nostrum.Cache.ChannelCache.get!(827333533688397865)
    +%Nostrum.Struct.Channel{
       application_id: nil,
       bitrate: nil,
       guild_id: 766435015768539156,
    @@ -150,48 +179,48 @@ 

    nsfw: false, owner_id: nil, parent_id: nil, - permission_overwrites: [ - %Nostrum.Struct.Overwrite{ + permission_overwrites: [ + %Nostrum.Struct.Overwrite{ allow: 0, deny: 2048, id: 766435015768539156, type: :role - } - ], + } + ], position: 1, recipients: nil, topic: nil, type: 5, user_limit: nil -}

    More details of the cache can be found at Nostrum.Cache.ChannelCache.

    - -

    helper-functions

    +}

    More details of the cache can be found at Nostrum.Cache.ChannelCache.

    + + - Helper Functions + Helper Functions

    This module contains two functions for assisting with channel structs. mention/1 to convert the channel into a mention as a string, and link/1 to convert the channel into a hyperlink as a string. Further details and examples are detailed in the Functions section of this module.

    - -

    api-functions

    +
    + - Api Functions + Api Functions

    The Nostrum Api contains numerous functions related to channels. Notable functions relating to channels are shown below.

    Note: This is not an exhaustive list, for full details please see the Nostrum.Api module documentation.

    - -

    channel-types

    +
    + - Channel Types + Channel Types

    Channels take the shape of various types depending on their use and not all fields are always used. The currently implemented channel types are detailed below. The type of channel is determined by the :type field.

    This diagram represents the regular channel types 0, 2, 5 and 13.

    Discord Channels

    The currently implemented channel types are:

    Channel Type
    0GUILD_TEXTA text channel within a server
    1DMA direct message between users
    2GUILD_VOICEA voice channel within a server
    3GROUP_DMA direct message between multiple users
    4GUILD_CATEGORYA category that contains up to 50 channels
    5GUILD_NEWSA channel that users can follow and crosspost
    6GUILD_STOREA channel to sell games on Discord
    10GUILD_NEWS_THREADA temporary sub-channel within a news channel
    11GUILD_PUBLIC_THREADA temporary sub-channel within a text channel
    12GUILD_PRIVATE_THREADA temporary private sub-channel within a text channel
    13GUILD_STAGE_VOICEA voice channel for hosting events with an audience
    15GUILD_FORUM_A channel that can only contain threads

    You can use one of the Nostrum.Constants.ChannelType methods.

    More information about Discord Channel Types can be found on the Discord API Channel Type Documentation.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -777,9 +806,8 @@

    - Link to this section -Types + Types

    @@ -2848,9 +2876,8 @@

    voice_channel()

    - Link to this section -Functions + Functions

    @@ -2879,19 +2906,19 @@

    mention(channel)

    Convert a channel into a mention.

    Handles the conversion of a Nostrum.Struct.Channel into the required format to mention the channel within a message. Mentioning the channel will provide a clickable link to take the user to the channel.

    - -

    parameters

    +
    + - Parameters + Parameters

    - -

    examples

    +
    + - Examples + Examples

    -
    Nostrum.Cache.ChannelCache.get(381889573426429952)
    -|> Nostrum.Struct.Channel.mention()
    +
    Nostrum.Cache.ChannelCache.get(381889573426429952)
    +|> Nostrum.Struct.Channel.mention()
     "<#381889573426429952>"
     
    @@ -2900,41 +2927,39 @@

    mention(channel)

    -
    +
    - +
    diff --git a/Nostrum.Struct.Component.ActionRow.html b/Nostrum.Struct.Component.ActionRow.html index 085992ae1..6ab543e94 100644 --- a/Nostrum.Struct.Component.ActionRow.html +++ b/Nostrum.Struct.Component.ActionRow.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Component.ActionRow — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Component.ActionRow - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Component.ActionRow + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Action Rows.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -208,9 +237,8 @@

    - Link to this section -Types + Types

    @@ -268,9 +296,8 @@

    t()

    - Link to this section -Functions + Functions

    @@ -423,41 +450,39 @@

    put_new(component, list_of_components)

    -
    +
    -
    +
    diff --git a/Nostrum.Struct.Component.Button.html b/Nostrum.Struct.Component.Button.html index bf11fc4eb..cfa3b1eb1 100644 --- a/Nostrum.Struct.Component.Button.html +++ b/Nostrum.Struct.Component.Button.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Component.Button — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Component.Button - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Component.Button + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Helpers for dealing with Button Components

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -250,9 +279,8 @@

    - Link to this section -Types + Types

    @@ -453,9 +481,8 @@

    t()

    - Link to this section -Functions + Functions

    @@ -636,41 +663,39 @@

    toggle(button)

    -
    +
    -
    +
    diff --git a/Nostrum.Struct.Component.Option.html b/Nostrum.Struct.Component.Option.html index 829518010..e28c98344 100644 --- a/Nostrum.Struct.Component.Option.html +++ b/Nostrum.Struct.Component.Option.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Component.Option — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Component.Option - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Component.Option + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Component Options

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -192,9 +221,8 @@

    - Link to this section -Types + Types

    @@ -387,41 +415,39 @@

    value()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Component.SelectMenu.html b/Nostrum.Struct.Component.SelectMenu.html index cf5e622a3..78665d072 100644 --- a/Nostrum.Struct.Component.SelectMenu.html +++ b/Nostrum.Struct.Component.SelectMenu.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Component.SelectMenu — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Component.SelectMenu - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Component.SelectMenu + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Select Menu

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -184,9 +213,8 @@

    - Link to this section -Types + Types

    @@ -310,9 +338,8 @@

    t()

    - Link to this section -Functions + Functions

    @@ -363,16 +390,16 @@

    select_menu(custom_id, opts \\ [])

    Creates a select menu that can be used inside an action row.

    Options can be passed as a keyword list.

    - -

    parameters

    +
    + - Parameters + Parameters

    • custom_id - lower case string, used for matching against when your application receives an interaction.

    - -

    options

    +
    + - Options + Options

    • disabled - If the select should be disabled
    • options - A list of options for the select menu, see Nostrum.Struct.Component.Option
    • placeholder - Value to be shown before anything is selected
    • min_values - minimum number of values the user must select, between 0 and 25, default is 1
    • max_values - maximum number of values the user must select, between 0 and 25, default is 1
    @@ -381,41 +408,39 @@

    select_menu(custom_id, opts \\ [])

    -
    +
    -
    +
    diff --git a/Nostrum.Struct.Component.TextInput.html b/Nostrum.Struct.Component.TextInput.html index 2c8ee325d..245f77691 100644 --- a/Nostrum.Struct.Component.TextInput.html +++ b/Nostrum.Struct.Component.TextInput.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Component.TextInput — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Component.TextInput - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Component.TextInput + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Text Input.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -192,9 +221,8 @@

    - Link to this section -Types + Types

    @@ -319,9 +347,8 @@

    t()

    - Link to this section -Functions + Functions

    @@ -402,41 +429,39 @@

    text_input(label, custom_id, opts \\ [])

    -
    +
    -
    +
    diff --git a/Nostrum.Struct.Component.html b/Nostrum.Struct.Component.html index 450e296c0..159248ff0 100644 --- a/Nostrum.Struct.Component.html +++ b/Nostrum.Struct.Component.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Component — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,133 +35,163 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Component behaviour - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Component behaviour + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Components are a framework for adding interactive elements to the messages your app or bot sends. They're accessible, customizable, and easy to use. There are several different types of components; this documentation will outline the basics of this new framework and each example.

    Components have been broken out into individual modules for easy distinction between them and to separate helper functions and individual type checking between component types - especially as more components are added by Discord.

    Each of the components are provided all of the valid types through this module to avoid repetition and allow new components to be added quicker and easier.

    - -

    action-row

    +
    + - Action Row + Action Row

    An Action Row is a non-interactive container component for other types of components. It has a type: 1 and a sub-array of components of other types.

    • You can have up to 5 Action Rows per message
    • An Action Row cannot contain another Action Row
    • An Action Row containing buttons cannot also contain a select menu

    - -

    buttons

    +
    + - Buttons + Buttons

    Buttons are interactive components that render on messages. They have a type: 2, They can be clicked by users. Buttons in Nostrum are further separated into two types, detailed below. Only the Interaction Button will fire a Nostrum.Struct.Interaction when pressed.

    Discord Buttons

    • Buttons must exist inside an Action Row
    • An Action Row can contain up to 5 buttons
    • An Action Row containing buttons cannot also contain a select menu

    For more information check out the Discord API Button Styles for more information.

    • Link buttons do not send an interaction to your app when clicked
    • Link buttons must have a url, and cannot have a custom_id
    • Link buttons will always use style: 5

    Link style: 5

    Link Button

    Discord calls these buttons "Non-link Buttons" due to the fact that they do not contain a url. However it would be more accurate to call them an "Interaction Button" as they do fire an interaction when clicked which is far more useful for your applications interactivity. As such they are referred to as "Interaction Button" throughout the rest of this module.

    • Interaction buttons must have a custom_id, and cannot have a url
    • Can have one of the below :style applied.

    Primary style: 1

    Primary

    Secondary style: 2

    Secondary

    Success style: 3

    Success

    Danger style: 4

    Danger (1)

    - -

    emoji-buttons

    +
    + - 🐼 Emoji Buttons + 🐼 Emoji Buttons

    Note: The discord documentation and marketing material in relation to buttons indicates that there are three kinds of buttons: 🐼 Emoji Buttons, Link Buttons & Non-Link Buttons. When in fact all buttons can contain an emoji. Because of this reason 🐼 Emoji Buttons are not included as a separate type. Emojis will be instead handled by the two included ( superior ) button types.

    emoji buttons in action

    The field requirements are already becoming convoluted especially considering everything so far is all still a "Component". Using the sub types and helper functions will ensure all of the rules are followed when creating components.

    - -

    select-menu

    +
    + - Select Menu + Select Menu

    Select menus are another interactive component that renders on messages. On desktop, clicking on a select menu opens a dropdown-style UI; on mobile, tapping a select menu opens up a half-sheet with the options.

    Discord Selects

    Select menus support single-select and multi-select behavior, meaning you can prompt a user to choose just one item from a list, or multiple. When a user finishes making their choice by clicking out of the dropdown or closing the half-sheet, your app will receive an interaction.

    • Select menus must be sent inside an Action Row
    • An Action Row can contain only one select menu
    • An Action Row containing a select menu cannot also contain buttons

    - -

    text-input

    +
    + - Text Input + Text Input

    Text inputs are an interactive component that render on modals. They can be used to collect short-form or long-form text.

    • Text inputs must be sent inside an Action Row
    • An Action Row can contain only one text input
    • An Action Row containing a text input cannot also contain buttons or a select menu

    Can be used to collect short-form or long-form text.

    • For short-form text, use style: 1
    • For long-form text, use style: 2

    Text inputs are only allowed to be sent as part of an Interaction response that opens a MODAL.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -388,9 +417,8 @@

    - Link to this section -Types + Types

    @@ -925,9 +953,8 @@

    value()

    - Link to this section -Callbacks + Callbacks

    @@ -998,9 +1025,8 @@

    update(t, opts)

    - Link to this section -Functions + Functions

    @@ -1037,41 +1063,39 @@

    to_struct(map)

    -
    +
    -
    +
    diff --git a/Nostrum.Struct.Embed.Author.html b/Nostrum.Struct.Embed.Author.html index 4a1f8f09f..05ecfe482 100644 --- a/Nostrum.Struct.Embed.Author.html +++ b/Nostrum.Struct.Embed.Author.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Embed.Author — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Embed.Author - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Embed.Author + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord embed author.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -184,9 +213,8 @@

    - Link to this section -Types + Types

    @@ -338,41 +366,39 @@

    url()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Embed.Field.html b/Nostrum.Struct.Embed.Field.html index c2f121474..b89304b32 100644 --- a/Nostrum.Struct.Embed.Field.html +++ b/Nostrum.Struct.Embed.Field.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Embed.Field — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Embed.Field - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Embed.Field + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord embed field.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -299,41 +327,39 @@

    value()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Embed.Footer.html b/Nostrum.Struct.Embed.Footer.html index fe3f6acce..f3dd21d3f 100644 --- a/Nostrum.Struct.Embed.Footer.html +++ b/Nostrum.Struct.Embed.Footer.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Embed.Footer — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Embed.Footer - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Embed.Footer + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord embed footer.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -299,41 +327,39 @@

    text()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Embed.Image.html b/Nostrum.Struct.Embed.Image.html index e7f40588e..c76131107 100644 --- a/Nostrum.Struct.Embed.Image.html +++ b/Nostrum.Struct.Embed.Image.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Embed.Image — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Embed.Image - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Embed.Image + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord embed image.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -184,9 +213,8 @@

    - Link to this section -Types + Types

    @@ -338,41 +366,39 @@

    width()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Embed.Provider.html b/Nostrum.Struct.Embed.Provider.html index eaec017be..93c5c8247 100644 --- a/Nostrum.Struct.Embed.Provider.html +++ b/Nostrum.Struct.Embed.Provider.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Embed.Provider — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Embed.Provider - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Embed.Provider + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord embed provider.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -164,9 +193,8 @@

    - Link to this section -Types + Types

    @@ -257,41 +285,39 @@

    url()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Embed.Thumbnail.html b/Nostrum.Struct.Embed.Thumbnail.html index b0fa4edf9..073bc3677 100644 --- a/Nostrum.Struct.Embed.Thumbnail.html +++ b/Nostrum.Struct.Embed.Thumbnail.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Embed.Thumbnail — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Embed.Thumbnail - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Embed.Thumbnail + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord embed thumbnail.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -184,9 +213,8 @@

    - Link to this section -Types + Types

    @@ -338,41 +366,39 @@

    width()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Embed.Video.html b/Nostrum.Struct.Embed.Video.html index 65dc5ebb0..a11b15c1f 100644 --- a/Nostrum.Struct.Embed.Video.html +++ b/Nostrum.Struct.Embed.Video.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Embed.Video — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Embed.Video - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Embed.Video + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord embed video.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -295,41 +323,39 @@

    width()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Embed.html b/Nostrum.Struct.Embed.html index 1d6612f96..23a12157c 100644 --- a/Nostrum.Struct.Embed.html +++ b/Nostrum.Struct.Embed.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Embed — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,157 +35,187 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Embed behaviour - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Embed behaviour + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Functions that work on Discord embeds.

    - -

    building-embeds

    +
    + - Building Embeds + Building Embeds

    Nostrum.Struct.Embeds can be built using this module's builder functions or standard Map syntax:

    iex> import Nostrum.Struct.Embed
     ...> embed =
    -...>   %Nostrum.Struct.Embed{}
    -...>   |> put_title("craig")
    -...>   |> put_description("nostrum")
    -...>   |> put_url("https://google.com/")
    -...>   |> put_timestamp("2016-05-05T21:04:13.203Z")
    -...>   |> put_color(431_948)
    -...>   |> put_field("Field 1", "Test")
    -...>   |> put_field("Field 2", "More test", true)
    +...>   %Nostrum.Struct.Embed{}
    +...>   |> put_title("craig")
    +...>   |> put_description("nostrum")
    +...>   |> put_url("https://google.com/")
    +...>   |> put_timestamp("2016-05-05T21:04:13.203Z")
    +...>   |> put_color(431_948)
    +...>   |> put_field("Field 1", "Test")
    +...>   |> put_field("Field 2", "More test", true)
     ...> embed
    -%Nostrum.Struct.Embed{
    +%Nostrum.Struct.Embed{
       title: "craig",
       description: "nostrum",
       url: "https://google.com/",
       timestamp: "2016-05-05T21:04:13.203Z",
       color: 431_948,
    -  fields: [
    -    %Nostrum.Struct.Embed.Field{name: "Field 1", value: "Test"},
    -    %Nostrum.Struct.Embed.Field{name: "Field 2", value: "More test", inline: true}
    -  ]
    -}

    - -

    using-structs

    + fields: [ + %Nostrum.Struct.Embed.Field{name: "Field 1", value: "Test"}, + %Nostrum.Struct.Embed.Field{name: "Field 2", value: "More test", inline: true} + ] +}

    + + - Using structs + Using structs

    You can also create Nostrum.Struct.Embeds from structs, by using the -Nostrum.Struct.Embed module. Here's how the example above could be build using structs

      defmodule MyApp.MyStruct do
    +Nostrum.Struct.Embed module. Here's how the example above could be build using structs

      defmodule MyApp.MyStruct do
         use Nostrum.Struct.Embed
     
    -    defstruct []
    +    defstruct []
     
    -    def title(_), do: "craig"
    -    def description(_), do: "nostrum"
    -    def url(_), do: "https://google.com/"
    -    def timestamp(_), do: "2016-05-05T21:04:13.203Z"
    -    def color(_), do: 431_948
    +    def title(_), do: "craig"
    +    def description(_), do: "nostrum"
    +    def url(_), do: "https://google.com/"
    +    def timestamp(_), do: "2016-05-05T21:04:13.203Z"
    +    def color(_), do: 431_948
     
    -    def fields(_) do
    -      [
    -        %Nostrum.Struct.Embed.Field{name: "Field 1", value: "Test"},
    -        %Nostrum.Struct.Embed.Field{name: "Field 2", value: "More test", inline: true}
    -      ]
    -    end
    -  end
    +    def fields(_) do
    +      [
    +        %Nostrum.Struct.Embed.Field{name: "Field 1", value: "Test"},
    +        %Nostrum.Struct.Embed.Field{name: "Field 2", value: "More test", inline: true}
    +      ]
    +    end
    +  end
     
    -iex> Nostrum.Struct.Embed.from(%MyApp.MyStruct{})
    -%Nostrum.Struct.Embed{
    +iex> Nostrum.Struct.Embed.from(%MyApp.MyStruct{})
    +%Nostrum.Struct.Embed{
       title: "craig",
       description: "nostrum",
       url: "https://google.com/",
       timestamp: "2016-05-05T21:04:13.203Z",
       color: 431_948,
    -  fields: [
    -    %Nostrum.Struct.Embed.Field{name: "Field 1", value: "Test"},
    -    %Nostrum.Struct.Embed.Field{name: "Field 2", value: "More test", inline: true}
    -  ]
    -}

    See this modules callbacks for a list of all the functions that can be implemented.

    The implementation of these callbacks is optional. Not implemented functions will simply + fields: [ + %Nostrum.Struct.Embed.Field{name: "Field 1", value: "Test"}, + %Nostrum.Struct.Embed.Field{name: "Field 2", value: "More test", inline: true} + ] +}

    See this modules callbacks for a list of all the functions that can be implemented.

    The implementation of these callbacks is optional. Not implemented functions will simply be ignored.

    -

    +
    +

    - Link to this section - Summary + Summary

    @@ -542,9 +571,8 @@

    - Link to this section -Types + Types

    @@ -961,9 +989,8 @@

    video()

    - Link to this section -Callbacks + Callbacks

    @@ -1254,9 +1281,8 @@

    url(struct)

    - Link to this section -Functions + Functions

    @@ -1312,20 +1338,20 @@

    put_author(embed, name, url, icon_url)

    Puts a Nostrum.Struct.Embed.Author under :author in embed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_author(embed, "skippi", "https://github.com/skippi", nil)
    -%Nostrum.Struct.Embed{
    -  author: %Nostrum.Struct.Embed.Author{
    +
    iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_author(embed, "skippi", "https://github.com/skippi", nil)
    +%Nostrum.Struct.Embed{
    +  author: %Nostrum.Struct.Embed.Author{
         name: "skippi",
         url: "https://github.com/skippi",
         icon_url: nil
    -  }
    -}
    +
    } +}
    @@ -1354,14 +1380,14 @@

    put_color(embed, value)

    Puts the given value under :color in embed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_color(embed, 431948)
    -%Nostrum.Struct.Embed{color: 431948}
    +
    iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_color(embed, 431948)
    +%Nostrum.Struct.Embed{color: 431948}
    @@ -1390,14 +1416,14 @@

    put_description(embed, value)

    Puts the given value under :description in embed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_description(embed, "An elixir library for the discord API.")
    -%Nostrum.Struct.Embed{description: "An elixir library for the discord API."}
    +
    iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_description(embed, "An elixir library for the discord API.")
    +%Nostrum.Struct.Embed{description: "An elixir library for the discord API."}
    @@ -1433,31 +1459,31 @@

    put_field(embed, name, value, inline \\ nil

    Adds a Nostrum.Struct.Embed.Field under :fields in embed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_field(embed, "First User", "b1nzy")
    -%Nostrum.Struct.Embed{
    -  fields: [
    -    %Nostrum.Struct.Embed.Field{name: "First User", value: "b1nzy"}
    -  ]
    -}
    -
    -iex> embed = %Nostrum.Struct.Embed{
    -...>   fields: [
    -...>     %Nostrum.Struct.Embed.Field{name: "First User", value: "b1nzy"}
    -...>   ]
    -...> }
    -...> Nostrum.Struct.Embed.put_field(embed, "Second User", "Danny")
    -%Nostrum.Struct.Embed{
    -  fields: [
    -    %Nostrum.Struct.Embed.Field{name: "First User", value: "b1nzy"},
    -    %Nostrum.Struct.Embed.Field{name: "Second User", value: "Danny"}
    -  ]
    -}
    +
    iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_field(embed, "First User", "b1nzy")
    +%Nostrum.Struct.Embed{
    +  fields: [
    +    %Nostrum.Struct.Embed.Field{name: "First User", value: "b1nzy"}
    +  ]
    +}
    +
    +iex> embed = %Nostrum.Struct.Embed{
    +...>   fields: [
    +...>     %Nostrum.Struct.Embed.Field{name: "First User", value: "b1nzy"}
    +...>   ]
    +...> }
    +...> Nostrum.Struct.Embed.put_field(embed, "Second User", "Danny")
    +%Nostrum.Struct.Embed{
    +  fields: [
    +    %Nostrum.Struct.Embed.Field{name: "First User", value: "b1nzy"},
    +    %Nostrum.Struct.Embed.Field{name: "Second User", value: "Danny"}
    +  ]
    +}
    @@ -1492,28 +1518,28 @@

    put_footer(embed, text, icon_url \\ nil)

    Puts a Nostrum.Struct.Embed.Footer under :footer in embed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_footer(embed, "Discord API", nil)
    -%Nostrum.Struct.Embed{
    -  footer: %Nostrum.Struct.Embed.Footer{
    +
    iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_footer(embed, "Discord API", nil)
    +%Nostrum.Struct.Embed{
    +  footer: %Nostrum.Struct.Embed.Footer{
         text: "Discord API",
         icon_url: nil
    -  }
    -}
    +  }
    +}
     
    -iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_footer(embed, "nostrum footer", "https://discord.com/assets/53ef346458017da2062aca5c7955946b.svg")
    -%Nostrum.Struct.Embed{
    -  footer: %Nostrum.Struct.Embed.Footer{
    +iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_footer(embed, "nostrum footer", "https://discord.com/assets/53ef346458017da2062aca5c7955946b.svg")
    +%Nostrum.Struct.Embed{
    +  footer: %Nostrum.Struct.Embed.Footer{
         text: "nostrum footer",
         icon_url: "https://discord.com/assets/53ef346458017da2062aca5c7955946b.svg"
    -  }
    -}
    +
    } +}
    @@ -1542,18 +1568,18 @@

    put_image(embed, url)

    Puts a Nostrum.Struct.Embed.Image under :image in embed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_image(embed, "https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg")
    -%Nostrum.Struct.Embed{
    -  image: %Nostrum.Struct.Embed.Image{
    +
    iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_image(embed, "https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg")
    +%Nostrum.Struct.Embed{
    +  image: %Nostrum.Struct.Embed.Image{
         url: "https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg"
    -  }
    -}
    +
    } +}
    @@ -1582,18 +1608,18 @@

    put_thumbnail(embed, url)

    Puts a Nostrum.Struct.Embed.Thumbnail under :thumbnail in embed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_thumbnail(embed, "https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg")
    -%Nostrum.Struct.Embed{
    -  thumbnail: %Nostrum.Struct.Embed.Thumbnail{
    +
    iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_thumbnail(embed, "https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg")
    +%Nostrum.Struct.Embed{
    +  thumbnail: %Nostrum.Struct.Embed.Thumbnail{
         url: "https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg"
    -  }
    -}
    +
    } +}
    @@ -1622,14 +1648,14 @@

    put_timestamp(embed, value)

    Puts the given value under :timestamp in embed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_timestamp(embed, "2018-04-21T17:33:51.893000Z")
    -%Nostrum.Struct.Embed{timestamp: "2018-04-21T17:33:51.893000Z"}
    +
    iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_timestamp(embed, "2018-04-21T17:33:51.893000Z")
    +%Nostrum.Struct.Embed{timestamp: "2018-04-21T17:33:51.893000Z"}
    @@ -1658,14 +1684,14 @@

    put_title(embed, value)

    Puts the given value under :title in embed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_title(embed, "nostrum")
    -%Nostrum.Struct.Embed{title: "nostrum"}
    +
    iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_title(embed, "nostrum")
    +%Nostrum.Struct.Embed{title: "nostrum"}
    @@ -1694,55 +1720,53 @@

    put_url(embed, value)

    Puts the given value under :url in embed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> embed = %Nostrum.Struct.Embed{}
    -...> Nostrum.Struct.Embed.put_url(embed, "https://github.com/Kraigie/nostrum")
    -%Nostrum.Struct.Embed{url: "https://github.com/Kraigie/nostrum"}
    +
    iex> embed = %Nostrum.Struct.Embed{}
    +...> Nostrum.Struct.Embed.put_url(embed, "https://github.com/Kraigie/nostrum")
    +%Nostrum.Struct.Embed{url: "https://github.com/Kraigie/nostrum"}
    - - + diff --git a/Nostrum.Struct.Emoji.html b/Nostrum.Struct.Emoji.html index 9a7addfe2..ad687a975 100644 --- a/Nostrum.Struct.Emoji.html +++ b/Nostrum.Struct.Emoji.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Emoji — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,117 +35,147 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Emoji - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Emoji + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord emoji.

    - -

    mentioning-emojis-in-messages

    +
    + - Mentioning Emojis in Messages + Mentioning Emojis in Messages

    A Nostrum.Struct.Emoji can be mentioned in message content using the String.Chars -protocol or mention/1.

    emoji = %Nostrum.Struct.Emoji{id: 437093487582642177, name: "foxbot"}
    -Nostrum.Api.create_message!(184046599834435585, "#{emoji}")
    -%Nostrum.Struct.Message{content: "<:foxbot:437093487582642177>"}
    -
    -emoji = %Nostrum.Struct.Emoji{id: 436885297037312001, name: "tealixir"}
    -Nostrum.Api.create_message!(280085880452939778, "#{Nostrum.Struct.Emoji.mention(emoji)}")
    -%Nostrum.Struct.Message{content: "<:tealixir:436885297037312001>"}

    - -

    using-emojis-in-the-api

    +protocol or
    mention/1.

    emoji = %Nostrum.Struct.Emoji{id: 437093487582642177, name: "foxbot"}
    +Nostrum.Api.create_message!(184046599834435585, "#{emoji}")
    +%Nostrum.Struct.Message{content: "<:foxbot:437093487582642177>"}
    +
    +emoji = %Nostrum.Struct.Emoji{id: 436885297037312001, name: "tealixir"}
    +Nostrum.Api.create_message!(280085880452939778, "#{Nostrum.Struct.Emoji.mention(emoji)}")
    +%Nostrum.Struct.Message{content: "<:tealixir:436885297037312001>"}

    + + - Using Emojis in the Api + Using Emojis in the Api

    A Nostrum.Struct.Emoji can be used in Nostrum.Api by using its api name -or the struct itself.

    emoji = %Nostrum.Struct.Emoji{id: 436885297037312001, name: "tealixir"}
    -Nostrum.Api.create_reaction(381889573426429952, 436247584349356032, Nostrum.Struct.Emoji.api_name(emoji))
    -{:ok}
    +or the struct itself.

    emoji = %Nostrum.Struct.Emoji{id: 436885297037312001, name: "tealixir"}
    +Nostrum.Api.create_reaction(381889573426429952, 436247584349356032, Nostrum.Struct.Emoji.api_name(emoji))
    +{:ok}
     
    -emoji = %Nostrum.Struct.Emoji{id: 436189601820966923, name: "elixir"}
    -Nostrum.Api.create_reaction(381889573426429952, 436247584349356032, emoji)
    -{:ok}

    See Nostrum.Struct.Emoji.api_name/0 for more information.

    -
    +emoji = %Nostrum.Struct.Emoji{id: 436189601820966923, name: "elixir"} +Nostrum.Api.create_reaction(381889573426429952, 436247584349356032, emoji) +{:ok}

    See Nostrum.Struct.Emoji.api_name/0 for more information.

    +
    +

    - Link to this section - Summary + Summary

    @@ -287,9 +316,8 @@

    - Link to this section -Types + Types

    @@ -349,10 +377,10 @@

    api_name()

    structured as "id:name". If it is an unicode emoji, it can be structured as any of the following:

    • "name"
    • A base 16 unicode emoji string.

    api_name/1 is a convenience function that returns a Nostrum.Struct.Emoji's api name.

    - -

    examples

    +
    + - Examples + Examples

    # Custom Emojis
     "nostrum:431890438091489"
    @@ -575,9 +603,8 @@ 

    user()

    - Link to this section -Functions + Functions

    @@ -606,17 +633,17 @@

    api_name(emoji)

    Formats an emoji struct into its Nostrum.Struct.Emoji.api_name/0.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> emoji = %Nostrum.Struct.Emoji{name: "Γ¡É"}
    -...> Nostrum.Struct.Emoji.api_name(emoji)
    +
    iex> emoji = %Nostrum.Struct.Emoji{name: "Γ¡É"}
    +...> Nostrum.Struct.Emoji.api_name(emoji)
     "Γ¡É"
     
    -iex> emoji = %Nostrum.Struct.Emoji{id: 437093487582642177, name: "foxbot"}
    -...> Nostrum.Struct.Emoji.api_name(emoji)
    +iex> emoji = %Nostrum.Struct.Emoji{id: 437093487582642177, name: "foxbot"}
    +...> Nostrum.Struct.Emoji.api_name(emoji)
     "foxbot:437093487582642177"
    @@ -647,21 +674,21 @@

    image_url(emoji)

    Returns the url of a custom emoji's image. If the emoji is not a custom one, returns nil.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> emoji = %Nostrum.Struct.Emoji{id: 450225070569291776}
    -iex> Nostrum.Struct.Emoji.image_url(emoji)
    +
    iex> emoji = %Nostrum.Struct.Emoji{id: 450225070569291776}
    +iex> Nostrum.Struct.Emoji.image_url(emoji)
     "https://cdn.discordapp.com/emojis/450225070569291776.png"
     
    -iex> emoji = %Nostrum.Struct.Emoji{id: 406140226998894614, animated: true}
    -iex> Nostrum.Struct.Emoji.image_url(emoji)
    +iex> emoji = %Nostrum.Struct.Emoji{id: 406140226998894614, animated: true}
    +iex> Nostrum.Struct.Emoji.image_url(emoji)
     "https://cdn.discordapp.com/emojis/406140226998894614.gif"
     
    -iex> emoji = %Nostrum.Struct.Emoji{id: nil, name: "Γ¡É"}
    -iex> Nostrum.Struct.Emoji.image_url(emoji)
    +iex> emoji = %Nostrum.Struct.Emoji{id: nil, name: "Γ¡É"}
    +iex> Nostrum.Struct.Emoji.image_url(emoji)
     nil
    @@ -691,21 +718,21 @@

    mention(emoji)

    Formats an Nostrum.Struct.Emoji into a mention.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> emoji = %Nostrum.Struct.Emoji{name: "👍"}
    -...> Nostrum.Struct.Emoji.mention(emoji)
    +
    iex> emoji = %Nostrum.Struct.Emoji{name: "👍"}
    +...> Nostrum.Struct.Emoji.mention(emoji)
     "👍"
     
    -iex> emoji = %Nostrum.Struct.Emoji{id: 436885297037312001, name: "tealixir"}
    -...> Nostrum.Struct.Emoji.mention(emoji)
    +iex> emoji = %Nostrum.Struct.Emoji{id: 436885297037312001, name: "tealixir"}
    +...> Nostrum.Struct.Emoji.mention(emoji)
     "<:tealixir:436885297037312001>"
     
    -iex> emoji = %Nostrum.Struct.Emoji{id: 437016804309860372, name: "blobseizure", animated: true}
    -...> Nostrum.Struct.Emoji.mention(emoji)
    +iex> emoji = %Nostrum.Struct.Emoji{id: 437016804309860372, name: "blobseizure", animated: true}
    +...> Nostrum.Struct.Emoji.mention(emoji)
     "<a:blobseizure:437016804309860372>"
    @@ -713,41 +740,39 @@

    mention(emoji)

    - - + diff --git a/Nostrum.Struct.Event.AutoModerationRuleExecute.html b/Nostrum.Struct.Event.AutoModerationRuleExecute.html index 77dce3837..2a41d9784 100644 --- a/Nostrum.Struct.Event.AutoModerationRuleExecute.html +++ b/Nostrum.Struct.Event.AutoModerationRuleExecute.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.AutoModerationRuleExecute — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.AutoModerationRuleExecute - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.AutoModerationRuleExecute + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent when an auto-moderation rule executes. (e.g. message is blocked).

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -255,9 +284,8 @@

    - Link to this section -Types + Types

    @@ -636,41 +664,39 @@

    user_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.ChannelPinsUpdate.html b/Nostrum.Struct.Event.ChannelPinsUpdate.html index cc0a3d401..cff3ef432 100644 --- a/Nostrum.Struct.Event.ChannelPinsUpdate.html +++ b/Nostrum.Struct.Event.ChannelPinsUpdate.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.ChannelPinsUpdate — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.ChannelPinsUpdate - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.ChannelPinsUpdate + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Represents an update to channel pins.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -176,9 +205,8 @@

    - Link to this section -Types + Types

    @@ -309,41 +337,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.GuildBanAdd.html b/Nostrum.Struct.Event.GuildBanAdd.html index 8079a4f91..d1a7f205b 100644 --- a/Nostrum.Struct.Event.GuildBanAdd.html +++ b/Nostrum.Struct.Event.GuildBanAdd.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.GuildBanAdd — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.GuildBanAdd - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.GuildBanAdd + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent when a user is banned from a guild

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -166,9 +195,8 @@

    - Link to this section -Types + Types

    @@ -265,41 +293,39 @@

    user()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.GuildBanRemove.html b/Nostrum.Struct.Event.GuildBanRemove.html index c730286ab..a485f8435 100644 --- a/Nostrum.Struct.Event.GuildBanRemove.html +++ b/Nostrum.Struct.Event.GuildBanRemove.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.GuildBanRemove — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.GuildBanRemove - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.GuildBanRemove + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent when a user is unbanned from a guild

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -166,9 +195,8 @@

    - Link to this section -Types + Types

    @@ -265,41 +293,39 @@

    user()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.GuildIntegrationDelete.html b/Nostrum.Struct.Event.GuildIntegrationDelete.html index 0b367156f..21cd10e1a 100644 --- a/Nostrum.Struct.Event.GuildIntegrationDelete.html +++ b/Nostrum.Struct.Event.GuildIntegrationDelete.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.GuildIntegrationDelete — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.GuildIntegrationDelete - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.GuildIntegrationDelete + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Event fired when a guild integration is deleted.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -307,41 +335,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.GuildIntegrationsUpdate.html b/Nostrum.Struct.Event.GuildIntegrationsUpdate.html index 4e96769c9..01b6f8ca7 100644 --- a/Nostrum.Struct.Event.GuildIntegrationsUpdate.html +++ b/Nostrum.Struct.Event.GuildIntegrationsUpdate.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.GuildIntegrationsUpdate — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.GuildIntegrationsUpdate - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.GuildIntegrationsUpdate + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent when a guild integration is updated

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -156,9 +185,8 @@

    - Link to this section -Types + Types

    @@ -225,41 +253,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.GuildScheduledEventUserAdd.html b/Nostrum.Struct.Event.GuildScheduledEventUserAdd.html index 096a9fcf3..e536b7b47 100644 --- a/Nostrum.Struct.Event.GuildScheduledEventUserAdd.html +++ b/Nostrum.Struct.Event.GuildScheduledEventUserAdd.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.GuildScheduledEventUserAdd — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.GuildScheduledEventUserAdd - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.GuildScheduledEventUserAdd + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a guild scheduled event user add event.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -307,41 +335,39 @@

    user_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.GuildScheduledEventUserRemove.html b/Nostrum.Struct.Event.GuildScheduledEventUserRemove.html index cecf5ca83..9673c88ef 100644 --- a/Nostrum.Struct.Event.GuildScheduledEventUserRemove.html +++ b/Nostrum.Struct.Event.GuildScheduledEventUserRemove.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.GuildScheduledEventUserRemove — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.GuildScheduledEventUserRemove - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.GuildScheduledEventUserRemove + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a guild scheduled event user remove event.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -307,41 +335,39 @@

    user_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.InviteCreate.html b/Nostrum.Struct.Event.InviteCreate.html index c53457238..642b938ef 100644 --- a/Nostrum.Struct.Event.InviteCreate.html +++ b/Nostrum.Struct.Event.InviteCreate.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.InviteCreate — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.InviteCreate - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.InviteCreate + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing an Invite Create event

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -254,9 +283,8 @@

    - Link to this section -Types + Types

    @@ -611,41 +639,39 @@

    uses()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.InviteDelete.html b/Nostrum.Struct.Event.InviteDelete.html index e5f0ebff8..cd76bb025 100644 --- a/Nostrum.Struct.Event.InviteDelete.html +++ b/Nostrum.Struct.Event.InviteDelete.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.InviteDelete — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.InviteDelete - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.InviteDelete + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing an Invite Delete event

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -299,41 +327,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.MessageDelete.html b/Nostrum.Struct.Event.MessageDelete.html index 1439ed0a1..b3f7343d3 100644 --- a/Nostrum.Struct.Event.MessageDelete.html +++ b/Nostrum.Struct.Event.MessageDelete.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.MessageDelete — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.MessageDelete - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.MessageDelete + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Message Delete event

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -299,41 +327,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.MessageDeleteBulk.html b/Nostrum.Struct.Event.MessageDeleteBulk.html index 02dc1586e..292186fb1 100644 --- a/Nostrum.Struct.Event.MessageDeleteBulk.html +++ b/Nostrum.Struct.Event.MessageDeleteBulk.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.MessageDeleteBulk — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.MessageDeleteBulk - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.MessageDeleteBulk + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Message Delete Bulk event

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -299,41 +327,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.MessageReactionAdd.html b/Nostrum.Struct.Event.MessageReactionAdd.html index bdb51739d..0950dc0e3 100644 --- a/Nostrum.Struct.Event.MessageReactionAdd.html +++ b/Nostrum.Struct.Event.MessageReactionAdd.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.MessageReactionAdd — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.MessageReactionAdd - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.MessageReactionAdd + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent when a user adds a reaction to a message

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -206,9 +235,8 @@

    - Link to this section -Types + Types

    @@ -432,41 +460,39 @@

    user_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.MessageReactionRemove.html b/Nostrum.Struct.Event.MessageReactionRemove.html index 81c2350f8..90fb576ad 100644 --- a/Nostrum.Struct.Event.MessageReactionRemove.html +++ b/Nostrum.Struct.Event.MessageReactionRemove.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.MessageReactionRemove — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.MessageReactionRemove - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.MessageReactionRemove + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent when a user removes a reaction from a message

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -196,9 +225,8 @@

    - Link to this section -Types + Types

    @@ -391,41 +419,39 @@

    user_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.MessageReactionRemoveAll.html b/Nostrum.Struct.Event.MessageReactionRemoveAll.html index bde61f280..2ec8650bf 100644 --- a/Nostrum.Struct.Event.MessageReactionRemoveAll.html +++ b/Nostrum.Struct.Event.MessageReactionRemoveAll.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.MessageReactionRemoveAll — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.MessageReactionRemoveAll - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.MessageReactionRemoveAll + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent when a user explicitly removes all reactions from a message

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -176,9 +205,8 @@

    - Link to this section -Types + Types

    @@ -309,41 +337,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.MessageReactionRemoveEmoji.html b/Nostrum.Struct.Event.MessageReactionRemoveEmoji.html index 6957a047a..1440412e7 100644 --- a/Nostrum.Struct.Event.MessageReactionRemoveEmoji.html +++ b/Nostrum.Struct.Event.MessageReactionRemoveEmoji.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.MessageReactionRemoveEmoji — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.MessageReactionRemoveEmoji - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.MessageReactionRemoveEmoji + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent when a bot removes all instances of a given emoji from the reactions of a message

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -186,9 +215,8 @@

    - Link to this section -Types + Types

    @@ -350,41 +378,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.PartialApplication.html b/Nostrum.Struct.Event.PartialApplication.html index 1871dfab1..416235797 100644 --- a/Nostrum.Struct.Event.PartialApplication.html +++ b/Nostrum.Struct.Event.PartialApplication.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.PartialApplication — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.PartialApplication - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.PartialApplication + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent on READY

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -166,9 +195,8 @@

    - Link to this section -Types + Types

    @@ -265,41 +293,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.PollVoteChange.html b/Nostrum.Struct.Event.PollVoteChange.html index e72a84053..eb6df5960 100644 --- a/Nostrum.Struct.Event.PollVoteChange.html +++ b/Nostrum.Struct.Event.PollVoteChange.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.PollVoteChange — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.PollVoteChange - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.PollVoteChange + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Represents an addition or removal of a vote from a Discord poll.

    For polls where multiple answers were selected, one of these events will be fired for each vote.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -206,9 +235,8 @@

    - Link to this section -Types + Types

    @@ -418,41 +446,39 @@

    user_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.Ready.html b/Nostrum.Struct.Event.Ready.html index a37731c80..c9e12cbdb 100644 --- a/Nostrum.Struct.Event.Ready.html +++ b/Nostrum.Struct.Event.Ready.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.Ready — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.Ready - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.Ready + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent after initial handshake with the gateway

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -207,9 +236,8 @@

    - Link to this section -Types + Types

    @@ -436,41 +464,39 @@

    v()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.SpeakingUpdate.html b/Nostrum.Struct.Event.SpeakingUpdate.html index 654e6baba..981306fcb 100644 --- a/Nostrum.Struct.Event.SpeakingUpdate.html +++ b/Nostrum.Struct.Event.SpeakingUpdate.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.SpeakingUpdate — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.SpeakingUpdate - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.SpeakingUpdate + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Nostrum-generated Speaking Update event

    Nostrum will generate this event when the bot starts or stops playing audio.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -194,9 +223,8 @@

    - Link to this section -Types + Types

    @@ -381,41 +409,39 @@

    timed_out()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.ThreadListSync.html b/Nostrum.Struct.Event.ThreadListSync.html index 66d023315..22c278943 100644 --- a/Nostrum.Struct.Event.ThreadListSync.html +++ b/Nostrum.Struct.Event.ThreadListSync.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.ThreadListSync — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.ThreadListSync - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.ThreadListSync + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Thread List Sync event.

    This event is sent when the user gains access to a channel.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -186,9 +215,8 @@

    - Link to this section -Types + Types

    @@ -352,41 +380,39 @@

    threads()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.ThreadMembersUpdate.html b/Nostrum.Struct.Event.ThreadMembersUpdate.html index c863c5307..3c8b3221c 100644 --- a/Nostrum.Struct.Event.ThreadMembersUpdate.html +++ b/Nostrum.Struct.Event.ThreadMembersUpdate.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.ThreadMembersUpdate — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.ThreadMembersUpdate - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.ThreadMembersUpdate + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a thread members update event.

    This event is sent whenever a user is added or removed from a thread.

    If the current user does not have the GUILD_MEMBERS intent, this event will only be sent when the current user is added to or removed from a thread.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -195,9 +224,8 @@

    - Link to this section -Types + Types

    @@ -390,41 +418,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.TypingStart.html b/Nostrum.Struct.Event.TypingStart.html index 5897f47e7..47c3dd6da 100644 --- a/Nostrum.Struct.Event.TypingStart.html +++ b/Nostrum.Struct.Event.TypingStart.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.TypingStart — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.TypingStart - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.TypingStart + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent when a user starts typing in a channel

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -196,9 +225,8 @@

    - Link to this section -Types + Types

    @@ -391,41 +419,39 @@

    user_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.VoiceReady.html b/Nostrum.Struct.Event.VoiceReady.html index ff3c7afa2..afc3379cf 100644 --- a/Nostrum.Struct.Event.VoiceReady.html +++ b/Nostrum.Struct.Event.VoiceReady.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.VoiceReady — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,94 +35,124 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.VoiceReady - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.VoiceReady + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Nostrum-generated Voice Ready event

    Nostrum will generate this event when the bot joins a voice channel and is ready to play audio.

    Listening to this event may be used for bots that begin playing audio directly after joining a voice channel as an alternative to waiting until Nostrum.Voice.ready?/1 returns true.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -167,9 +196,8 @@

    - Link to this section -Types + Types

    @@ -269,41 +297,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.VoiceServerUpdate.html b/Nostrum.Struct.Event.VoiceServerUpdate.html index 62942c448..93114ca62 100644 --- a/Nostrum.Struct.Event.VoiceServerUpdate.html +++ b/Nostrum.Struct.Event.VoiceServerUpdate.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.VoiceServerUpdate — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.VoiceServerUpdate - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.VoiceServerUpdate + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Sent when a guild's voice server is updated

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -176,9 +205,8 @@

    - Link to this section -Types + Types

    @@ -309,41 +337,39 @@

    token()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Event.VoiceState.html b/Nostrum.Struct.Event.VoiceState.html index 310346ec6..f62b0493e 100644 --- a/Nostrum.Struct.Event.VoiceState.html +++ b/Nostrum.Struct.Event.VoiceState.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Event.VoiceState — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Event.VoiceState - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Event.VoiceState + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Represents a user's voice connection status

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -276,9 +305,8 @@

    - Link to this section -Types + Types

    @@ -719,41 +747,39 @@

    user_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Guild.AuditLog.html b/Nostrum.Struct.Guild.AuditLog.html index 7d02bdcbf..ab25d84c5 100644 --- a/Nostrum.Struct.Guild.AuditLog.html +++ b/Nostrum.Struct.Guild.AuditLog.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.AuditLog — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.AuditLog - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.AuditLog + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Represents a guild's audit log.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -299,41 +327,39 @@

    webhooks()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Guild.AuditLogEntry.html b/Nostrum.Struct.Guild.AuditLogEntry.html index 6def88b6a..a5e4d2990 100644 --- a/Nostrum.Struct.Guild.AuditLogEntry.html +++ b/Nostrum.Struct.Guild.AuditLogEntry.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.AuditLogEntry — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.AuditLogEntry - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.AuditLogEntry + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Represents a single entry in the guild's audit log.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -215,9 +244,8 @@

    - Link to this section -Types + Types

    @@ -465,41 +493,39 @@

    user_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Guild.Ban.html b/Nostrum.Struct.Guild.Ban.html index 332c11a33..c455038be 100644 --- a/Nostrum.Struct.Guild.Ban.html +++ b/Nostrum.Struct.Guild.Ban.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.Ban — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.Ban - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.Ban + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Represents a guild ban.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -164,9 +193,8 @@

    - Link to this section -Types + Types

    @@ -263,41 +291,39 @@

    user()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Guild.Integration.Account.html b/Nostrum.Struct.Guild.Integration.Account.html index fe7763990..3df06747f 100644 --- a/Nostrum.Struct.Guild.Integration.Account.html +++ b/Nostrum.Struct.Guild.Integration.Account.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.Integration.Account — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.Integration.Account - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.Integration.Account + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord guild's integration account.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -164,9 +193,8 @@

    - Link to this section -Types + Types

    @@ -263,41 +291,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Guild.Integration.Application.html b/Nostrum.Struct.Guild.Integration.Application.html index 8573f900b..b9c352aab 100644 --- a/Nostrum.Struct.Guild.Integration.Application.html +++ b/Nostrum.Struct.Guild.Integration.Application.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.Integration.Application — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.Integration.Application - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.Integration.Application + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord Guild Integration Application.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -204,9 +233,8 @@

    - Link to this section -Types + Types

    @@ -430,41 +458,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Guild.Integration.html b/Nostrum.Struct.Guild.Integration.html index 3ca5791d1..98b89c656 100644 --- a/Nostrum.Struct.Guild.Integration.html +++ b/Nostrum.Struct.Guild.Integration.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.Integration — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,99 +35,129 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.Integration - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.Integration + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord guild integration.

    The struct defined here only has the fields provided for Discord Bot integrations available. If you use Nostrum in a non-bot application, feel free to open an issue to add it.

    - -

    references

    +
    + - References + References

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -224,9 +253,8 @@

    - Link to this section -Types + Types

    @@ -481,41 +509,39 @@

    type()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Guild.Member.html b/Nostrum.Struct.Guild.Member.html index a0a328bc0..db4ed6e7c 100644 --- a/Nostrum.Struct.Guild.Member.html +++ b/Nostrum.Struct.Guild.Member.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.Member — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,105 +35,135 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.Member - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.Member + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord guild member.

    A Nostrum.Struct.Guild.Member stores a Nostrum.Struct.User's properties pertaining to a specific Nostrum.Struct.Guild.

    - -

    mentioning-members-in-messages

    +
    + - Mentioning Members in Messages + Mentioning Members in Messages

    A Nostrum.Struct.Guild.Member can be mentioned in message content using the String.Chars -protocol or mention/1.

    member = %Nostrum.Struct.Guild.Member{user_id: 120571255635181568}
    -Nostrum.Api.create_message!(184046599834435585, "#{member}")
    -%Nostrum.Struct.Message{content: "<@120571255635181568>"}
    +protocol or mention/1.

    member = %Nostrum.Struct.Guild.Member{user_id: 120571255635181568}
    +Nostrum.Api.create_message!(184046599834435585, "#{member}")
    +%Nostrum.Struct.Message{content: "<@120571255635181568>"}
     
    -member = %Nostrum.Struct.Guild.Member{user_id: 89918932789497856}
    -Nostrum.Api.create_message!(280085880452939778, "#{Nostrum.Struct.Guild.Member.mention(member)}")
    -%Nostrum.Struct.Message{content: "<@89918932789497856>"}
    -
    +member = %Nostrum.Struct.Guild.Member{user_id: 89918932789497856} +Nostrum.Api.create_message!(280085880452939778, "#{Nostrum.Struct.Guild.Member.mention(member)}") +%Nostrum.Struct.Message{content: "<@89918932789497856>"} +
    +

    - Link to this section - Summary + Summary

    @@ -287,9 +316,8 @@

    - Link to this section -Types + Types

    @@ -570,9 +598,8 @@

    user_id()

    - Link to this section -Functions + Functions

    @@ -607,15 +634,15 @@

    guild_channel_permissions(member, guild, ch

    Returns a member's permissions in a guild channel, based on its Nostrum.Struct.Overwrites.

    - -

    examples

    +
    + - Examples + Examples

    -
    guild = Nostrum.Cache.GuildCache.get!(279093381723062272)
    -member = Map.get(guild.members, 177888205536886784)
    +
    guild = Nostrum.Cache.GuildCache.get!(279093381723062272)
    +member = Map.get(guild.members, 177888205536886784)
     channel_id = 381889573426429952
    -Nostrum.Struct.Guild.Member.guild_channel_permissions(member, guild, channel_id)
    +Nostrum.Struct.Guild.Member.guild_channel_permissions(member, guild, channel_id)
     #=> [:manage_messages]
    @@ -645,14 +672,14 @@

    guild_permissions(member, guild)

    Returns a member's guild permissions.

    - -

    examples

    +
    + - Examples + Examples

    -
    guild = Nostrum.Cache.GuildCache.get!(279093381723062272)
    -member = Map.get(guild.members, 177888205536886784)
    -Nostrum.Struct.Guild.Member.guild_permissions(member, guild)
    +
    guild = Nostrum.Cache.GuildCache.get!(279093381723062272)
    +member = Map.get(guild.members, 177888205536886784)
    +Nostrum.Struct.Guild.Member.guild_permissions(member, guild)
     #=> [:administrator]
    @@ -682,13 +709,13 @@

    mention(member)

    Formats a Nostrum.Struct.Guild.Member into a mention.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> member = %Nostrum.Struct.Guild.Member{user_id: 177888205536886784}
    -...> Nostrum.Struct.Guild.Member.mention(member)
    +
    iex> member = %Nostrum.Struct.Guild.Member{user_id: 177888205536886784}
    +...> Nostrum.Struct.Guild.Member.mention(member)
     "<@177888205536886784>"
    @@ -720,16 +747,16 @@

    top_role(member, guild)

    Return the topmost role of the given member on the given guild.

    The topmost role is determined via t:Nostrum.Struct.Guild.Role.position.

    - -

    parameters

    +
    + - Parameters + Parameters

    • member: The member whose top role to return.
    • guild: The guild which the member belongs to.

    - -

    return-value

    +
    + - Return value + Return value

    The topmost role of the member on the given guild, if the member has roles assigned. Otherwise, nil is returned.

    @@ -739,41 +766,39 @@

    top_role(member, guild)

    - - + diff --git a/Nostrum.Struct.Guild.Role.html b/Nostrum.Struct.Guild.Role.html index aa7f733df..ff08d158c 100644 --- a/Nostrum.Struct.Guild.Role.html +++ b/Nostrum.Struct.Guild.Role.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.Role — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,104 +35,134 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.Role - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.Role + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord role.

    - -

    mentioning-roles-in-messages

    +
    + - Mentioning Roles in Messages + Mentioning Roles in Messages

    A Nostrum.Struct.Guild.Role can be mentioned in message content using the String.Chars -protocol or mention/1.

    role = %Nostrum.Struct.Guild.Role{id: 431886897539973131}
    -Nostrum.Api.create_message!(184046599834435585, "#{role}")
    -%Nostrum.Struct.Message{}
    +protocol or mention/1.

    role = %Nostrum.Struct.Guild.Role{id: 431886897539973131}
    +Nostrum.Api.create_message!(184046599834435585, "#{role}")
    +%Nostrum.Struct.Message{}
     
    -role = %Nostrum.Struct.Guild.Role{id: 431884023535632398}
    -Nostrum.Api.create_message!(280085880452939778, "#{Nostrum.Struct.Guild.Role.mention(role)}")
    -%Nostrum.Struct.Message{}
    -
    +role = %Nostrum.Struct.Guild.Role{id: 431884023535632398} +Nostrum.Api.create_message!(280085880452939778, "#{Nostrum.Struct.Guild.Role.mention(role)}") +%Nostrum.Struct.Message{} +
    +

    - Link to this section - Summary + Summary

    @@ -273,9 +302,8 @@

    - Link to this section -Types + Types

    @@ -609,9 +637,8 @@

    unicode_emoji()

    - Link to this section -Functions + Functions

    @@ -640,13 +667,13 @@

    mention(role)

    Formats an Nostrum.Struct.Role into a mention.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> role = %Nostrum.Struct.Guild.Role{id: 431886639627763722}
    -...> Nostrum.Struct.Guild.Role.mention(role)
    +
    iex> role = %Nostrum.Struct.Guild.Role{id: 431886639627763722}
    +...> Nostrum.Struct.Guild.Role.mention(role)
     "<@&431886639627763722>"
    @@ -654,41 +681,39 @@

    mention(role)

    -
    +
    - + diff --git a/Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.html b/Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.html index f73512d35..bc80c8cdb 100644 --- a/Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.html +++ b/Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing any additional metadata associated with a Guild Event.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -154,9 +183,8 @@

    - Link to this section -Types + Types

    @@ -223,41 +251,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Guild.ScheduledEvent.User.html b/Nostrum.Struct.Guild.ScheduledEvent.User.html index 0faf600f2..76f2fecb0 100644 --- a/Nostrum.Struct.Guild.ScheduledEvent.User.html +++ b/Nostrum.Struct.Guild.ScheduledEvent.User.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.ScheduledEvent.User — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.ScheduledEvent.User - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.ScheduledEvent.User + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a user in a guild's scheduled event.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -188,9 +217,8 @@

    - Link to this section -Types + Types

    @@ -325,9 +353,8 @@

    user()

    - Link to this section -Functions + Functions

    @@ -358,41 +385,39 @@

    to_struct(map)

    -
    +
    -
    +
    diff --git a/Nostrum.Struct.Guild.ScheduledEvent.html b/Nostrum.Struct.Guild.ScheduledEvent.html index ff25f0a06..b01b0b94d 100644 --- a/Nostrum.Struct.Guild.ScheduledEvent.html +++ b/Nostrum.Struct.Guild.ScheduledEvent.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.ScheduledEvent — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.ScheduledEvent - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.ScheduledEvent + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a scheduled event in a guild.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -311,9 +340,8 @@

    - Link to this section -Types + Types

    @@ -797,9 +825,8 @@

    user_count()

    - Link to this section -Functions + Functions

    @@ -828,41 +855,39 @@

    to_struct(map)

    -
    +
    -
    +
    diff --git a/Nostrum.Struct.Guild.UnavailableGuild.html b/Nostrum.Struct.Guild.UnavailableGuild.html index 5d61fd1c3..d5b975c48 100644 --- a/Nostrum.Struct.Guild.UnavailableGuild.html +++ b/Nostrum.Struct.Guild.UnavailableGuild.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild.UnavailableGuild — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild.UnavailableGuild - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild.UnavailableGuild + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing an unavailable Discord guild.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -178,9 +207,8 @@

    - Link to this section -Types + Types

    @@ -278,9 +306,8 @@

    unavailable()

    - Link to this section -Functions + Functions

    @@ -309,41 +336,39 @@

    to_struct(map)

    -
    +
    -
    +
    diff --git a/Nostrum.Struct.Guild.html b/Nostrum.Struct.Guild.html index 25d3ee13e..ef32c3464 100644 --- a/Nostrum.Struct.Guild.html +++ b/Nostrum.Struct.Guild.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Guild — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Guild - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Guild + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord guild.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -512,9 +541,8 @@

    - Link to this section -Types + Types

    @@ -1637,9 +1665,8 @@

    widget_enabled()

    - Link to this section -Functions + Functions

    @@ -1670,20 +1697,20 @@

    icon_url(guild, image_format \\ "webp&

    Returns the URL of a guild's icon, or nil if there is no icon.

    Supported image formats are PNG, JPEG, and WebP.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> guild = %Nostrum.Struct.Guild{icon: "86e39f7ae3307e811784e2ffd11a7310",
    -...>                               id: 41771983423143937}
    -iex> Nostrum.Struct.Guild.icon_url(guild)
    +
    iex> guild = %Nostrum.Struct.Guild{icon: "86e39f7ae3307e811784e2ffd11a7310",
    +...>                               id: 41771983423143937}
    +iex> Nostrum.Struct.Guild.icon_url(guild)
     "https://cdn.discordapp.com/icons/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.webp"
    -iex> Nostrum.Struct.Guild.icon_url(guild, "png")
    +iex> Nostrum.Struct.Guild.icon_url(guild, "png")
     "https://cdn.discordapp.com/icons/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.png"
     
    -iex> guild = %Nostrum.Struct.Guild{icon: nil}
    -iex> Nostrum.Struct.Guild.icon_url(guild)
    +iex> guild = %Nostrum.Struct.Guild{icon: nil}
    +iex> Nostrum.Struct.Guild.icon_url(guild)
     nil
    @@ -1715,20 +1742,20 @@

    splash_url(guild, image_format \\ "web

    Returns the URL of a guild's splash, or nil if there is no splash.

    Supported image formats are PNG, JPEG, and WebP.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> guild = %Nostrum.Struct.Guild{splash: "86e39f7ae3307e811784e2ffd11a7310",
    -...>                               id: 41771983423143937}
    -iex> Nostrum.Struct.Guild.splash_url(guild)
    +
    iex> guild = %Nostrum.Struct.Guild{splash: "86e39f7ae3307e811784e2ffd11a7310",
    +...>                               id: 41771983423143937}
    +iex> Nostrum.Struct.Guild.splash_url(guild)
     "https://cdn.discordapp.com/splashes/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.webp"
    -iex> Nostrum.Struct.Guild.splash_url(guild, "png")
    +iex> Nostrum.Struct.Guild.splash_url(guild, "png")
     "https://cdn.discordapp.com/splashes/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.png"
     
    -iex> guild = %Nostrum.Struct.Guild{splash: nil}
    -iex> Nostrum.Struct.Guild.splash_url(guild)
    +iex> guild = %Nostrum.Struct.Guild{splash: nil}
    +iex> Nostrum.Struct.Guild.splash_url(guild)
     nil
    @@ -1736,41 +1763,39 @@

    splash_url(guild, image_format \\ "web

    -
    +
    - +
    diff --git a/Nostrum.Struct.Interaction.html b/Nostrum.Struct.Interaction.html index e50b6c976..21f5acc1b 100644 --- a/Nostrum.Struct.Interaction.html +++ b/Nostrum.Struct.Interaction.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Interaction — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Interaction - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Interaction + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Application command and Component invocation struct.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -286,9 +315,8 @@

    - Link to this section -Types + Types

    @@ -743,41 +771,39 @@

    version()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Invite.html b/Nostrum.Struct.Invite.html index 8d0d6a2f3..e6ded7411 100644 --- a/Nostrum.Struct.Invite.html +++ b/Nostrum.Struct.Invite.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Invite — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Invite - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Invite + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord invite.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -294,9 +323,8 @@

    - Link to this section -Types + Types

    @@ -779,41 +807,39 @@

    uses()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Message.Activity.html b/Nostrum.Struct.Message.Activity.html index d0cc479df..fc19b7761 100644 --- a/Nostrum.Struct.Message.Activity.html +++ b/Nostrum.Struct.Message.Activity.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Activity — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Activity - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Activity + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord message activity.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -164,9 +193,8 @@

    - Link to this section -Types + Types

    @@ -257,41 +285,39 @@

    type()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Message.Application.html b/Nostrum.Struct.Message.Application.html index c73259114..2f0ebdbe6 100644 --- a/Nostrum.Struct.Message.Application.html +++ b/Nostrum.Struct.Message.Application.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Application — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Application - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Application + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord message application.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -194,9 +223,8 @@

    - Link to this section -Types + Types

    @@ -377,41 +405,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Message.Attachment.html b/Nostrum.Struct.Message.Attachment.html index b3c0a709f..2a1b6d8e1 100644 --- a/Nostrum.Struct.Message.Attachment.html +++ b/Nostrum.Struct.Message.Attachment.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Attachment — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Attachment - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Attachment + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord message attachment.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -214,9 +243,8 @@

    - Link to this section -Types + Types

    @@ -455,41 +483,39 @@

    width()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Message.Component.html b/Nostrum.Struct.Message.Component.html index b3cb71225..89264dfb5 100644 --- a/Nostrum.Struct.Message.Component.html +++ b/Nostrum.Struct.Message.Component.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Component — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,93 +35,123 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Component - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Component + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A component attached to a message.

    Note that the fields present depend on the type/0 of the component object.

    See the Discord API Component Object Documentation for more information.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -308,9 +337,8 @@

    - Link to this section -Types + Types

    @@ -625,10 +653,10 @@

    options()

    Choices of the select menu.

    Maximum of 25 options. Only present for select menus.

    - -

    references

    +
    + - References + References

    See Discord Developer Portal: Select Option Structure.

    @@ -722,22 +750,22 @@

    style()

    An integer representing the style of the button or text input.

    Only present for buttons and text input.

    - -

    values-button

    +
    + - Values (Button) + Values (Button)

    • 1: Primary - blurple, custom_id required.
    • 2: Secondary - grey, custom_id required.
    • 3: Success - green, custom_id required.
    • 4: Danger - red, custom_id required.
    • 5: Link - grey, url required, navigates to the URL.

    - -

    values-text-input

    +
    + - Values (Text Input) + Values (Text Input)

    • 1: Short - A single line text input.
    • 2: Paragraph - A multi-line text input.

    - -

    references

    +
    + - References + References

    See Discord Developer Portal: Button Styles.

    @@ -818,16 +846,16 @@

    type()

    Component type.

    This field is always set.

    - -

    values

    +
    + - Values + Values

    • 1: Action Row - A container for other components.
    • 2: Button - A button object.
    • 3: Select Menu - A select menu for picking from choices.
    • 4: Text Input - A text input field.

    - -

    references

    +
    + - References + References

    See Discord Developer Portal: Component Types.

    @@ -898,41 +926,39 @@

    value()

    -
    +
    - + diff --git a/Nostrum.Struct.Message.Poll.Answer.html b/Nostrum.Struct.Message.Poll.Answer.html index 4dd375357..4941178a9 100644 --- a/Nostrum.Struct.Message.Poll.Answer.html +++ b/Nostrum.Struct.Message.Poll.Answer.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Poll.Answer — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Poll.Answer - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Poll.Answer + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A struct representing a poll answer.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -164,9 +193,8 @@

    - Link to this section -Types + Types

    @@ -260,41 +288,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Message.Poll.MediaObject.html b/Nostrum.Struct.Message.Poll.MediaObject.html index 5d25150a5..f8ad67885 100644 --- a/Nostrum.Struct.Message.Poll.MediaObject.html +++ b/Nostrum.Struct.Message.Poll.MediaObject.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Poll.MediaObject — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Poll.MediaObject - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Poll.MediaObject + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A struct representing a media item of a poll (e.g. a question or answer)

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -164,9 +193,8 @@

    - Link to this section -Types + Types

    @@ -258,41 +286,39 @@

    text()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Message.Poll.Results.html b/Nostrum.Struct.Message.Poll.Results.html index 1a4bfde69..5c68b2a36 100644 --- a/Nostrum.Struct.Message.Poll.Results.html +++ b/Nostrum.Struct.Message.Poll.Results.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Poll.Results — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Poll.Results - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Poll.Results + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A struct representing the results of a poll.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -164,9 +193,8 @@

    - Link to this section -Types + Types

    @@ -262,41 +290,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Message.Poll.html b/Nostrum.Struct.Message.Poll.html index e7e2537f2..ae4d363fa 100644 --- a/Nostrum.Struct.Message.Poll.html +++ b/Nostrum.Struct.Message.Poll.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Poll — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Poll - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Poll + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a poll in a Discord chat.

    There are various helper methods on this structure to create new poll, see create_poll/2 and put_answer/2 & put_answer/3 for code samples.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -248,9 +277,8 @@

    - Link to this section -Types + Types

    @@ -494,9 +522,8 @@

    t()

    - Link to this section -Functions + Functions

    @@ -534,16 +561,16 @@

    create_poll(question_text, list)

    Create a new poll struct.

    Use Nostrum.Api.create_message to send it once you've populated it.

    Accepts a question_text parameter which is the string to use as the poll title.

    Keyword arguments:

    • duration: duration (in hours) the poll should be open for
    • allow_multiselect: whether users should be able to select multiple answers

    You can also pass an answers key with answers, though put_answer/2 and put_answer/3 are advised.

    - -

    examples

    +
    + - Examples + Examples

    -
    poll = Poll.create_poll("Do you enjoy pineapple on pizza?", duration: 2, allow_multiselect: false)
    -        |> Poll.put_answer("Yes!", default_emoji: "\u2705") # check mark emoji
    -        |> Poll.put_answer("No!", default_emoji: "\u274C") # cross emoji
    +
    poll = Poll.create_poll("Do you enjoy pineapple on pizza?", duration: 2, allow_multiselect: false)
    +        |> Poll.put_answer("Yes!", default_emoji: "\u2705") # check mark emoji
    +        |> Poll.put_answer("No!", default_emoji: "\u274C") # cross emoji
     
    -Api.create_message(channel_id, poll: poll)
    +
    Api.create_message(channel_id, poll: poll)
    @@ -608,41 +635,39 @@

    put_answer(poll, answer, list)

    -
    +
    - + diff --git a/Nostrum.Struct.Message.Reaction.html b/Nostrum.Struct.Message.Reaction.html index 2507834b5..2b288ee49 100644 --- a/Nostrum.Struct.Message.Reaction.html +++ b/Nostrum.Struct.Message.Reaction.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Reaction — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Reaction - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Reaction + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord message reaction.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -299,41 +327,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Message.Reference.html b/Nostrum.Struct.Message.Reference.html index 678858c1d..bb0ad9356 100644 --- a/Nostrum.Struct.Message.Reference.html +++ b/Nostrum.Struct.Message.Reference.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Reference — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Reference - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Reference + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a discord message reference.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -174,9 +203,8 @@

    - Link to this section -Types + Types

    @@ -299,41 +327,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Message.Sticker.html b/Nostrum.Struct.Message.Sticker.html index b7fa6c611..f7c2a4ea9 100644 --- a/Nostrum.Struct.Message.Sticker.html +++ b/Nostrum.Struct.Message.Sticker.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message.Sticker — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message.Sticker - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message.Sticker + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A Nostrum.Struct.Message.Sticker represents a sticker that can be sent inside a Nostrum.Struct.Message.

    More information can be found on the Discord API Sticker Object Documentation.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -254,9 +283,8 @@

    - Link to this section -Types + Types

    @@ -635,41 +663,39 @@

    user()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Message.html b/Nostrum.Struct.Message.html index 6307ee53f..05fe3b264 100644 --- a/Nostrum.Struct.Message.html +++ b/Nostrum.Struct.Message.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Message — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,92 +35,122 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Message - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Message + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A Nostrum.Struct.Message represents a message.

    More information can be found on the Discord API Message Object Documentation.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -463,9 +492,8 @@

    - Link to this section -Types + Types

    @@ -1375,9 +1403,8 @@

    webhook_id()

    - Link to this section -Functions + Functions

    @@ -1447,41 +1474,39 @@

    to_url(message)

    -
    +
    -
    +
    diff --git a/Nostrum.Struct.Overwrite.html b/Nostrum.Struct.Overwrite.html index da524ec91..4c50bdb63 100644 --- a/Nostrum.Struct.Overwrite.html +++ b/Nostrum.Struct.Overwrite.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Overwrite — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Overwrite - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Overwrite + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord overwrite.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -184,9 +213,8 @@

    - Link to this section -Types + Types

    @@ -338,41 +366,39 @@

    type()

    -
    +
    - +
    diff --git a/Nostrum.Struct.ThreadMember.html b/Nostrum.Struct.ThreadMember.html index 809e8ace0..ead7ad389 100644 --- a/Nostrum.Struct.ThreadMember.html +++ b/Nostrum.Struct.ThreadMember.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.ThreadMember — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.ThreadMember - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.ThreadMember + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a thread member object

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -194,9 +223,8 @@

    - Link to this section -Types + Types

    @@ -389,41 +417,39 @@

    user_id()

    -
    +
    - +
    diff --git a/Nostrum.Struct.User.Connection.html b/Nostrum.Struct.User.Connection.html index c7113ce67..f6393947d 100644 --- a/Nostrum.Struct.User.Connection.html +++ b/Nostrum.Struct.User.Connection.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.User.Connection — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,120 +35,149 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.User.Connection - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.User.Connection + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord User's connections

    -
    +
    +
    -
    +
    - +
    diff --git a/Nostrum.Struct.User.Flags.html b/Nostrum.Struct.User.Flags.html index 38e794fc1..67960e464 100644 --- a/Nostrum.Struct.User.Flags.html +++ b/Nostrum.Struct.User.Flags.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.User.Flags — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.User.Flags - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.User.Flags + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing the flags a user account can have

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -308,9 +337,8 @@

    - Link to this section -Types + Types

    @@ -755,9 +783,8 @@

    verified_developer()

    - Link to this section -Functions + Functions

    @@ -786,13 +813,13 @@

    from_integer(flag_value)

    Constructs a flag struct based on an integer from the Discord API (either public_flags or flags).

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Struct.User.Flags.from_integer(131842)
    -%Nostrum.Struct.User.Flags{
    +
    iex> Nostrum.Struct.User.Flags.from_integer(131842)
    +%Nostrum.Struct.User.Flags{
       bug_hunter_level_1: false,
       bug_hunter_level_2: false,
       early_supporter: true,
    @@ -806,7 +833,7 @@ 

    from_integer(flag_value)

    team_user: false, verified_bot: false, verified_developer: true -}
    +
    }
    @@ -835,12 +862,12 @@

    to_integer(flag_struct)

    Convert a flag struct to an integer value.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> my_flags = %Nostrum.Struct.User.Flags{
    +
    iex> my_flags = %Nostrum.Struct.User.Flags{
     ...>  bug_hunter_level_1: false,
     ...>  bug_hunter_level_2: false,
     ...>  early_supporter: true,
    @@ -854,8 +881,8 @@ 

    to_integer(flag_struct)

    ...> team_user: false, ...> verified_bot: false, ...> verified_developer: true -...> } -iex> Nostrum.Struct.User.Flags.to_integer(my_flags) +...> } +iex> Nostrum.Struct.User.Flags.to_integer(my_flags) 131842
    @@ -863,41 +890,39 @@

    to_integer(flag_struct)

    -
    +
    - + diff --git a/Nostrum.Struct.User.html b/Nostrum.Struct.User.html index 3f7433931..52d3e8902 100644 --- a/Nostrum.Struct.User.html +++ b/Nostrum.Struct.User.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.User — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,111 +35,141 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.User - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.User + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord user.

    - -

    mentioning-users-in-messages

    +
    + - Mentioning Users in Messages + Mentioning Users in Messages

    A Nostrum.Struct.User can be mentioned in message content using the String.Chars -protocol or mention/1.

    user = %Nostrum.Struct.User{id: 120571255635181568}
    -Nostrum.Api.create_message!(184046599834435585, "#{user}")
    -%Nostrum.Struct.Message{content: "<@120571255635181568>"}
    -
    -user = %Nostrum.Struct.User{id: 89918932789497856}
    -Nostrum.Api.create_message!(280085880452939778, "#{Nostrum.Struct.User.mention(user)}")
    -%Nostrum.Struct.Message{content: "<@89918932789497856>"}

    - -

    user-vs-member

    +protocol or
    mention/1.

    user = %Nostrum.Struct.User{id: 120571255635181568}
    +Nostrum.Api.create_message!(184046599834435585, "#{user}")
    +%Nostrum.Struct.Message{content: "<@120571255635181568>"}
    +
    +user = %Nostrum.Struct.User{id: 89918932789497856}
    +Nostrum.Api.create_message!(280085880452939778, "#{Nostrum.Struct.User.mention(user)}")
    +%Nostrum.Struct.Message{content: "<@89918932789497856>"}

    + + - User vs. Member + User vs. Member

    A user contains only general information about that user such as a username and an avatar. A member has everything that a user has, but also additional information on a per guild basis. This includes things like a nickname and a list of roles.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -301,9 +330,8 @@

    - Link to this section -Types + Types

    @@ -633,9 +661,8 @@

    verified()

    - Link to this section -Functions + Functions

    @@ -666,27 +693,27 @@

    avatar_url(user, image_format \\ "webp

    Returns the URL of a user's display avatar.

    If :avatar is nil, the default avatar url is returned.

    Supported image formats are PNG, JPEG, WebP, and GIF.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> user = %Nostrum.Struct.User{avatar: "8342729096ea3675442027381ff50dfe",
    -...>                             id: 80351110224678912}
    -iex> Nostrum.Struct.User.avatar_url(user)
    +
    iex> user = %Nostrum.Struct.User{avatar: "8342729096ea3675442027381ff50dfe",
    +...>                             id: 80351110224678912}
    +iex> Nostrum.Struct.User.avatar_url(user)
     "https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.webp"
    -iex> Nostrum.Struct.User.avatar_url(user, "png")
    +iex> Nostrum.Struct.User.avatar_url(user, "png")
     "https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.png"
     
    -iex> user = %Nostrum.Struct.User{avatar: nil,
    +iex> user = %Nostrum.Struct.User{avatar: nil,
     ...>                             id: 80351110224678912,
    -...>                             discriminator: "0"}
    -iex> Nostrum.Struct.User.avatar_url(user)
    +...>                             discriminator: "0"}
    +iex> Nostrum.Struct.User.avatar_url(user)
     "https://cdn.discordapp.com/embed/avatars/5.png"
     
    -iex> user = %Nostrum.Struct.User{avatar: nil,
    -...>                             discriminator: "1337"}
    -iex> Nostrum.Struct.User.avatar_url(user)
    +iex> user = %Nostrum.Struct.User{avatar: nil,
    +...>                             discriminator: "1337"}
    +iex> Nostrum.Struct.User.avatar_url(user)
     "https://cdn.discordapp.com/embed/avatars/2.png"
    @@ -717,18 +744,18 @@

    full_name(user)

    Returns a user's :global_name if present, otherwise returns their :username and :discriminator separated by a hashtag.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> user = %Nostrum.Struct.User{global_name: "TheRealJason",
    +
    iex> user = %Nostrum.Struct.User{global_name: "TheRealJason",
     ...>                             username: "therealjason",
    -...>                             discriminator: "0"}
    -iex> Nostrum.Struct.User.full_name(user)
    -"TheRealJason"
    iex> user = %Nostrum.Struct.User{username: "b1nzy",
    -...>                             discriminator: "0852"}
    -iex> Nostrum.Struct.User.full_name(user)
    +...>                             discriminator: "0"}
    +iex> Nostrum.Struct.User.full_name(user)
    +"TheRealJason"
    iex> user = %Nostrum.Struct.User{username: "b1nzy",
    +...>                             discriminator: "0852"}
    +iex> Nostrum.Struct.User.full_name(user)
     "b1nzy#0852"
    @@ -758,13 +785,13 @@

    mention(user)

    Formats an Nostrum.Struct.User into a mention.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> user = %Nostrum.Struct.User{id: 177888205536886784}
    -...> Nostrum.Struct.User.mention(user)
    +
    iex> user = %Nostrum.Struct.User{id: 177888205536886784}
    +...> Nostrum.Struct.User.mention(user)
     "<@177888205536886784>"
    @@ -772,41 +799,39 @@

    mention(user)

    - - + diff --git a/Nostrum.Struct.VoiceRegion.html b/Nostrum.Struct.VoiceRegion.html index fbc4690d0..1ed5bc9e5 100644 --- a/Nostrum.Struct.VoiceRegion.html +++ b/Nostrum.Struct.VoiceRegion.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.VoiceRegion — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.VoiceRegion - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.VoiceRegion + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord voice region.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -144,9 +173,8 @@

    - Link to this section -Types + Types

    @@ -188,41 +216,39 @@

    t()

    -
    +
    - +
    diff --git a/Nostrum.Struct.VoiceWSState.html b/Nostrum.Struct.VoiceWSState.html index 8cd846c0a..2fc14a688 100644 --- a/Nostrum.Struct.VoiceWSState.html +++ b/Nostrum.Struct.VoiceWSState.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.VoiceWSState — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.VoiceWSState - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.VoiceWSState + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing the current Voice WS state.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -306,9 +335,8 @@

    - Link to this section -Types + Types

    @@ -817,41 +845,39 @@

    token()

    -
    +
    - +
    diff --git a/Nostrum.Struct.WSState.html b/Nostrum.Struct.WSState.html index 0234462d6..9261d83be 100644 --- a/Nostrum.Struct.WSState.html +++ b/Nostrum.Struct.WSState.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.WSState — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.WSState - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.WSState + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing the current WS state.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -286,9 +315,8 @@

    - Link to this section -Types + Types

    @@ -739,41 +767,39 @@

    zlib_ctx()

    -
    +
    - +
    diff --git a/Nostrum.Struct.Webhook.html b/Nostrum.Struct.Webhook.html index fc3bdc888..65c8d9c09 100644 --- a/Nostrum.Struct.Webhook.html +++ b/Nostrum.Struct.Webhook.html @@ -4,20 +4,19 @@ - + + Nostrum.Struct.Webhook — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Struct.Webhook - (Nostrum v0.9.0-alpha3) + Nostrum.Struct.Webhook + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Struct representing a Discord webhook.

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -214,9 +243,8 @@

    - Link to this section -Types + Types

    @@ -455,41 +483,39 @@

    user()

    -
    +
    - +
    diff --git a/Nostrum.Token.html b/Nostrum.Token.html index d975d0a9d..b162f458f 100644 --- a/Nostrum.Token.html +++ b/Nostrum.Token.html @@ -4,20 +4,19 @@ - + + Nostrum.Token — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,93 +35,123 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Token - (Nostrum v0.9.0-alpha3) + Nostrum.Token + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    A helper module for verifying the Discord bot token.

    The token can be generated in the "Bot" tab of your Application the Discord Developer Portal and can be configured in your config file.

    config :nostrum,
       token: "666" # The token of your bot as a string
    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -156,9 +185,8 @@

    - Link to this section -Functions + Functions

    @@ -183,17 +211,17 @@

    check_token!()

    Checks if the Discord bot token has the correct format.

    We check if the token is a binary followed by splitting it into 3 parts separated by a dot ".". The first part is the Base64 encoded user_id which we decode and parse into as integer. The second part is an encoded timestamp, and the last part an arbitrary cryptographic signature.

    Raises on failure.

    - -

    examples

    +
    + - Examples + Examples

    iex> token = "OTY4NTU2MzQ4MzkwMzkxODU5.G49NjP.pD8PLpKp-Xx8sr-8m1DCxSPTJZdcpcJZOExc1c"
    -iex> Nostrum.Token.check_token!(token)
    +iex> Nostrum.Token.check_token!(token)
     :ok
     
     iex> token = "ODY4MDcxODUzMDMyMzU3OTc4.YPqU6Q.jNJcq1daGG3otexX3c1LcxCpgpQ"
    -iex> Nostrum.Token.check_token!(token)
    +iex> Nostrum.Token.check_token!(token)
     :ok
    @@ -223,41 +251,39 @@

    check_token!(token)

    -
    +
    - + diff --git a/Nostrum.Util.html b/Nostrum.Util.html index b01aae6b3..3c8638dca 100644 --- a/Nostrum.Util.html +++ b/Nostrum.Util.html @@ -4,20 +4,19 @@ - + + Nostrum.Util — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,91 +35,121 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Util - (Nostrum v0.9.0-alpha3) + Nostrum.Util + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Utility functions

    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -267,9 +296,8 @@

    - Link to this section -Functions + Functions

    @@ -549,10 +577,10 @@

    num_shards()

    Returns the total amount of shards as per the configuration.

    - -

    return-value

    +
    + - Return value + Return value

    • If you specified your shards as :auto, the return value will be the recommended number of shards as given by the gateway.

    • If you explicitly specified your shard numbers as an integer, it will be @@ -653,41 +681,39 @@

      usec_now()

    -
    +
    - +
    diff --git a/Nostrum.Voice.html b/Nostrum.Voice.html index f7ade7e0d..c1df6911e 100644 --- a/Nostrum.Voice.html +++ b/Nostrum.Voice.html @@ -4,20 +4,19 @@ - + + Nostrum.Voice — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,80 +35,110 @@ } catch (error) { } -
    +
    - - + -
    + + +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Nostrum.Voice - (Nostrum v0.9.0-alpha3) + Nostrum.Voice + (Nostrum v0.9.0-alpha3) -

    +

    -
    +

    Interface for playing and listening to audio through Discord's voice channels.

    Using Discord Voice Channels

    To play sound in Discord with Nostrum, you'll need ffmpeg to be installed. If you don't have the executable ffmpeg in the path, the absolute path may be configured through config keys :nostrum, :ffmpeg. If you don't want to use @@ -122,22 +151,22 @@

    the scenes the voice websocket connections are implemented nearly the same way the main shard websocket connections are, and require no developer intervention.

    In addition to playing audio, listening to incoming audio is supported through the functions listen/3 and start_listen_async/1.

    - -

    voice-without-ffmpeg

    +
    + - Voice Without FFmpeg + Voice Without FFmpeg

    If you wish to BYOE (Bring Your Own Encoder), there are a few options.

    • Use :raw as type for play/4
      • Provide the complete list of opus frames as the input
    • Use :raw_s as type for play/4
      • Provide a stateful enumerable of opus frames as input (think GenServer wrapped in Stream.unfold/2)
    • Use lower level functions to send opus frames at your leisure
    -
    +
    +

    - Link to this section - Summary + Summary

    @@ -439,9 +468,8 @@

    - Link to this section -Types + Types

    @@ -664,9 +692,8 @@

    rtp_timestamp()

    - Link to this section -Functions + Functions

    @@ -755,10 +782,10 @@

    create_ogg_bitstream(opus_packets)

    and consecutive opus packets from a single source that you want written to a file, you can run the following:

    bitstream =
       opus_packets
    -  |> create_ogg_bitstream()
    -  |> :binary.list_to_bin()
    +  |> create_ogg_bitstream()
    +  |> :binary.list_to_bin()
     
    -File.write!("my_recording.ogg", bitstream)

    When creating a logical bitstream, ensure that the packets are all from a single SSRC. +File.write!("my_recording.ogg", bitstream)

    When creating a logical bitstream, ensure that the packets are all from a single SSRC. When listening in a channel with multiple speakers, you should be storing the received packets in unique buckets for each SSRC so that the multiple audio sources don't become jumbled. A single logical bitstream should represent audio data from a single speaker. @@ -766,9 +793,9 @@

    create_ogg_bitstream(opus_packets)

    logical bitstreams as each logical bitstream and its constituent pages contain a unique and randomly generated bitstream serial number, but this is a story for another time.

    Assuming you have a list of rtp_opus/0 packets that are not separated by ssrc, you may do the following:

    jumbled_packets
    -|> Stream.filter(fn {{_seq, _time, ssrc}, _opus} -> ssrc == particular_ssrc end)
    -|> Enum.map(fn {{_seq, _time, _ssrc}, opus} -> opus end)
    -|> create_ogg_bitstream()
    +|> Stream.filter(fn {{_seq, _time, ssrc}, _opus} -> ssrc == particular_ssrc end) +|> Enum.map(fn {{_seq, _time, _ssrc}, opus} -> opus end) +|> create_ogg_bitstream()
    @@ -828,25 +855,25 @@

    get_channel_id(guild_id)

    Gets the id of the voice channel that the bot is connected to.

    - -

    parameters

    +
    + - Parameters + Parameters

    • guild_id - ID of guild that the resultant channel belongs to.

    Returns the channel_id for the channel the bot is connected to, otherwise nil.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
    +
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
     
    -iex> Nostrum.Voice.get_channel(123456789)
    +iex> Nostrum.Voice.get_channel(123456789)
     420691337
     
    -iex> Nostrum.Voice.leave_channel(123456789)
    +iex> Nostrum.Voice.leave_channel(123456789)
     
    -iex> Nostrum.Voice.get_channel(123456789)
    +iex> Nostrum.Voice.get_channel(123456789)
     nil
    @@ -1027,10 +1054,10 @@

    listen(guild_id, num_packets, raw_rtp \\ fa

    Listen for incoming voice RTP packets.

    - -

    parameters

    +
    + - Parameters + Parameters

    • guild_id - ID of guild that the bot is listening to.
    • num_packets - Number of packets to wait for.
    • raw_rtp - Whether to return raw RTP packets. Defaults to false.

    Returns a list of tuples of type rtp_opus/0.

    The inner tuple contains fields from the RTP header and can be matched against to retrieve information about the packet such as the SSRC, which identifies the source. @@ -1109,23 +1136,23 @@

    pause(guild_id)

    Pauses the current sound being played in a voice channel.

    The bot must be connected to a voice channel in the guild specified.

    - -

    parameters

    +
    + - Parameters + Parameters

    • guild_id - ID of guild whose voice channel the sound will be paused in.

    Returns {:error, reason} if unable to pause or no sound is playing, else :ok.

    This function is similar to stop/1, except that the sound may be resumed after being paused.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
    +
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
     
    -iex> Nostrum.Voice.play(123456789, "~/files/twelve_hour_loop_of_waterfall_sounds.mp3")
    +iex> Nostrum.Voice.play(123456789, "~/files/twelve_hour_loop_of_waterfall_sounds.mp3")
     
    -iex> Nostrum.Voice.pause(123456789)
    +
    iex> Nostrum.Voice.pause(123456789)
    @@ -1159,16 +1186,16 @@

    play(guild_id, input, type \\ :url, options

    Plays sound in the voice channel the bot is in.

    The bot must be connected to a voice channel in the guild specified.

    - -

    parameters

    +
    + - Parameters + Parameters

    • guild_id - ID of guild whose voice channel the sound will be played in.
    • input - Audio to be played, play_input/0. Input type determined by type parameter.
    • type - Type of input, play_type/0 (defaults to :url).
      • :url Input will be any url that ffmpeg can read.
      • :pipe Input will be data that is piped to stdin of ffmpeg.
      • :ytdl Input will be url for youtube-dl, which gets automatically piped to ffmpeg.
      • :stream Input will be livestream url for streamlink, which gets automatically piped to ffmpeg.
      • :raw Input will be an enumerable of raw opus packets. This bypasses ffmpeg and all options.
      • :raw_s Same as :raw but input must be stateful, i.e. calling Enum.take/2 on input is not idempotent.
    • options - See options section below.

    Returns {:error, reason} if unable to play or a sound is playing, else :ok.

    - -

    options

    +
    + - Options + Options

    • :start_pos (string) - The start position of the audio to be played. Defaults to beginning.
    • :duration (string) - The duration to of the audio to be played . Defaults to entire duration.
    • :realtime (boolean) - Make ffmpeg process the input in realtime instead of as fast as possible. Defaults to true.
    • :volume (number) - The output volume of the audio. Default volume is 1.0.
    • :filter (string) - Filter(s) to be applied to the audio. No filters applied by default.

    The values of :start_pos and :duration can be any time duration that ffmpeg can read. The :filter can be used multiple times in a single call (see examples). @@ -1179,32 +1206,32 @@

    play(guild_id, input, type \\ :url, options Negative values act the same as their position but reverse the polarity of the waveform.

    Having all the ffmpeg audio filters available is extremely powerful so it may be worth learning some of them for your use cases. If you use any filters to increase the playback speed of your audio, it's recommended to set the :realtime option to false because realtime processing is relative to the original playback speed.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
    +
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
     
    -iex> Nostrum.Voice.play(123456789, "~/music/FavoriteSong.mp3", :url)
    +iex> Nostrum.Voice.play(123456789, "~/music/FavoriteSong.mp3", :url)
     
    -iex> Nostrum.Voice.play(123456789, "~/music/NotFavoriteButStillGoodSong.mp3", :url, volume: 0.5)
    +iex> Nostrum.Voice.play(123456789, "~/music/NotFavoriteButStillGoodSong.mp3", :url, volume: 0.5)
     
    -iex> Nostrum.Voice.play(123456789, "~/music/ThisWillBeHeavilyDistorted.mp3", :url, volume: 1000)
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
    +iex> Nostrum.Voice.play(123456789, "~/music/ThisWillBeHeavilyDistorted.mp3", :url, volume: 1000)
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
     
    -iex> raw_data = File.read!("~/music/sound_effect.wav")
    +iex> raw_data = File.read!("~/music/sound_effect.wav")
     
    -iex> Nostrum.Voice.play(123456789, raw_data, :pipe)
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
    +iex> Nostrum.Voice.play(123456789, raw_data, :pipe)
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
     
    -iex> Nostrum.Voice.play(123456789, "https://www.youtube.com/watch?v=b4RJ-QGOtw4", :ytdl,
    -...>   realtime: true, start_pos: "0:17", duration: "30")
    +iex> Nostrum.Voice.play(123456789, "https://www.youtube.com/watch?v=b4RJ-QGOtw4", :ytdl,
    +...>   realtime: true, start_pos: "0:17", duration: "30")
     
    -iex> Nostrum.Voice.play(123456789, "https://www.youtube.com/watch?v=0ngcL_5ekXo", :ytdl,
    -...>   filter: "lowpass=f=1200", filter: "highpass=f=300", filter: "asetrate=44100*0.5")
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
    +iex> Nostrum.Voice.play(123456789, "https://www.youtube.com/watch?v=0ngcL_5ekXo", :ytdl,
    +...>   filter: "lowpass=f=1200", filter: "highpass=f=300", filter: "asetrate=44100*0.5")
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
     
    -iex> Nostrum.Voice.play(123456789, "https://www.twitch.tv/pestily", :stream)
    +iex> Nostrum.Voice.play(123456789, "https://www.twitch.tv/pestily", :stream)
     
    -iex> Nostrum.Voice.play(123456789, "https://youtu.be/LN4r-K8ZP5Q", :stream)
    +
    iex> Nostrum.Voice.play(123456789, "https://youtu.be/LN4r-K8ZP5Q", :stream)
    @@ -1233,27 +1260,27 @@

    playing?(guild_id)

    Checks if the bot is playing sound in a voice channel.

    - -

    parameters

    +
    + - Parameters + Parameters

    • guild_id - ID of guild to check if audio being played.

    Returns true if the bot is currently being played in a voice channel, otherwise false.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
    +
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
     
    -iex> Nostrum.Voice.play(123456789, "https://a-real-site.biz/RickRoll.m4a")
    +iex> Nostrum.Voice.play(123456789, "https://a-real-site.biz/RickRoll.m4a")
     
    -iex> Nostrum.Voice.playing?(123456789)
    +iex> Nostrum.Voice.playing?(123456789)
     true
     
    -iex> Nostrum.Voice.pause(123456789)
    +iex> Nostrum.Voice.pause(123456789)
     
    -iex> Nostrum.Voice.playing?(123456789)
    +iex> Nostrum.Voice.playing?(123456789)
     false
    @@ -1283,25 +1310,25 @@

    ready?(guild_id)

    Checks if the connection is up and ready to play audio.

    - -

    parameters

    +
    + - Parameters + Parameters

    • guild_id - ID of guild to check if voice connection is up.

    Returns true if the bot is connected to a voice channel, otherwise false.

    This function does not check if audio is already playing. For that, use playing?/1.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
    +
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
     
    -iex> Nostrum.Voice.ready?(123456789)
    +iex> Nostrum.Voice.ready?(123456789)
     true
     
    -iex> Nostrum.Voice.leave_channel(123456789)
    +iex> Nostrum.Voice.leave_channel(123456789)
     
    -iex> Nostrum.Voice.ready?(123456789)
    +iex> Nostrum.Voice.ready?(123456789)
     false
    @@ -1331,24 +1358,24 @@

    resume(guild_id)

    Resumes playing the current paused sound in a voice channel.

    The bot must be connected to a voice channel in the guild specified.

    - -

    parameters

    +
    + - Parameters + Parameters

    • guild_id - ID of guild whose voice channel the sound will be resumed in.

    Returns {:error, reason} if unable to resume or no sound has been paused, otherwise returns :ok.

    This function is used to resume a sound that had previously been paused.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
    +
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
     
    -iex> Nostrum.Voice.play(123456789, "~/stuff/Toto - Africa (Bass Boosted)")
    +iex> Nostrum.Voice.play(123456789, "~/stuff/Toto - Africa (Bass Boosted)")
     
    -iex> Nostrum.Voice.pause(123456789)
    +iex> Nostrum.Voice.pause(123456789)
     
    -iex> Nostrum.Voice.resume(123456789)
    +
    iex> Nostrum.Voice.resume(123456789)
    @@ -1474,23 +1501,23 @@

    stop(guild_id)

    Stops the current sound being played in a voice channel.

    The bot must be connected to a voice channel in the guild specified.

    - -

    parameters

    +
    + - Parameters + Parameters

    • guild_id - ID of guild whose voice channel the sound will be stopped in.

    Returns {:error, reason} if unable to stop or no sound is playing, else :ok.

    If a sound has finished playing, this function does not need to be called to start playing another sound.

    - -

    examples

    +
    + - Examples + Examples

    -
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
    +
    iex> Nostrum.Voice.join_channel(123456789, 420691337)
     
    -iex> Nostrum.Voice.play(123456789, "http://brandthill.com/files/weird_dubstep_noises.mp3")
    +iex> Nostrum.Voice.play(123456789, "http://brandthill.com/files/weird_dubstep_noises.mp3")
     
    -iex> Nostrum.Voice.stop(123456789)
    +
    iex> Nostrum.Voice.stop(123456789)
    @@ -1527,41 +1554,39 @@

    stop_listen_async(guild_id)

    - - + diff --git a/Nostrum.epub b/Nostrum.epub index b9e1634432a2a9e6ff0b0ef905515d1e358a9ddf..727cb8db2a9cf627500a99df431f40f8d929a4db 100644 GIT binary patch delta 532676 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
  • ?Jcd1rCb8U@z{0rQbS6rmFq`rV)vEG= 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ⓈF&!7OJ+`n~LRNuzX?sjgXI@I+c8pO_WhtVo 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
    0fOe=Lo`%Fr0tlwz$v(jXB$iJE?>F)M8Ae6? zI*oG4AE@|aBg z8E!v6cEi_JZxt{F60V=`J9{na1ZsSl09UME4t|Z4M?2)j15Vq^GWI#pX zdl2RKj&m^wufsuqg8my|7yldbPx~Keh~M=WdQd zJSfiAwvPa@X}SqW{eo&>MqJ#F8NvH}>r~2Z#OiFb_Q)WvIPZY8P#7pS-j;eTy(PmH z!fnYvj|Jh~W!VW|>`}7V?12pq26}$Xvay%Zu#MHt2>G)?{aK=>i5By~;y(BE_L|I* zUEj>J|4)LhCDMB20I3B)5Jf&Y!;_K|=BB_Wz{pTT+!av3QUOiP%)kX8bC!zNIT#r! zvox(%iu=neT6ksVv;2ER5SJ^KDAUtZd32nt-xD1tlwIQuTM=R*GHZ4#&Be4;G>XT7 zw?N4$%~Rnx z2Rs&J(?xxo>)AFy>$${lwI-y&RLDS&NJ|Cpm)w-(jCGeeoIlaSHN3l&;P$dq!?HmK zpt-2ej7arB@k>Wg2@_R3fV1Sx27v#VH2NG?VrWuVh+H0lDl<#pLkZW%@~Pl+J7hgX zK{$AT8PPF6F%9!11b!yrk z#@?dwo)>K{=Thi#Wsgaj?5wsHhJ&;f(F0oL(Psi~C^9Qn#EIcbFVnp!UsOsUo&OGQ zR;7!`l@u!O3oMkJ>^9@iTFbx6F|TZk-~8nD%0HyPNI(D{*HU*u(uv;N9qu4oaK}xD z-1>gXtihUx9eh=gzW}m(M_Hhde0-yOHwS}{zp-4|@uaf37+qOXeyY7W>3^s&y7_Qb z;ugz)^Z5#4P#nkZD1vBfy-$*yX9v3m(TLV*W$bJ1aV7egbzb$;s?WY zEvy>#o>*QkX>r|nEchOd_0LdN?R-F-<&~-u;4}f_{=*Q)`H;Wwt@C)i0 zFhkz0r8Wg3wl0_Mo`|2$PvCj4Y|+f^evDj8R!0{#+=5lvM#K5HrF7z%R*RefJ$ycb z-U{+p!gb%?K3ZPz2CSFDNtzE>J1icrlilzfMR9_2utTxCYL(SH`90ZxR1*IAMN4M(R z`J{pZ7tt|nNNBO)7({MqK4qlE4JqCtfS2ahX;m%~SC)@>9DJ6PNjW67Bf|Cl=^7Uy zzjg-zNX?o&lA~1AM0>4bV1p#7OZSV57O=XIvCT)D39qzZ> zhUL2>x)5p9*mp|>3BZd)^nrMy*o=|teP%Zt1Mr>d$v=5biQkXu#)Z{PvT6|d(D3kw z`GU~E2RI&SCMo`1aATb1@+7~P<;Kk#1Age$`zlCov~naAN|OpC1hL{I&vAe~<|hS+ zuEA-XbZIK_q{u!6FS-Q1Ov+zu|B`a)*%&L^Nn7cHsnFa1x`%%6b|x5ljC0AK z=gv(RWr`jvUisu+vBK^pgG>iZ`;$#HO!(FK+?e!~6ydyoELnw1Y>iIq`X5n(gkb-u z&29RAPUEG`iH*scX`r)$tH}nCUMtjgV=A8lHC`tXzKoS)N~}|44qHOq5RTkNx6L)} zy;fIgr!6tpc;9gbRcsEw+N)Vz&ct7RL=|%73O@?y2F*P%+aTZcb8-QvxZ(zSg%SxT ztlf|3-q31&A(SEl1ViDkqTWF3a&);e#F3hGHPW1 zkcc=QVnZkG3`6_xm!W5k+@ECF;*{+eZIQ&RjDX*i!g@4PV99AtKveG6u?H2ej*4iH zy~z!sjghkOk4T6c!_NUknmGajMqEgfE%NW?cS1Pd0pHZl6bIMWzQ)^aCXR$e()w^6 z^(&sEfw{1!NQXYpgV0?@yVcZ9wa-JL3j75V>F3Do+rUgNBxhKozoE?Ww+@7=q0f=p zy5GKnHW)Y8sUPFsO_I-Un`a+h0)hE@s+n{iUwlx~_yV}6Jf{HFynlha8l=HW8Y`wK z9a&_Y=*hzTN$qql-RHa+Cjxb)4Z3*yx#3pmTsFk7Gm|%6{c!U`_G-Jio+NAdj5xRy zEqQ4aaYoEWU@Bsd)#rJNL(uG{N^2U@0*suhVV*GLDxBHPugfcc7Q!05Cts{8xN|4xrd(a-u9b1;WqR#aPSYWwyyAH#5RO%y(u=MvR~P;LUbkG z)9P#nxWPPU6#yLY7PWLq2iKX=i?5g*j{;iz_p#YdfCYff57BWjPoQDoZo?Bj61;3; zTdyF;^5G&E|EQrz2g)tI<3jk)48uIGl}7m%GpgIPJt+2+2iav6kjV>(`Be^MEt}lV zgu0T2v&t^)f2YKcVevnH#s5HnPE&vymz!)_&06Yf2qTR88ELnAaGIQ3{wgK?42gi6 zZ-9^660Dh23@#)iH;GW3;%Mi|Sf^J^lB)Tzvgl@nY`WB#g~iEE79)h!lTexr`yTCl zT^2;?Q$telY@imGwbjnCvgp7}p{$moYY*B&z*QO|4OiD5)wLn?CI${SY(+7cQf&8h z1rl>kCZ&H{9MY^&^jKJ4P?42?5Br{^FhKEPXE3a-5S=IcuZ{Oukg&HM?(gwOn2b`i z1#rtvo%}B8jzgz#nS{*K=(H?W#O>65s^8jiK}l!5tCMzU9hWuTDG9!OPwXD`eY8`N zyvG<*ywX3fF)t#WWhj@6BDX>#vW|QPGcd&%?e+A_lCAJ8dU)-MwBvu1S3gTx3}DJ6 zUDq-3H*pek1C0dTKOU1`Tjw1d{}?-j5iRBuMtf9YhgWqad*XV^R&=4gI2f9S1|oRa z=F>^t@PB&yAhuZj@*^&1dD?QCg44pGjz^TiSueVgZ(%N1kRD6Mr4&wmR8{gQDF-!| zbz#dAk|-&1$&G4^Tmvj0SfEYnM*yW#{9XrpzLQbQV%$9=z41S3*Bs^^x!=?ZmHOyY zXQL5Eu2x-70#f&c2q;kX9rDoF*H^!F-O;-Edzw|~S$K?O_7=vo#gnrx+iQN$p|Wyfbp@M5>R2y>5(LT)m>}LPP^|0= ztyYs%Z5mN%w=z}dc*C9C#{k9*9xnb~lBTXy9-?PhYmB|BdnrZ2*#|VfW4}UXs5Mn7 zoc{B4A>^`HtW|#+#W&sYYkB^GC{`ay6V*17RmRkOYVp};@TKkgM3L-!S~!K~eGW%n z=eqY&Tzj1rVAMsY|B>l_$2Oo@cDDFl&@-iB*`e^;B(~GWQ=_qpIU5k1N=c{3bZk=NtWkOG}YYq6Cqdv98vkRlel}gF|b+jiq6-46p)lYBM>1;On$7td|FTdjQ z20KLB(0pw*Kk3^9ZbP;a2&eji<46ij+}uLBrVV(NoD{5|?g5X%cqiDMQld$!G^SKo zgBpg6*t`0}giZnLK4CVo5oJ$EL*B0+ofO7b60#e=h%pSEJhD5XRN&o2;dj=}tN$cy z*HPfH7XQ)N9ua_lXUfw-$S76zNc(!fYyG(Fz>LIQB-wXtFAcUN_Q5a8 z_kMo>|GMWM`rrLYOXla=fYftcOVsq^%&IGz@S+7X5pAW>S;GUZG9 z7j@}3eO}`$HxRV2LzDK2;a~ULL~~xhzDP9zGrZ04sv|*k6c7_P=jlvv%5m~~$*gBY7gy?2mfr66J z{;5I(W++LjxQf6QQWUMZ<+zeOaYX87;5lgIL(W^%nT-mfhDZu2G zI3-?-F&YM&C1d$CWM0R0D)=R)09&*ER;PCD_PP!rU!=o>uoN5}#C@uvd3Y~U{kJA` z1ABK>1*c58-0!xg<&|urK=|r*K)B3Y#xWAC)!!1eOAR5ao%;Tx85|4p5m#I!^6gz; z;EK*(V2<4G02%rfD`2hZUy(+U+Ml*O?4M#S1VSlXd5u+TK9>=0D3BzPR=ISg)S*`u zLCnCx{mTUg%667h^91MMa>jKYqN)RN@5kB1&hKZRi;@ucW~YyZ82ExAh%H-!0bu?NWjN4I<^~qO;QWz< zi9Di8vaW*q+k0rUG9PhSz(TPL3{3m$TPAGqR8gEzAwR>F=9gxq-DHj$4hjwvqBP#~ z?stF3;@#q0a~MibQGF}^>bY`2-bBbqIn ze#Mc439|`-dID3&0toI;1f3?vUU%;)I}`mLjvbv@P>WDMaga~?Hx3b}JD$Xx0arIe z1)mN>km-$&QBWkfYahm;3`LTKww5ybLZb{juzl+~oIFJ><=GG=we*a7V2d?c-&+dj zVM@QIf#tu!|C=Jwi7jMD^PR1&({$k>foBx7W06rbXaUeP7cN^$*czy7bJ>He1mw4@ zNi9G1t{M`>1<8(!+j3{~ibB6^_BhR05QY*V?LkrMk04>yqIH8HFoz^6A+=$HmS)^3h0XXMsXQf0z=6f*Ng_iPH#{~S9yw&)k^q*3X4p? z_o(k@!~>R5;_a50qqDXD9EgopsdI~cB>7Hg{a)8TYMx|~?YyR)POKjvJxXYyE3R-x z)I<-6R2njDp3`qm`U5=_vPeX87qkd zq-Pm$r06b*6VDukBV1C-`XzV&lu>@5{5rTCs}2B>l&l}ami&WV!aE}DDXTJF8Q2Ns zgaWA%M#>qaP?) z$_lXH|4m&B+MElK=cFe-RS4qd4)aLxS0`oNkfv$UQ<;y|x>-h#ww%F)_M)f1TFsjm zG}oruE~%CUVk7*#EjU=UZ7SILvs1Xo5t?mnQ?<4Y{kZu!d|*CuvT`d)td5?SwP7eI ztqPijQ2I}_B&h?PK3_$XZo$SzBBd~ZNE%=)r3}aZS5>eh{TbMFTAAJke@=n$O0h#2 zD>?X%j=`i`m`cPh{-DIrGTpRRRi`U1uL=enMQM$ZmF`GdKM8{1j#eh!PjHz}*=5!& z9H;~EeFgJr|E=z8f|F-p=utaF>=o(cta(5hX(STP6U4EuK-rm~^ah?roKg`PiVTog z{>-*Uu1f)XYhhMPt^IAPVLN@73}M`0{4lx>-Qi|4N^dtLB1Ogsdu?_{ew5m%(Qh#ze9}$V{6r#H{6po zx+X>r*GjYYvdLY==%MA#eKrasTwyC1OfRCZC-8Z{7Zxw{d{;eNrWS{j#c!UKzwHj@ zqojAUwZf-{i7$ZOO;aZzza3BkG`WE9z;pvKuc@V4QU#{xR%qkXLxAR!*^|J(+mm(IlKV4v z{^roBFTL`ESOGo0?omQD6o$obE`{$c)tpZ&he77RL7wT49X0nmA%$Vc*$%>Q%QE7pV32-B+D0sslI($z}XMsjC}RF&dk>~A1@)Rir3;BDDI5V-}IcX=h?N| zm6|~g}2JF;!r zIu|TYj50<}j<2(3Puk`&?{|FL0PpWMac5b>fn&aYax-li{jwLv5p$m12&;*TW9T?r zo11yj$^Pn=6O0DaM0-fA3ZT1RS>aSvfC;lv1i45^3oBkceG(-~EZks963*ys^CZ-0 zp#-Dyu$+En0k9n*zX~xqHj>+HMeP)iHpXvM{4Z7Il#oB1zC%fSWF%MMP=aKT1fhF! zoN$aZ%)H@o91C|N4)W&qVw~}su+T!pZRDG6fbR6jp>u_iJxff8!Vki{*5LUCfN7yp z0UB6B9k#0HWY`4MJR4FvDI!ana&f#E2~m_?861Y&pBjo*fDbPB)_R>ZDIKdKvsLA0 zG$4Bx^A7;wo84Y)40brsUkqV+PE01=PH3QxIlYn{Nzv}fl;~-t5joGQ(NbRkUa~f- zA>Qo_lq|d?fXAy{Qbt@kzHhx7;K3e3Wq?hngzR+>ktd8|#+wQ5$3^KD)0b5tI)+xI z3x!O*zm8g=i|12x{oeq;Ggt#L9u}u>$%~RLcj)b`#v}2UCFe<*l0LH!u zvy|iAA5$5%N8PU>4>j`qL?X=jG>*Oc_c<-ucuVweYt3ndiJtVr_UOzGAgRO>%0DHI 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 z�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°IJC%~Wum^JGmQf%aW)5>%m#l1S( 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 delta 528093 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

    5$xL`Pq{4aRafV{7^<%J?UeK7|LL!mK) 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

    t(YH@6#u*_PyD(?lw&w?7Z(qG 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 z%0A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

    (8D-on3DUBM;Hj7J#<4X(v zSudu;y=FuVGhX9d1(x?ZrQ| z9o_CZ7QP%o36OSbm?;A;*=K;>H%FDBPm!J%K4Q`mX3QLy7bYS9*h7w*S(*@Pw1%{> zCiiH6bUQ)KNH0}jQ1&JQp(pf_B|2fL3N{P7Xf!4#+(=)NZ-};(%P_){_N7kSUrMTP z!2xo)9iq>tlNDQ%7`tCT9{F5dqK>bh?Stp09naN84A5y$6w(H|m95dGu7M@@W^}a^ zhKUZ&Ts2I3tELDN4P^|Up&`RT5L6&wQNoh0jEiGHDibp85r~I3x(*Jx8P?DS@{5m( zn^F=(FeCv&NBkwNqixOGTNGb5THe!2J2vU-`5A8>wox9ZAFgM8c9p9mAMTcX(j-}zSVHRe1=HJ1(4(EhC+kWc z(|&|Gs4jnTG3Y*6uVMtuTz?OJ%rkT+Q2yfS`8@=& zP0mrYl69h``dwkMQV);I-}?vX{2OUrwI?F^5RiHZs>%nmB0Qnt*RS0eBo8{6_mCfk zH8OHY`*P2+q!c`^TI&Z^@8=;19XWYMBoF*ryvDO{2$MQs^-^y^e_^w5ny)b}U0`|3 zY+u#2Xj$)=8#P6S2OG+Ggh;Gx1P5eyqk*Iwznvi{&FnUjf5;|pKGzoL_2e|H!?l9{ z0XUkwY;~sWFO9E$bNHJ|p^$-l@L@Xols*yh%A>xtMw4BA#WFQm4ufGn(zx6j{wAnepkk#%^AA4GvDT`6XK)8TrLd zL=}`3pxngTG_Lco>OAV|D~1{P#bSba0w}}@WA1&0?By2Q(PAJo6XW@db%e`KQfMd^ zU?-W9&r?aQflryGk^?-kBQVs7O+IRFh`f4S|M?p1&PC}b?d)>-AJJ(ulRIFS>^MMc)OpskDi+HlmEv# zHxDX)T4aK=W{#`lGyyAr<8z#h@=h?!1!u^IDZPM|DKe z#=S%!3)Oyf$&qv~0fv|DV(m@>G>=mvji$}YV`%b@=M0&Y26`MT0UnJ` zgu7R{5#Yn`;(>vIU%R(QR9zWS{HT-jw(c!vBVc$TFS5HUsj;ij0Sq{N0Azi2TCXb{ zofvq~o5c1G&PD#=R+akJOBR5H#kg{N_=qeyf!K07=V>k@tM%`LM1B8uh!!{tgf)YJ zrL9%=uReRdM)}vfN`Sumi;KwC8VFGawxHANGxs;}{~sN5>VF?U^)rE?g7E7X<%Dp>ZQM2Pgu{jjyv~pC4?Sy>;V9Pw z%gkKjV9L)$Z(a7cFAC+Xb1^BzjIA)cu1Lf+diOIg-`XmBGymoW;N=yzT(h{&p*W2op z&%UzIK#yny`=dHQrCtqaZPo8?m*Ce*W7-S8Tdfd}ii$JE*5u0#P_|)avnDX?yBZZb zuUtM3OE#SK^~DmX7CCde9s`F6HdNx^j;7&;E26nMS&FF?Bx_m%xGo(vD=-3K&ElG7 z*>Z49u#^{`Fu}YP&F)wFp}f@!;l{_ zTWDqq*>|VyGLsm?tF%CiN=T6`(OY?mFQT~a{PfDoI&TrS)Mrp6FVx5(I?s*2;m{xB ztU2o18=NXpF2|9$j-6m+ih!Cdt0fPPNX3!sL4HKzJ^4c`IR3 z<5yD9T?pC$DUT+a*=Ozwy4w1?jpvhdb}leC5`C${+^}bbnHY2S1A{V<&VVBWd){Y7 z&ZtexahXjUoqEp_ighM}zGsKJT}NT8@@QJCDYjiN#5Zo7sikT(bs#~rRHQS;JN7gz zckCYTX@l4+o!>l;4V*CAU#FJlP2Isn0Z3m;CWGZ7%Mk3j4P= zkd|^;;q(W`3uSMM@y_M+-iF0`U(*Z7#bUI#!7$O8r|QEKFI+dln6GdABO@nNJ226S zCv=C-?|*YU^S|MD|E~u42Tv4z`OiXt0-Gw}34!{bmmd$HE^W8ZhS2q{UNcd|tKgi# z)(&R^Bw7cJV$~p;NLM4Sg{5sxsYF1z{`!0SslQ3sde4voZ8FJ-Jk z{YQ{%`Wo)J{OL_Sa&O%jBw&0y-sdbk#YOIq4U8B7YXAxRdadD?YhUhSjpkkmwlpsS z2nfHutXj9P*5(F}H%-8m$;v{;Ga9DuF_m4{`{9+t<8Ir_B%$gYh03HE9t&5VT9xX3 zkY#Ta^;+7m-MPbqndqf;>48k=lP3K^hO^lxCeKJlA)D5OUX_vzL4g8G9uHS5^ThE= zX8k9?BCmA|NZ?A0L+{d*i3o&El9*g30{#yd;>v!QyR*EYohv;i1S4ff2)51JcM zcA9j5Xf#HGFsX zEV7+~(y8&{AEX-B-W$3^X5M+4FW25h*my92u&)+GUd$+3JX|r;Jz&5y_kn{%yiDy< z09oGR|8VsW+?j>j(l8vSW81dPj&0kvlaB7#wr$%<$F^;wW9!X6XN>QA_W2EKth#E} ztXahy;KkHFj+OGY0J5_X|M}H%^QI)x z&*QZt0)YD&$@O+m%EiD~Vdu&8f&rFgMj6Tu;^#j6RVToF7v!NVTc}*p$Yc7Kb&R_? z&AqI^Et@R^+^~KK8Mkzh)CZeI*7?g##>3IT)GypuE0#I^dq%E4jS?@8?jrl6n13;~ z5PbsfNJ9BM6#{D-Yj_3g)Zh?>b%;wI9r`PA`C`qE&w>)_>&^eDe~0U>g-OIFly}}A z!4zfDr_PX?bR>Q`o5-}DW03D}d=nux;;><6=rzQny8M&|sz-hMfBnBHy+0wn72FOn zj9@@O$r!0#dyqVU|NV_eT@u_-ARGLN*T5s#)(a#tR+R;$jU%-qP$kCQzCL5hLaD?> z*(noH*ItYwvM_%8vS3qx?VZO?WX=G3DAFg6yiwHwCaKb<=B&;&Z3Z@-TQRMr#_Q%5pk0fxeX~p89kQKp7rZK5O>;xCRJ0UM$3h{NT(3 z*-_KvgVn6rzc+E8Yw{Eu^_<6+Qj&FD>GbXMpA<#%*O<%4JwF)L;_t!yL@d`jXWIG{ zWKbtDKy_!L0SnMdKpd9Flm&H_F&Z+GL_G?**2m|c+kab+rS&Vea2tbR{Ycgc3P+cz zf9dVf3FJrg5i8P`gzo3cgrb}4hNQE%<3*ezOP6g3k)fZ1ZkCrDjfv;&kV*+4>eWov z9ItBNkv}?GlP{W*;?9FwY8<1)g0%`i+tT#=08*57LH2EN-c)@DW@Az~#81p;^rtW=~9FkxrVu#OpnUBC_d@uI{;+~MqJoO4{#hM-CqKhbVojkEMDaek`?yh!Sn zCcWrd#V;PH5~7~3;2dbd%BpEDUseB%hHpJ0|G=Tvml12Bk#u<{DfdV3Dw5BmqMC(L znf1XOBGz{t0oXZQJb~NXv~X5GUmB3s0>nhbkziI*sm_I$qkh_D@u!0 zDlLtO^urCUNhbQzjm2;aa(~al z-=R~Y6Nj&dBAa$FC3DxXPb#?wE++uo?YT}0&e+E7y>Nl_92GBc4x_r=*v>tx=vmQl zX-upr3)}rXW zLyIq}TY;~~UOdV|1@T=_gf_dagpOUBzK8oSJ4*u}EN~*59W>h?e1^mahO~f`UDbzE zlo&Lp>DZxUB1}1QUAC|@0SoYw{?dwD3apBdRQc~_6Rxc|XFS<1^SkKt&(n_RV)#U7mr2EM;hdd?R7mSy6R-(Foa zHh1RvLrSy3GgWD9>_y|XulD%CV`At)av!oDx+`_zT6x`?Z1jorMf2a20`arSR{Rf| z;QqL_*nV0Z8P}oN0Y6I6e+GjeC1^J-^-A!k59env@F%kL&+lWW)%54bYI3ouFP88x zvN_qg4ok40x<&TVJtvaYBMv`#%Z}w0clsDux=wA){qhiJPMx?F)cGW-)S>1nNOv9r zH=a0hs^i78U@;#V*o&*C#?pe)m8dx;fsROUa25E-<8<;?tkz_z$Xaq}uDOCl9*L=UZ__(>< zJMOw_53n;8I1FYKRXTk=%}i`uAe08q{L-AX%D?Rs492(Ki!9~tCJ8@8uUsKTgbL;& znrwc&ObcVB-9NbMtAeY$Y;)6wgwdPcm~_>W0!X+DZ6MxYN5im*|8`{R2}oBkfYNs$ zdQ}M+nMp`z7pcllD7v*m*glY|f!n>4NfZKU^&_0=MJ$z^#4(`>&@{p9Pqs*eN6v0U zMJIFx9&Vt9U3N4`_XisU0gY^vA^~lgr5@TCh*7y;6)GytWtuAMTn@oh#hSg%0S&_v z2gsowv`|-3P5ee3Px&)Fwbdch1{~BBFVZr%EHRZVRxlSsU9faSx`$9XD`DyhOkTkb zVGHfN+Hp>u7h$0qb#tdE2gMN}o-U!R&{ix1g*G$9C#vm$7Qh^@hHU#?kN_L5G&gG6 zpFpk^1YGQuPb`zzP zp=lool(yvFR=OX_^~Ux$#Qag=p5K1U!}0*<=sP6@HhaS-7CWpBp3jrk5v7Y40iKfu zw6fJ8=Ev;PZ3G*vB9c(15TR>DqP_dGgmW40iCHP&P?nbXDP(6(7GYPboXduDrF z00Hfirusob{m*m*m0Gn9jRH8-_$e)5N9?{(&$}VxQb?*E4Cg~FttwKdRz}wC3nBfY`1|i#-_!vb7T>l*D@}m%r&t6$F&4iToOR2=)&H|v@qPt>5{_**Q#|xex^vAveC#J^a2XvDG^??_vV*!y_F(^LD zE{dPFg?tQBOrhynV84zNb5IrdM2aQ?*$?;|^O{{Bb^U;d)o8@uZz*-+@34Bv(M7u?}Q~ zVQ$N>b$TJG>>U7MYrt@@ejtFRLq!Fmn?qU5H<3V0UG@daJE0ujRXE;QHB2@ro?PAn z6jmoC!sNa!%|sl5#9-(s1AZ7dUQR}(jkJh`^pjvu0S>wKH=NQxPMbX~$Wmn+-N0`l zyAnjMI(B8~2s;!{G%#&zi97;jn-)XVMPVbKkc$eXrU0<0=z|!VTWM;E)|9J4wP-9f zCK|1@(_`i=C{ts>Bh*E3Xbv-gBZ z%Jbf=4L?c{&PA^BLoO<3rbcGr*1FH0MrY9Wp%p;=-55{hp5<>Se#MgV2cV;@qf_%N z=dD1QMjW8Dxf1^HrJ5P#d(aD0Fgi ziYXOSU~PI?x_%~DirSotV4|>vWuML`D-Q5+NMD!)HV5+F+5z?mF)#L>FwLwO5*FEP*DExRY3Mg zAD!lwkH#ia@i+K?e2QBMeR7A4up!qz5tKT+hz-ArlGQBr4BGwM3Ys2ex)RA%FX?Zd zin1-!1uvZr1mrExcfPM{Lo}qPNhGXU*QF+7^ZP{SAjDOq$Ek;Ih_C2|vv)~XNy4Wv zwTDrobF7|)3b*!lYt`873J;h90jOEJMZ1_*Scy%rGaq4&n6DrG768-Ap)IIfLuKh1 z-dTp~)=^&@`i;elowYr5!4VNM*V@cD>@6OnQEr3A?N%z}&QTYr8S~ba6%Hq;prb@5 zXE!S5AR|yi%Ck6O$tS-X(tq=58v%!i5|}!RSgM)a3Pt0jhpN3AxfV)-K8>A_~ zF0T`JNLwjqJ!8kfUlufBMo2wRmvTB|qs^4CWUNacK`OH(Vm5$O^;}>!4{lHkH-FFd zPZ_L)zb>74z=s5)RPYzk^D)_wW%=DM_b4R)#Wgn%+TR6KrOxEL(8{Je{yx4lm2a#A zhPBng*B%2?fbT_ecP3K=2mU@KJ5^*j-KV>4szv13-JM#U{A|%bQ)JJ7fz^8dr$$|~ z3GZ&7Cw?7w39+Ixo@L5#gflOh$%F?)6 z_`_~t_gFE=;Gj-H0O*oIdsd*3SV0;)nA-ZB8gELnNQFzfJmELqCIPvz>Z1h3Ve5;X zur)3Ab(z*R zGQ5z!>?Tiz6uh+_fFfy@+NhffI&oVxK7c(a$RM z38LDB*XLJi4Z@+j*n4oMh6zkLeyflz+!G9o>39!K&cGSn6U<`I#&{1NO4L69Mjnks z%U&hKGmJfzCW!WJ`Ce)3DFqw;bn9xt;uPc2IC-m>sK@*8?OQjmZJ6WdNO|!b;Q{*OV?D3ttQ{n7 z$g4v_VIeCPZqiIfu<`KN)(huuf=*?LuW*_0%A|NgO?Xny-V0^COxAM{dL#?J9Bu`U z&SJ&gX{RC!S-pzZvS6P9)c5~;!gZA(Yq!CODE7<`E@+<-EQA9Ukr(IU@1dTz;YUod zpNDE0N5awWV>y-tSSOe8_uSK>QQ99#|Kn)^1F9sv`xsSRnluUKQS;JuHFr)CfPoA% zos`U^rUNS36fF9j%_7vGaI3n`cozjL_O!_(db;(m!-eSB2GC2S?vgd;*T7iD))t|B z>c3LlONG2Lf20B%?EaLz@|R9I;%ZIzLg*j58CP+=Yr-2)`39kGQ-adS^u6cr?b1x8 zG*iBbB^F@erWpMoi+GuxP3oQS5yE;=#OaYmR|@P4oVhUx#GoNF&)Tj?QoJE;kM!Dq z7`YUFY5ZtTB7i}VRTYR!Por13J;?X-_dEk)k0^ydaH6#Hq;ocZ`n_1c{qFPTi3a2M zQ$(p)?I5U4gYx$zL2BpIPPKC6|G_Ud4jfrpDTJ~tq7m%b^HNJVMT;smqfBh0vV<}$ zO&a#Fl)XBr-b+lm_R7AY$tOuje>(C2#`JUYMo7NA#6?q|)x~4+u5cpHuhICz_4D#W zQE~)lJHHiXb@=s@INm{xTW;T6aab4EJfBehdmj*5+1H>Ig)~dXV4h9CCOK_wyPUF;jCxV|RtsSyZ(KygIvs&zuyYqt{1LZiOB6pfx zOR7s#wKPYP8yEDoPntR$-H|24-W;90IJ0FDSm-k&at~=aDKt@Q4dqtydL2sP$b!}2 zQA>O}yXQqu0KA!BUD6D}Z;@@C5Z$;ocr;bTfI+`3<&EMNG(VhQWw2GpO{mNDF~P7! ztI&zM->cPM`$( z98SS$PI|LO%raBH)*XY57T2k%tr%;7N=+PlA|(np7*yn@_QSSjX{IPez^9w{TP7(RRd(`1>AfPq1kXs_XD|7MzE<&bm>|KO|D#uOY!DU&T1Wseu0tmH zX~cfxx6I_AirEuOzYqUMB-R2wgC6Q4Tb5$Hj6*hWYe?XsrIcC_#eBJ?Kp;K`JwQ;H zzX0H>wYGQ(xW?wfC>e{GH$$razSHSdXx2)8&mXEc2VFr2Pbu=5?H?WJoi|5VDccfz z!>CYcu>R(8rCyHpdZgMWiv(a&FxH{8j!wdSx+mS5)Gw#DoDVSFTs%8+Z(1clj8)lpsOsXxgNHmo zsdRX%=#PhX=j$U0PGd!3kc*V$c^Gu!^+`UEh_R%2kr0f@7{#C%Q^ffgEa3G*JJLwH zh1;!9*zD%+;uZX-=gX3#5p(h_%tg+?&p+#s*u~|!^UvAz1ha?Z8}7e>Bc^n5X!mDP zoP?NqqX>?gIhD8C|(9Nor!jxA0T6ikqPI$-4BgTc>VM=VmSYTX7{`R52#&fu90h~6g^&a#8c1lQt}XqGhUeU=dkjcYrLvu{0RSn?xxuxD zB^?>WVStu9L*Fux-C+THo!+dJ#)zj7bDR-_jNARhNM_7tX{LZDFp#RETe89}KuW zDF1n=erf!QCBl^7&etu3L(E^!XhLoSFY3Zlh_KV zuM!^yQ!;4V@iUbiwi&gUk?Wd#I7bPXl%x9-E4`5$Bk*7A}d0=}E z^)w{;Wyum=QD_{Om)>V|Gws!7i_z$vD%f8RVCvY|&*W9>b5m9(2-w|1J}(neoc!#f7E&FI2ti$Zp@J*VfaAb;9|8E5xrl-5~oIa zJmkFaNv*QM#a=v!Ra12cKSNo3c31au<&H122z87_R6GOV>4K;_!r}C{)p%9vy@6$> zPbQWPe}R0XpWFLedT%7od)oFwN2R~nJ1TbwxC`UOF43y+)sJIUse8bE z^MBDe!R-W-`ph;IwEx&$F)SqM3Vg_szqFK+FOh_b4%Mhgq`VvP+CjL5fdJxm zsODZGvwjx_=vPwzfev@0iyV0mrIOM!8D_k4=7%Rz+sogSwC%%S6RW#t2P7T5xLz}; zrcQdkt`RbFA2YNg7~d1O5-|gHUM1)wNUuv!j<|QZn!y;~f@tKR+mP6QNjXTbH@@wz z@CLpKeg98Ea3fTm>h=#BR3ieV-kpM>{QuwpIhA7br|R?S|B+XV`2^yMS<88o%$VJr z!b_$W?aZ8lMw7!(!8m~^$G&@{qoLnrizw^P}>L)?01Za%y+gvoP3^dKXH`a zr0B#o-$QY!i?;$&wpY}%uAkp;ec9RFCK!I&<$gD@H?egn3E5+yvXb3eiu6+iwFLk= zG;;^zMZ2NmOA^Ou?5xC7PvepaBTR25sc!-fi|gP&0@!^Ad<%k}8M+^!Q-0%|*eXZY zM!V@*To2b?XpQN3SUxnDQ|CuM8_=BL(r<392wTk#8SwVb)Yszxg#YmYN^!a zY0nx2bEG6}S|DK8cX4f|bv@=zk1zmY(vlYcqQpv~FAntGZ*ob|mVvu|>G{(DfAmUO z8aCzyyX3SkGAi5=(rJG_IX>PUU4=T{;DK~*j<2Jb-!C35#s1aXsotI%&W-Dgau=JJ zD=Usi;5D;W-b~bi3N^jt=q(!NBihk@xJwu%?ioD#+iQgpo|>xr1lMtSBspbv86bgGhjBX4&1heYTj5&FWj+i>?j|SX&AgQ-};)-F8t_c#7 z{z$RO;k6mnoLM+g3#T{?{u3mn2ak5>1NB>3WyJv13qVWd7OfIPl|+db-~w_%=V`xO z(MZD=PEe(6ubP3UvFwI&CGE~sB!xFC3Qw;F;iaZXT!mVdBnpiEKFdDK9_qb&YL!ny zIT59X`QAJ&ouov=r7tD!*(3p~l`9~clTh1=*LDyhOkfhcIfR-GzQGFUs3eu-NJ?Jl znS(6X6A|w4=HY$PWO{S4*kYloS`$y1?sj*o47R5&LW}rw+cwlFcnd|g4Skh#CvUVK1C5{}e)wz>#NSZIw?$R%iidf?)ksi%PtKr&4!$?0 zz>B~5WQ;eHyqFnZvs|d4i@@@Uah^Z|kfyDDHerT0yv##$s0OmKwdG%%ta&fRiL0kG z=BhJukPQNlQMq;$Ihr%5UWMcGSzQjMDo*@cVl`2FVU_o6808D#qzvQ?+qyTNBIBWy zebO$&oE=tgeWtiR13*@DDnFw&)-R2X9j*U;l2bmk=kjqJ#F=%iuMxcPt?E(G@7u(u z96TWKaje1_^}tZozXnhU9^*vt4`CSdp?qoiZLB@=FBj#%%AtR3C%NX+cbt<7(Qnv*rBwfOnPgclUMQma#!^gFFQj870?GrT+Kx&%ML*m(d5DN2KIc6J|7SaM2N?Ud00xSpfDg zLubD*X-*Ue-P)XNk{nMG*y~Y?Zs@V;i*D;dTE{0Vz@AQVu|c_%LnLU9Ate1uou&@0 z-CBgS8KO^-&TO#(S~x^y{xRRwYSg1M?ICN)r zM$Gaf0EYnyHmfQoNhlrzd^90Bs)-8iI%WcS*f*k@azFH2ISln7ECx9;p~5D;(nRI0 zg_*cqrt3}ocOWOLUb?3Vw^Msi=4@88b})(ow0)_C-m5s5n2IyDDX(mL5bYwFb9rB` zEGu|2eo{;lYTXk~x(Oj#DPg8#Aa;`gsK;|207SlT<{ewdeU}<#Kk4@yomH%b>NvL( zC9gu3Y$mIHvBxpq?Y{2&>Lqlg{Kg>Os!(OLx#g(cims~F_K7394suK(m4cUy^SRFBKAx*iuA(>rfBni|57EkzjExi*pw zumIYNJ(2Inh2>wdHQ@`SW591YM>Jq1uxe$f|v z`2f~(<4xtea}c$?e%Avh)v0)@;;iZb1onWuH46fyWG$BjrfzkYz{}tA=(^-QJ5hLK z&UV>}@_S@pT=zx4oLrS3nP;5x=w?nwsrzTIdBWsc|d|Ym_n=wwX9e)cGjc5P<(~L=_;Ceb-wcm12I&AFuJ~es0JT{tf zJ$#kS;In*_&cst)(|y9tChWWbRPb3ldd?fkM^4FZ#Yov)KgY<0UcnvZsB&_Z*OdwZ zxZZ1BUO4{u!YN@wZh#R{^!XEd!p0yzqZDj(3ZWN1oX%;V2!C%ineX`anNu>cv=j&5qE>r_f8sDHxkg!O4GyB2ge~6Shc|xaWWOh&GtjG3af;_PMler z3mSTmt0TY!HL6Ok0nP65NrjxDD}fsem61^R$NIt8H+4Ylt-zgGoZBQ_bv(I3a46lj z-pwltgT(eovLnbnB(LD((Q=tUkO6owRIL2ZDked`yOKcq2!}5k?bMX!nIo~~dN|Vx zCsaz0aerFI&uEutN!{NK(twMJsyIiRCwqM_PpF##Qf`q~z5NrvE%sJ@yDYplF<{rmFIwp>%9@WZf0~s+ z!BBrb&o7|FpJyhl@V@;T2?&T$83>3Zm5KTnQR?+3G&tZ=^Ur^_BHuf?0jhpP;KVfI zEA%& zzSxBC#sJMI3B_q{ZwsZOl!e>9y+{dE>NJo(P7=;^t#L;=Rx!trVq#C^ByKnWw89|< z+ftMa07GhmnV_fNQ7nW2HU0@Ic(gWeXz#|w1Jg*&hI8oOZtvcPSZUFhpIKvOk{ zHYe81PcsDXxq}Ew3X}z^ILN^x%2Ys6EcAt&dBV#gF3L8Io1 zgd0unr7{)ybJDe=l_?Mn1(1^pHlkH21ZR1O{1Ji%0knw`i%vuhW6gqo1KWUHD04HA zNx~x@Llt1tQQg!e3213>P4SCITIew*06>*(2G!p_JA|Ml9mgJkxm#=S>;zpszP{$e zGmwmpjiTAQfbs1g@|e|W!;%cLSfZRN=Q+`DhDoHkM2MhDNGh|j#myWeL=3xu-Rw(u z<@zGPFu)7zo2`Hpgi0(6=iEFitwpny`jJ7gA$~0+Nq~ACg+n()=wH18`$0@D1ANr; zJtf1o5cZUp(s-oP=KJS zB}kj!2Y3ZElyJ>h{SW=t$)t^-0noZ6K_a`&O3bKPz}Km~(?JjXK%swZfgx766w!ce ze7ar6*&sIVnB-0i(D&Se$cM~1dmy&y0*BY?Yk87ap3kF!QBl87i$R_bDmEX(;*2y4 z7h7vivy9;+cb*hT+*xVX9#v_fmPxsx<5GSO9`(tAG5VUCJM5hfD|%_j0S*N@T36@2 zzh5Ss{x_UX)C|=zFAsTq;=5SVs|}x@9)5{R$Tzmndaq`S%|Pgdj_iWa<@! zjtGQP`#t2$08H5HU$~?ud(eSLQLyG2Z|kPQ%9gY~%}k=;Qkir$4ww>@3Kg_rItpZm z{~XuRS^4$6%Xnc6QV~gK0n>5C(Q$TulXYB9K|GSvWf8$Lvp9&|gEWW5*SN_+jPsEZ z+NEJ_dvGPgT zg$+qUg)H*5X^5fqf1cWim+$M$xFJiR!Hour4`f-ptvrYDpjFx%9Hy zfQdbQd)SiN$`M`MFXw{712~FaZTCfGObQ)BpRcGMW?cn|+TH`|*geoJTPOuDG2o?4tG9B1p)abRnEQHs9c?se4ZO{p>R!XCVB zUjwh9Cc|obr1d$alYgx;+fOY{baPX9P1vGyxLSKo>`|il-NDXAa*~G(BL!F}jg%wM z5G!GGnxESx00ooaHfT}1Cwe{BJS9p)qL!Km_kJux(dcV&=!LanO4H2>0Xz-a^AKvV z3l;SB$sRhtcOpB<^TEnWsX#Z$^|0>cYFmA};CgNFY9ok=VA2b@v$9||#-IaCm2cCj z9gE86S&OE##;8rq&k#}k_RfdXEMYYE(B~X{OXsIm0LD6I$M-|IAu}=|tjZ?k$a9BY zxfpG8F%^4%29eb)Rrb|Lt(o_U(NQK!j~Ctj*3tX%&^&#^$LY)AH|t+OMr)Q^Xc7Cj zUL$tfWKMEY`nP%TlMf@CojutL9;P09DxgQLDFG}(%(`3Cfw*NkX5?>Tmwj`ayY&s8 zJ2;LyWo0KN@=WfhyY=AC|4^CD|9?trS??}TOA;#H`k$X7;8a+oUswRjv6%aHR$FYa z5Iv8@ZvJOn@t{dIlMqQkX1QkmD5rGG!ZZ!hGYgT;9bR*az2+Lig-@F24kdx80wHIs zT}EVPsgsU^t(3*xkjQm`q^|_UX$)4L911s4DQ0j=)|%4{>5Rm+s7Wd+R9b|>{xqqX zgd#uXN)?@CCZN?R+LGx9I)DY` z?@HdjGKH-f`C9C}E=<&pWlmmjHwUr{-h|vgK4UN_Z(?jP|;qx`a6Hfoqyq*1+V~sF)-sVXHYsho0k!< z^pL&6s%{Co`VVZH0ui$ju#+YRUnOJcQTxrCqPL9b=geeT2HW~bZ-)9uM zn3KN`awQ&+S+W99gX@c*P0uuOU7(5UzeVonC7RI)G9@6|rUr7@Rt4LnWZ{FBs5s7= zFS-rarcs@XW{okw3M;l4#r+~!GwC}brYdL8L!L(8a!z##hue4bgSJ`Gzn+>PustEO;_0YrhVgaZZI@99a&SXraON@;8Un$9`MjSuB>( z*4M|&X!-e5c@1Ah{rc~K*{6b%&|a@$j2ETN!G$6N%Z4(#eB0r8T0Xk#dp@AF6VUN~ zq41T+hN%>0w;jk>Dh^9&Beg0EvmwoUynZ-492vt|`KTzwJJ7#y^Bk~8I-Gr}n!1HE7?oP!emPQI$5vsIH)PmqlDa5a% zEb_^;k{R&Nee2B(p|LeUsIl0;DCI&tuo{w}X>w}(SktskIHYz{wc>suK1?6;f32j@ z5^*-KnN1WZ-39HDH?cPqg_s`dk0Dm08(;$=NRt7QU_`J~`nF?m51SNBbCV^S(RVpo zp`~<+MjO!SBe?xG8d|`YD!~quor%UHGn}ON?Jh0U)NrL{YGY23_9zD2yv?YFg zd8TsE$@o7ncIA9M0C}x&EJU#jyR8KBSp9LM=)!z$Ht=@hAbnp5mc8x17c*EBp5G(@ z15@YH^XV_sUdZ`nqkNZHe_3F<2D5?TV{iwsW`1TFyC>-!8_Y4rh3oVKUx=1(yTTcY zs=sn~SiR-)Sf$ijd-A{$!5#Glq+v$kK=wH4XMODw=0}%+fwZ1xo=)zel6&T8CnE`Yavz5%T}DGYWLX9q|GSDwf7! zNp{!g`4z7dU=I&6YsyaSHUK?!>uH|m)nKBxHR0bialrnuXXYiSPL96UX=x2pz}D~2 z&SzueSCH!7dtGU*Ajn!peF#;CezuV^3$USdqKWzo8=Vtb)muLqV@5w(-Gc)dT^v}j z7cBSxrj2uV2OT|y{k7d*^{1wnG#0eSLw4W*)LJ^$VC7%A?}RnSLf$_NyOKSYR{Ii* zl{Oq#A4BgKL@8$9y^LH_&#&{P&erEeo7|5VAg?QR>o7HbR$-hu9`5MeO~F!HQ@zl_ zM#kRB!&_ZAe9qylDFLc-yW&fL!*qdIih48)X9y((Mc#l&qe=trG^@2pMl?%T4A`n~ z1JKG$-A>y;uO2*1M@#j(n>=zEmf2ZF3myyk-x_f)TB?TBF#%{8<1saj<<-Bi+sSAL zZ5T8}xOkqb5hHxGavPvcrwus`!CogO5P0O>L=97w&aO-UwwpCV^=m%>!ZwXV#v)!g zv2f@L^Tq-o2M3<;%g5No14=5)!o)$~0SFxWY>HBDeBVD#lke{|}Q_?mIru z;R#UDJ2b|wszLS|2>{`jKEJ2J%+b1nDEmzYNiY^OIkf13o|A-Otks_MgoGqbbQ3LA z)7}NH?5N?wGlW`-LV`f1Xh(>+E=^Bfy3cl@W ziQ2z`eXBz*fWbKzJS}CH19fcwB@^`*)Lu*fiV7lI>`ncXV zyh%BAdcxb&Xg5PpH-Ft{{Vc9Q8%uoEscjUBB_p2*=&aTi)sCY~FaF9@;+Nma6arvj3<5(nG1jP5!cN#WIyuWil8=_W1nesfmj z(FW)wDdQ90mB8|fj`#H=CN$TZ>+_QZln3m!=!OLmrvUXSk71&O#|;XtU(I3AX0)dg zH=^&nj@JdFkK5SyPB;Ep(=BSF1j zX;EW%MK^Q;&xGr1<&nm4MWvEKyyZ}h(zMA2Ejnf{fx4l}B|(EWB_FKF?yV5ohD?$0 z7|BDk0D#-mMO+wzigw!Z79jF(_#?yj4N+?_XDdsNSmD%JUS~ileQDnjS^88CI#(!U zs=Nj|(yy;xR}%v18?K=3$AbNS2pxzouIOT+KSF9_>ol){yfpls47}R!njG$dC)gjE z%srw=6q7cs#TQ37;=w8E^Ug$1&eeK#9%1JuP=JONzdzWg+7#=LiWT^87SCj4$__c+&r~m$bwMf8ufsT{U9nG=7_(^wa6>i;=ww!zbME}8xwxqgwjuj1-suYtA zG1>iFS!Ym!+`|87$+%%$ux8|Y&=M9(71xHwP`hE4LO&CnZ$9~!fzWyh8@Y$HixM1_ zkgiB?$YDf3MWn(Ls!#0^UAPOQA2E1@X=gw{NrM@3j0Lrh?uonh*sL+{cu}Z0c6!zj zE%y`rzeS?+jJq7@AD2@WJP;7&|A<5>xWC{4_CHm#KUeJzYtk@PgPdnAu7og@^Z$y) zI?EP7_`sW3+1sV#K_rKs{_68T$YeKx2NY;jF_a9Z+ne!E2afxC-S3^hP3YSrH71Xm zr+*8FN=Y;hPOiTt#C`ha{$o%ob~owKpdIa-Fko<@D%+%El8Aa+f(_R9YYXaFlX36> zXxf9$zpkxG7gz;4m&P&Wnc}lHLeq+Z7q0v1?ho4~s$<5xEjZB-0&1g{WRvyg0tDa2 z{9-Df&xNCr7wrl+8eQUZ$W#`i^h`+4e==OP`jD>$0!q{@qoB#?B+MVL_M)k~zFvua z_%$$ez5*}n-L%l*Q&5KuiUeuv>&1ZqA;7Ejz9oj8gJc{j9>~auAHA*(Zx5!A`$KQe z*e*N<$`*RsCN4~Be_lsMDle8gBOmNXl*9@Y_%r|XON?l=C>|l91z@`y*aAVN(vy$a zh?qMMPWUc#`^Nn(6JF)jiue*VY)=3#Q8FdTQvv^1)zLg~;B=DL$PI`Ffv>d!04K9Z z1fHu|nqcK^Yl)q2O6s%NDeURzDftU3X&&eKiW8oR0qvvT(s5S|+e$~03WQf#v0+1+ z@hY59TJm*|xG$)nEsgX!r$XqYiEvIkLLy^XlWAQIF5r=fd@>Yfqbj%Nq2%JX@x4%F zm)8dr8Udf7tn{12%oz;m0n_hNJ>8uZJ!0dm_*sW=~o}TE^=P>3k z^_ZV6_U!RU+7=pm3w3V=I4W+ZVM8;Ij9O7g=Pj$2sc;go=Q@pD!7X(H%=^mu^|QLa z&hYQW&(=|&$uv#~`ndK-^F{;j=opOLI-^)qtZ-t9Qhr&PK&?lzvz=<&CCLfT$41F5 z$4<*SoDG+*LD_{&iSL_jAp`B8+@OAHyYi5($d_#@l7DkIZ>%h4XYjdl`vBqb@TH>M zIb=Z}yg@-SheRa!4=^eK@GH8@rHWW5H-C=Y`^t^-vb}_jzB%hlsrW3-WGr?dM*hsF z&OW=wGGbnq-m6J1nqJJupx-KANz6b!T0DCf*>$E<&JdaA_aRW*H)f!ez=GQ7JxRqQId&lX(; zIpnZ5#WG_6z-3lQLr}uHeQz%%vb`oL%wgB#SBOY-`wT4Rw0-<;SK{TX^3|i_|Ne^_ zs?_B^yOa4?n2#1k;et?DPT=y{8l@h!Q}BNyalHQ7Ucy5I0X6fb)}uk9rrzNELQKUc z{DBRu38xMAo0?jIbm8pugrscp7&he6>cj`cR@rLO>?~HqcI5atAW%Qg4<8I5$#~|4 z!Fch1CIx|Tz^l)oot3u;GhZFvpZ}Je6V7=fA&l>1ZSJBf!&9wvqxv1X^&l_A{o^KX z9`^T%H`91>+F8db_2qbX@h#OrjeesK{fYoMZTAf%7#T8U!-byYQzl^$^>Tt|h@d-V z1(uM?m8;}Y=#^u9DaQsa<(qK_p33Jp(cbSS{C`}%Q(z~7*2Edxw(W^++qP}%AKT`{ zwr$%sCe~zPZtlIi5BojzbH8<;Q|DJzqtsvyXp(Jj!NJBUFU6gL>O=b^SZ}Pf%5Ro< z+-Dfr@-7*kGW$do7>lG0`#7A7e!X54#-IRq+(qR44km6+{=a|C*Oef=Kq zmF@^0SrK+hESZ>SU~O_^Pf0eCIE!H9)S>rT;+PBU@t+=2>WjICujef1g+k9OivDnh zXtE5@7wVFkK}1IMWHHntlO6$NMEMyC4Y-`jKe*Hq64nhVVTq+8n^l<*qM_<~CV}Fi zF>xZ~D@Fxmk;8NMrSIU#QN0EdaEzj1D!2-1Cz-j&e1Z^L3sXexQp0$ORG7x|dv*TN zW4L?B(hgC{v4PE|7gfA6BUrHt3Qgjriqa<>aAKll9<)zio6mgM1f~HbGL8P6Sxv<{ zQInbqpXgA=rG8R2wUK`P49DS?E1G1AHi=HIOm~GBu6S8P<9B9}tEEu1nfylhYA0N& zTe)`gD_W%=aG#S^iJW!i_Nw!}PSh46i@ph`7wRf zw=<_fb$DoxA%m3dLeXvdz|nIp^xW8utZ4m*LVa~rcTxF ze5bPrsS)xM-WY;tY|sJjE;nmTX!?iT$6Q)sd9Ac*RbZ!h1ov>t7#6-FXRi#5T3~FU z_S{g5qMO}K>1lrON-d202Wa(*2j%DK~1%##Hk^v#AJ(OR7 z_y&(Y`MV0D@((~?{+8_gv0$XlDF?p-hVpSS-JKt3R&t27w`nHoc)o_YhoOo8C_>6B zj|Qne9=_gJ#W>f{hkT^;^?1RZSqYk ziM6?>tWt&;mC9Twxo%pXRb=_)tbyF{J^hwX>1*;Ob*rWRR=$$R5=N`{t8sJ2{plCE z*g?k$SMAwg&Eo?Zsf{F|@f|#>91CND6IH7OBf#j%Os^bbK@H;$bDM$`P&TB->5zCC zow$bkFSXbqlS4+nwM`~NRj{I>E4kg4g9zl+o>)eVP`^OlyJ`${|z$v?<`rk{w zKE#>|S#ely@qGe9Zp%A#&9Z0Ib!sd}PQ*rg_W0`M;vxSQ@BT#x*1Zs=I!#!LiXVbP z#D?IOyr#>+^f9dWHiCSFMfd%PhooUU$$(oUkK%e4@vk6``40*^>MhEDwXBH(@3HeWj}eI?u@^Rs)O7cJvA_Z2?UO1MIN?K0MgeV~6vW$o^ zV{W8?VUYt@5dWMyi86&t$%5pv&Zi?{ZCit58%+h7=_!icSl@J8mNF+Vtg0(pV5R{BOA*sq{wB?Xgdm1X z(vsytRTIJtODfp6#V1o>FgfHf!EJ-@{3>j}sy;D%JP4u@QmVOyF zE4vsiJv*lv2u)kV8fQ$VGMYPlr#ug<`QCtVC%vrWCOA53Ui!grldA zj*A8cnLlSoSKj{?sU&ls*mF8U)Eq-h-EH5$u$`o>Fb&&1!QLb*5>Es@YhKj|c=U9C zC(yy6gujwtbwQ=#KsY;dEb1O^f~+%+;Q^>hlIRN=P)c$kK~$qPFa{Oa*K{UqLv z*oHp0yd}E{y(nds?5Tg)G&pLt{YezazWZYA$OvyR^#N0Ov;6}{q`O_Em$;g<|u&M?3me9B_RSKdY0MH3Wxx#hwB)(61!AwRO-V%gIU137c{UDAY$ z%o_1@9UZkI+UX8tL1Vq(J-uB=?gt}vOWnh^bcR%VAiO`eAQ*F*Vb-}+c6Al`x&l4K zxyaC|_~dW-a=e7gELAxRzuNdpSCgs2HVN$YZ9LG$*X=Y9#LlRS5W4H-b~-nJNZ|m1o6di%o3Zrv z3;`)7=>Xwlh-93LT^ zvVlsCNi56>f;Crr)(JQ(iL6LD@Hbehen=k}SuG~p5|`{Ziu6=v#H?kK(1U!StHP;+ z1sT~RO$Uy6*#c9sSLQ;I)0HM4ehvl`bXvcVGQFuF$^e_As&}t9Im!^g69?ZRG?@|y4?%ovJ7Vhj_hx7$8nfv+@sAx? zm1v_fDmiN2pX1l;rZ&vF_`+|bVyCN!(%`@WT6-YeIk8R(DS7m_Dt01MJUd~-+=r`x z`ewc1wY=cDhT)AsmE%^(Nb?{a>QKolJmo~NSY=;vCqN9N(tUeQ?=je)5SL0K^2kIP z4B;f0mU2tHbd};)7opWc61)Ua*hVlp)&_VcuUdq(t=lZ2Yr#S|eDXRKBot<#aTx=Lf9x2bRPv8Ro-oVNuOR2Jqt z_XL6rMFIZMOfQ5Bkq&$1mzH;k9PvY9TM4wkX3?N(5Q(7L3z;YsO!ZUsfQLp;if3HTFi6uRI?O38pvSD0vrfzY5-K9^^w;E=*qfnRF5^Zt;ebwD87g- z-lu9`f0+{n*@hv37m}P)kJ6?3#h4z|pKV2NxATb9%IV=>X|#9q@Y$>DkGHtu;@dpt&(>a?I^P_Od<_ zcs}J;zF+j)dZ|_bau?XMlTc4Ah}-IXpOl8$QpVg7cE~XNoYC&3iDwrAn>i_+(|Ue| z76{g}W=;2gSi0sNmc+*h#;HVYr0eAc`1%@9we+z-Ysw}mN24*?16e!vcIfLa5x^Fr zbsY}j;*;a0gmkv3feTsl(vo^+DDN+N1J0VMoN|ji< zv~gZu$^d5D-;+-+m(z`{c#cKa5|GkemO&jcbmqmn?Z64?-_wCyxVyih@qLF^0aB-Y z;7o0_1<0*Yj0HJO-I%Kj>)VC=o9jDNgk3$YUf3A1lR}v1l2bcFKEcAbXb#oF*c@o+ z0LY6GHzngY-bi*Vs@`>=!E(JQ`hLl5zQMb@%~<(y{7;a(eS0=lHS>FZ0Z3~uoBgXN z=HW0MmuxsxJX(#K+j2giC2(nOVa|awJ?D1cLbfhqg}gN;JbXV$U)>i~`g(J-Xg#Vn z9+$a(=#%RyL+$xRo2r`nlPI4s0IJ<>dr|6M;ycs@grAMcS0!ww4|>3x{hzq=z3p+{ zj^n*vl})u9!mn|^y1%>L0DO-+q`gk9E|YSHy(zwqguPy^?F}uL7c`TvW1cGyJw%UA zwIj`cpj?vwWI8`1@i@YJkN=kOR+LFyc@;2HX2eYweqX@y*}iYS0{(ks-%;mt_%Xol ze9}UhO9e>B;G#jn>6|TA2!(f^<0vj_ai{#G<3`~(f8O#bH`)SDi^LY$gE50iyv96k zdr0+U^k@ueO)~2O-4N(#O_fBrG40rmY#H#-2x4a`-iM5aVaRiJ?ohf#N3hdiZ@Qbm z#0$PCN_n$G@W^)wZe*~ z6c>fG$F^V{C4~W4tduC&(#X%ipIbqH&w$4f*QT0q%~FV0@%-lVhWjh%19>Kl5bVt@ zZcvKq5wwj@J8&JK6r9$?aiee6}kY3ypl4(K*NWs#NYUgsyCNe z+5i!kN0g$Mg^rXdXV-uXJ5c!G7rNV(dT)N}mM2&e$5qHwz`p=l_j+UC6W9_L?@C&G zTkwm{3VIRJ16P>cvc+zWDD}{TeZt6XVC3jY?*MW7((Q8?ikrJ=Xk5~8eID5&b$$L5 zz5P=Z?NR`+DRAs6Y2VgvXWRrvJEu0<1?RmL`3MMxpKRQ?D#*Wl($Jrb0thaui9Ae1hV|AYervnOW13}>7o0EX@YfeoZ|7UAMI z0=#;=*-5$be*eKaimOX~UpyPp&eXU%^}v)^pJN30)ONzR;f_Tgyk}gi)VXvP?+uo%k-2uB-v(tOBA%Gw`sPJ_8se2CxVFTP43{>_ffF!2$UXf>#(#f#oYu3BTZ5H$g1f*F;)BZ4% z=wsjh63WG7I_^PcE|-jHV)r*M+dD22-fzc`x2J1_d;0mx8g$vRGnk!KSQ=$Y6>fe> zrBi>HwR&Ykbc^TWXpseNyl!C4QN^MHrh5c3IXJbOV?p3krQt^^re{kAEir<#UFzx}mKW@6J5F_<2 z!K-u^wMohUeI?!Y`FZ&JyrgPuHdryi|Een?=#weA8+|5jlNx7bwE*$Y&L=TLJQax}+t?r^8+s(qs)z7L zLF~Ga*+-_JH3Ke^XhgYuL7Pq7bFhAiwnQbA(-#`|`hj~;w9!(u*J95!=&|b%OX9$* zUn^o=J#wF>)C&{SBS8SBPep|@h)(CBYplg-Jds2A!Th2>mXMr^!mc#;!udpHgJxeU z*8*;9;(tyI8CIUXGE5M!1PNK;Xh3rY8ANuhk z9$3H=OJ$;4<|%&ZhTv^-46&VEUE>aE!*Ggh!fWY!*bGn2@{qqBM*eKBGCDK6BL0^!{q)R5~C!VatujIXTm&MD`cO1Ed+P6iW36n4F% zOm2#pwp=Wfi*0{094aVj${LJkbKcsx=%?LZU6PQe%eU8s$dOY{Io3q>T_oTZUVjg(VC@k;2a`~uMw{zQ?w z{%DUP;-HF?(MAgq;UUE}_J-?hMT%lU6ra#^glL@e)Q8ciqlax>1%YGoF|34Mx;af{ zsoko-rYHsPfv4GyS%1(ZYHPz5$xn8FzXs@E7gKey8`Mxt71*t@kf=wQ37XsLE`X2W zycFK1${UpDBoIoaK^SrFblZeO=qEyfHsF1=%mzgx(+Nid%8WvaSHWQwjX&L znn^heI}m%)%e06l%hpOVj>x9hzj{ zt~h^9`kss2Uc<_aGbDHBzMMY!*sAaw+`1WOURuaCpPwU=Zxh*>oEMJtJ~(4$x1P#KLm6@K zY<33UR^Nx>%|)4lhejoIa5O&GaI$-fkh8Yk@V5JbMK6y8J@?$I;|Rrz`d7kA!@fcd z*Cuc9qe_M!XDrx9vHj2bJx1b(j_F+2Y7I0>ECaY=Fnpx31U`bkZp!@}`TAdU9M>wQZ{-1v8uCE_f$9}ab8Ja#5DMUkpT>gF$T z+1#U8un#gPnc+OxDHW&05a0kpaHpy3Nk8%9S67Yrb*vu4OAbT-_+hl_iC|wgzFq!a zxcEf@@w$XN{rsW>E#lF_svMRs&0qcNrYAxY?pyi4raWA5cD=XdH?t`|oaJrdYjvj? z_VEig690Y)=nV0Z0Cxc!CI&YGbXyV5qMcai?Vs|ZjIa>nH;2d(!~yRXvsSKF--*cf z!G)uF*$j+d;5kQvaa8BQSoU0RPRNa}Yhr<)EN1kfpTzz`ZX45A*k2m?f5FMEd{|Ov zGcroh)gAApv2#P8*?%e5?T`LN?C|k^z2FRx49qvS&0YO+Q$taQr$QG?@AHnVkk>IER-L$;JzAtlB+jD8G+cI0z9B6yx)UT0L4pEJfKIV2Z-J;Wii z54JtWuV8@>6{w2weFYl{`s@sWs?1Oh?8^@M`1GjOrHzZ3YGV*x)crJDZ(Y@X|gR1F=0 zbfg>6E%_wYSM9_a4EtAIeXt;cOJ^~Ve`L$a|HziNlG2S=lXgiMLKe+XFj|NB@q0Ud z9uoB_(M|}gp!g-ALEoh*$2b_63#9Cs8i(GatctJ`UZNTKqq?Hlp40<>+(hZxKo|;T zK7^`C*a4?uOf})Z-=M%gN>cnnXk#{VC1qJ6*xE&tY@YA|rZ%UyIyH*{6@-)0+N8c%3oT z03a-3P!>LX@9qm7Ojm>U9*JFak`u`77Un+p-Sdai!7EM?0FH;Hg`ztsjz~U)oduLj zY$irEsOpGv9m@z!Eq<1hQScND+qQk81wqpf`;C_*@(LS6x0FkLgkSOWeooRNj?wzi zk3nvQ#JfY!2?q;q&F(j`0oT#aXKTruQFI%5%q;W09!;&?0EZ)PK;#e}W!xRZ%B|@! zK4aWIdgBLUs4|$8q(kFGe5Fj-3;-?`WBK~qt0<)@Z%m$7#%MiC$V*=d)8~Su$i`oj zu1!F96j%!DdEd3|eQ%1+Qls5Js^Cmbdx_nAJ4C5kwEx0wh}b`sL|!aHz3RBY2G3fU zbRda>T!@Of6z77RCW91@a6m{$!3x>7iUYllh=kyWR+l@z-NKo6L3#tkEdVe6=I7f7 zuZ91}^I6-S4SZjW;)qW37aT=)I+=J|CO;yLo&VhRpGayqmfzXxv;2Y^G8d&XQQQ;~ zqM!2cp*Vu_2o6*zWk}x~PT|j7q?OaihyT!?usXyjj&N_?!Hd04?NYtyr0G&N5Aak4 zK47TkSx{6REu{6U&mV(XN&$fKIxX}qWpns@=5)Lx#308a-iq6Cd1>4VkX+)i%6^Qd zN|ptc^<3bX#qMBvrEHt^-mG{Vp2^E!+U4X)AZ%D2!tt2u`t|B;Ji)B(4zV)2drY;O z_02W+5F7;KxVy&<)kgl)%NWw(bLU(g52dAj5kv_D?2moBj)(nZxJ0grt zV`ssz00kp=2zHtd9VZ3m&rCp}_sgT!uQt1SU1)#mSGB>q*YtX9DW`7mNkpsPzi6jA z{@6}k5ZB9i{k%i$CeyjqmI->tXtnrsF)V01qvQf2V#JUS(XpIz7jmgh=3E+ zmG{@%>Jfkpqbf#3`+uFM&!Rse2SzXQEKWE3G9q^BG@D*xm)x*^Vw&!J@LoUU5fB4b zJ`OE}LxsN#NKIaz&-Uo;MSAJbzjX%hMN^|q$ zE+?V)OD-_8DrFxqMFuFj?A!7h72VxFwws(&OZJ;kmp`B%Y@bRWqP6Dz^ZUOV$+ec< zf7s2hpCyw@@Bk=HmC`M}Gp@eCGTd%tckx;UI2e#7kAWPiDn=8z@aKQOmT~!O9Bd3# zL6FE3{P?*YzOiH|cyv@<6s<7mf}{vM&LbCLFVR6&Nk2lE*@0Qy2j+xJpc{3|E%%hZuZ@*7-k@goRhS!_}IsX1LOo9{` z*~|w~3xiIO3>a=fKLA3;=^@fKirZ>%4^Kf&{AE+Cv_NWlDAVSfEAx_ z<+E|kc}=Y$I+kTYxuLKuEl|y5O9zJWh$;-`tdH-!Q!mO6{I(C!4!qMTvt0mu^QF_! zNls-W&{(OpG`jY5DC&Oi+rOleg%mMRWofGESh>V_!ihR|t{x8W{`VdrXkM`Qho_-G zk&l{oPVgFqstjYj0v0sX7W!1ofbaC6pHknxNq0b6RA!!1MgE-%yUpm#q`y8rD_cCl zHbEcYwK6b|7`7wL9#2^?3RXCaGBhOHbE1q0(OggB^G7j$e42naePubRd`Lw6%&WEot*03RpukmIHbj6l z>~dHCS164tCv6Mgp3UndLZL|EU(@SvnGZsmTM2xcUAw}@2hCWmV*!t#S!%jPtOo@M z)8xuNrqxy(W)^O=m4(#)ny``owtG&&7|=U2DSC?E!pSKy9Mxib1j&k;!Km*+W5*-c z%$Yc?D94sA7nH$Q-qrxd@n0cNMU*0p1+%sno;T^04`#e9IQ14ITz>%h-CXKp=ZC82It!cjlu(4c6{(ynBhXj~-Zf8an?nE1R z?|vd2J6IBtp701#)7%R3J3qLO+d-qxd0nBf~pnH&2^irJtDk%D=yQzzh-(6?AQi<+?Xmpy=~ka z>=fy&pr4g>P0;h!(vXnS%?c^l>f{h}n4m3yc7TrMdxX5zKKi zrIWmM;2BEL>X&FE4_}%AD`V~A4!`{aF4ud$@*!<9a(0w+gUD);{$er!B1bN1?5N%v z%CMH~4S**6Vzw}`rYH=>Sk?sZ0sNmZ+v{-=8`l3M5dO%KbU%Lx1+jEVZzz=XFL5Xw zfKL3MI-CY)@r{uP~yCIJ>X+fZ$5m*EWiUKJImtA-Edg8V07ND(NTrRJ_4%pLl5Pq-)YTV{@H!ZCd+$XD^Xy+tx@|ljb;mCOrmh zV;l22j9yBLLpm0x_|6hoN4$y?uv-&9U~%Z)`-pX>Yzb3z8Kw*(0Zs7VGI25ttC*Hh z2}sXy?5-%lNOV(V#ufTpr=Z!k@+HX}eE61}Y9ITht?f`RmSj09KijH1q70e-GUzw? z@DXGfXN_TG+kdX3Wa63oIPDD|-rv%u7y<^vfG2{KnD6L^0(L5RA35d{rX)oGL&IV? ziYjnEC}e2J49cmjm2qT5zNrsIQI�?Qa1Czc_q$D)mg$7IA5Fk@4t%i0OoNyE!A@ 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

    -FjKkjPH@3rm$!Ud0_Ji5 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

    >Pe2*Z1^lsfdbPXFS4=Oa5Q1F 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
  • D zHwkEZ15QUP?vgz%&Uc)1IM`bU<2|*~3qOp)edL8jP}RsmRq7aroCTSD7&58ztKZiV z8E!}0ncUew9*|~0_*7PQ|22Z7qh$@`K$je?GV3(JT|hC_m@^o%Yk-IpX@McN4dh|U z@6%0Q33xTgeO*cf)9J{r5x8euBS}*Oi*L<|2WbC){ItV4Pzxf?wDv=_`vH{$22d3W zOK=S+Zp0Oc>DjKjf7K_r#{W#_?`0h_!o-ayy@?#OKMC7u_yKur0F~5|7B}TVaddtm zY_b|gJVO6<`}op4;MJP{@an~>V}vd>;mQPF>Rp0@A~0Gdj9%1EbaK`hywM6_QKEMf zLNVSEndQ(Am7Ms6nDfR6MK+U8i!c2V83;ywhGVCC!t@%0zu8QB{w8-@ecLv>M& zyB3x$`!OL^4p^9)>omYR5&1-%Zr(YeOyYI{~XG z^s=3_!TWolEoZ2-g9yRF@)n!6bse(qz)c7n)V;R2kAt{;fZ7Cp;w?69Xfp#z9%f8L z1s!C}e-2kkgo8)v$7pQ%eYN9bN|PXlErN(r`^(c>2D;M8n1H4~ z!c_?DFWV&JGk_g0#^1?@>jGY*q1Z$QS6aeHF-b{+pEhk&4Z;5e!D>~N2?^xR`yjleFwpzv1{uu+gk zRIk)JNUZTN)FQ_OLO>H`ypRPGwnKBH3heD71p>Z;z?vtdz=3}s)b~Iv4ny3ijMo2* z6xjWf0Z)-f1WLyhd3Aw60SHj1K>2}D0coWB6jvuqIv(1jVhKJtf)CW;X2F{g0YT=( zQ6Ki4_*gLrJY}+w|2cK{Faz}}G1buEQ*vl|ee}aI9Q@6K76Ez3TWp$y5Tf{nZGjtV9sARyji(*}&W_yb+!s|rkU zhy6`J$!nk(sD!!FVvOpgE=*Chyobz2ha(NnIbgplD5vHbYsMHM9&6Q2GJ9eJSKPE{ z{$~zhbGi5-;A52EP1>(%DdH#w_Me8(Q$zV8fQRRXGBTQ_wi=>-$d2Dtn_wPP6n*U_ zM`xSVpIKgjp8=;t&ElcRG5EqBGV~|Vz0I7_ybQ92`g%&zW-i|3Ad@+I^A!1UHu?+z z!w>P3DkF}IS1w|TAh%x9)nBJhHJF3`U^ptOJs*$q@UqCclMKCT_Hc$A*m4&_Ne%s) z<6QjPUUKwLY?h;ELMgR`@+WXZ5f|D}&m2#*LW1d!v;Tds1fkht!p}zqS2=hURQntk zL+787ri&IaW`Bfo-3g~e?Qt>)K5N`;r}p>5g41+ z5RHEKldpx2zP*8e9EeCqZZB|s&dW!!FW?0#{i8Tqdlr`$r@n-OYB|3Y%f!)wbGQ)_ U9l)95XR))`eISkIOh_5*|HVh~^#A|> diff --git a/api-reference.html b/api-reference.html index 9529a103c..b48e5ecdb 100644 --- a/api-reference.html +++ b/api-reference.html @@ -4,20 +4,19 @@ - + + API Reference — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,79 +35,114 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    + + + View Source + - API Reference Nostrum v0.9.0-alpha3 -

    + + API Reference Nostrum v0.9.0-alpha3 +

    - -

    modules

    +
    + - Modules + Modules

    @@ -1426,10 +1460,10 @@

    - -

    mix-tasks

    +
    + - Mix Tasks + Mix Tasks

    @@ -1446,7 +1480,9 @@

    -
    +
    + +
    @@ -1463,39 +1499,39 @@

    -
    +

    + +
    -
    +
    diff --git a/api.html b/api.html index 25673a60d..1425be202 100644 --- a/api.html +++ b/api.html @@ -4,20 +4,19 @@ - + + API — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,101 +35,131 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +

    nostrum includes a complete implementation of the endpoints supported by Discord's API. Method names are copied closely from the documentation to eliminate any confusion about what a method does, as well as to allow users to easily lookup the endpoints in the official API documentation.

    For a full listing of method definitions, please see the Nostrum.Api module.

    - -

    banged-api-methods

    +
    + - Banged (!) API methods + Banged (!) API methods

    A lot of methods have a banged version of themselves. This is a common Elixir idiom hailing from Elixir's style of failing fast.

    By default, the API method will return a tuple like one of the following:

    # Success
    -{:ok, msg} = Nostrum.Api.create_message(179679229036724225, "456")
    +{:ok, msg} = Nostrum.Api.create_message(179679229036724225, "456")
     
     # Failure
    -{:error, reason} = Nostrum.Api.create_message(123, "eat my shorts api")

    A banged method, instead of returning an error tuple, will throw an error. If +{:error, reason} = Nostrum.Api.create_message(123, "eat my shorts api")

  • A banged method, instead of returning an error tuple, will throw an error. If successful, it will directly return the response with no :ok tuple.

    # Success
    -msg = Nostrum.Api.create_message!(179679229036724225, "456")
    +msg = Nostrum.Api.create_message!(179679229036724225, "456")
     
     # Failure - Throws an error
    -Nostrum.Api.create_message!(123, "eat my shorts api")

    - -

    abstractions

    +Nostrum.Api.create_message!(123, "eat my shorts api")

    + + - Abstractions + Abstractions

    When appropriate, some helpers are defined to make interacting with the API simpler. An example of this is Nostrum.Api.get_channel_messages/3. By default @@ -138,20 +167,20 @@

    use case will have a user wanting more messages than that, thus nostrum handles the retrieval of any number of messages for the user.

    There are other endpoints that could use grooming like above, feel free to suggest an interface and implementation for these methods.

    - -

    ratelimiting

    +
    + - Ratelimiting + Ratelimiting

    Ratelimiting is handled internally by nostrum, so long as you use the methods supplied in the Nostrum.Api module. This means either calling the methods as they're given or using Nostrum.Api.request/4 to call an endpoint.

    To ensure that every request is handled properly, no matter if they're called asynchronously or not, nostrum funnels all requests through the Nostrum.Api.Ratelimiter state machine.

    - -

    rest-only

    +
    + - REST-only + REST-only

    If you only want to use the REST portion of the provided API, the only process needed is the ratelimiter, which can be manually started by calling @@ -159,8 +188,10 @@

    dependency options. If you're using mix release, all runtime: false deps will be excluded from the build, so you'll also need to add :nostrum app to mix.exs in :included_applications application option or in the releases -project option.

    -
    +project option.

    +
    + + - + diff --git a/application_commands.html b/application_commands.html index c713da834..dc9560642 100644 --- a/application_commands.html +++ b/application_commands.html @@ -4,20 +4,19 @@ - + + Application commands — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,182 +35,214 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Application commands -

    + Application commands +

    Discord allows you to create commands for your bot that work within the slash command menu or via the context menu.

    Using nostrum, you can create, receive, and respond to application commands invoked by Discord users.

    - -

    permissions-required

    +
    + - Permissions required + Permissions required

    Quoting the official Discord documentation:

    In order to make Commands work within a guild, the guild must authorize your application with the applications.commands scope. The bot scope is not enough.

    - -

    getting-started

    +
    + - Getting started + Getting started

    Discord differentiates between global and guild-specific slash commands. Global commands will be distributed across all guilds that your bot is in within an hour. Guild-specific commands slash commands will be available instantly, which is why we will use guild-specific commands for testing.

    We will create a command that will allow the user to assign or remove a role of choice. The guild_id parameter is the ID of the guild on which the command -will be created.

    Our command definition looks as follows:

    command = %{
    +will be created.

    Our command definition looks as follows:

    command = %{
       name: "role",
       description: "assign or remove a role",
    -  options: [
    -    %{
    +  options: [
    +    %{
           # ApplicationCommandType::ROLE
           type: 8,
           name: "name",
           description: "role to assign or remove",
           required: true
    -    },
    -    %{
    +    },
    +    %{
           # ApplicationCommandType::STRING
           type: 3,
           name: "action",
           description: "whether to assign or remove the role",
           required: true,
    -      choices: [
    -        %{
    +      choices: [
    +        %{
               name: "assign",
               value: "assign"
    -        },
    -        %{
    +        },
    +        %{
               name: "remove",
               value: "remove"
    -        }
    -      ]
    -    }
    -  ]
    -}

    To register this command on the guild, we simply pass it to -Nostrum.Api.create_guild_application_command/2:

    Nostrum.Api.create_guild_application_command(guild_id, command)

    You can register the command in the :READY gateway event handler.

    - -

    receiving-interactions

    + } + ] + } + ] +}

    To register this command on the guild, we simply pass it to +Nostrum.Api.create_guild_application_command/2:

    Nostrum.Api.create_guild_application_command(guild_id, command)

    You can register the command in the :READY gateway event handler.

    + + - Receiving interactions + Receiving interactions

    Set up a gateway event handler for :INTERACTION_CREATE. On command invocation the interaction payload will look something like the following:

    %Nostrum.Struct.Interaction{
       channel_id: 474025345243414539,
    -  data: %{
    +  data: %{
         id: 793152718839087135,
         name: "role",
    -    options: [
    -      %{name: "name", value: "458692275199803406"},
    -      %{name: "action", value: "assign"}
    -    ]
    -  },
    +    options: [
    +      %{name: "name", value: "458692275199803406"},
    +      %{name: "action", value: "assign"}
    +    ]
    +  },
       # ...

    Note that Discord already converted the user-supplied role to a snowflake. Convenient!

    Let's match on the retrieved event and create two function heads for the separate operation modes:

    alias Nostrum.Api
     alias Nostrum.Struct.Interaction
     
    -defp manage_role(%Interaction{data: %{options: [%{value: role_id}, %{value: "assign"}]}} = interaction) do
    -  Api.add_guild_member_role(interaction.guild_id, interaction.member.user_id, role_id)
    -end
    +defp manage_role(%Interaction{data: %{options: [%{value: role_id}, %{value: "assign"}]}} = interaction) do
    +  Api.add_guild_member_role(interaction.guild_id, interaction.member.user_id, role_id)
    +end
     
    -defp manage_role(%Interaction{data: %{options: [%{value: role_id}, %{value: "remove"}]}} = interaction) do
    -  Api.remove_guild_member_role(interaction.guild_id, interaction.member.user_id, role_id)
    -end
    +defp manage_role(%Interaction{data: %{options: [%{value: role_id}, %{value: "remove"}]}} = interaction) do
    +  Api.remove_guild_member_role(interaction.guild_id, interaction.member.user_id, role_id)
    +end
     
    -def handle_event({:INTERACTION_CREATE, %Interaction{data: %{name: "role"}} = interaction, _ws_state}) do
    -  manage_role(interaction)
    -end

    Okay, we now have our handling code done. This is pretty much the same code +def handle_event({:INTERACTION_CREATE, %Interaction{data: %{name: "role"}} = interaction, _ws_state}) do + manage_role(interaction) +end

    Okay, we now have our handling code done. This is pretty much the same code that you would use for regular commands.

    - -

    responding-to-interactions

    +
    + - Responding to interactions + Responding to interactions

    -

    To respond to interactions, use Nostrum.Api.create_interaction_response/2:

    defp manage_role(%Interaction{data: %{options: [%{value: role_id}, %{value: "assign"}]}} = interaction) do
    -  Api.add_guild_member_role(interaction.guild_id, interaction.member.user_id, role_id)
    -  response = %{
    +

    To respond to interactions, use Nostrum.Api.create_interaction_response/2:

    defp manage_role(%Interaction{data: %{options: [%{value: role_id}, %{value: "assign"}]}} = interaction) do
    +  Api.add_guild_member_role(interaction.guild_id, interaction.member.user_id, role_id)
    +  response = %{
         type: 4,  # ChannelMessageWithSource
    -    data: %{
    +    data: %{
           content: "role assigned"
    -    }
    -  }
    -  Api.create_interaction_response(interaction, response)
    -end

    We have now built a simple command using slash commands, with argument + } + } + Api.create_interaction_response(interaction, response) +end

    We have now built a simple command using slash commands, with argument conversion delegated to Discords side of things. Further actions on the command, such as checking permissions, author roles, and more - are left as an exercise to the reader.

    -
    +
    + +
    +

    + +
    -
    +
    diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..aab47f15c3f82ae6b426e294422dfdb3dcc254a0 GIT binary patch literal 12055 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 literal 0 HcmV?d00001 diff --git a/dist/handlebars.templates-IHH6HKET.js b/dist/handlebars.templates-IHH6HKET.js new file mode 100644 index 000000000..41a1ba3c6 --- /dev/null +++ b/dist/handlebars.templates-IHH6HKET.js @@ -0,0 +1,224 @@ +(()=>{(function(){var d=Handlebars.template,y=Handlebars.templates=Handlebars.templates||{};y["autocomplete-suggestions"]=d({1:function(e,l,a,p,u){var o,n,r=l??(e.nullContext||{}),s=e.hooks.helperMissing,i="function",c=e.escapeExpression,t=e.lookupProperty||function(f,m){if(Object.prototype.hasOwnProperty.call(f,m))return f[m]};return' +
    +`+((o=t(a,"if").call(r,l!=null?t(l,"deprecated"):l,{name:"if",hash:{},fn:e.program(2,u,0),inverse:e.program(4,u,0),data:u,loc:{start:{line:16,column:10},end:{line:20,column:17}}}))!=null?o:"")+` +`+((o=t(a,"each").call(r,l!=null?t(l,"labels"):l,{name:"each",hash:{},fn:e.program(6,u,0),inverse:e.noop,data:u,loc:{start:{line:22,column:10},end:{line:24,column:19}}}))!=null?o:"")+`
    + +
    +
    + +
    +
    + +`+((o=t(a,"if").call(r,l!=null?t(l,"description"):l,{name:"if",hash:{},fn:e.program(8,u,0),inverse:e.noop,data:u,loc:{start:{line:39,column:8},end:{line:43,column:15}}}))!=null?o:"")+`
    +`},2:function(e,l,a,p,u){var o,n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return' '+((o=(n=(n=r(a,"title")||(l!=null?r(l,"title"):l))!=null?n:e.hooks.helperMissing,typeof n=="function"?n.call(l??(e.nullContext||{}),{name:"title",hash:{},data:u,loc:{start:{line:17,column:49},end:{line:17,column:60}}}):n))!=null?o:"")+` +`},4:function(e,l,a,p,u){var o,n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return' '+((o=(n=(n=r(a,"title")||(l!=null?r(l,"title"):l))!=null?n:e.hooks.helperMissing,typeof n=="function"?n.call(l??(e.nullContext||{}),{name:"title",hash:{},data:u,loc:{start:{line:19,column:46},end:{line:19,column:57}}}):n))!=null?o:"")+` +`},6:function(e,l,a,p,u){return' '+e.escapeExpression(e.lambda(l,l))+` +`},8:function(e,l,a,p,u){var o,n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return`
    + `+((o=(n=(n=r(a,"description")||(l!=null?r(l,"description"):l))!=null?n:e.hooks.helperMissing,typeof n=="function"?n.call(l??(e.nullContext||{}),{name:"description",hash:{},data:u,loc:{start:{line:41,column:10},end:{line:41,column:27}}}):n))!=null?o:"")+` +
    +`},compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u){var o,n,r=l??(e.nullContext||{}),s=e.lookupProperty||function(i,c){if(Object.prototype.hasOwnProperty.call(i,c))return i[c]};return`
    +
    +
    +
    + + Autocompletion results for "`+e.escapeExpression((n=(n=s(a,"term")||(l!=null?s(l,"term"):l))!=null?n:e.hooks.helperMissing,typeof n=="function"?n.call(r,{name:"term",hash:{},data:u,loc:{start:{line:6,column:55},end:{line:6,column:63}}}):n))+`" + + + Press RETURN for full-text search, TAB for previews + +
    +
    +`+((o=s(a,"each").call(r,l!=null?s(l,"suggestions"):l,{name:"each",hash:{},fn:e.program(1,u,0),inverse:e.noop,data:u,loc:{start:{line:13,column:6},end:{line:45,column:15}}}))!=null?o:"")+`
    +
    +
    +`},useData:!0}),y["modal-layout"]=d({compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u){return` +`},useData:!0}),y["quick-switch-modal-body"]=d({compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u){return`
    + + +
    +
    +`},useData:!0}),y["quick-switch-results"]=d({1:function(e,l,a,p,u){var o,n=l??(e.nullContext||{}),r=e.hooks.helperMissing,s="function",i=e.escapeExpression,c=e.lookupProperty||function(t,f){if(Object.prototype.hasOwnProperty.call(t,f))return t[f]};return'
    + `+i((o=(o=c(a,"name")||(l!=null?c(l,"name"):l))!=null?o:r,typeof o===s?o.call(n,{name:"name",hash:{},data:u,loc:{start:{line:3,column:4},end:{line:3,column:12}}}):o))+` +
    +`},compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return(o=n(a,"each").call(l??(e.nullContext||{}),l!=null?n(l,"results"):l,{name:"each",hash:{},fn:e.program(1,u,0),inverse:e.noop,data:u,loc:{start:{line:1,column:0},end:{line:5,column:9}}}))!=null?o:""},useData:!0}),y["search-results"]=d({1:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return" Search results for "+e.escapeExpression((o=(o=n(a,"value")||(l!=null?n(l,"value"):l))!=null?o:e.hooks.helperMissing,typeof o=="function"?o.call(l??(e.nullContext||{}),{name:"value",hash:{},data:u,loc:{start:{line:3,column:27},end:{line:3,column:36}}}):o))+` +`},3:function(e,l,a,p,u){return` Invalid search +`},5:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return(o=n(a,"each").call(l??(e.nullContext||{}),l!=null?n(l,"results"):l,{name:"each",hash:{},fn:e.program(6,u,0),inverse:e.noop,data:u,loc:{start:{line:10,column:2},end:{line:21,column:11}}}))!=null?o:""},6:function(e,l,a,p,u){var o,n=e.lambda,r=e.escapeExpression,s=e.lookupProperty||function(i,c){if(Object.prototype.hasOwnProperty.call(i,c))return i[c]};return`
    +

    + + `+r(n(l!=null?s(l,"title"):l,l))+" ("+r(n(l!=null?s(l,"type"):l,l))+`) + +

    +`+((o=s(a,"each").call(l??(e.nullContext||{}),l!=null?s(l,"excerpts"):l,{name:"each",hash:{},fn:e.program(7,u,0),inverse:e.noop,data:u,loc:{start:{line:17,column:8},end:{line:19,column:17}}}))!=null?o:"")+`
    +`},7:function(e,l,a,p,u){var o;return'

    '+((o=e.lambda(l,l))!=null?o:"")+`

    +`},9:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return((o=(n(a,"isArray")||l&&n(l,"isArray")||e.hooks.helperMissing).call(l??(e.nullContext||{}),l!=null?n(l,"results"):l,{name:"isArray",hash:{},fn:e.program(10,u,0),inverse:e.program(12,u,0),data:u,loc:{start:{line:23,column:2},end:{line:29,column:14}}}))!=null?o:"")+` +

    The search functionality is full-text based. Here are some tips:

    + +
      +
    • Multiple words (such as foo bar) are searched as OR
    • +
    • Use * anywhere (such as fo*) as wildcard
    • +
    • Use + before a word (such as +foo) to make its presence required
    • +
    • Use - before a word (such as -foo) to make its absence required
    • +
    • Use : to search on a particular field (such as field:word). The available fields are title, doc and type
    • +
    • Use WORD^NUMBER (such as foo^2) to boost the given word
    • +
    • Use WORD~NUMBER (such as foo~2) to do a search with edit distance on word
    • +
    + +

    To quickly go to a module, type, or function, use the autocompletion feature in the sidebar search.

    +`},10:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return"

    Sorry, we couldn't find anything for "+e.escapeExpression((o=(o=n(a,"value")||(l!=null?n(l,"value"):l))!=null?o:e.hooks.helperMissing,typeof o=="function"?o.call(l??(e.nullContext||{}),{name:"value",hash:{},data:u,loc:{start:{line:24,column:48},end:{line:24,column:57}}}):o))+`.

    +`},12:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return(o=n(a,"if").call(l??(e.nullContext||{}),l!=null?n(l,"value"):l,{name:"if",hash:{},fn:e.program(13,u,0),inverse:e.program(15,u,0),data:u,loc:{start:{line:25,column:2},end:{line:29,column:2}}}))!=null?o:""},13:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return"

    Invalid search: "+e.escapeExpression((o=(o=n(a,"errorMessage")||(l!=null?n(l,"errorMessage"):l))!=null?o:e.hooks.helperMissing,typeof o=="function"?o.call(l??(e.nullContext||{}),{name:"errorMessage",hash:{},data:u,loc:{start:{line:26,column:23},end:{line:26,column:39}}}):o))+`.

    +`},15:function(e,l,a,p,u){return`

    Please type something into the search bar to perform a search.

    + `},compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u){var o,n=l??(e.nullContext||{}),r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return`

    +`+((o=r(a,"if").call(n,l!=null?r(l,"value"):l,{name:"if",hash:{},fn:e.program(1,u,0),inverse:e.program(3,u,0),data:u,loc:{start:{line:2,column:2},end:{line:6,column:9}}}))!=null?o:"")+`

    + +`+((o=(r(a,"isNonEmptyArray")||l&&r(l,"isNonEmptyArray")||e.hooks.helperMissing).call(n,l!=null?r(l,"results"):l,{name:"isNonEmptyArray",hash:{},fn:e.program(5,u,0),inverse:e.program(9,u,0),data:u,loc:{start:{line:9,column:0},end:{line:44,column:20}}}))!=null?o:"")},useData:!0}),y["settings-modal-body"]=d({1:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return(o=n(a,"if").call(l??(e.nullContext||{}),l!=null?n(l,"description"):l,{name:"if",hash:{},fn:e.program(2,u,0),inverse:e.noop,data:u,loc:{start:{line:40,column:6},end:{line:53,column:13}}}))!=null?o:""},2:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return`
    +
    + `+e.escapeExpression(e.lambda(l!=null?n(l,"description"):l,l))+` +
    +
    +`+((o=n(a,"if").call(l??(e.nullContext||{}),l!=null?n(l,"displayAs"):l,{name:"if",hash:{},fn:e.program(3,u,0),inverse:e.program(5,u,0),data:u,loc:{start:{line:46,column:12},end:{line:50,column:19}}}))!=null?o:"")+`
    +
    +`},3:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return" "+((o=e.lambda(l!=null?n(l,"displayAs"):l,l))!=null?o:"")+` +`},5:function(e,l,a,p,u){var o=e.lookupProperty||function(n,r){if(Object.prototype.hasOwnProperty.call(n,r))return n[r]};return" "+e.escapeExpression(e.lambda(l!=null?o(l,"key"):l,l))+` +`},compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return`
    +
    + + + + +
    + +
    +`},useData:!0}),y["sidebar-items"]=d({1:function(e,l,a,p,u,o,n){var r,s=l??(e.nullContext||{}),i=e.hooks.helperMissing,c=e.lookupProperty||function(t,f){if(Object.prototype.hasOwnProperty.call(t,f))return t[f]};return((r=(c(a,"groupChanged")||l&&c(l,"groupChanged")||i).call(s,n[1],(r=o[0][0])!=null?c(r,"group"):r,{name:"groupChanged",hash:{},fn:e.program(2,u,0,o,n),inverse:e.noop,data:u,blockParams:o,loc:{start:{line:2,column:2},end:{line:6,column:19}}}))!=null?r:"")+` +`+((r=(c(a,"nestingChanged")||l&&c(l,"nestingChanged")||i).call(s,n[1],o[0][0],{name:"nestingChanged",hash:{},fn:e.program(7,u,0,o,n),inverse:e.noop,data:u,blockParams:o,loc:{start:{line:8,column:2},end:{line:10,column:21}}}))!=null?r:"")+` +
  • + +`+((r=c(a,"if").call(s,(r=o[0][0])!=null?c(r,"nested_title"):r,{name:"if",hash:{},fn:e.program(17,u,0,o,n),inverse:e.program(19,u,0,o,n),data:u,blockParams:o,loc:{start:{line:14,column:6},end:{line:18,column:13}}}))!=null?r:"")+` + +`+((r=(c(a,"isEmptyArray")||l&&c(l,"isEmptyArray")||i).call(s,(r=o[0][0])!=null?c(r,"headers"):r,{name:"isEmptyArray",hash:{},fn:e.program(3,u,0,o,n),inverse:e.program(21,u,0,o,n),data:u,blockParams:o,loc:{start:{line:21,column:4},end:{line:24,column:21}}}))!=null?r:"")+` +`+((r=(c(a,"isArray")||l&&c(l,"isArray")||i).call(s,(r=o[0][0])!=null?c(r,"headers"):r,{name:"isArray",hash:{},fn:e.program(24,u,0,o,n),inverse:e.program(28,u,0,o,n),data:u,blockParams:o,loc:{start:{line:26,column:4},end:{line:74,column:16}}}))!=null?r:"")+`
  • +`},2:function(e,l,a,p,u,o){var n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return'
  • + `+e.escapeExpression(e.lambda((n=o[1][0])!=null?r(n,"group"):n,l))+` +
  • +`},3:function(e,l,a,p,u){return""},5:function(e,l,a,p,u){return'translate="no"'},7:function(e,l,a,p,u,o){var n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return' +`},9:function(e,l,a,p,u){return"current-page open"},11:function(e,l,a,p,u){return"#content"},13:function(e,l,a,p,u){return"page"},15:function(e,l,a,p,u){return"false"},17:function(e,l,a,p,u,o){var n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return" "+((n=e.lambda((n=o[1][0])!=null?r(n,"nested_title"):n,l))!=null?n:"")+` +`},19:function(e,l,a,p,u,o){var n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return" "+((n=e.lambda((n=o[1][0])!=null?r(n,"title"):n,l))!=null?n:"")+` +`},21:function(e,l,a,p,u,o){var n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return' +`},22:function(e,l,a,p,u){return"true"},24:function(e,l,a,p,u,o){var n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return(n=(r(a,"isNonEmptyArray")||l&&r(l,"isNonEmptyArray")||e.hooks.helperMissing).call(l??(e.nullContext||{}),(n=o[1][0])!=null?r(n,"headers"):n,{name:"isNonEmptyArray",hash:{},fn:e.program(25,u,0,o),inverse:e.noop,data:u,blockParams:o,loc:{start:{line:27,column:6},end:{line:35,column:26}}}))!=null?n:""},25:function(e,l,a,p,u,o){var n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return'
      +`+((n=r(a,"each").call(l??(e.nullContext||{}),(n=o[2][0])!=null?r(n,"headers"):n,{name:"each",hash:{},fn:e.program(26,u,0,o),inverse:e.noop,data:u,blockParams:o,loc:{start:{line:29,column:10},end:{line:33,column:19}}}))!=null?n:"")+`
    +`},26:function(e,l,a,p,u,o){var n,r,s=l??(e.nullContext||{}),i=e.hooks.helperMissing,c="function",t=e.lookupProperty||function(f,m){if(Object.prototype.hasOwnProperty.call(f,m))return f[m]};return`
  • + '+((n=(r=(r=t(a,"id")||(l!=null?t(l,"id"):l))!=null?r:i,typeof r===c?r.call(s,{name:"id",hash:{},data:u,blockParams:o,loc:{start:{line:31,column:54},end:{line:31,column:62}}}):r))!=null?n:"")+` +
  • +`},28:function(e,l,a,p,u,o){var n,r=l??(e.nullContext||{}),s=e.hooks.helperMissing,i=e.lookupProperty||function(c,t){if(Object.prototype.hasOwnProperty.call(c,t))return c[t]};return'
      +`+((n=(i(a,"showSections")||l&&i(l,"showSections")||s).call(r,o[1][0],{name:"showSections",hash:{},fn:e.program(29,u,0,o),inverse:e.noop,data:u,blockParams:o,loc:{start:{line:38,column:8},end:{line:52,column:25}}}))!=null?n:"")+((n=(i(a,"showSummary")||l&&i(l,"showSummary")||s).call(r,o[1][0],{name:"showSummary",hash:{},fn:e.program(34,u,0,o),inverse:e.noop,data:u,blockParams:o,loc:{start:{line:53,column:8},end:{line:57,column:24}}}))!=null?n:"")+((n=i(a,"each").call(r,(n=o[1][0])!=null?i(n,"nodeGroups"):n,{name:"each",hash:{},fn:e.program(36,u,1,o),inverse:e.noop,data:u,blockParams:o,loc:{start:{line:58,column:8},end:{line:72,column:17}}}))!=null?n:"")+`
    +`},29:function(e,l,a,p,u,o){var n,r=l??(e.nullContext||{}),s=e.hooks.helperMissing,i=e.lambda,c=e.escapeExpression,t=e.lookupProperty||function(f,m){if(Object.prototype.hasOwnProperty.call(f,m))return f[m]};return'
  • + + Sections + + +
      +`+((n=t(a,"each").call(r,l!=null?t(l,"sections"):l,{name:"each",hash:{},fn:e.program(32,u,0,o),inverse:e.noop,data:u,blockParams:o,loc:{start:{line:45,column:14},end:{line:49,column:23}}}))!=null?n:"")+`
    +
  • +`},30:function(e,l,a,p,u){return"open"},32:function(e,l,a,p,u,o){var n,r,s=e.escapeExpression,i=l??(e.nullContext||{}),c=e.hooks.helperMissing,t="function",f=e.lookupProperty||function(m,v){if(Object.prototype.hasOwnProperty.call(m,v))return m[v]};return`
  • + '+((n=(r=(r=f(a,"id")||(l!=null?f(l,"id"):l))!=null?r:c,typeof r===t?r.call(i,{name:"id",hash:{},data:u,blockParams:o,loc:{start:{line:47,column:56},end:{line:47,column:64}}}):r))!=null?n:"")+` +
  • +`},34:function(e,l,a,p,u,o){var n,r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return`
  • + Summary +
  • +`},36:function(e,l,a,p,u,o){var n,r=e.lambda,s=e.escapeExpression,i=e.lookupProperty||function(c,t){if(Object.prototype.hasOwnProperty.call(c,t))return c[t]};return`
  • + + `+s(r((n=o[0][0])!=null?i(n,"name"):n,l))+` + + +
      +`+((n=i(a,"each").call(l??(e.nullContext||{}),(n=o[0][0])!=null?i(n,"nodes"):n,{name:"each",hash:{},fn:e.program(37,u,0,o),inverse:e.noop,data:u,blockParams:o,loc:{start:{line:65,column:14},end:{line:69,column:23}}}))!=null?n:"")+`
    +
  • +`},37:function(e,l,a,p,u,o){var n,r,s=e.escapeExpression,i=l??(e.nullContext||{}),c=e.hooks.helperMissing,t="function",f=e.lookupProperty||function(m,v){if(Object.prototype.hasOwnProperty.call(m,v))return m[v]};return`
  • + '+s((r=(r=f(a,"id")||(l!=null?f(l,"id"):l))!=null?r:c,typeof r===t?r.call(i,{name:"id",hash:{},data:u,blockParams:o,loc:{start:{line:67,column:89},end:{line:67,column:95}}}):r))+` +
  • +`},compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u,o,n){var r,s=e.lookupProperty||function(i,c){if(Object.prototype.hasOwnProperty.call(i,c))return i[c]};return(r=s(a,"each").call(l??(e.nullContext||{}),l!=null?s(l,"nodes"):l,{name:"each",hash:{},fn:e.program(1,u,2,o,n),inverse:e.noop,data:u,blockParams:o,loc:{start:{line:1,column:0},end:{line:76,column:9}}}))!=null?r:""},useData:!0,useDepths:!0,useBlockParams:!0}),y.tabset=d({1:function(e,l,a,p,u){var o,n,r=l??(e.nullContext||{}),s=e.hooks.helperMissing,i="function",c=e.escapeExpression,t=e.lookupProperty||function(f,m){if(Object.prototype.hasOwnProperty.call(f,m))return f[m]};return' +`},2:function(e,l,a,p,u){return"-1"},4:function(e,l,a,p,u){return"0"},6:function(e,l,a,p,u){return"false"},8:function(e,l,a,p,u){return"true"},10:function(e,l,a,p,u){var o,n,r=l??(e.nullContext||{}),s=e.hooks.helperMissing,i="function",c=e.escapeExpression,t=e.lookupProperty||function(f,m){if(Object.prototype.hasOwnProperty.call(f,m))return f[m]};return'
    +`+((o=t(a,"each").call(r,l!=null?t(l,"content"):l,{name:"each",hash:{},fn:e.program(13,u,0),inverse:e.noop,data:u,loc:{start:{line:16,column:4},end:{line:18,column:13}}}))!=null?o:"")+`
    +`},11:function(e,l,a,p,u){return"hidden"},13:function(e,l,a,p,u){var o;return" "+((o=e.lambda(l,l))!=null?o:"")+` +`},compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u){var o,n=l??(e.nullContext||{}),r=e.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return`
    +`+((o=r(a,"each").call(n,l!=null?r(l,"tabs"):l,{name:"each",hash:{},fn:e.program(1,u,0),inverse:e.noop,data:u,loc:{start:{line:2,column:2},end:{line:9,column:11}}}))!=null?o:"")+`
    + +`+((o=r(a,"each").call(n,l!=null?r(l,"tabs"):l,{name:"each",hash:{},fn:e.program(10,u,0),inverse:e.noop,data:u,loc:{start:{line:12,column:0},end:{line:20,column:9}}}))!=null?o:"")},useData:!0}),y["tooltip-body"]=d({1:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return`
    + `+e.escapeExpression(e.lambda((o=l!=null?n(l,"hint"):l)!=null?n(o,"description"):o,l))+` +
    +`},3:function(e,l,a,p,u){var o,n=e.lambda,r=e.escapeExpression,s=e.lookupProperty||function(i,c){if(Object.prototype.hasOwnProperty.call(i,c))return i[c]};return`
    +

    + `+r(n((o=l!=null?s(l,"hint"):l)!=null?s(o,"title"):o,l))+` +
    `+r(n((o=l!=null?s(l,"hint"):l)!=null?s(o,"version"):o,l))+`
    +

    +
    +`+((o=s(a,"if").call(l??(e.nullContext||{}),(o=l!=null?s(l,"hint"):l)!=null?s(o,"description"):o,{name:"if",hash:{},fn:e.program(4,u,0),inverse:e.noop,data:u,loc:{start:{line:12,column:2},end:{line:16,column:9}}}))!=null?o:"")},4:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return`
    + `+((o=e.lambda((o=l!=null?n(l,"hint"):l)!=null?n(o,"description"):o,l))!=null?o:"")+` +
    +`},compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return(o=n(a,"if").call(l??(e.nullContext||{}),l!=null?n(l,"isPlain"):l,{name:"if",hash:{},fn:e.program(1,u,0),inverse:e.program(3,u,0),data:u,loc:{start:{line:1,column:0},end:{line:17,column:7}}}))!=null?o:""},useData:!0}),y["tooltip-layout"]=d({compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u){return`
    +
    +
    +`},useData:!0}),y["versions-dropdown"]=d({1:function(e,l,a,p,u){var o,n,r=l??(e.nullContext||{}),s=e.hooks.helperMissing,i="function",c=e.escapeExpression,t=e.lookupProperty||function(f,m){if(Object.prototype.hasOwnProperty.call(f,m))return f[m]};return' +`},2:function(e,l,a,p,u){return" selected disabled"},compiler:[8,">= 4.3.0"],main:function(e,l,a,p,u){var o,n=e.lookupProperty||function(r,s){if(Object.prototype.hasOwnProperty.call(r,s))return r[s]};return`
    + +
    +`},useData:!0})})();})(); diff --git a/dist/handlebars.templates-XWGFFSCD.js b/dist/handlebars.templates-XWGFFSCD.js deleted file mode 100644 index 55903817c..000000000 --- a/dist/handlebars.templates-XWGFFSCD.js +++ /dev/null @@ -1,187 +0,0 @@ -(()=>{(function(){var y=Handlebars.template,d=Handlebars.templates=Handlebars.templates||{};d["autocomplete-suggestions"]=y({1:function(n,l,a,c,r){var e,o,u=l??(n.nullContext||{}),s=n.hooks.helperMissing,i="function",t=n.escapeExpression,f=n.lookupProperty||function(p,m){if(Object.prototype.hasOwnProperty.call(p,m))return p[m]};return' -
    - `+((e=(o=(o=f(a,"title")||(l!=null?f(l,"title"):l))!=null?o:s,typeof o===i?o.call(u,{name:"title",hash:{},data:r,loc:{start:{line:9,column:29},end:{line:9,column:40}}}):o))!=null?e:"")+` -`+((e=f(a,"if").call(u,l!=null?f(l,"label"):l,{name:"if",hash:{},fn:n.program(2,r,0),inverse:n.noop,data:r,loc:{start:{line:10,column:8},end:{line:12,column:15}}}))!=null?e:"")+`
    - -`+((e=f(a,"if").call(u,l!=null?f(l,"description"):l,{name:"if",hash:{},fn:n.program(4,r,0),inverse:n.noop,data:r,loc:{start:{line:15,column:6},end:{line:19,column:13}}}))!=null?e:"")+`
    -`},2:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return' ('+n.escapeExpression((e=(e=o(a,"label")||(l!=null?o(l,"label"):l))!=null?e:n.hooks.helperMissing,typeof e=="function"?e.call(l??(n.nullContext||{}),{name:"label",hash:{},data:r,loc:{start:{line:11,column:31},end:{line:11,column:40}}}):e))+`) -`},4:function(n,l,a,c,r){var e,o,u=n.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return`
    - `+((e=(o=(o=u(a,"description")||(l!=null?u(l,"description"):l))!=null?o:n.hooks.helperMissing,typeof o=="function"?o.call(l??(n.nullContext||{}),{name:"description",hash:{},data:r,loc:{start:{line:17,column:10},end:{line:17,column:27}}}):o))!=null?e:"")+` -
    -`},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,r){var e,o,u=l??(n.nullContext||{}),s=n.hooks.helperMissing,i="function",t=n.escapeExpression,f=n.lookupProperty||function(p,m){if(Object.prototype.hasOwnProperty.call(p,m))return p[m]};return`
    - -
    "`+t((o=(o=f(a,"term")||(l!=null?f(l,"term"):l))!=null?o:s,typeof o===i?o.call(u,{name:"term",hash:{},data:r,loc:{start:{line:3,column:28},end:{line:3,column:36}}}):o))+`"
    -
    Search the documentation
    -
    -`+((e=f(a,"each").call(u,l!=null?f(l,"suggestions"):l,{name:"each",hash:{},fn:n.program(1,r,0),inverse:n.noop,data:r,loc:{start:{line:6,column:2},end:{line:21,column:11}}}))!=null?e:"")+`
    -`},useData:!0}),d["modal-layout"]=y({compiler:[8,">= 4.3.0"],main:function(n,l,a,c,r){return` -`},useData:!0}),d["quick-switch-modal-body"]=y({compiler:[8,">= 4.3.0"],main:function(n,l,a,c,r){return`
    - - -
    -
    -`},useData:!0}),d["quick-switch-results"]=y({1:function(n,l,a,c,r){var e,o=l??(n.nullContext||{}),u=n.hooks.helperMissing,s="function",i=n.escapeExpression,t=n.lookupProperty||function(f,p){if(Object.prototype.hasOwnProperty.call(f,p))return f[p]};return'
    - `+i((e=(e=t(a,"name")||(l!=null?t(l,"name"):l))!=null?e:u,typeof e===s?e.call(o,{name:"name",hash:{},data:r,loc:{start:{line:3,column:4},end:{line:3,column:12}}}):e))+` -
    -`},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return(e=o(a,"each").call(l??(n.nullContext||{}),l!=null?o(l,"results"):l,{name:"each",hash:{},fn:n.program(1,r,0),inverse:n.noop,data:r,loc:{start:{line:1,column:0},end:{line:5,column:9}}}))!=null?e:""},useData:!0}),d["search-results"]=y({1:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return" Search results for "+n.escapeExpression((e=(e=o(a,"value")||(l!=null?o(l,"value"):l))!=null?e:n.hooks.helperMissing,typeof e=="function"?e.call(l??(n.nullContext||{}),{name:"value",hash:{},data:r,loc:{start:{line:3,column:27},end:{line:3,column:36}}}):e))+` -`},3:function(n,l,a,c,r){return` Invalid search -`},5:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return(e=o(a,"each").call(l??(n.nullContext||{}),l!=null?o(l,"results"):l,{name:"each",hash:{},fn:n.program(6,r,0),inverse:n.noop,data:r,loc:{start:{line:15,column:2},end:{line:26,column:11}}}))!=null?e:""},6:function(n,l,a,c,r){var e,o=n.lambda,u=n.escapeExpression,s=n.lookupProperty||function(i,t){if(Object.prototype.hasOwnProperty.call(i,t))return i[t]};return`
    -

    - - `+u(o(l!=null?s(l,"title"):l,l))+" ("+u(o(l!=null?s(l,"type"):l,l))+`) - -

    -`+((e=s(a,"each").call(l??(n.nullContext||{}),l!=null?s(l,"excerpts"):l,{name:"each",hash:{},fn:n.program(7,r,0),inverse:n.noop,data:r,loc:{start:{line:22,column:8},end:{line:24,column:17}}}))!=null?e:"")+`
    -`},7:function(n,l,a,c,r){var e;return'

    '+((e=n.lambda(l,l))!=null?e:"")+`

    -`},9:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return((e=(o(a,"isArray")||l&&o(l,"isArray")||n.hooks.helperMissing).call(l??(n.nullContext||{}),l!=null?o(l,"results"):l,{name:"isArray",hash:{},fn:n.program(10,r,0),inverse:n.program(12,r,0),data:r,loc:{start:{line:28,column:2},end:{line:34,column:14}}}))!=null?e:"")+` -

    The search functionality is full-text based. Here are some tips:

    - -
      -
    • Multiple words (such as foo bar) are searched as OR
    • -
    • Use * anywhere (such as fo*) as wildcard
    • -
    • Use + before a word (such as +foo) to make its presence required
    • -
    • Use - before a word (such as -foo) to make its absence required
    • -
    • Use : to search on a particular field (such as field:word). The available fields are title and doc
    • -
    • Use WORD^NUMBER (such as foo^2) to boost the given word
    • -
    • Use WORD~NUMBER (such as foo~2) to do a search with edit distance on word
    • -
    - -

    To quickly go to a module, type, or function, use the autocompletion feature in the sidebar search.

    -`},10:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return"

    Sorry, we couldn't find anything for "+n.escapeExpression((e=(e=o(a,"value")||(l!=null?o(l,"value"):l))!=null?e:n.hooks.helperMissing,typeof e=="function"?e.call(l??(n.nullContext||{}),{name:"value",hash:{},data:r,loc:{start:{line:29,column:48},end:{line:29,column:57}}}):e))+`.

    -`},12:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return(e=o(a,"if").call(l??(n.nullContext||{}),l!=null?o(l,"value"):l,{name:"if",hash:{},fn:n.program(13,r,0),inverse:n.program(15,r,0),data:r,loc:{start:{line:30,column:2},end:{line:34,column:2}}}))!=null?e:""},13:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return"

    Invalid search: "+n.escapeExpression((e=(e=o(a,"errorMessage")||(l!=null?o(l,"errorMessage"):l))!=null?e:n.hooks.helperMissing,typeof e=="function"?e.call(l??(n.nullContext||{}),{name:"errorMessage",hash:{},data:r,loc:{start:{line:31,column:23},end:{line:31,column:39}}}):e))+`.

    -`},15:function(n,l,a,c,r){return`

    Please type something into the search bar to perform a search.

    - `},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,r){var e,o=l??(n.nullContext||{}),u=n.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return`

    -`+((e=u(a,"if").call(o,l!=null?u(l,"value"):l,{name:"if",hash:{},fn:n.program(1,r,0),inverse:n.program(3,r,0),data:r,loc:{start:{line:2,column:2},end:{line:6,column:9}}}))!=null?e:"")+` - -

    - -`+((e=(u(a,"isNonEmptyArray")||l&&u(l,"isNonEmptyArray")||n.hooks.helperMissing).call(o,l!=null?u(l,"results"):l,{name:"isNonEmptyArray",hash:{},fn:n.program(5,r,0),inverse:n.program(9,r,0),data:r,loc:{start:{line:14,column:0},end:{line:49,column:20}}}))!=null?e:"")},useData:!0}),d["settings-modal-body"]=y({1:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return(e=o(a,"if").call(l??(n.nullContext||{}),l!=null?o(l,"description"):l,{name:"if",hash:{},fn:n.program(2,r,0),inverse:n.noop,data:r,loc:{start:{line:40,column:6},end:{line:53,column:13}}}))!=null?e:""},2:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return`
    -
    - `+n.escapeExpression(n.lambda(l!=null?o(l,"description"):l,l))+` -
    -
    -`+((e=o(a,"if").call(l??(n.nullContext||{}),l!=null?o(l,"displayAs"):l,{name:"if",hash:{},fn:n.program(3,r,0),inverse:n.program(5,r,0),data:r,loc:{start:{line:46,column:12},end:{line:50,column:19}}}))!=null?e:"")+`
    -
    -`},3:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return" "+((e=n.lambda(l!=null?o(l,"displayAs"):l,l))!=null?e:"")+` -`},5:function(n,l,a,c,r){var e=n.lookupProperty||function(o,u){if(Object.prototype.hasOwnProperty.call(o,u))return o[u]};return" "+n.escapeExpression(n.lambda(l!=null?e(l,"key"):l,l))+` -`},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return`
    -
    - - - - -
    - -
    -`},useData:!0}),d["sidebar-items"]=y({1:function(n,l,a,c,r,e,o){var u,s=l??(n.nullContext||{}),i=n.hooks.helperMissing,t=n.lookupProperty||function(f,p){if(Object.prototype.hasOwnProperty.call(f,p))return f[p]};return((u=(t(a,"groupChanged")||l&&t(l,"groupChanged")||i).call(s,o[1],(u=e[0][0])!=null?t(u,"group"):u,{name:"groupChanged",hash:{},fn:n.program(2,r,0,e,o),inverse:n.noop,data:r,blockParams:e,loc:{start:{line:2,column:2},end:{line:6,column:19}}}))!=null?u:"")+` -`+((u=(t(a,"nestingChanged")||l&&t(l,"nestingChanged")||i).call(s,o[1],e[0][0],{name:"nestingChanged",hash:{},fn:n.program(7,r,0,e,o),inverse:n.noop,data:r,blockParams:e,loc:{start:{line:8,column:2},end:{line:10,column:21}}}))!=null?u:"")+` -
  • - -`+((u=t(a,"if").call(s,(u=e[0][0])!=null?t(u,"nested_title"):u,{name:"if",hash:{},fn:n.program(13,r,0,e,o),inverse:n.program(15,r,0,e,o),data:r,blockParams:e,loc:{start:{line:14,column:6},end:{line:18,column:13}}}))!=null?u:"")+((u=(t(a,"isEmptyArray")||l&&t(l,"isEmptyArray")||i).call(s,(u=e[0][0])!=null?t(u,"headers"):u,{name:"isEmptyArray",hash:{},fn:n.program(3,r,0,e,o),inverse:n.program(17,r,0,e,o),data:r,blockParams:e,loc:{start:{line:19,column:6},end:{line:22,column:23}}}))!=null?u:"")+` - -`+((u=(t(a,"isArray")||l&&t(l,"isArray")||i).call(s,(u=e[0][0])!=null?t(u,"headers"):u,{name:"isArray",hash:{},fn:n.program(19,r,0,e,o),inverse:n.program(23,r,0,e,o),data:r,blockParams:e,loc:{start:{line:25,column:4},end:{line:73,column:16}}}))!=null?u:"")+`
  • -`},2:function(n,l,a,c,r,e){var o,u=n.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return'
  • - `+n.escapeExpression(n.lambda((o=e[1][0])!=null?u(o,"group"):o,l))+` -
  • -`},3:function(n,l,a,c,r){return""},5:function(n,l,a,c,r){return'translate="no"'},7:function(n,l,a,c,r,e){var o,u=n.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return' -`},9:function(n,l,a,c,r){return"current-page open"},11:function(n,l,a,c,r){return"#content"},13:function(n,l,a,c,r,e){var o,u=n.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return" "+((o=n.lambda((o=e[1][0])!=null?u(o,"nested_title"):o,l))!=null?o:"")+` -`},15:function(n,l,a,c,r,e){var o,u=n.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return" "+((o=n.lambda((o=e[1][0])!=null?u(o,"title"):o,l))!=null?o:"")+` -`},17:function(n,l,a,c,r){return` -`},19:function(n,l,a,c,r,e){var o,u=n.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return(o=(u(a,"isNonEmptyArray")||l&&u(l,"isNonEmptyArray")||n.hooks.helperMissing).call(l??(n.nullContext||{}),(o=e[1][0])!=null?u(o,"headers"):o,{name:"isNonEmptyArray",hash:{},fn:n.program(20,r,0,e),inverse:n.noop,data:r,blockParams:e,loc:{start:{line:26,column:6},end:{line:34,column:26}}}))!=null?o:""},20:function(n,l,a,c,r,e){var o,u=n.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return`
      -`+((o=u(a,"each").call(l??(n.nullContext||{}),(o=e[2][0])!=null?u(o,"headers"):o,{name:"each",hash:{},fn:n.program(21,r,0,e),inverse:n.noop,data:r,blockParams:e,loc:{start:{line:28,column:10},end:{line:32,column:19}}}))!=null?o:"")+`
    -`},21:function(n,l,a,c,r,e){var o,u,s=l??(n.nullContext||{}),i=n.hooks.helperMissing,t="function",f=n.lookupProperty||function(p,m){if(Object.prototype.hasOwnProperty.call(p,m))return p[m]};return`
  • - '+((o=(u=(u=f(a,"id")||(l!=null?f(l,"id"):l))!=null?u:i,typeof u===t?u.call(s,{name:"id",hash:{},data:r,blockParams:e,loc:{start:{line:30,column:54},end:{line:30,column:62}}}):u))!=null?o:"")+` -
  • -`},23:function(n,l,a,c,r,e){var o,u=l??(n.nullContext||{}),s=n.hooks.helperMissing,i=n.lookupProperty||function(t,f){if(Object.prototype.hasOwnProperty.call(t,f))return t[f]};return`
      -`+((o=(i(a,"showSections")||l&&i(l,"showSections")||s).call(u,e[1][0],{name:"showSections",hash:{},fn:n.program(24,r,0,e),inverse:n.noop,data:r,blockParams:e,loc:{start:{line:37,column:8},end:{line:51,column:25}}}))!=null?o:"")+((o=(i(a,"showSummary")||l&&i(l,"showSummary")||s).call(u,e[1][0],{name:"showSummary",hash:{},fn:n.program(29,r,0,e),inverse:n.noop,data:r,blockParams:e,loc:{start:{line:52,column:8},end:{line:56,column:24}}}))!=null?o:"")+((o=i(a,"each").call(u,(o=e[1][0])!=null?i(o,"nodeGroups"):o,{name:"each",hash:{},fn:n.program(31,r,1,e),inverse:n.noop,data:r,blockParams:e,loc:{start:{line:57,column:8},end:{line:71,column:17}}}))!=null?o:"")+`
    -`},24:function(n,l,a,c,r,e){var o,u=l??(n.nullContext||{}),s=n.lookupProperty||function(i,t){if(Object.prototype.hasOwnProperty.call(i,t))return i[t]};return'
  • - - Sections - - -
      -`+((o=s(a,"each").call(u,l!=null?s(l,"sections"):l,{name:"each",hash:{},fn:n.program(27,r,0,e),inverse:n.noop,data:r,blockParams:e,loc:{start:{line:44,column:14},end:{line:48,column:23}}}))!=null?o:"")+`
    -
  • -`},25:function(n,l,a,c,r){return"open"},27:function(n,l,a,c,r,e){var o,u,s=n.escapeExpression,i=l??(n.nullContext||{}),t=n.hooks.helperMissing,f="function",p=n.lookupProperty||function(m,v){if(Object.prototype.hasOwnProperty.call(m,v))return m[v]};return`
  • - '+((o=(u=(u=p(a,"id")||(l!=null?p(l,"id"):l))!=null?u:t,typeof u===f?u.call(i,{name:"id",hash:{},data:r,blockParams:e,loc:{start:{line:46,column:56},end:{line:46,column:64}}}):u))!=null?o:"")+` -
  • -`},29:function(n,l,a,c,r,e){var o,u=n.lookupProperty||function(s,i){if(Object.prototype.hasOwnProperty.call(s,i))return s[i]};return`
  • - Summary -
  • -`},31:function(n,l,a,c,r,e){var o,u=n.lambda,s=n.escapeExpression,i=n.lookupProperty||function(t,f){if(Object.prototype.hasOwnProperty.call(t,f))return t[f]};return`
  • - - `+s(u((o=e[0][0])!=null?i(o,"name"):o,l))+` - - -
      -`+((o=i(a,"each").call(l??(n.nullContext||{}),(o=e[0][0])!=null?i(o,"nodes"):o,{name:"each",hash:{},fn:n.program(32,r,0,e),inverse:n.noop,data:r,blockParams:e,loc:{start:{line:64,column:14},end:{line:68,column:23}}}))!=null?o:"")+`
    -
  • -`},32:function(n,l,a,c,r,e){var o,u,s=n.escapeExpression,i=l??(n.nullContext||{}),t=n.hooks.helperMissing,f="function",p=n.lookupProperty||function(m,v){if(Object.prototype.hasOwnProperty.call(m,v))return m[v]};return`
  • - '+s((u=(u=p(a,"id")||(l!=null?p(l,"id"):l))!=null?u:t,typeof u===f?u.call(i,{name:"id",hash:{},data:r,blockParams:e,loc:{start:{line:66,column:89},end:{line:66,column:95}}}):u))+` -
  • -`},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,r,e,o){var u,s=n.lookupProperty||function(i,t){if(Object.prototype.hasOwnProperty.call(i,t))return i[t]};return(u=s(a,"each").call(l??(n.nullContext||{}),l!=null?s(l,"nodes"):l,{name:"each",hash:{},fn:n.program(1,r,2,e,o),inverse:n.noop,data:r,blockParams:e,loc:{start:{line:1,column:0},end:{line:75,column:9}}}))!=null?u:""},useData:!0,useDepths:!0,useBlockParams:!0}),d["tooltip-body"]=y({1:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return`
    - `+n.escapeExpression(n.lambda((e=l!=null?o(l,"hint"):l)!=null?o(e,"description"):e,l))+` -
    -`},3:function(n,l,a,c,r){var e,o=n.lambda,u=n.escapeExpression,s=n.lookupProperty||function(i,t){if(Object.prototype.hasOwnProperty.call(i,t))return i[t]};return`
    -

    - `+u(o((e=l!=null?s(l,"hint"):l)!=null?s(e,"title"):e,l))+` -
    `+u(o((e=l!=null?s(l,"hint"):l)!=null?s(e,"version"):e,l))+`
    -

    -
    -`+((e=s(a,"if").call(l??(n.nullContext||{}),(e=l!=null?s(l,"hint"):l)!=null?s(e,"description"):e,{name:"if",hash:{},fn:n.program(4,r,0),inverse:n.noop,data:r,loc:{start:{line:12,column:2},end:{line:16,column:9}}}))!=null?e:"")},4:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return`
    - `+((e=n.lambda((e=l!=null?o(l,"hint"):l)!=null?o(e,"description"):e,l))!=null?e:"")+` -
    -`},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return(e=o(a,"if").call(l??(n.nullContext||{}),l!=null?o(l,"isPlain"):l,{name:"if",hash:{},fn:n.program(1,r,0),inverse:n.program(3,r,0),data:r,loc:{start:{line:1,column:0},end:{line:17,column:7}}}))!=null?e:""},useData:!0}),d["tooltip-layout"]=y({compiler:[8,">= 4.3.0"],main:function(n,l,a,c,r){return`
    -
    -
    -`},useData:!0}),d["versions-dropdown"]=y({1:function(n,l,a,c,r){var e,o,u=l??(n.nullContext||{}),s=n.hooks.helperMissing,i="function",t=n.escapeExpression,f=n.lookupProperty||function(p,m){if(Object.prototype.hasOwnProperty.call(p,m))return p[m]};return' -`},2:function(n,l,a,c,r){return" selected disabled"},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,r){var e,o=n.lookupProperty||function(u,s){if(Object.prototype.hasOwnProperty.call(u,s))return u[s]};return`
    - -
    -`},useData:!0})})();})(); diff --git a/dist/html-GXQ6W6IF.js b/dist/html-GXQ6W6IF.js new file mode 100644 index 000000000..6a33cce32 --- /dev/null +++ b/dist/html-GXQ6W6IF.js @@ -0,0 +1,56 @@ +(()=>{var Zn=Object.create;var ut=Object.defineProperty;var ei=Object.getOwnPropertyDescriptor;var ti=Object.getOwnPropertyNames;var ni=Object.getPrototypeOf,ii=Object.prototype.hasOwnProperty;var dt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ri=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ti(t))!ii.call(e,r)&&r!==n&&ut(e,r,{get:()=>t[r],enumerable:!(i=ei(t,r))||i.enumerable});return e};var ft=(e,t,n)=>(n=e!=null?Zn(ni(e)):{},ri(t||!e||!e.__esModule?ut(n,"default",{value:e,enumerable:!0}):n,e));var kt=dt((ro,wt)=>{var Tt="Expected a function",Et=NaN,mi="[object Symbol]",gi=/^\s+|\s+$/g,yi=/^[-+]0x[0-9a-f]+$/i,vi=/^0b[01]+$/i,bi=/^0o[0-7]+$/i,Si=parseInt,xi=typeof global=="object"&&global&&global.Object===Object&&global,Ei=typeof self=="object"&&self&&self.Object===Object&&self,Li=xi||Ei||Function("return this")(),Ti=Object.prototype,wi=Ti.toString,ki=Math.max,_i=Math.min,Fe=function(){return Li.Date.now()};function Oi(e,t,n){var i,r,s,o,a,l,u=0,f=!1,y=!1,g=!0;if(typeof e!="function")throw new TypeError(Tt);t=Lt(t)||0,ve(n)&&(f=!!n.leading,y="maxWait"in n,s=y?ki(Lt(n.maxWait)||0,t):s,g="trailing"in n?!!n.trailing:g);function L(S){var C=i,D=r;return i=r=void 0,u=S,o=e.apply(D,C),o}function b(S){return u=S,a=setTimeout(h,t),f?L(S):o}function T(S){var C=S-l,D=S-u,V=t-C;return y?_i(V,s-D):V}function m(S){var C=S-l,D=S-u;return l===void 0||C>=t||C<0||y&&D>=s}function h(){var S=Fe();if(m(S))return _(S);a=setTimeout(h,T(S))}function _(S){return a=void 0,g&&i?L(S):(i=r=void 0,o)}function w(){a!==void 0&&clearTimeout(a),u=0,i=l=r=a=void 0}function N(){return a===void 0?o:_(Fe())}function F(){var S=Fe(),C=m(S);if(i=arguments,r=this,l=S,C){if(a===void 0)return b(l);if(y)return a=setTimeout(h,t),L(l)}return a===void 0&&(a=setTimeout(h,t)),o}return F.cancel=w,F.flush=N,F}function Ii(e,t,n){var i=!0,r=!0;if(typeof e!="function")throw new TypeError(Tt);return ve(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),Oi(e,t,{leading:i,maxWait:t,trailing:r})}function ve(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Ci(e){return!!e&&typeof e=="object"}function Ai(e){return typeof e=="symbol"||Ci(e)&&wi.call(e)==mi}function Lt(e){if(typeof e=="number")return e;if(Ai(e))return Et;if(ve(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ve(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(gi,"");var n=vi.test(e);return n||bi.test(e)?Si(e.slice(2),n?2:8):yi.test(e)?Et:+e}wt.exports=Ii});var ln=dt((an,cn)=>{(function(){var e=function(t){var n=new e.Builder;return n.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),n.searchPipeline.add(e.stemmer),t.call(n,n),n.build()};e.version="2.3.9";e.utils={},e.utils.warn=function(t){return function(n){t.console&&console.warn&&console.warn(n)}}(this),e.utils.asString=function(t){return t==null?"":t.toString()},e.utils.clone=function(t){if(t==null)return t;for(var n=Object.create(null),i=Object.keys(t),r=0;r0){var f=e.utils.clone(n)||{};f.position=[a,u],f.index=s.length,s.push(new e.Token(i.slice(a,o),f))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/;e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,n){n in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+n),t.label=n,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var n=t.label&&t.label in this.registeredFunctions;n||e.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,t)},e.Pipeline.load=function(t){var n=new e.Pipeline;return t.forEach(function(i){var r=e.Pipeline.registeredFunctions[i];if(r)n.add(r);else throw new Error("Cannot load unregistered function: "+i)}),n},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(n){e.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},e.Pipeline.prototype.after=function(t,n){e.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i=i+1,this._stack.splice(i,0,n)},e.Pipeline.prototype.before=function(t,n){e.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},e.Pipeline.prototype.remove=function(t){var n=this._stack.indexOf(t);n!=-1&&this._stack.splice(n,1)},e.Pipeline.prototype.run=function(t){for(var n=this._stack.length,i=0;i1&&(ot&&(i=s),o!=t);)r=i-n,s=n+Math.floor(r/2),o=this.elements[s*2];if(o==t||o>t)return s*2;if(ol?f+=2:a==l&&(n+=i[u+1]*r[f+1],u+=2,f+=2);return n},e.Vector.prototype.similarity=function(t){return this.dot(t)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var t=new Array(this.elements.length/2),n=1,i=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new e.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),r.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),r.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&r.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),r.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var f=s.str.charAt(0),y=s.str.charAt(1),g;y in s.node.edges?g=s.node.edges[y]:(g=new e.TokenSet,s.node.edges[y]=g),s.str.length==1&&(g.final=!0),r.push({node:g,editsRemaining:s.editsRemaining-1,str:f+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var n=new e.TokenSet,i=n,r=0,s=t.length;r=t;n--){var i=this.uncheckedNodes[n],r=i.child.toString();r in this.minimizedNodes?i.parent.edges[i.char]=this.minimizedNodes[r]:(i.child._str=r,this.minimizedNodes[r]=i.child),this.uncheckedNodes.pop()}};e.Index=function(t){this.invertedIndex=t.invertedIndex,this.fieldVectors=t.fieldVectors,this.tokenSet=t.tokenSet,this.fields=t.fields,this.pipeline=t.pipeline},e.Index.prototype.search=function(t){return this.query(function(n){var i=new e.QueryParser(t,n);i.parse()})},e.Index.prototype.query=function(t){for(var n=new e.Query(this.fields),i=Object.create(null),r=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=t},e.Builder.prototype.k1=function(t){this._k1=t},e.Builder.prototype.add=function(t,n){var i=t[this._ref],r=Object.keys(this._fields);this._documents[i]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,n;do t=this.next(),n=t.charCodeAt(0);while(n>47&&n<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var n=t.next();if(n==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){t.escapeCharacter();continue}if(n==":")return e.QueryLexer.lexField;if(n=="~")return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if(n=="^")return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if(n=="+"&&t.width()===1||n=="-"&&t.width()===1)return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(n.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}},e.QueryParser=function(t,n){this.lexer=new e.QueryLexer(t),this.query=n,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var t=this.peekLexeme();return this.lexemeIdx+=1,t},e.QueryParser.prototype.nextClause=function(){var t=this.currentClause;this.query.clause(t),this.currentClause={}},e.QueryParser.parseClause=function(t){var n=t.peekLexeme();if(n!=null)switch(n.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(i+=" with value '"+n.str+"'"),new e.QueryParseError(i,n.start,n.end)}},e.QueryParser.parsePresence=function(t){var n=t.consumeLexeme();if(n!=null){switch(n.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+n.str+"'";throw new e.QueryParseError(i,n.start,n.end)}var r=t.peekLexeme();if(r==null){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,n.start,n.end)}switch(r.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+r.type+"'";throw new e.QueryParseError(i,r.start,r.end)}}},e.QueryParser.parseField=function(t){var n=t.consumeLexeme();if(n!=null){if(t.query.allFields.indexOf(n.str)==-1){var i=t.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),r="unrecognised field '"+n.str+"', possible fields: "+i;throw new e.QueryParseError(r,n.start,n.end)}t.currentClause.fields=[n.str];var s=t.peekLexeme();if(s==null){var r="expecting term, found nothing";throw new e.QueryParseError(r,n.start,n.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var r="expecting term, found '"+s.type+"'";throw new e.QueryParseError(r,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var n=t.consumeLexeme();if(n!=null){t.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(i==null){t.nextClause();return}switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(r,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var n=t.consumeLexeme();if(n!=null){var i=parseInt(n.str,10);if(isNaN(i)){var r="edit distance must be numeric";throw new e.QueryParseError(r,n.start,n.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(s==null){t.nextClause();return}switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(r,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var n=t.consumeLexeme();if(n!=null){var i=parseInt(n.str,10);if(isNaN(i)){var r="boost must be numeric";throw new e.QueryParseError(r,n.start,n.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(s==null){t.nextClause();return}switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(r,s.start,s.end)}}},function(t,n){typeof define=="function"&&define.amd?define(n):typeof an=="object"?cn.exports=n():t.lunr=n()}(this,function(){return e})})()});Handlebars.registerHelper("groupChanged",function(e,t,n){let i=t||"";if(e.group!==i)return delete e.nestedContext,e.group=i,n.fn(this)});Handlebars.registerHelper("nestingChanged",function(e,t,n){if(t.nested_context&&t.nested_context!==e.nestedContext){if(e.nestedContext=t.nested_context,e.lastModuleSeenInGroup!==t.nested_context)return n.fn(this)}else e.lastModuleSeenInGroup=t.title});Handlebars.registerHelper("showSections",function(e,t){if(e.sections.length>0)return t.fn(this)});Handlebars.registerHelper("showSummary",function(e,t){if(e.nodeGroups)return t.fn(this)});Handlebars.registerHelper("isArray",function(e,t){return Array.isArray(e)?t.fn(this):t.inverse(this)});Handlebars.registerHelper("isNonEmptyArray",function(e,t){return Array.isArray(e)&&e.length>0?t.fn(this):t.inverse(this)});Handlebars.registerHelper("isEmptyArray",function(e,t){return Array.isArray(e)&&e.length===0?t.fn(this):t.inverse(this)});Handlebars.registerHelper("isLocal",function(e,t){let n=window.location.pathname.split("/").pop();return e+".html"===n?t.fn(this):t.inverse(this)});var c=document.querySelector.bind(document),k=document.querySelectorAll.bind(document);function pt(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function he(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function $(){return document.body.dataset.type}function ht(e,t){if(e){for(let n of e){let i=n.nodeGroups&&n.nodeGroups.find(r=>r.nodes.some(s=>s.anchor===t));if(i)return i.key}return null}}function me(e,t=!1){if(!e)return t?document.getElementById("top-content"):null;let n=document.getElementById(e);return n?n.matches(".detail")?n:["h1","h2","h3","h4","h5","h6"].includes(n.tagName.toLowerCase())?si(n):null:null}function si(e){let t=[e],n=e.nextElementSibling,i=e.tagName.toLowerCase();for(;n;){let s=n.tagName.toLowerCase();["h1","h2","h3","h4","h5","h6"].includes(s)&&s<=i?n=null:(t.push(n),n=n.nextElementSibling)}let r=document.createElement("div");return r.append(...t),r}function Z(){return window.location.hash.replace(/^#/,"")}function mt(e){return new URLSearchParams(window.location.search).get(e)}function gt(e){return fetch(e).then(t=>t.ok).catch(()=>!1)}function yt(e){document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)}function ee(e){return!e||e.trim()===""}function vt(e,t){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>{n=null,e(...r)},t)}}function ge(){return document.head.querySelector("meta[name=project][content]").content}function ye(){return/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)}var bt="ex_doc:settings",oi={tooltips:!0,theme:null,livebookUrl:null},He=class{constructor(){this._subscribers=[],this._settings=oi,this._loadSettings()}get(){return this._settings}update(t){let n=this._settings;this._settings={...this._settings,...t},this._subscribers.forEach(i=>i(this._settings,n)),this._storeSettings()}getAndSubscribe(t){this._subscribers.push(t),t(this._settings)}_loadSettings(){try{let t=localStorage.getItem(bt);if(t){let n=JSON.parse(t);this._settings={...this._settings,...n}}this._loadSettingsLegacy()}catch(t){console.error(`Failed to load settings: ${t}`)}}_storeSettings(){try{this._storeSettingsLegacy(),localStorage.setItem(bt,JSON.stringify(this._settings))}catch(t){console.error(`Failed to persist settings: ${t}`)}}_loadSettingsLegacy(){localStorage.getItem("tooltipsDisabled")!==null&&(this._settings={...this._settings,tooltips:!1}),localStorage.getItem("night-mode")==="true"&&(this._settings={...this._settings,nightMode:!0}),this._settings.nightMode===!0&&(this._settings={...this._settings,theme:"dark"})}_storeSettingsLegacy(){this._settings.tooltips?localStorage.removeItem("tooltipsDisabled"):localStorage.setItem("tooltipsDisabled","true"),this._settings.nightMode!==null?localStorage.setItem("night-mode",this._settings.nightMode===!0?"true":"false"):localStorage.removeItem("night-mode"),this._settings.theme!==null?(localStorage.setItem("night-mode",this._settings.theme==="dark"?"true":"false"),this._settings.nightMode=this._settings.theme==="dark"):(delete this._settings.nightMode,localStorage.removeItem("night-mode"))}},O=new He;var ai=".content",St=".content-inner",ci=".livebook-badge";function xt(e){e||di(),fi(),li(),ui()}function li(){c(ai).querySelectorAll("a").forEach(e=>{e.querySelector("code, img")&&e.classList.add("no-underline")})}function ui(){["warning","info","error","neutral","tip"].forEach(t=>{k(`blockquote h3.${t}, blockquote h4.${t}`).forEach(n=>{n.closest("blockquote").classList.add(t)})})}function di(){c(St).setAttribute("tabindex",-1),c(St).focus()}function fi(){let t=window.location.pathname.replace(/(\.html)?$/,".livemd"),n=new URL(t,window.location.href).toString();O.getAndSubscribe(i=>{let r=i.livebookUrl?hi(i.livebookUrl,n):pi(n);for(let s of k(ci))s.href=r})}function pi(e){return`https://livebook.dev/run?url=${encodeURIComponent(e)}`}function hi(e,t){return`${e}/import?url=${encodeURIComponent(t)}`}var Ot=ft(kt());var Pi=768,De=300,te=".sidebar-toggle",Ri=".content",M={CLOSED:"closed",OPEN:"open",NO_PREF:"no_pref"},Q={opened:"sidebar-opened",openingStart:"sidebar-opening-start",opening:"sidebar-opening",closed:"sidebar-closed",closingStart:"sidebar-closing-start",closing:"sidebar-closing"},Ni=Object.values(Q),A={togglingTimeout:null,lastWindowWidth:window.innerWidth,sidebarPreference:M.NO_PREF};function It(){Ct(),Qi(),Hi()}function Qi(){let e=sessionStorage.getItem("sidebar_width");e&&_t(e),new ResizeObserver(n=>{for(let i of n)_t(i.contentRect.width)}).observe(document.getElementById("sidebar"))}function _t(e){sessionStorage.setItem("sidebar_width",e),document.body.style.setProperty("--sidebarWidth",`${e}px`)}function Ct(){sessionStorage.getItem("sidebar_state")==="closed"||At()?(q(Q.closed),c(te).setAttribute("aria-expanded","false")):(q(Q.opened),c(te).setAttribute("aria-expanded","true")),setTimeout(()=>c(te).classList.add("sidebar-toggle--animated"),De)}function At(){return window.matchMedia(`screen and (max-width: ${Pi}px)`).matches}function q(...e){document.body.classList.remove(...Ni),document.body.classList.add(...e)}function Hi(){c(te).addEventListener("click",e=>{Me(),Bi()}),c(Ri).addEventListener("click",e=>{Mi()}),window.addEventListener("resize",(0,Ot.default)(e=>{Di()},100))}function Me(){return Be()?Pt():Fi()}function Be(){return document.body.classList.contains(Q.opened)||document.body.classList.contains(Q.opening)}function Fi(){Rt(),sessionStorage.setItem("sidebar_state","opened"),c(te).setAttribute("aria-expanded","true"),requestAnimationFrame(()=>{q(Q.openingStart),requestAnimationFrame(()=>(q(Q.opening),new Promise((e,t)=>{A.togglingTimeout=setTimeout(()=>{q(Q.opened),e()},De)})))})}function Pt(){Rt(),sessionStorage.setItem("sidebar_state","closed"),c(te).setAttribute("aria-expanded","false"),requestAnimationFrame(()=>{q(Q.closingStart),requestAnimationFrame(()=>(q(Q.closing),new Promise((e,t)=>{A.togglingTimeout=setTimeout(()=>{q(Q.closed),e()},De)})))})}function Rt(){A.togglingTimeout&&(clearTimeout(A.togglingTimeout),A.togglingTimeout=null)}function Di(){A.lastWindowWidth!==window.innerWidth&&(A.lastWindowWidth=window.innerWidth,(A.sidebarPreference===M.OPEN||A.sidebarPreference===M.NO_PREF)&&Ct())}function Mi(){At()&&Be()&&Pt()}function Bi(){switch(A.sidebarPreference){case M.OPEN:A.sidebarPreference=M.CLOSED;break;case M.CLOSED:A.sidebarPreference=M.OPEN;break;case M.NO_PREF:Be()?A.sidebarPreference=M.OPEN:A.sidebarPreference=M.CLOSED}}function ae(){return window.sidebarNodes||{}}function Nt(){return window.versionNodes||[]}var ze={search:"search",extras:"extras",modules:"modules",tasks:"tasks"},$e=[ze.extras,ze.modules,ze.tasks],Se=e=>`#${e}-full-list`;function Qt(){$e.forEach(e=>{zi(ae(),e)}),be($()),Ft(),Ht(),Gi()}function zi(e,t){let n=e[t]||[],i=c(Se(t));if(!i)return;let r=Handlebars.templates["sidebar-items"]({nodes:n,group:""});i.innerHTML=r,i.querySelectorAll("ul").forEach(s=>{if(s.innerHTML.trim()===""){let o=s.previousElementSibling;o.classList.contains("expand")&&o.classList.remove("expand"),s.remove()}}),i.querySelectorAll("li a + button").forEach(s=>{s.addEventListener("click",o=>{let l=o.target.closest("li");qi(l)})}),i.querySelectorAll("li a").forEach(s=>{s.addEventListener("click",o=>{let l=o.target.closest("li"),u=i.querySelector(".current-section");u&&ji(u),s.matches(".expand")&&s.pathname===window.location.pathname&&qe(l)})})}function qe(e){e.classList.add("open"),e.querySelector("button[aria-controls]").setAttribute("aria-expanded","true")}function $i(e){e.classList.remove("open"),e.querySelector("button[aria-controls]").setAttribute("aria-expanded","false")}function qi(e){e.classList.contains("open")?$i(e):qe(e)}function Vi(e){e.classList.add("current-section"),e.querySelector("a").setAttribute("aria-current","true")}function ji(e){e.classList.remove("current-section"),e.querySelector("a").setAttribute("aria-current","false")}function Ui(e){e.classList.add("current-hash"),e.querySelector("a").setAttribute("aria-current","true")}function Wi(e){e.classList.remove("current-hash"),e.querySelector("a").setAttribute("aria-current","false")}function be(e){$e.forEach(t=>{let n=c(`#${t}-list-tab-button`);if(n){let i=c(`#${n.getAttribute("aria-controls")}`);t===e?(n.parentElement.classList.add("selected"),n.setAttribute("aria-selected","true"),n.setAttribute("tabindex","0"),i.removeAttribute("hidden")):(n.parentElement.classList.remove("selected"),n.setAttribute("aria-selected","false"),n.setAttribute("tabindex","-1"),i.setAttribute("hidden","hidden"))}})}function Ht(){let e=c(Se($()));if(!e)return;let t=e.querySelector("li.current-page");t&&(t.scrollIntoView(),e.scrollTop-=40)}function Ft(){let e=Z()||"content",n=ae()[$()]||[],i=ht(n,e),r=c(Se($()));if(!r)return;let s=r.querySelector(`li.current-page a.expand[href$="#${i}"]`);s&&qe(s.closest("li"));let o=r.querySelector(`li.current-page a[href$="#${e}"]`);if(o){let a=o.closest("ul");a.classList.contains("deflist")&&Vi(a.closest("li")),Ui(o.closest("li"))}}function Gi(){$e.forEach(t=>{let n=c(`#${t}-list-tab-button`);n&&n.addEventListener("click",i=>{be(t),Ht()})});let e=c("#sidebar-listNav");e.addEventListener("keydown",t=>{if(t.key!=="ArrowRight"&&t.key!=="ArrowLeft")return;let n=Array.from(e.querySelectorAll('[role="tab"]')).map(r=>r.dataset.type),i=e.querySelector('[role="tab"][aria-selected="true"]').dataset.type;if(t.key==="ArrowRight"){let r=n.indexOf(i)+1;r>=n.length&&(r=0);let s=n[r];be(s),c(`#${s}-list-tab-button`).focus()}else if(t.key==="ArrowLeft"){let r=n.indexOf(i)-1;r<0&&(r=n.length-1);let s=n[r];be(s),c(`#${s}-list-tab-button`).focus()}}),window.addEventListener("hashchange",t=>{let n=c(Se($()));if(!n)return;let i=n.querySelector("li.current-page li.current-hash");i&&Wi(i),Ft()})}var B={module:"module",moduleChild:"module-child",mixTask:"mix-task",extra:"extra",section:"section"};function Mt(e,t=8){if(ee(e))return[];let n=ae(),i=[...Ve(n.modules,e,B.module,"module"),...Ki(n.modules,e,B.moduleChild),...Ve(n.tasks,e,B.mixTask,"mix task"),...Ve(n.extras,e,B.extra,"page"),...je(n.modules,e,B.section,"module"),...je(n.tasks,e,B.section,"mix task"),...je(n.extras,e,B.section,"page")].filter(r=>r!==null);return nr(i).slice(0,t)}function Ve(e,t,n,i){return e.map(r=>Ji(r,t,n,i))}function Ki(e,t,n){return e.filter(i=>i.nodeGroups).flatMap(i=>i.nodeGroups.flatMap(({key:r,nodes:s})=>{let o=tr(r);return s.map(a=>Xi(a,i.id,t,n,o)||er(a,i.id,t,n,o))}))}function je(e,t,n,i){return e.flatMap(r=>Yi(r).map(s=>Zi(r,s,t,n,i)))}function Yi(e){return(e.sections||[]).concat(e.headers||[])}function Ji(e,t,n,i){return Ee(e.title,t)?{link:`${e.id}.html`,title:we(e.title,t),description:null,matchQuality:Le(e.title,t),deprecated:e.deprecated,labels:[i],category:n}:null}function Xi(e,t,n,i,r){return Ee(e.id,n)?{link:`${t}.html#${e.anchor}`,title:we(e.id,n),labels:[r],description:t,matchQuality:Le(e.id,n),deprecated:e.deprecated,category:i}:null}function Zi(e,t,n,i,r){return Bt(t.id,n)?{link:`${e.id}.html#${t.anchor}`,title:we(t.id,n),description:e.title,matchQuality:Le(t.id,n),labels:[r,"section"],category:i}:null}function er(e,t,n,i,r){let s=`${t}.${e.id}`,o=`${t}:${e.id}`,a,l;if(Ee(s,n))a=s,l=/\./g;else if(Ee(o,n))a=o,l=/:/g;else return null;let u=n.replace(l," ");return Bt(e.id,u)?{link:`${t}.html#${e.anchor}`,title:we(e.id,u),label:r,description:t,matchQuality:Le(a,n),deprecated:e.deprecated,category:i}:null}function tr(e){switch(e){case"callbacks":return"callback";case"types":return"type";default:return"function"}}function nr(e){return e.slice().sort((t,n)=>t.matchQuality!==n.matchQuality?n.matchQuality-t.matchQuality:Dt(t.category)-Dt(n.category))}function Dt(e){switch(e){case B.module:return 1;case B.moduleChild:return 2;case B.mixTask:return 3;default:return 4}}function Bt(e,t){return Te(t).some(i=>zt(e,i))}function Ee(e,t){return Te(t).every(i=>zt(e,i))}function zt(e,t){return e.toLowerCase().includes(t.toLowerCase())}function Le(e,t){let n=Te(t),r=n.map(o=>o.length).reduce((o,a)=>o+a,0)/e.length,s=ir(e,n[0])?1:0;return r+s}function ir(e,t){return e.toLowerCase().startsWith(t.toLowerCase())}function Te(e){return e.trim().split(/\s+/)}function we(e,t){let n=Te(t).sort((i,r)=>r.length-i.length);return xe(e,n)}function xe(e,t){if(t.length===0)return e;let[n,...i]=t,r=e.match(new RegExp(`(.*)(${pt(n)})(.*)`,"i"));if(r){let[,s,o,a]=r;return xe(s,t)+""+he(o)+""+xe(a,t)}else return xe(e,i)}var ke=null,G=null;function $t(){G=document.getElementById("toast"),G.addEventListener("click",e=>{clearTimeout(ke),e.target.classList.remove("show")})}function Ue(e){G&&(clearTimeout(ke),G.innerText=e,G.classList.add("show"),ke=setTimeout(()=>{G.classList.remove("show"),ke=setTimeout(function(){G.innerText=""},1e3)},5e3))}var qt="dark",We=["system","dark","light"];function Vt(e){O.getAndSubscribe(t=>{document.body.classList.toggle(qt,Ut(e||t.theme))}),sr()}function jt(){let e=We[We.indexOf(Ge())+1]||We[0];O.update({theme:e}),Ue(`Set theme to "${e}"`)}function Ge(){return O.get().theme||"system"}function Ut(e){return e==="dark"||rr()&&(e==null||e==="system")}function rr(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function sr(){window.matchMedia("(prefers-color-scheme: dark)").addListener(e=>{let t=O.get().theme,n=Ut(t);(t==null||t==="system")&&(document.body.classList.toggle(qt,n),Ue(`Browser changed theme to "${n?"dark":"light"}"`))})}var ne=".autocomplete",Oe=".autocomplete-suggestions",_e=".autocomplete-suggestion",I={autocompleteSuggestions:[],previewOpen:!1,selectedIdx:-1};function or(){c(ne).classList.add("shown")}function Ke(){c(ne).classList.remove("shown")}function Wt(){return c(ne).classList.contains("shown")}function Ye(e){I.autocompleteSuggestions=Mt(e),I.selectedIdx=-1,ee(e)?Ke():(ar({term:e,suggestions:I.autocompleteSuggestions}),Ie(0),or())}function ar({term:e,suggestions:t}){let n=Handlebars.templates["autocomplete-suggestions"]({suggestions:t,term:e}),i=c(ne);i.innerHTML=n}function Gt(){return I.selectedIdx===-1?null:I.autocompleteSuggestions[I.selectedIdx]}function Ie(e){Yt(cr(e))}function Kt(e){if(e.data.type==="preview"){let{contentHeight:t}=e.data,n=c(".autocomplete-preview");n&&(n.style.height=`${t+32}px`,n.classList.remove("loading"))}}function Yt(e){I.selectedIdx=e;let t=c(Oe),n=c(`${_e}.selected`),i=c(`${_e}[data-index="${I.selectedIdx}"]`);if(n&&n.classList.remove("selected"),i){if(I.previewOpen){Xt(),window.addEventListener("message",Kt),t.classList.add("previewing");let r=document.createElement("div");r.classList.add("autocomplete-preview"),r.classList.add("loading");let s=i.href.replace(".html",`.html?preview=true&theme=${Ge()}`),o=document.createElement("iframe");o.setAttribute("src",s),r.appendChild(document.createElement("div")),r.appendChild(document.createElement("span")),r.appendChild(o),i.parentNode.insertBefore(r,i.nextSibling)}i.classList.add("selected"),i.scrollIntoView({block:"nearest"})}else t&&(t.scrollTop=0)}function Jt(){I.previewOpen?Ce():Je()}function Ce(){I.previewOpen=!1;let e=c(Oe);e&&e.classList.remove("previewing"),Xt()}function Je(e){I.previewOpen=!0,e?e=e.closest(_e):e=c(`${_e}[data-index="${I.selectedIdx}"]`),e&&Yt(parseInt(e.dataset.index))}function Xt(){let e=c(".autocomplete-preview");e&&(e.remove(),window.removeEventListener("message",Kt))}function cr(e){let t=I.autocompleteSuggestions.length+1;return(I.selectedIdx+e+1+t)%t-1}var ce="form.search-bar input",lr="form.search-bar .search-close-button";function nn(){ur(),window.onTogglePreviewClick=function(e,t){e.preventDefault(),e.stopImmediatePropagation(),Xe(),t?Je(e.target):Ce()}}function rn(e){let t=c(ce);t.value=e}function Xe(){let e=c(ce);document.body.classList.add("search-focused"),e.focus()}function ur(){let e=c(ce);if(document.querySelector('meta[name="exdoc:autocomplete"][content="off"]'))return e.addEventListener("keydown",t=>{t.key==="Enter"&&Zt(t)}),!0;e.addEventListener("keydown",t=>{let n=ye();t.key==="Escape"?(Ae(),e.blur()):t.key==="Enter"?Zt(t):t.key==="ArrowUp"||n&&t.ctrlKey&&t.key==="p"?(Ie(-1),t.preventDefault()):t.key==="ArrowDown"||n&&t.ctrlKey&&t.key==="n"?(Ie(1),t.preventDefault()):t.key==="Tab"&&(Jt(),t.preventDefault())}),e.addEventListener("input",t=>{Ye(t.target.value)}),e.addEventListener("focus",t=>{document.body.classList.contains("search-focused")||(document.body.classList.add("search-focused"),Ye(t.target.value))}),e.addEventListener("blur",t=>{let n=t.relatedTarget,i=c(Oe);if(n&&i&&i.contains(n))return setTimeout(()=>{Wt()&&e.focus()},1e3),null;Pe()}),c(ne).addEventListener("click",t=>{t.shiftKey||t.ctrlKey?e.focus():(Ae(),Pe())}),c(lr).addEventListener("click",t=>{Ae(),Pe()})}function Zt(e){let t=c(ce),n=e.shiftKey||e.ctrlKey,i=Gt();e.preventDefault();let r=n?"_blank":"_self",s=document.createElement("a");if(s.setAttribute("target",r),i)s.setAttribute("href",i.link);else{let o=document.querySelector('meta[name="exdoc:full-text-search-url"]'),a=o?o.getAttribute("content"):"search.html?q=";s.setAttribute("href",`${a}${encodeURIComponent(t.value)}`)}s.click(),n||(Ae(),Pe())}function Ae(){let e=c(ce);e.value=""}function Pe(){Ce(),document.body.classList.remove("search-focused"),Ke()}var en=window.scrollY,tn=70;window.addEventListener("scroll",function(){let e=window.scrollY;e>tn*2&&document.body.classList.add("scroll-sticky"),e===0&&document.body.classList.remove("scroll-sticky"),e>en&&e>tn?document.body.classList.remove("scroll-sticky"):document.body.classList.add("scroll-sticky"),en=e<=0?0:e},!1);var sn=".sidebar-projectVersion",dr=".sidebar-projectVersionsDropdown";function on(){let e=Nt();if(e.length>0){let n=c(sn).textContent.trim(),i=pr(e,n);fr({nodes:i})}}function fr({nodes:e}){let t=c(sn),n=Handlebars.templates["versions-dropdown"]({nodes:e});t.innerHTML=n,c(dr).addEventListener("change",mr)}function pr(e,t){return hr(e,t).map(i=>({...i,isCurrentVersion:i.version===t}))}function hr(e,t){return e.some(i=>i.version===t)?e:[{version:t,url:"#"},...e]}function mr(e){let t=e.target.value,n=window.location.pathname.split("/").pop()+window.location.hash,i=`${t}/${n}`;gt(i).then(r=>{r?window.location.href=i:window.location.href=t})}var H=ft(ln());var Re=80,gr="#search";function dn(){if(window.location.pathname.endsWith("/search.html")){let e=mt("q");yr(e)}}async function yr(e){if(ee(e))Ze({value:e});else{rn(e);let t=await vr();try{let n=e.replaceAll(/(\B|\\):/g,"\\:"),i=Or(t.search(n));Ze({value:e,results:i})}catch(n){Ze({value:e,errorMessage:n.message})}}}function Ze({value:e,results:t,errorMessage:n}){let i=c(gr),r=Handlebars.templates["search-results"]({value:e,results:t,errorMessage:n});i.innerHTML=r}async function vr(){H.default.tokenizer.separator=/\s+/,H.default.QueryLexer.termSeparator=/\s+/,H.default.Pipeline.registerFunction(pn,"docTokenSplitter"),H.default.Pipeline.registerFunction(hn,"docTrimmer");let e=await br();if(e)return e;let t=wr();return Sr(t),t}async function br(){try{let e=sessionStorage.getItem(fn());if(e){let t=await Er(e);return H.default.Index.load(t)}else return null}catch(e){return console.error("Failed to load index: ",e),null}}async function Sr(e){try{let t=await xr(e);sessionStorage.setItem(fn(),t)}catch(t){console.error("Failed to save index: ",t)}}async function xr(e){let t=new Blob([JSON.stringify(e)],{type:"application/json"}).stream().pipeThrough(new window.CompressionStream("gzip")),i=await(await new Response(t).blob()).arrayBuffer();return Lr(i)}async function Er(e){let t=new Blob([Tr(e)],{type:"application/json"}).stream().pipeThrough(new window.DecompressionStream("gzip")),n=await new Response(t).text();return JSON.parse(n)}function Lr(e){let t="",n=new Uint8Array(e),i=n.byteLength;for(let r=0;r{this.add(e)})})}function kr(e){e.pipeline.before(H.default.stemmer,pn)}function pn(e){let t=e.toString().split(/\:|\.|\/|_|-/).map(n=>e.clone().update(()=>n));return t.length>1?[...t,e]:t}function _r(e){e.pipeline.before(H.default.stemmer,hn)}function hn(e){return e.update(function(t){return t.replace(/^[^@:\w]+/,"").replace(/[^\?\!\w]+$/,"")})}function Or(e){return e.filter(t=>un(t.ref)).map(t=>{let n=un(t.ref),i=t.matchData.metadata;return{...n,metadata:i,excerpts:Ir(n,i)}})}function un(e){return searchData.items.find(t=>t.ref===e)||null}function Ir(e,t){let{doc:n}=e,r=Object.keys(t).filter(s=>"doc"in t[s]).map(s=>t[s].doc.position.map(([o,a])=>Cr(n,o,a))).reduce((s,o)=>s.concat(o),[]);return r.length===0?[n.slice(0,Re*2)+(Re*20?"...":"",e.slice(i,t),""+he(e.slice(t,t+n))+"",e.slice(t+n,r),r{let n=t.getAttribute("data-group-id");t.addEventListener("mouseenter",i=>{mn(n,!0)}),t.addEventListener("mouseleave",i=>{mn(n,!1)})})}function mn(e,t){k(`[data-group-id="${e}"]`).forEach(i=>{i.classList.toggle(Ar,t)})}var ie="#modal",Rr="#modal .modal-close",Nr="#modal .modal-title",Qr="#modal .modal-body",yn='button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])',z={prevFocus:null,lastFocus:null,ignoreFocusChanges:!1};function vn(){Hr()}function Hr(){let e=Handlebars.templates["modal-layout"]();document.body.insertAdjacentHTML("beforeend",e),c(ie).addEventListener("keydown",t=>{t.key==="Escape"&&le()}),c(Rr).addEventListener("click",t=>{le()})}function bn(e){if(z.ignoreFocusChanges)return;let t=c(ie);if(t.contains(e.target))z.lastFocus=e.target;else{z.ignoreFocusChanges=!0;let n=Fr(t);z.lastFocus===n?Dr(t).focus():n.focus(),z.ignoreFocusChanges=!1,z.lastFocus=document.activeElement}}function Fr(e){return e.querySelector(yn)}function Dr(e){let t=e.querySelectorAll(yn);return t[t.length-1]}function Ne({title:e,body:t}){z.prevFocus=document.activeElement,document.addEventListener("focus",bn,!0),c(Nr).innerHTML=e,c(Qr).innerHTML=t,c(ie).classList.add("shown"),c(ie).focus()}function le(){c(ie).classList.remove("shown"),document.addEventListener("focus",bn,!0),z.prevFocus&&z.prevFocus.focus(),z.prevFocus=null}function Sn(){return c(ie).classList.contains("shown")}var Mr="https://hexdocs.pm/%%",Br="https://hex.pm/api/packages?search=name:%%*",zr=".display-quick-switch",et="#quick-switch-input",En="#quick-switch-results",$r=".quick-switch-result",qr=300,Vr=9,jr=["elixir","eex","ex_unit","hex","iex","logger","mix"].map(e=>({name:e})),Ln=2,P={autocompleteResults:[],selectedIdx:null};function Tn(){Ur()}function Ur(){k(zr).forEach(e=>{e.addEventListener("click",t=>{nt()})})}function Wr(e){if(e.key==="Enter"){let t=e.target.value;Kr(t),e.preventDefault()}else e.key==="ArrowUp"?(xn(-1),e.preventDefault()):e.key==="ArrowDown"&&(xn(1),e.preventDefault())}function Gr(e){let t=e.target.value;if(t.lengthn.json()).then(n=>{Array.isArray(n)&&(P.autocompleteResults=Zr(e,n),P.selectedIdx=null,c(et).value.length>=Ln&&Xr({results:P.autocompleteResults}))})}function Xr({results:e}){let t=c(En),n=Handlebars.templates["quick-switch-results"]({results:e});t.innerHTML=n,k($r).forEach(i=>{i.addEventListener("click",r=>{let s=i.getAttribute("data-index"),o=P.autocompleteResults[s];tt(o.name)})})}function Zr(e,t){return jr.concat(t).filter(n=>n.name.toLowerCase().includes(e.toLowerCase())).filter(n=>n.releases===void 0||n.releases[0].has_docs===!0).slice(0,Vr)}function xn(e){P.selectedIdx=es(e);let t=c(".quick-switch-result.selected"),n=c(`.quick-switch-result[data-index="${P.selectedIdx}"]`);t&&t.classList.remove("selected"),n&&n.classList.add("selected")}function es(e){let t=P.autocompleteResults.length;if(P.selectedIdx===null){if(e>=0)return 0;if(e<0)return t-1}return(P.selectedIdx+e+t)%t}var ts=".display-settings",ns="#settings-modal-content",it="#modal-settings-tab",rt="#modal-keyboard-shortcuts-tab",kn="#settings-content",_n="#keyboard-shortcuts-content",is=[{title:"Settings",id:"modal-settings-tab"},{title:"Keyboard shortcuts",id:"modal-keyboard-shortcuts-tab"}];function On(){rs()}function rs(){k(ts).forEach(e=>{e.addEventListener("click",t=>{st()})})}function wn(){c(rt).classList.remove("active"),c(it).classList.add("active"),c(kn).classList.remove("hidden"),c(_n).classList.add("hidden")}function ss(){c(rt).classList.add("active"),c(it).classList.remove("active"),c(_n).classList.remove("hidden"),c(kn).classList.add("hidden")}function st(){Ne({title:is.map(({id:s,title:o})=>``).join(""),body:Handlebars.templates["settings-modal-body"]({shortcuts:ot})});let e=c(ns),t=e.querySelector('[name="theme"]'),n=e.querySelector('[name="tooltips"]'),i=e.querySelector('[name="direct_livebook_url"]'),r=e.querySelector('[name="livebook_url"]');O.getAndSubscribe(s=>{t.value=s.theme||"system",n.checked=s.tooltips,s.livebookUrl===null?(i.checked=!1,r.classList.add("hidden"),r.tabIndex=-1):(i.checked=!0,r.classList.remove("hidden"),r.tabIndex=0,r.value=s.livebookUrl)}),t.addEventListener("change",s=>{O.update({theme:s.target.value})}),n.addEventListener("change",s=>{O.update({tooltips:s.target.checked})}),i.addEventListener("change",s=>{let o=s.target.checked?r.value:null;O.update({livebookUrl:o})}),r.addEventListener("input",s=>{O.update({livebookUrl:s.target.value})}),c(it).addEventListener("click",s=>{wn()}),c(rt).addEventListener("click",s=>{ss()}),wn()}var os="#settings-modal-content",ot=[{key:"c",description:"Toggle sidebar",action:Me},{key:"n",description:"Cycle themes",action:jt},{key:"s",description:"Focus search bar",displayAs:"/ or s",action:at},{key:"/",action:at},{key:"k",hasModifier:!0,action:at},{key:"g",description:"Search HexDocs package",displayAs:"g",action:nt},{key:"?",displayAs:"?",description:"Bring up this modal",action:us}],ct={shortcutBeingPressed:null};function In(){as()}function as(){document.addEventListener("keydown",cs),document.addEventListener("keyup",ls)}function cs(e){if(ct.shortcutBeingPressed||e.target.matches("input, textarea"))return;let t=ot.find(n=>n.hasModifier?ye()&&e.metaKey||e.ctrlKey?n.key===e.key:!1:e.ctrlKey||e.metaKey||e.altKey?!1:n.key===e.key);t&&(ct.shortcutBeingPressed=t,e.preventDefault(),t.action(e))}function ls(e){ct.shortcutBeingPressed=null}function at(e){le(),Xe()}function us(){ds()?le():st()}function ds(){return Sn()&&c(os)}var K={plain:"plain",function:"function",module:"module"},fs=[{href:"typespecs.html#basic-types",hint:{kind:K.plain,description:"Basic type"}},{href:"typespecs.html#literals",hint:{kind:K.plain,description:"Literal"}},{href:"typespecs.html#built-in-types",hint:{kind:K.plain,description:"Built-in type"}}],Qe={cancelHintFetching:null};function Cn(e){if(Pn(e))return!0;let t=/#.*\//;return e.includes("#")&&!t.test(e)?!1:e.includes(".html")}function An(e){let t=Pn(e);return t?Promise.resolve(t):ps(e)}function Pn(e){let t=fs.find(n=>e.includes(n.href));return t?t.hint:null}function ps(e){let t=e.replace(".html",".html?hint=true");return new Promise((n,i)=>{let r=document.createElement("iframe");r.setAttribute("src",t),r.style.display="none";function s(a){let{href:l,hint:u}=a.data;t===l&&(o(),n(u))}Qe.cancelHintFetching=()=>{o(),i(new Error("cancelled"))};function o(){r.remove(),window.removeEventListener("message",s),Qe.cancelHintFetching=null}window.addEventListener("message",s),document.body.appendChild(r)})}function Rn(){Qe.cancelHintFetching&&Qe.cancelHintFetching()}function Nn(e){let n=e.querySelector("h1").textContent,i=e.querySelector(".docstring > p"),r=i?i.innerHTML:"";return{kind:K.function,title:n.trim(),description:r.trim()}}function Qn(e){let n=e.querySelector("h1 > span").textContent,i=e.querySelector("#moduledoc p"),r=i?i.innerHTML:"";return{kind:K.module,title:n.trim(),description:r.trim()}}var hs=".content a",lt="#tooltip",ms="#tooltip .tooltip-body",Fn="body .content-inner",gs="#content",Dn="tooltip-shown",ue=10,ys=ue*4,Hn={height:450,width:768},vs=100,re={currentLinkElement:null,hoverDelayTimeout:null};function Mn(){bs(),Ss()}function bs(){let e=Handlebars.templates["tooltip-layout"]();c(Fn).insertAdjacentHTML("beforeend",e)}function Ss(){k(hs).forEach(e=>{xs(e)&&(e.addEventListener("mouseenter",t=>{Ls(e)}),e.addEventListener("mouseleave",t=>{_s(e)}))})}function xs(e){return!(e.classList.contains("detail-link")||Es(e.href)||!Cn(e.href))}function Es(e){let t=e.replace(gs,"");return window.location.href.split("#")[0]===t}function Ls(e){Ts()&&(re.currentLinkElement=e,re.hoverDelayTimeout=setTimeout(()=>{An(e.href).then(t=>{ws(t),ks()}).catch(()=>{})},vs))}function Ts(){let e=window.innerWidthe.firstElementChild&&e.firstElementChild.tagName==="CODE").forEach(e=>e.insertAdjacentHTML("beforeend",Hs)),Array.from(k(".copy-button")).forEach(e=>{let t;e.addEventListener("click",()=>{let n=e.querySelector("[aria-live]");t&&clearTimeout(t);let i=Array.from(e.parentElement.querySelector("code").childNodes).filter(r=>!(r.tagName==="SPAN"&&r.classList.contains("unselectable"))).map(r=>r.textContent).join("");navigator.clipboard.writeText(i),e.classList.add("clicked"),n.innerHTML="Copied! ✓",t=setTimeout(()=>{e.classList.remove("clicked"),n.innerHTML=""},3e3)})})}function Vn(){let t=/(Macintosh|iPhone|iPad|iPod)/.test(window.navigator.userAgent)?"apple-os":"non-apple-os";document.documentElement.classList.add(t)}var Ds="content",Ms="tabs-open",Bs="tabs-close",zs="H3",$s="tabset";function Un(){qs().map(Vs).forEach(n=>Ws(n))}function qs(){let e=document.createNodeIterator(document.getElementById(Ds),NodeFilter.SHOW_COMMENT,{acceptNode(i){return i.nodeValue.trim()===Ms?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),t=[],n;for(;n=e.nextNode();)t.push(n);return t}function Vs(e,t,n){let i=[],r=[],s={label:"",content:[]};for(;e=e.nextSibling;){if(js(e)){jn(s,r,t);break}i.push(e),e.nodeName===zs?(jn(s,r,t),s.label=e.innerText,s.content=[]):s.content.push(e.outerHTML)}let o=document.createElement("div");return o.className=$s,Us(i,o),o.innerHTML=Handlebars.templates.tabset({tabs:r}),o}function js(e){return e.nodeName==="#comment"&&e.nodeValue.trim()===Bs}function jn(e,t,n){if(e.label===""&&!e.content.length)return!1;let i=e.label,r=e.content;t.push({label:i,content:r,setIndex:n})}function Us(e,t){if(!e||!e.length)return!1;e[0].parentNode.insertBefore(t,e[0]),e.forEach(n=>t.appendChild(n))}function Ws(e){let t={tabs:e.querySelectorAll(':scope [role="tab"]'),panels:e.querySelectorAll(':scope [role="tabpanel"]'),activeIndex:0};t.tabs.forEach((n,i)=>{n.addEventListener("click",r=>{Y(i,t)}),n.addEventListener("keydown",r=>{let s=t.tabs.length-1;r.code==="ArrowLeft"?(r.preventDefault(),t.activeIndex===0?Y(s,t):Y(t.activeIndex-1,t)):r.code==="ArrowRight"?(r.preventDefault(),t.activeIndex===s?Y(0,t):Y(t.activeIndex+1,t)):r.code==="Home"?(r.preventDefault(),Y(0,t)):r.code==="End"&&(r.preventDefault(),Y(s,t))})})}function Y(e,t){t.tabs[t.activeIndex].setAttribute("aria-selected","false"),t.tabs[t.activeIndex].tabIndex=-1,t.tabs[e].setAttribute("aria-selected","true"),t.tabs[e].tabIndex=0,t.tabs[e].focus(),t.panels[t.activeIndex].setAttribute("hidden",""),t.panels[t.activeIndex].tabIndex=-1,t.panels[e].removeAttribute("hidden"),t.panels[e].tabIndex=0,t.activeIndex=e}function Gn(){let e=me(Z(),!0);e&&Gs(e)}function Gs(e){Js(e),Ks(),Ys(),Wn(),window.addEventListener("resize",t=>{Wn()})}function Wn(){let e=document.body.scrollHeight,t=document.getElementById("content").parentElement.offsetHeight,n={type:"preview",maxHeight:e,contentHeight:t};window.parent.postMessage(n,"*")}function Ks(){let e=document.getElementsByTagName("a");for(let t of e)t.getAttribute("target")!=="_blank"&&t.setAttribute("target","_parent")}function Ys(){window.scrollTo(0,0)}function Js(e){document.body.classList.add("preview");let t=document.getElementById("content");t.innerHTML=e.innerHTML}yt(()=>{let e=new URLSearchParams(window.location.search),t=e.has("preview");Vt(e.get("theme")),xt(t),gn(),Mn(),$n(),qn(),Vn(),Un(),t?Gn():(on(),It(),Qt(),nn(),vn(),In(),Tn(),$t(),dn(),On())});})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/dist/html-JDI3AVDD.js b/dist/html-JDI3AVDD.js deleted file mode 100644 index f4a3053ae..000000000 --- a/dist/html-JDI3AVDD.js +++ /dev/null @@ -1,56 +0,0 @@ -(()=>{var An=Object.create;var et=Object.defineProperty;var Qn=Object.getOwnPropertyDescriptor;var Nn=Object.getOwnPropertyNames;var Hn=Object.getPrototypeOf,Dn=Object.prototype.hasOwnProperty;var tt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Fn=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Nn(t))!Dn.call(e,r)&&r!==n&&et(e,r,{get:()=>t[r],enumerable:!(i=Qn(t,r))||i.enumerable});return e};var nt=(e,t,n)=>(n=e!=null?An(Hn(e)):{},Fn(t||!e||!e.__esModule?et(n,"default",{value:e,enumerable:!0}):n,e));var gt=tt((ms,mt)=>{var pt="Expected a function",ft=NaN,Gn="[object Symbol]",Kn=/^\s+|\s+$/g,Yn=/^[-+]0x[0-9a-f]+$/i,Jn=/^0b[01]+$/i,Xn=/^0o[0-7]+$/i,Zn=parseInt,ei=typeof global=="object"&&global&&global.Object===Object&&global,ti=typeof self=="object"&&self&&self.Object===Object&&self,ni=ei||ti||Function("return this")(),ii=Object.prototype,ri=ii.toString,si=Math.max,oi=Math.min,Oe=function(){return ni.Date.now()};function ai(e,t,n){var i,r,s,o,a,u,l=0,f=!1,y=!1,g=!0;if(typeof e!="function")throw new TypeError(pt);t=ht(t)||0,pe(n)&&(f=!!n.leading,y="maxWait"in n,s=y?si(ht(n.maxWait)||0,t):s,g="trailing"in n?!!n.trailing:g);function L(x){var C=i,H=r;return i=r=void 0,l=x,o=e.apply(H,C),o}function S(x){return l=x,a=setTimeout(p,t),f?L(x):o}function T(x){var C=x-u,H=x-l,z=t-C;return y?oi(z,s-H):z}function m(x){var C=x-u,H=x-l;return u===void 0||C>=t||C<0||y&&H>=s}function p(){var x=Oe();if(m(x))return _(x);a=setTimeout(p,T(x))}function _(x){return a=void 0,g&&i?L(x):(i=r=void 0,o)}function w(){a!==void 0&&clearTimeout(a),l=0,i=u=r=a=void 0}function Q(){return a===void 0?o:_(Oe())}function N(){var x=Oe(),C=m(x);if(i=arguments,r=this,u=x,C){if(a===void 0)return S(u);if(y)return a=setTimeout(p,t),L(u)}return a===void 0&&(a=setTimeout(p,t)),o}return N.cancel=w,N.flush=Q,N}function ci(e,t,n){var i=!0,r=!0;if(typeof e!="function")throw new TypeError(pt);return pe(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),ai(e,t,{leading:i,maxWait:t,trailing:r})}function pe(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function li(e){return!!e&&typeof e=="object"}function ui(e){return typeof e=="symbol"||li(e)&&ri.call(e)==Gn}function ht(e){if(typeof e=="number")return e;if(ui(e))return ft;if(pe(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=pe(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(Kn,"");var n=Jn.test(e);return n||Xn.test(e)?Zn(e.slice(2),n?2:8):Yn.test(e)?ft:+e}mt.exports=ci});var $t=tt((Vt,zt)=>{(function(){var e=function(t){var n=new e.Builder;return n.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),n.searchPipeline.add(e.stemmer),t.call(n,n),n.build()};e.version="2.3.9";e.utils={},e.utils.warn=function(t){return function(n){t.console&&console.warn&&console.warn(n)}}(this),e.utils.asString=function(t){return t==null?"":t.toString()},e.utils.clone=function(t){if(t==null)return t;for(var n=Object.create(null),i=Object.keys(t),r=0;r0){var f=e.utils.clone(n)||{};f.position=[a,l],f.index=s.length,s.push(new e.Token(i.slice(a,o),f))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/;e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,n){n in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+n),t.label=n,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var n=t.label&&t.label in this.registeredFunctions;n||e.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,t)},e.Pipeline.load=function(t){var n=new e.Pipeline;return t.forEach(function(i){var r=e.Pipeline.registeredFunctions[i];if(r)n.add(r);else throw new Error("Cannot load unregistered function: "+i)}),n},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(n){e.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},e.Pipeline.prototype.after=function(t,n){e.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i=i+1,this._stack.splice(i,0,n)},e.Pipeline.prototype.before=function(t,n){e.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},e.Pipeline.prototype.remove=function(t){var n=this._stack.indexOf(t);n!=-1&&this._stack.splice(n,1)},e.Pipeline.prototype.run=function(t){for(var n=this._stack.length,i=0;i1&&(ot&&(i=s),o!=t);)r=i-n,s=n+Math.floor(r/2),o=this.elements[s*2];if(o==t||o>t)return s*2;if(ou?f+=2:a==u&&(n+=i[l+1]*r[f+1],l+=2,f+=2);return n},e.Vector.prototype.similarity=function(t){return this.dot(t)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var t=new Array(this.elements.length/2),n=1,i=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new e.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),r.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),r.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&r.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),r.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var f=s.str.charAt(0),y=s.str.charAt(1),g;y in s.node.edges?g=s.node.edges[y]:(g=new e.TokenSet,s.node.edges[y]=g),s.str.length==1&&(g.final=!0),r.push({node:g,editsRemaining:s.editsRemaining-1,str:f+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var n=new e.TokenSet,i=n,r=0,s=t.length;r=t;n--){var i=this.uncheckedNodes[n],r=i.child.toString();r in this.minimizedNodes?i.parent.edges[i.char]=this.minimizedNodes[r]:(i.child._str=r,this.minimizedNodes[r]=i.child),this.uncheckedNodes.pop()}};e.Index=function(t){this.invertedIndex=t.invertedIndex,this.fieldVectors=t.fieldVectors,this.tokenSet=t.tokenSet,this.fields=t.fields,this.pipeline=t.pipeline},e.Index.prototype.search=function(t){return this.query(function(n){var i=new e.QueryParser(t,n);i.parse()})},e.Index.prototype.query=function(t){for(var n=new e.Query(this.fields),i=Object.create(null),r=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=t},e.Builder.prototype.k1=function(t){this._k1=t},e.Builder.prototype.add=function(t,n){var i=t[this._ref],r=Object.keys(this._fields);this._documents[i]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,n;do t=this.next(),n=t.charCodeAt(0);while(n>47&&n<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var n=t.next();if(n==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){t.escapeCharacter();continue}if(n==":")return e.QueryLexer.lexField;if(n=="~")return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if(n=="^")return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if(n=="+"&&t.width()===1||n=="-"&&t.width()===1)return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(n.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}},e.QueryParser=function(t,n){this.lexer=new e.QueryLexer(t),this.query=n,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var t=this.peekLexeme();return this.lexemeIdx+=1,t},e.QueryParser.prototype.nextClause=function(){var t=this.currentClause;this.query.clause(t),this.currentClause={}},e.QueryParser.parseClause=function(t){var n=t.peekLexeme();if(n!=null)switch(n.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(i+=" with value '"+n.str+"'"),new e.QueryParseError(i,n.start,n.end)}},e.QueryParser.parsePresence=function(t){var n=t.consumeLexeme();if(n!=null){switch(n.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+n.str+"'";throw new e.QueryParseError(i,n.start,n.end)}var r=t.peekLexeme();if(r==null){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,n.start,n.end)}switch(r.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+r.type+"'";throw new e.QueryParseError(i,r.start,r.end)}}},e.QueryParser.parseField=function(t){var n=t.consumeLexeme();if(n!=null){if(t.query.allFields.indexOf(n.str)==-1){var i=t.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),r="unrecognised field '"+n.str+"', possible fields: "+i;throw new e.QueryParseError(r,n.start,n.end)}t.currentClause.fields=[n.str];var s=t.peekLexeme();if(s==null){var r="expecting term, found nothing";throw new e.QueryParseError(r,n.start,n.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var r="expecting term, found '"+s.type+"'";throw new e.QueryParseError(r,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var n=t.consumeLexeme();if(n!=null){t.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(i==null){t.nextClause();return}switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(r,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var n=t.consumeLexeme();if(n!=null){var i=parseInt(n.str,10);if(isNaN(i)){var r="edit distance must be numeric";throw new e.QueryParseError(r,n.start,n.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(s==null){t.nextClause();return}switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(r,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var n=t.consumeLexeme();if(n!=null){var i=parseInt(n.str,10);if(isNaN(i)){var r="boost must be numeric";throw new e.QueryParseError(r,n.start,n.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(s==null){t.nextClause();return}switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(r,s.start,s.end)}}},function(t,n){typeof define=="function"&&define.amd?define(n):typeof Vt=="object"?zt.exports=n():t.lunr=n()}(this,function(){return e})})()});Handlebars.registerHelper("groupChanged",function(e,t,n){let i=t||"";if(e.group!==i)return delete e.nestedContext,e.group=i,n.fn(this)});Handlebars.registerHelper("nestingChanged",function(e,t,n){if(t.nested_context&&t.nested_context!==e.nestedContext){if(e.nestedContext=t.nested_context,e.lastModuleSeenInGroup!==t.nested_context)return n.fn(this)}else e.lastModuleSeenInGroup=t.title});Handlebars.registerHelper("showSections",function(e,t){if(e.sections.length>0)return t.fn(this)});Handlebars.registerHelper("showSummary",function(e,t){if(e.nodeGroups)return t.fn(this)});Handlebars.registerHelper("isArray",function(e,t){return Array.isArray(e)?t.fn(this):t.inverse(this)});Handlebars.registerHelper("isNonEmptyArray",function(e,t){return Array.isArray(e)&&e.length>0?t.fn(this):t.inverse(this)});Handlebars.registerHelper("isEmptyArray",function(e,t){return Array.isArray(e)&&e.length===0?t.fn(this):t.inverse(this)});Handlebars.registerHelper("isLocal",function(e,t){let n=window.location.pathname.split("/").pop();return e+".html"===n?t.fn(this):t.inverse(this)});var c=document.querySelector.bind(document),k=document.querySelectorAll.bind(document);function it(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function de(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function re(){return document.body.dataset.type}function rt(e,t){if(e){for(let n of e){let i=n.nodeGroups&&n.nodeGroups.find(r=>r.nodes.some(s=>s.anchor===t));if(i)return i.key}return null}}function fe(){return window.location.hash.replace(/^#/,"")}function st(e){return new URLSearchParams(window.location.search).get(e)}function ot(e){return fetch(e).then(t=>t.ok).catch(()=>!1)}function at(e){document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)}function K(e){return!e||e.trim()===""}function ct(e,t){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>{n=null,e(...r)},t)}}function he(){return document.head.querySelector("meta[name=project][content]").content}var lt="ex_doc:settings",Mn={tooltips:!0,theme:null,livebookUrl:null},_e=class{constructor(){this._subscribers=[],this._settings=Mn,this._loadSettings()}get(){return this._settings}update(t){let n=this._settings;this._settings={...this._settings,...t},this._subscribers.forEach(i=>i(this._settings,n)),this._storeSettings()}getAndSubscribe(t){this._subscribers.push(t),t(this._settings)}_loadSettings(){try{let t=localStorage.getItem(lt);if(t){let n=JSON.parse(t);this._settings={...this._settings,...n}}this._loadSettingsLegacy()}catch(t){console.error(`Failed to load settings: ${t}`)}}_storeSettings(){try{this._storeSettingsLegacy(),localStorage.setItem(lt,JSON.stringify(this._settings))}catch(t){console.error(`Failed to persist settings: ${t}`)}}_loadSettingsLegacy(){localStorage.getItem("tooltipsDisabled")!==null&&(this._settings={...this._settings,tooltips:!1}),localStorage.getItem("night-mode")==="true"&&(this._settings={...this._settings,nightMode:!0}),this._settings.nightMode===!0&&(this._settings={...this._settings,theme:"dark"})}_storeSettingsLegacy(){this._settings.tooltips?localStorage.removeItem("tooltipsDisabled"):localStorage.setItem("tooltipsDisabled","true"),this._settings.nightMode!==null?localStorage.setItem("night-mode",this._settings.nightMode===!0?"true":"false"):localStorage.removeItem("night-mode"),this._settings.theme!==null?(localStorage.setItem("night-mode",this._settings.theme==="dark"?"true":"false"),this._settings.nightMode=this._settings.theme==="dark"):(delete this._settings.nightMode,localStorage.removeItem("night-mode"))}},O=new _e;var Bn=".content",ut=".content-inner",Vn=".livebook-badge";function dt(){zn(),jn(),Un(),$n()}function zn(){c(Bn).querySelectorAll("a").forEach(e=>{e.querySelector("code, img")&&e.classList.add("no-underline")})}function $n(){["warning","info","error","neutral","tip"].forEach(t=>{k(`blockquote h3.${t}, blockquote h4.${t}`).forEach(n=>{n.closest("blockquote").classList.add(t)})})}function jn(){c(ut).setAttribute("tabindex",-1),c(ut).focus()}function Un(){let t=window.location.pathname.replace(/\.html$/,".livemd"),n=new URL(t,window.location.href).toString();O.getAndSubscribe(i=>{let r=i.livebookUrl?Wn(i.livebookUrl,n):qn(n);for(let s of k(Vn))s.href=r})}function qn(e){return`https://livebook.dev/run?url=${encodeURIComponent(e)}`}function Wn(e,t){return`${e}/import?url=${encodeURIComponent(t)}`}var yt=nt(gt());var di=768,vt=300,fi=".sidebar-toggle",hi=".content",D={CLOSED:"closed",OPEN:"open",NO_PREF:"no_pref"},F={opened:"sidebar-opened",opening:"sidebar-opening",closed:"sidebar-closed",closing:"sidebar-closing"},pi=Object.values(F),P={togglingTimeout:null,lastWindowWidth:window.innerWidth,sidebarPreference:D.NO_PREF};function St(){xt(),mi()}function xt(){if(sessionStorage.getItem("sidebar_state")==="closed")return Y(F.closed);Y(Et()?F.closed:F.opened)}function Et(){return window.matchMedia(`screen and (max-width: ${di}px)`).matches}function Y(...e){document.body.classList.remove(...pi),document.body.classList.add(...e)}function mi(){c(fi).addEventListener("click",e=>{Ie(),vi()}),c(hi).addEventListener("click",e=>{yi()}),window.addEventListener("resize",(0,yt.default)(e=>{gi()},100))}function Ie(){return Ce()?bt():Pe()}function Ce(){return document.body.classList.contains(F.opened)||document.body.classList.contains(F.opening)}function Pe(){return Lt(),Y(F.opening),sessionStorage.setItem("sidebar_state","opened"),new Promise((e,t)=>{P.togglingTimeout=setTimeout(()=>{Y(F.opened),e()},vt)})}function bt(){return Lt(),Y(F.closing),sessionStorage.setItem("sidebar_state","closed"),new Promise((e,t)=>{P.togglingTimeout=setTimeout(()=>{Y(F.closed),e()},vt)})}function Lt(){P.togglingTimeout&&(clearTimeout(P.togglingTimeout),P.togglingTimeout=null)}function gi(){P.lastWindowWidth!==window.innerWidth&&(P.lastWindowWidth=window.innerWidth,(P.sidebarPreference===D.OPEN||P.sidebarPreference===D.NO_PREF)&&xt())}function yi(){Et()&&Ce()&&bt()}function vi(){switch(P.sidebarPreference){case D.OPEN:P.sidebarPreference=D.CLOSED;break;case D.CLOSED:P.sidebarPreference=D.OPEN;break;case D.NO_PREF:Ce()?P.sidebarPreference=D.OPEN:P.sidebarPreference=D.CLOSED}}function J(){return window.sidebarNodes||{}}function Tt(){return window.versionNodes||[]}var Re={search:"search",extras:"extras",modules:"modules",tasks:"tasks"},wt=[Re.extras,Re.modules,Re.tasks],me="#full-list";function kt(){_t(J(),re()),It(),Ot(),xi()}function _t(e,t){let n=e[t]||[],i=c(me),r=Handlebars.templates["sidebar-items"]({nodes:n,group:""});i.innerHTML=r,Si(t),i.querySelectorAll("ul").forEach(s=>{if(s.innerHTML.trim()===""){let o=s.previousElementSibling;o.classList.contains("expand")&&o.classList.remove("expand"),s.remove()}}),i.querySelectorAll("li a").forEach(s=>{s.addEventListener("click",o=>{let a=o.target,u=a.closest("li"),l=i.querySelector(".current-section");if(a.matches(".icon-expand")){o.preventDefault(),u.classList.toggle("open");return}l&&l.classList.remove("current-section"),s.matches(".expand")&&s.pathname===window.location.pathname&&u.classList.add("open")})})}function Si(e){wt.forEach(t=>{let n=c(`#${t}-list-link`);n&&n.parentElement.classList.toggle("selected",t===e)})}function Ot(){let e=c(me),t=e.querySelector("li.current-page");t&&(t.scrollIntoView(),e.scrollTop-=40)}function It(){let e=fe()||"content",n=J()[re()]||[],i=rt(n,e),r=c(me),s=r.querySelector(`li.current-page a.expand[href$="#${i}"]`);s&&s.closest("li").classList.add("open");let o=r.querySelector(`li.current-page a[href$="#${e}"]`);if(o){let a=o.closest("ul");a.classList.contains("deflist")&&a.closest("li").classList.add("current-section"),o.closest("li").classList.add("current-hash")}}function xi(){wt.forEach(e=>{let t=c(`#${e}-list-link`);t&&t.addEventListener("click",n=>{n.preventDefault(),_t(J(),e),Ot()})}),window.addEventListener("hashchange",e=>{let n=c(me).querySelector("li.current-page li.current-hash");n&&n.classList.remove("current-hash"),It()})}var M={module:"module",moduleChild:"module-child",mixTask:"mix-task",extra:"extra",section:"section"};function Pt(e,t=5){if(K(e))return[];let n=J(),i=[...Ae(n.modules,e,M.module),...Ei(n.modules,e,M.moduleChild),...Ae(n.tasks,e,M.mixTask),...Ae(n.extras,e,M.extra),...Qe(n.modules,e,M.section),...Qe(n.tasks,e,M.section),...Qe(n.extras,e,M.section)].filter(r=>r!==null);return Oi(i).slice(0,t)}function Ae(e,t,n){return e.map(i=>Li(i,t,n))}function Ei(e,t,n){return e.filter(i=>i.nodeGroups).flatMap(i=>i.nodeGroups.flatMap(({key:r,nodes:s})=>{let o=_i(r);return s.map(a=>Ti(a,i.id,t,n,o)||ki(a,i.id,t,n,o))}))}function Qe(e,t,n){return e.flatMap(i=>bi(i).map(r=>wi(i,r,t,n)))}function bi(e){return(e.sections||[]).concat(e.headers||[])}function Li(e,t,n){return Ne(e.title,t)?{link:`${e.id}.html`,title:Se(e.title,t),label:null,description:null,matchQuality:ye(e.title,t),category:n}:null}function Ti(e,t,n,i,r){return Ne(e.id,n)?{link:`${t}.html#${e.anchor}`,title:Se(e.id,n),label:r,description:t,matchQuality:ye(e.id,n),category:i}:null}function wi(e,t,n,i){return Rt(t.id,n)?{link:`${e.id}.html#${t.anchor}`,title:Se(t.id,n),label:null,description:e.title,matchQuality:ye(t.id,n),category:i}:null}function ki(e,t,n,i,r){let s=`${t}.${e.id}`;if(!Ne(s,n))return null;let o=n.replace(/\./g," ");return Rt(e.id,o)?{link:`${t}.html#${e.anchor}`,title:Se(e.id,o),label:r,description:t,matchQuality:ye(s,n),category:i}:null}function _i(e){switch(e){case"callbacks":return"callback";case"types":return"type";default:return null}}function Oi(e){return e.slice().sort((t,n)=>t.matchQuality!==n.matchQuality?n.matchQuality-t.matchQuality:Ct(t.category)-Ct(n.category))}function Ct(e){switch(e){case M.module:return 1;case M.moduleChild:return 2;case M.mixTask:return 3;default:return 4}}function Rt(e,t){return ve(t).some(i=>At(e,i))}function Ne(e,t){return ve(t).every(i=>At(e,i))}function At(e,t){return e.toLowerCase().includes(t.toLowerCase())}function ye(e,t){let n=ve(t),r=n.map(o=>o.length).reduce((o,a)=>o+a,0)/e.length,s=Ii(e,n[0])?1:0;return r+s}function Ii(e,t){return e.toLowerCase().startsWith(t.toLowerCase())}function ve(e){return e.trim().split(/\s+/)}function Se(e,t){let n=ve(t).sort((i,r)=>r.length-i.length);return ge(e,n)}function ge(e,t){if(t.length===0)return e;let[n,...i]=t,r=e.match(new RegExp(`(.*)(${it(n)})(.*)`,"i"));if(r){let[,s,o,a]=r;return ge(s,t)+""+de(o)+""+ge(a,t)}else return ge(e,i)}var X=".autocomplete",xe=".autocomplete-suggestion",B={autocompleteSuggestions:[],selectedIdx:-1};function Ci(){c(X).classList.add("shown")}function He(){c(X).classList.remove("shown")}function Qt(){return c(X).classList.contains("shown")}function De(e){B.autocompleteSuggestions=Pt(e),B.selectedIdx=-1,K(e)?He():(Pi({term:e,suggestions:B.autocompleteSuggestions}),Ee(0),Ci())}function Pi({term:e,suggestions:t}){let n=Handlebars.templates["autocomplete-suggestions"]({suggestions:t,term:e}),i=c(X);i.innerHTML=n}function Nt(){return B.selectedIdx===-1?null:B.autocompleteSuggestions[B.selectedIdx]}function Ee(e){B.selectedIdx=Ri(e);let t=c(`${xe}.selected`),n=c(`${xe}[data-index="${B.selectedIdx}"]`);t&&t.classList.remove("selected"),n&&n.classList.add("selected")}function Ri(e){let t=B.autocompleteSuggestions.length+1;return(B.selectedIdx+e+1+t)%t-1}var se="form.sidebar-search input",Ai="form.sidebar-search .search-close-button";function Ht(){Qi()}function Dt(e){let t=c(se);t.value=e}function Ft(){c(se).focus()}function Qi(){let e=c(se);e.addEventListener("keydown",t=>{t.key==="Escape"?(be(),e.blur()):t.key==="Enter"?Ni(t):t.key==="ArrowUp"?(Ee(-1),t.preventDefault()):t.key==="ArrowDown"&&(Ee(1),t.preventDefault())}),e.addEventListener("input",t=>{De(t.target.value)}),e.addEventListener("focus",t=>{document.body.classList.add("search-focused"),De(t.target.value)}),e.addEventListener("blur",t=>{let n=t.relatedTarget;if(n){if(n.matches(xe))return setTimeout(()=>{Qt()&&e.focus()},1e3),null;n.matches(Ai)&&be()}Fe()}),c(X).addEventListener("click",t=>{t.shiftKey||t.ctrlKey?e.focus():(be(),Fe())})}function Ni(e){let t=c(se),n=e.shiftKey||e.ctrlKey,i=Nt();e.preventDefault();let r=n?"_blank":"_self",s=document.createElement("a");s.setAttribute("target",r),i?s.setAttribute("href",i.link):s.setAttribute("href",`search.html?q=${encodeURIComponent(t.value)}`),s.click(),n||(be(),Fe())}function be(){let e=c(se);e.value=""}function Fe(){document.body.classList.remove("search-focused"),He()}var Mt=".sidebar-projectVersion",Hi=".sidebar-projectVersionsDropdown";function Bt(){let e=Tt();if(e.length>0){let n=c(Mt).textContent.trim(),i=Fi(e,n);Di({nodes:i})}}function Di({nodes:e}){let t=c(Mt),n=Handlebars.templates["versions-dropdown"]({nodes:e});t.innerHTML=n,c(Hi).addEventListener("change",Bi)}function Fi(e,t){return Mi(e,t).map(i=>({...i,isCurrentVersion:i.version===t}))}function Mi(e,t){return e.some(i=>i.version===t)?e:[{version:t,url:"#"},...e]}function Bi(e){let t=e.target.value,n=window.location.pathname.split("/").pop()+window.location.hash,i=`${t}/${n}`;ot(i).then(r=>{r?window.location.href=i:window.location.href=t})}var I=nt($t());var Le=80,Vi="#search";function Ut(){if(window.location.pathname.endsWith("/search.html")){let e=st("q");zi(e)}}function zi(e){if(K(e))Me({value:e});else{Dt(e);let t=$i();try{let n=Yi(t.search(e));Me({value:e,results:n})}catch(n){Me({value:e,errorMessage:n.message})}}}function Me({value:e,results:t,errorMessage:n}){let i=c(Vi),r=Handlebars.templates["search-results"]({value:e,results:t,errorMessage:n});i.innerHTML=r}function $i(){I.default.QueryLexer.termSeparator=/\s+/,I.default.Pipeline.registerFunction(Be,"elixirTokenSplitter"),I.default.Pipeline.registerFunction(Ve,"elixirTrimmer"),I.default.Pipeline.registerFunction(ze,"hyphenSearch");let e=ji();if(e)return e;let t=qi();return Ui(t),t}function ji(){try{let e=sessionStorage.getItem(qt());return e?I.default.Index.load(JSON.parse(e)):null}catch(e){return console.error("Failed to load index: ",e),null}}function Ui(e){try{let t=JSON.stringify(e);sessionStorage.setItem(qt(),t)}catch(t){console.error("Failed to save index: ",t)}}function qt(){return`index:${he()}`}function qi(){return(0,I.default)(function(){this.tokenizer.separator=/\s+/,this.ref("ref"),this.field("title",{boost:3}),this.field("doc"),this.metadataWhitelist=["position"],this.pipeline.remove(I.default.stopWordFilter),this.use(Ki),this.use(Wi),this.pipeline.remove(I.default.trimmer),this.use(Gi),searchNodes.forEach(e=>{this.add(e)})})}function Wi(e){e.pipeline.before(I.default.stemmer,Be),e.searchPipeline.before(I.default.stemmer,Be)}function Be(e){let t=e.toString().split(/\.|\/|_/).map(n=>e.clone().update(()=>n));return t.length>1?[...t,e]:t}function Gi(e){e.pipeline.after(I.default.stemmer,Ve),e.searchPipeline.after(I.default.stemmer,Ve)}function Ve(e){return e.update(function(t){return t.replace(/^@?\W+/,"").replace(/\W+$/,"")})}function ze(e){if(e.toString().indexOf("-")<0)return e;let n=[];return n.push(e.clone(function(i){return i.replace("-","")})),n.push(e),n}function Ki(e){e.pipeline.before(I.default.stemmer,ze),e.searchPipeline.before(I.default.stemmer,ze)}function Yi(e){return e.filter(t=>jt(t.ref)).map(t=>{let n=jt(t.ref),i=t.matchData.metadata;return{...n,metadata:i,excerpts:Ji(n,i)}})}function jt(e){return searchNodes.find(t=>t.ref===e)||null}function Ji(e,t){let{doc:n}=e,r=Object.keys(t).filter(s=>"doc"in t[s]).map(s=>t[s].doc.position.map(([o,a])=>Xi(n,o,a))).reduce((s,o)=>s.concat(o),[]);return r.length===0?[n.slice(0,Le*2)+(Le*20?"...":"",e.slice(i,t),""+de(e.slice(t,t+n))+"",e.slice(t+n,r),r{clearTimeout(Te),e.target.classList.remove("show")});function $e(e){Z&&(clearTimeout(Te),Z.innerText=e,Z.classList.add("show"),Te=setTimeout(()=>{Z.classList.remove("show"),Te=setTimeout(function(){Z.innerText=""},1e3)},5e3))}var Wt="dark",je=["system","dark","light"];function Gt(){O.getAndSubscribe(e=>{document.body.classList.toggle(Wt,Yt(e))}),er()}function Kt(){let t=O.get().theme||"system",n=je[je.indexOf(t)+1]||je[0];O.update({theme:n}),$e(`Set theme to "${n}"`)}function Yt(e){return e.theme==="dark"||Zi()&&(e.theme==null||e.theme==="system")}function Zi(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function er(){window.matchMedia("(prefers-color-scheme: dark)").addListener(e=>{let t=O.get(),n=Yt(t);(t.theme==null||t.theme==="system")&&(document.body.classList.toggle(Wt,n),$e(`Browser changed theme to "${n?"dark":"light"}"`))})}var tr="hll";function Xt(){nr()}function nr(){k("[data-group-id]").forEach(t=>{let n=t.getAttribute("data-group-id");t.addEventListener("mouseenter",i=>{Jt(n,!0)}),t.addEventListener("mouseleave",i=>{Jt(n,!1)})})}function Jt(e,t){k(`[data-group-id="${e}"]`).forEach(i=>{i.classList.toggle(tr,t)})}var ee="#modal",ir="#modal .modal-close",rr="#modal .modal-title",sr="#modal .modal-body",Zt='button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])',V={prevFocus:null,lastFocus:null,ignoreFocusChanges:!1};function en(){or()}function or(){let e=Handlebars.templates["modal-layout"]();document.body.insertAdjacentHTML("beforeend",e),c(ee).addEventListener("keydown",t=>{t.key==="Escape"&&oe()}),c(ir).addEventListener("click",t=>{oe()})}function tn(e){if(V.ignoreFocusChanges)return;let t=c(ee);if(t.contains(e.target))V.lastFocus=e.target;else{V.ignoreFocusChanges=!0;let n=ar(t);V.lastFocus===n?cr(t).focus():n.focus(),V.ignoreFocusChanges=!1,V.lastFocus=document.activeElement}}function ar(e){return e.querySelector(Zt)}function cr(e){let t=e.querySelectorAll(Zt);return t[t.length-1]}function we({title:e,body:t}){V.prevFocus=document.activeElement,document.addEventListener("focus",tn,!0),c(rr).innerHTML=e,c(sr).innerHTML=t,c(ee).classList.add("shown"),c(ee).focus()}function oe(){c(ee).classList.remove("shown"),document.addEventListener("focus",tn,!0),V.prevFocus&&V.prevFocus.focus(),V.prevFocus=null}function nn(){return c(ee).classList.contains("shown")}var lr="https://hexdocs.pm/%%",ur="https://hex.pm/api/packages?search=name:%%*",dr=".display-quick-switch",Ue="#quick-switch-input",sn="#quick-switch-results",fr=".quick-switch-result",hr=300,pr=9,mr=["elixir","eex","ex_unit","hex","iex","logger","mix"].map(e=>({name:e})),on=2,R={autocompleteResults:[],selectedIdx:null};function an(){gr()}function gr(){k(dr).forEach(e=>{e.addEventListener("click",t=>{We()})})}function yr(e){if(e.key==="Enter"){let t=e.target.value;Sr(t),e.preventDefault()}else e.key==="ArrowUp"?(rn(-1),e.preventDefault()):e.key==="ArrowDown"&&(rn(1),e.preventDefault())}function vr(e){let t=e.target.value;if(t.lengthn.json()).then(n=>{Array.isArray(n)&&(R.autocompleteResults=Lr(e,n),R.selectedIdx=null,c(Ue).value.length>=on&&br({results:R.autocompleteResults}))})}function br({results:e}){let t=c(sn),n=Handlebars.templates["quick-switch-results"]({results:e});t.innerHTML=n,k(fr).forEach(i=>{i.addEventListener("click",r=>{let s=i.getAttribute("data-index"),o=R.autocompleteResults[s];qe(o.name)})})}function Lr(e,t){return mr.concat(t).filter(n=>n.name.toLowerCase().includes(e.toLowerCase())).filter(n=>n.releases===void 0||n.releases[0].has_docs===!0).slice(0,pr)}function rn(e){R.selectedIdx=Tr(e);let t=c(".quick-switch-result.selected"),n=c(`.quick-switch-result[data-index="${R.selectedIdx}"]`);t&&t.classList.remove("selected"),n&&n.classList.add("selected")}function Tr(e){let t=R.autocompleteResults.length;if(R.selectedIdx===null){if(e>=0)return 0;if(e<0)return t-1}return(R.selectedIdx+e+t)%t}var wr=".display-settings",kr="#settings-modal-content",Ge="#modal-settings-tab",Ke="#modal-keyboard-shortcuts-tab",ln="#settings-content",un="#keyboard-shortcuts-content",_r=[{title:"Settings",id:"modal-settings-tab"},{title:"Keyboard shortcuts",id:"modal-keyboard-shortcuts-tab"}];function dn(){Or()}function Or(){k(wr).forEach(e=>{e.addEventListener("click",t=>{Ye()})})}function cn(){c(Ke).classList.remove("active"),c(Ge).classList.add("active"),c(ln).classList.remove("hidden"),c(un).classList.add("hidden")}function Ir(){c(Ke).classList.add("active"),c(Ge).classList.remove("active"),c(un).classList.remove("hidden"),c(ln).classList.add("hidden")}function Ye(){we({title:_r.map(({id:s,title:o})=>``).join(""),body:Handlebars.templates["settings-modal-body"]({shortcuts:Je})});let e=c(kr),t=e.querySelector('[name="theme"]'),n=e.querySelector('[name="tooltips"]'),i=e.querySelector('[name="direct_livebook_url"]'),r=e.querySelector('[name="livebook_url"]');O.getAndSubscribe(s=>{t.value=s.theme||"system",n.checked=s.tooltips,s.livebookUrl===null?(i.checked=!1,r.classList.add("hidden"),r.tabIndex=-1):(i.checked=!0,r.classList.remove("hidden"),r.tabIndex=0,r.value=s.livebookUrl)}),t.addEventListener("change",s=>{O.update({theme:s.target.value})}),n.addEventListener("change",s=>{O.update({tooltips:s.target.checked})}),i.addEventListener("change",s=>{let o=s.target.checked?r.value:null;O.update({livebookUrl:o})}),r.addEventListener("input",s=>{O.update({livebookUrl:s.target.value})}),c(Ge).addEventListener("click",s=>{cn()}),c(Ke).addEventListener("click",s=>{Ir()}),cn()}var Cr="#settings-modal-content",Je=[{key:"c",description:"Toggle sidebar",action:Ie},{key:"n",description:"Cycle themes",action:Kt},{key:"s",description:"Focus search bar",displayAs:"/ or s",action:fn},{key:"/",action:fn},{key:"g",description:"Search HexDocs package",displayAs:"g",action:We},{key:"?",displayAs:"?",description:"Bring up this modal",action:Qr}],Xe={shortcutBeingPressed:null};function hn(){Pr()}function Pr(){document.addEventListener("keydown",Rr),document.addEventListener("keyup",Ar)}function Rr(e){if(Xe.shortcutBeingPressed||e.target.matches("input, textarea")||e.ctrlKey||e.metaKey||e.altKey)return;let t=Je.find(n=>n.key===e.key);t&&(Xe.shortcutBeingPressed=t,e.preventDefault(),t.action(e))}function Ar(e){Xe.shortcutBeingPressed=null}function fn(e){oe(),Pe(),Ft()}function Qr(){Nr()?oe():Ye()}function Nr(){return nn()&&c(Cr)}var q={plain:"plain",function:"function",module:"module"},Hr=[{href:"typespecs.html#basic-types",hint:{kind:q.plain,description:"Basic type"}},{href:"typespecs.html#literals",hint:{kind:q.plain,description:"Literal"}},{href:"typespecs.html#built-in-types",hint:{kind:q.plain,description:"Built-in type"}}],ke={cancelHintFetching:null};function pn(e){if(gn(e))return!0;let t=/#.*\//;return e.includes("#")&&!t.test(e)?!1:e.includes(".html")}function mn(e){let t=gn(e);return t?Promise.resolve(t):Dr(e)}function gn(e){let t=Hr.find(n=>e.includes(n.href));return t?t.hint:null}function Dr(e){let t=e.replace(".html",".html?hint=true");return new Promise((n,i)=>{let r=document.createElement("iframe");r.setAttribute("sandbox","allow-scripts allow-same-origin"),r.setAttribute("src",t),r.style.display="none";function s(a){let{href:u,hint:l}=a.data;t===u&&(o(),n(l))}ke.cancelHintFetching=()=>{o(),i(new Error("cancelled"))};function o(){r.remove(),window.removeEventListener("message",s),ke.cancelHintFetching=null}window.addEventListener("message",s),document.body.appendChild(r)})}function yn(){ke.cancelHintFetching&&ke.cancelHintFetching()}function vn(e){let n=e.querySelector("h1").textContent,i=e.querySelector(".docstring > p"),r=i?i.innerHTML:"";return{kind:q.function,title:n.trim(),description:r.trim()}}function Sn(e){let n=e.querySelector("h1 > span").textContent,i=e.querySelector("#moduledoc p"),r=i?i.innerHTML:"";return{kind:q.module,title:n.trim(),description:r.trim()}}var Fr=".content a",Ze="#tooltip",Mr="#tooltip .tooltip-body",En="body .content-inner",Br="#content",bn="tooltip-shown",ae=10,Vr=ae*4,xn={height:450,width:768},zr=100,te={currentLinkElement:null,hoverDelayTimeout:null};function Ln(){$r(),jr()}function $r(){let e=Handlebars.templates["tooltip-layout"]();c(En).insertAdjacentHTML("beforeend",e)}function jr(){k(Fr).forEach(e=>{Ur(e)&&(e.addEventListener("mouseenter",t=>{Wr(e)}),e.addEventListener("mouseleave",t=>{Jr(e)}))})}function Ur(e){return!(e.classList.contains("detail-link")||qr(e.href)||!pn(e.href))}function qr(e){let t=e.replace(Br,"");return window.location.href.split("#")[0]===t}function Wr(e){Gr()&&(te.currentLinkElement=e,te.hoverDelayTimeout=setTimeout(()=>{mn(e.href).then(t=>{Kr(t),Yr()}).catch(()=>{})},zr))}function Gr(){let e=window.innerWidthe.firstElementChild&&e.firstElementChild.tagName==="CODE").forEach(e=>e.insertAdjacentHTML("beforeend",as)),Array.from(k(".copy-button")).forEach(e=>{let t;e.addEventListener("click",()=>{t&&clearTimeout(t);let n=Array.from(e.parentElement.querySelector("code").childNodes).filter(i=>!(i.tagName==="SPAN"&&i.classList.contains("unselectable"))).map(i=>i.textContent).join("");navigator.clipboard.writeText(n),e.classList.add("clicked"),t=setTimeout(()=>e.classList.remove("clicked"),3e3)})})}function On(){let t=/(Macintosh|iPhone|iPad|iPod)/.test(window.navigator.userAgent)?"apple-os":"non-apple-os";document.documentElement.classList.add(t)}at(()=>{Gt(),St(),kt(),Ht(),Bt(),dt(),Xt(),en(),hn(),an(),Ln(),kn(),Ut(),_n(),dn(),On()});})(); -/*! Bundled license information: - -lunr/lunr.js: - (** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - *) - (*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Set - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.tokenizer - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Vector - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.stemmer - * Copyright (C) 2020 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - *) - (*! - * lunr.stopWordFilter - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.trimmer - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.TokenSet - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Builder - * Copyright (C) 2020 Oliver Nightingale - *) -*/ diff --git a/dist/html-elixir-2C5PUTIB.css b/dist/html-elixir-2C5PUTIB.css new file mode 100644 index 000000000..b4168d429 --- /dev/null +++ b/dist/html-elixir-2C5PUTIB.css @@ -0,0 +1,6 @@ +:root{--main: hsl(250, 68%, 69%);--mainDark: hsl(250, 68%, 59%);--mainDarkest: hsl(250, 68%, 49%);--mainLight: hsl(250, 68%, 74%);--mainLightest: hsl(250, 68%, 79%);--searchBarFocusColor: #8E7CE6;--searchBarBorderColor: rgba(142, 124, 230, .25);--linksNoUnderline: var(--mainDark);--linksNoUnderlineVisited: var(--mainDarkest)}body.dark{--linksNoUnderline: var(--mainLightest);--linksNoUnderlineVisited: var(--mainLight)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:300;src:url(./lato-latin-ext-300-normal-VPGGJKJL.woff2) format("woff2"),url(./lato-all-300-normal-GIV56FBX.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:300;src:url(./lato-latin-300-normal-YUMVEFOL.woff2) format("woff2"),url(./lato-all-300-normal-GIV56FBX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-ext-400-normal-N27NCBWW.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-400-normal-W7754I4D.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-vietnamese-400-normal-IGQPHHJH.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-latin-ext-400-normal-K7HVGTP7.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-latin-400-normal-RGKDDNDD.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-vietnamese-700-normal-LHEGSN35.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-latin-ext-700-normal-4MPBLFZC.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-latin-700-normal-DTS2D7TO.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-width: 949px;--content-gutter: 60px;--borderRadius: 4px;--navTabBorderWidth: 4px;--defaultFontFamily: -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--sansFontFamily: "Lato", sans-serif;--monoFontFamily: "Inconsolata", Menlo, Courier, monospace;--baseFontSize: 18px;--baseLineHeight: 1.5em;--gray25: hsl(207, 43%, 98%);--gray50: hsl(207, 43%, 96%);--gray100: hsl(212, 33%, 91%);--gray200: hsl(210, 29%, 88%);--gray300: hsl(210, 26%, 84%);--gray400: hsl(210, 21%, 64%);--gray450: hsl(210, 21%, 49%);--gray500: hsl(210, 21%, 34%);--gray600: hsl(210, 27%, 26%);--gray700: hsl(212, 35%, 17%);--gray750: hsl(214, 46%, 14%);--gray800: hsl(216, 52%, 11%);--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray850: hsl(216, 63%, 8%);--gray900: hsl(218, 73%, 4%);--gray900-opacity-50: hsla(218, 73%, 4%, 50%);--gray900-opacity-0: hsla(218, 73%, 4%, 0%);--coldGrayFaint: hsl(240, 5%, 97%);--coldGrayLight: hsl(240, 5%, 88%);--coldGray-lightened-10: hsl(240, 5%, 56%);--coldGray: hsl(240, 5%, 46%);--coldGray-opacity-10: hsla(240, 5%, 46%, 10%);--coldGrayDark: hsl(240, 5%, 28%);--coldGrayDim: hsl(240, 5%, 18%);--yellowLight: hsl(60, 100%, 81%);--yellowDark: hsl(60, 100%, 43%, 62%);--yellow: hsl(60, 100%, 43%);--green-lightened-10: hsl(90, 100%, 45%);--green: hsl(90, 100%, 35%);--white: hsl(0, 0%, 100%);--white-opacity-50: hsla(0, 0%, 100%, 50%);--white-opacity-10: hsla(0, 0%, 100%, 10%);--white-opacity-0: hsla(0, 0%, 100%, 0%);--black: hsl(0, 0%, 0%);--black-opacity-10: hsla(0, 0%, 0%, 10%);--black-opacity-50: hsla(0, 0%, 0%, 50%)}@media screen and (max-width: 768px){:root{--content-width: 100%;--content-gutter: 20px}}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray800);--textHeaders: var(--gray900);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--coldGrayFaint);--textFooter: var(--gray700);--links: var(--black);--linksVisited: var(--black);--linksDecoration: var(--gray450);--iconAction: var(--coldGray);--iconActionHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--tableHeadBorder: var(--gray100);--tableBodyBorder: var(--gray50);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray25);--codeBorder: var(--gray100);--codeScrollThumb: var(--gray400);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray25);--admCodeBorder: var(--gray100);--admCodeColor: var(--black);--admInlineCodeColor: var(--black);--admInlineCodeBackground: var(--gray25);--admInlineCodeBorder: var(--gray100);--tabBackground: var(--white);--tabBorder: var(--gray300);--tabBorderTop: var(--gray100);--tab: var(--gray600);--tabShadow: var(--gray25);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnSubheader: var(--mainDark);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray300);--settingsSectionBorder: var(--gray300);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--sidebarButtonBackground: linear-gradient(180deg, var(--white) 20%, var(--white-opacity-50) 70%, var(--white-opacity-0) 100%);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarScrollbarThumb: var(--coldGray);--sidebarScrollbarTrack: var(--sidebarBackground);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--mainLight);--sidebarActiveItem: var(--mainLightest);--searchBarBorder: var(--gray200);--searchAccentMain: var(--gray-400);--searchLanguageAccentBar: var(--main);--searchSearch: var(--white);--autocompleteBorder: rgba(3, 9, 19, .1);--autocompletePreview: var(--gray25);--autocompleteHover: var(--grey50, #F0F5F9);--autocompleteBackground: var(--white);--suggestionBorder: var(--gray200);--autocompleteResults: var(--gray600);--autocompleteResultsBold: var(--gray800);--autocompleteSrollbarThumb: var(--gray200);--autocompleteSrollbarTrack: var(--gray50);--autocompleteLabelBack: var(--gray100);--autocompleteLabelFont: var(--gray600)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--gray700);--textFooter: var(--gray300);--links: var(--gray100);--linksVisited: var(--gray100);--linksDecoration: var(--gray450);--iconAction: var(--coldGray-lightened-10);--iconActionHover: var(--white);--blockquoteBackground: var(--coldGray-opacity-10);--blockquoteBorder: var(--coldGrayDim);--tableHeadBorder: var(--gray600);--tableBodyBorder: var(--gray700);--warningBackground: hsla( 33, 30%, 60%, 10%);--warningHeadingBackground: hsla( 33, 66%, 35%, 80%);--warningHeading: var(--white);--errorBackground: hsla( 7, 30%, 60%, 10%);--errorHeadingBackground: hsla( 6, 70%, 40%, 80%);--errorHeading: var(--white);--infoBackground: hsla(206, 30%, 60%, 10%);--infoHeadingBackground: hsla(213, 55%, 35%, 80%);--infoHeading: var(--white);--neutralBackground: hsl(210, 30%, 60%, 10%);--neutralHeadingBackground: var(--gray600);--neutralHeading: var(--white);--tipBackground: hsla(142, 30%, 60%, 10%);--tipHeadingBackground: hsla(134, 45%, 30%, 80%);--tipHeading: var(--white);--fnSpecAttr: var(--gray400);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray750);--codeBorder: var(--gray600);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray750);--admCodeBorder: var(--gray600);--admCodeColor: var(--gray100);--admInlineCodeColor: var(--gray100);--admInlineCodeBackground: var(--gray750);--admInlineCodeBorder: var(--gray600);--tabBackground: var(--gray900);--tabBorder: var(--gray700);--tabBorderTop: var(--gray700);--tab: var(--white);--tabShadow: var(--black);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnSubheader: var(--mainLight);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray300);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--sidebarButtonBackground: linear-gradient(180deg, var(--gray900) 20%, var(--gray900-opacity-50) 70%, var(--gray900-opacity-0) 100%);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarScrollbarThumb: var(--coldGray);--sidebarScrollbarTrack: var(--sidebarBackground);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--mainLight);--sidebarActiveItem: var(--mainLightest);--searchBarBorder: var(--gray500);--searchAccentMain: var(--gray300);--searchSearch: var(--gray900);--autocompleteBorder: rgba(28,42,60,.75);--autocompletePreview: var(--gray750);--autocompleteHover: var(--gray700);--autocompleteBackground: var(--gray800);--suggestionBorder: var(--gray600);--autocompleteResults: var(--gray200);--autocompleteResultsBold: var(--gray100);--autocompleteSrollbarThumb: var(--gray600);--autocompleteSrollbarTrack: var(--gray850);--autocompleteLabelBack: var(--gray600);--autocompleteLabelFont: rgba(255, 255, 255, .8)}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:remixicon;src:url(./remixicon-NKANDIL5.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6";--icon-printer-line: "\f029"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}.ri-printer-line:before{content:var(--icon-printer-line)}html,body{box-sizing:border-box;height:100%;width:100%}body{--sidebarWidth: 300px;--sidebarMinWidth: 300px;--sidebarTransitionDuration: .3s;background-color:var(--background);color:var(--textBody);font-size:16px;font-family:var(--sansFontFamily);line-height:1.6875em}*,*:before,*:after{box-sizing:inherit}.body-wrapper{display:flex;height:100%}.sidebar{display:flex;flex-direction:column;width:var(--sidebarWidth);min-width:var(--sidebarMinWidth);height:100%;position:fixed;top:0;left:0;z-index:100;resize:horizontal}.sidebar-button{padding:26px 12px 18px 19px;position:fixed;z-index:200;top:0;left:0;will-change:transform}.sidebar-toggle--animated.sidebar-button{transition:transform var(--sidebarTransitionDuration) ease-in-out}.content{width:calc(100% - var(--sidebarWidth));left:var(--sidebarWidth);height:100%;position:absolute}.content .content-inner{max-width:var(--content-width);min-height:100%;margin:0 auto;padding:0 var(--content-gutter) 10px}.content-inner:focus{outline:none}body:is(.sidebar-opening,.sidebar-opened) .sidebar-button{transform:translate(calc(var(--sidebarWidth) - 100%))}body.sidebar-opening-start .sidebar{left:calc(-1 * var(--sidebarWidth))}body.sidebar-opening-start .content{width:100%;left:0}body.sidebar-opening .sidebar{left:0;transition:left var(--sidebarTransitionDuration) ease-in-out}body.sidebar-opening .content{width:calc(100% - var(--sidebarWidth));left:var(--sidebarWidth);transition:all var(--sidebarTransitionDuration) ease-in-out}body.sidebar-closing .sidebar-button{transform:translate(0)}body.sidebar-closing .sidebar{left:calc(-1 * var(--sidebarWidth));transition:left var(--sidebarTransitionDuration) ease-in-out}body.sidebar-closing .content{width:100%;left:0;transition:all var(--sidebarTransitionDuration) ease-in-out}body.sidebar-closed .sidebar{left:calc(-1 * var(--sidebarWidth));display:none}body.sidebar-closed .content{width:100%;left:0}@media screen and (max-width: 768px){.content,body.sidebar-opening .content{left:0;width:100%}body.sidebar-closed .sidebar-button{position:absolute}}.sidebar{--sidebarFontSize: 16px;--sidebarLineHeight: 20px;font-family:var(--sansFontFamily);font-size:var(--sidebarFontSize);font-weight:300;line-height:var(--sidebarLineHeight);background-color:var(--sidebarBackground);color:var(--sidebarAccentMain);overflow:hidden;scrollbar-color:var(--sidebarScrollbarThumb) var(--sidebarScrollbarTrack)}.non-apple-os .sidebar{font-weight:400}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--sidebarAccentMain);text-decoration:none;transition:color .3s ease-in-out}.sidebar a:hover{color:var(--sidebarHover)}.sidebar .sidebar-header{background-color:var(--sidebarHeader);width:100%}.sidebar .sidebar-projectInfo{display:flex;justify-content:start;align-items:center;gap:16px;margin:12px 16px 12px 14px;max-width:235px}.sidebar .sidebar-projectImage{align-self:flex-end}.sidebar .sidebar-projectImage img{display:block;max-width:48px;max-height:48px}.sidebar .sidebar-projectName{font-weight:700;font-size:20px;line-height:24px;color:var(--sidebarAccentMain);margin:0;padding:0;max-width:230px;word-wrap:break-word}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);color:var(--sidebarMuted)}.sidebar .sidebar-projectVersionsDropdown{cursor:pointer;position:relative;margin:0;padding:0 0 0 12px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--sidebarMuted);z-index:2}.sidebar .sidebar-projectVersionsDropdown option{color:initial}.sidebar .sidebar-projectVersionsDropdownCaret{position:absolute;left:0;top:2px;z-index:1;font-size:8px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersionsDropdown::-ms-expand{display:none}.sidebar .sidebar-listNav{display:flex;margin:0;padding:4px 4px 0}.sidebar .sidebar-listNav :is(li,li button){text-transform:uppercase;letter-spacing:.02em;font-size:14px;color:var(--sidebarMuted)}.sidebar .sidebar-listNav li{display:inline-block;padding:0}.sidebar .sidebar-listNav li button{background:none;border:0;border-radius:0;-webkit-appearance:none;text-align:inherit;color:inherit;font-weight:inherit;cursor:pointer;display:inline-block;line-height:27px;padding:4px 10px 2px;transition:all .15s}.sidebar .sidebar-listNav li:is(.selected) button{background-color:var(--sidebarBackground);border-top:var(--navTabBorderWidth) solid var(--sidebarLanguageAccentBar)}.sidebar .sidebar-listNav li:not(.selected) button{border-top:var(--navTabBorderWidth) solid var(--sidebarHeader)}.sidebar .sidebar-listNav li:is(:hover):not(.selected) button{background-color:var(--gray600);border-top:var(--navTabBorderWidth) solid var(--gray400);color:var(--sidebarAccentMain);transition:all .15s}.sidebar .sidebar-tabpanel{flex:1 1 .01%;overflow-y:auto;overscroll-behavior:contain;position:relative;-webkit-overflow-scrolling:touch;margin-top:12px}.sidebar .full-list{margin:0;padding:0 0 20px;position:relative}.sidebar .full-list :is(li,a){overflow:hidden;text-overflow:ellipsis}.sidebar .full-list li{padding:0;margin-right:30px;line-height:27px;white-space:nowrap}.sidebar .full-list li.docs{margin-right:0}.sidebar .full-list li.open>ul{display:block;margin-left:10px}.sidebar .full-list li a.expand+button.icon-expand{appearance:none;background-color:transparent;border:0;padding:0;cursor:pointer;color:inherit;margin-right:10px;font-size:calc(1.2 * var(--sidebarFontSize));line-height:var(--sidebarLineHeight);position:absolute;display:flex;right:0;transform:translateY(calc(-100% - 4px))}.sidebar .full-list li a+button.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar .full-list li a.expand+button.icon-expand:after{content:var(--icon-arrow-down-s)}.sidebar .full-list li.open>a.expand+button.icon-expand:after{content:var(--icon-arrow-up-s)}.sidebar .full-list li.docs>a+button.icon-expand{margin-right:12px;font-size:var(--sidebarFontSize);line-height:var(--sidebarFontSize);transform:translateY(calc(-100% - 5px))}.sidebar .full-list li.docs>a+button.icon-expand:after{content:var(--icon-add)}.sidebar .full-list li.docs.open>a+button.icon-expand:after{content:var(--icon-subtract)}.sidebar .full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar .full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:1.5em 0 0;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar .full-list li a{padding:3px 0 3px 15px;color:var(--sidebarItem)}.sidebar .full-list>li>a{display:block;width:100%;height:27px;line-height:var(--sidebarLineHeight)}.sidebar .full-list li .current-section>a{color:var(--sidebarActiveItem)}.sidebar .full-list li .current-section>a+button.icon-expand{color:var(--sidebarActiveItem)}.sidebar .full-list>li>a:hover{border-left:3px solid var(--sidebarLanguageAccentBar);padding-left:12px}.sidebar .full-list>li.current-page>a{color:var(--sidebarActiveItem);border-left:3px solid var(--sidebarLanguageAccentBar);padding-left:12px}.sidebar .full-list>li.current-page>a:after,.sidebar .full-list>li.current-page{color:var(--sidebarActiveItem)}.sidebar .full-list>li:last-child{margin-bottom:30px}.sidebar .full-list>li.group:first-child{margin-top:0}.sidebar .full-list ul{display:none;margin:10px 0 10px 15px;padding:0}.sidebar .full-list ul li{font-weight:300;line-height:var(--sidebarFontSize);padding:0 8px;margin-right:0;color:var(--sidebarAccentMain)}.non-apple-os .sidebar .full-list ul li{font-weight:400}.sidebar .full-list ul li.current-hash{color:var(--sidebarActiveItem)}.sidebar .full-list ul li.current-hash>a{color:var(--sidebarActiveItem)}.sidebar .full-list ul li.current-hash>a:before,.sidebar .full-list>li>ul>li>a:hover:before{content:"\2022";position:absolute;margin-left:-15px;color:var(--sidebarActiveItem)}.sidebar .full-list ul li a{padding-left:15px;display:block;width:100%;height:24px}.sidebar .full-list ul li ul{display:none;margin:9px 0 9px 20px}.sidebar .full-list ul li ul li{margin-right:0;height:20px;color:var(--sidebarAccentMain)}.sidebar .full-list ul li ul li a{border-left:1px solid var(--sidebarInactiveItemMarker);padding:0 10px;height:20px}.sidebar .full-list ul li ul li.current-hash>a:before{content:none}.sidebar .full-list ul li ul li>a:hover{border-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list ul li ul li.current-hash>a{color:var(--sidebarActiveItem);border-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list ul li ul li.current-hash>a{color:var(--sidebarActiveItem);margin-left:0}.sidebar ::-webkit-scrollbar{width:14px}::-webkit-scrollbar-track{background-color:var(--sidebarBackground)}.sidebar ::-webkit-scrollbar-thumb{background-color:var(--sidebarScrollbarThumb);border-radius:10px;border:3px solid var(--sidebarBackground)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;font-size:var(--sidebarFontSize)}.sidebar-button:hover{color:var(--sidebarHover)}.sidebar-button{color:var(--sidebarAccentMain)}.sidebar-closed .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar .full-list{overflow:visible}}.top-search{background-color:var(--background);top:0;z-index:99;position:relative;width:100%;padding:10px 0}.search-settings{display:flex;column-gap:12px;align-items:center;width:100%;position:relative}.search-bar{border:1px solid var(--searchBarBorder);border-radius:8px;height:48px;position:relative;width:100%}.top-search .search-bar .search-input{background-color:var(--searchSearch);border:none;border-radius:8px;color:var(--searchAccentMain);position:relative;height:46px;padding:8px 35px 8px 43px;width:100%}.top-search .search-bar .search-input::placeholder{color:var(--searchAccentMain);opacity:.5}.top-search .search-bar .search-input:focus{border:1px solid var(--searchBarFocusColor);border-radius:7px;position:relative;box-shadow:0 4px 20px 0 var(--searchBarBorderColor) inset}.top-search .search-bar .search-label{position:relative}.top-search .search-bar .search-button{font-size:14px;color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;left:11px;opacity:.5;padding:5px 1px 5px 5px;position:absolute;top:60%;transform:translateY(-60%);z-index:99}.top-search .search-bar.selected .search-button,.top-search .search-bar .search-button:hover,.top-search .search-bar .search-button:focus{color:var(--top-searchLanguageAccentBar);opacity:1}.top-search .search-bar .search-close-button{font-size:16px;color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;right:11px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:calc(50% - 13px);transition:.15s transform ease-out;z-index:99}.top-search .search-bar .search-close-button:hover{opacity:.7}.top-search .search-settings button.icon-settings{display:flex;align-items:center;justify-content:flex-end}.top-search .search-settings .icon-settings{font-size:20px;float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer;padding:0}.top-search .search-settings .icon-settings:hover{color:var(--iconActionHover)}.top-search .search-settings .icon-settings:visited{color:var(--iconAction)}@media screen and (max-width: 768px){.top-search{padding-left:calc(var(--content-gutter) + 36px);padding-right:var(--content-gutter);margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));width:calc(2 * var(--content-gutter) + 100%)}.search-settings{width:100%;box-sizing:border-box}}body.search-focused .search-bar .search-close-button{transform:scaleY(1);transition:transform .15s ease-out .15s}@media screen and (hover: hover){body.search-focused .top-search{position:sticky!important}body.search-focused.sidebar-closed .sidebar-button{position:fixed!important}}@media screen and (hover: none){body.scroll-sticky .top-search{position:sticky!important}body.scroll-sticky.sidebar-closed .sidebar-button{position:fixed!important}}*:focus,button:focus,[type=button]:focus,[type=reset]:focus,[type=submit]:focus{outline:2px solid var(--main);outline-offset:-2px}*:focus:not(:focus-visible),button:focus:not(:focus-visible),[type=button]:focus:not(:focus-visible),[type=reset]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible){outline:0}input[type=text],input[type=number],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=time],input[type=url],input[type=week],textarea{outline:0}.content-inner{font-family:var(--defaultFontFamily);font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:.5em 0}.content-inner h1.signature{margin:0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner h1 small{font-weight:300}.content-inner h1 .icon-action{font-size:1.2rem;font-weight:400}.content-inner h2{font-size:1.6em;margin:1em 0 .5em;font-weight:700}.content-inner h3{font-size:1.375em;margin:1em 0 .5em;font-weight:700}.content-inner li+li{margin-top:.25em}.content-inner :is(a,.a-main){color:var(--links);text-decoration:underline;text-decoration-color:var(--linksDecoration);text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--linksVisited)}.content-inner .icon-action{float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer}.content-inner button.icon-action{margin-top:12px}.content-inner .icon-action:hover{color:var(--iconActionHover)}.content-inner .icon-action:visited{color:var(--iconAction)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--iconAction);margin-right:5px;font-size:14px;font-weight:400}.content-inner blockquote{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:var(--borderRadius)}.content-inner blockquote p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0;border-collapse:collapse}.content-inner th{text-align:left;font-family:var(--sansFontFamily);text-transform:uppercase;font-weight:700;padding-bottom:.5em}.content-inner thead tr{border-bottom:1px solid var(--tableHeadBorder)}.content-inner tbody tr{border-bottom:1px solid var(--tableBodyBorder)}.content-inner tbody tr:last-child{border-bottom:none}.content-inner tr{vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding:.25em .25em .25em 1em;line-height:2em;vertical-align:top}.content-inner .section-heading{--icon-size: 16px;--icon-spacing: 5px;display:grid;grid-template:1fr / 1fr}.content-inner .section-heading>:is(.hover-link,.text){grid-row:1;grid-column:1}.content-inner .section-heading .hover-link{text-decoration:none}.content-inner .section-heading i{font-size:var(--icon-size);margin-top:.1em;margin-left:calc(-1 * (var(--icon-size) + var(--icon-spacing)));padding-right:var(--icon-spacing);opacity:0}@media screen and (max-width: 768px){.content-inner .section-heading i{margin-left:calc(-1 * (var(--icon-size)))}}.content-inner blockquote .section-heading i{display:none}.content-inner .section-heading .hover-link:is(:hover,:focus) i{opacity:1}.content-inner .section-heading .text{pointer-events:none}.content-inner .section-heading .text a{pointer-events:all}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner strong>code{font-weight:700}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400}@media screen and (max-width: 768px){.content-inner :is(ol,ul){padding-left:calc(1.5 * var(--content-gutter))}}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip){border-radius:10px;border-left:0}.content-inner blockquote.warning{background-color:var(--warningBackground)}.content-inner blockquote.error{background-color:var(--errorBackground)}.content-inner blockquote.info{background-color:var(--infoBackground)}.content-inner blockquote.neutral{background-color:var(--neutralBackground)}.content-inner blockquote.tip{background-color:var(--tipBackground)}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip){color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip):before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner blockquote :is(h3,h4).warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner blockquote :is(h3,h4).warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner blockquote :is(h3,h4).error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner blockquote :is(h3,h4).error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner blockquote :is(h3,h4).info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner blockquote :is(h3,h4).info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner blockquote :is(h3,h4).neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner blockquote :is(h3,h4).neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner blockquote :is(h3,h4).tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner blockquote :is(h3,h4).tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip) code{margin:0 .5ch}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip) code{background-color:var(--admInlineCodeBackground);border:1px solid var(--admInlineCodeBorder);color:var(--admInlineCodeColor)}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip) pre code{background-color:var(--admCodeBackground);border:1px solid var(--admCodeBorder);color:var(--admCodeColor)}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip) :is(a,a:visited){color:inherit;text-decoration-color:currentColor}@media screen and (max-width: 768px){.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip){margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip){margin:0 calc(-1 * var(--content-gutter))}}.content-inner .summary h2{font-weight:700}.content-inner .summary h2 a{text-decoration:none;border:none}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400;font-style:italic}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{font-family:var(--defaultFontFamily);font-style:italic;padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}.content-inner :is(a.no-underline,pre a){color:var(--linksNoUnderline);text-shadow:none;text-decoration:none;background-image:none}.content-inner :is(a.no-underline,pre a):is(:visited,:active,:focus,:hover){color:var(--linksNoUnderlineVisited)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:.5em 1em}.content-inner pre code::-webkit-scrollbar{width:.4rem;height:.4rem}.content-inner pre code::-webkit-scrollbar-thumb{border-radius:.25rem;background-color:var(--codeScrollThumb)}.content-inner pre code::-webkit-scrollbar-track{background-color:var(--codeScrollBackground)}.content-inner pre code::-webkit-scrollbar-corner{background-color:var(--codeScrollBackground)}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:12px;font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@media screen and (max-width: 768px){.content-inner>pre,.content-inner section>pre{margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter))}.content-inner>pre code,.content-inner section>pre code{padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0;border-left-width:0;border-right-width:0}}@keyframes blink-background{0%{background-color:var(--textDetailBackground)}to{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:2 0 1em;padding:.5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--textDetailAccent);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .note{float:right}.content-inner .detail-header .signature{display:inline-block;font-family:var(--monoFontFamily);font-size:1rem;font-weight:700}.content-inner .detail-header:hover a.detail-link,.content-inner .detail-header a.detail-link:focus{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}@media screen and (max-width: 768px){.content-inner .detail-header a.detail-link{margin-left:-30px}}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:.9em;font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}@media screen and (max-width: 768px){.content-inner .docstring{margin-left:0}}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:9px 15px;background-color:var(--fnDeprecated)}.content-inner .footer{margin:4em auto 1em;text-align:center;font-style:italic;font-size:14px}.content-inner .footer,.content-inner .footer :is(a,.footer-button){color:var(--textFooter)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;font-style:italic;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:var(--borderRadius);border:1px solid var(--bottomActionsBtnBorder);padding:8px 16px;min-width:150px}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--bottomActionsBtnSubheader);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button[rel=prev] .subheader{text-align:right}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}.content-inner .bottom-actions .bottom-actions-item:not(:first-child){margin-bottom:16px}}.page-cheatmd .content-inner{--horizontal-space: 1.5em;--vertical-space: 1em}@media (max-width: 600px){.page-cheatmd .content-inner{--horizontal-space: 1em;--vertical-space: .75em}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd .content-inner h1{margin-bottom:var(--vertical-space)}.page-cheatmd .content-inner h2{margin:var(--vertical-space) 0;column-span:all;color:var(--gray700);font-weight:500}.page-cheatmd.dark .content-inner h2{color:var(--gray200)}.page-cheatmd .content-inner h3{color:var(--main);text-decoration-color:var(--main);margin:0 0 1em;font-weight:400}.page-cheatmd .content-inner h3 :is(a,a:visited){color:var(--main);text-decoration-color:var(--main)}.page-cheatmd .content-inner section.h3{min-width:300px;margin:0;padding:0 0 calc(var(--vertical-space) * 2) 0;break-inside:avoid}.page-cheatmd .content-inner h3 .text{overflow:hidden}.page-cheatmd .content-inner h3 .text:after{content:"";margin-left:calc(var(--horizontal-space) / 2);vertical-align:baseline;display:inline-block;width:100%;height:1px;margin-right:-100%;margin-bottom:5px;background-color:var(--codeBorder)}.page-cheatmd .content-inner h4{display:block;margin:0;padding:.25em var(--horizontal-space);font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.page-cheatmd.dark .content-inner h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .content-inner .h2 p{margin:0;display:block;background:var(--gray50);padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd.dark .content-inner .h2 p{background:var(--gray700)}.page-cheatmd .content-inner .h2 p>code{color:#eb5757;border-radius:var(--borderRadius);padding:.2em .4em}.page-cheatmd .content-inner pre code{padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd .content-inner pre code::-webkit-scrollbar{width:.4rem;height:.6rem}.page-cheatmd .content-inner .h2 pre{margin:0}.page-cheatmd .content-inner .h2 pre+pre{margin-top:-1px}.page-cheatmd .content-inner pre.wrap{white-space:break-spaces}@media screen and (max-width: 768px){.page-cheatmd .content-inner pre code{border-left-width:1px!important;border-right-width:1px!important}}.page-cheatmd .content-inner .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .content-inner .h2 th{padding:var(--vertical-space) var(--horizontal-space);line-height:inherit;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td{padding:var(--vertical-space) var(--horizontal-space);border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td code{color:#eb5757;border-radius:var(--borderRadius);padding:.2em .4em}.page-cheatmd .content-inner .h2 thead{background-color:var(--gray50)}.page-cheatmd.dark .content-inner .h2 thead{background-color:var(--gray700)}.page-cheatmd .content-inner .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .content-inner .h2 :is(ul,ol){margin:0;padding:0}.page-cheatmd .content-inner .h2 li{list-style-position:inside;padding:.5em var(--horizontal-space);line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder);margin-top:0}.page-cheatmd .content-inner .h2 :is(ul,ol)+pre code{border-top:0}.page-cheatmd .content-inner .h2 li>code{color:#eb5757;border-radius:var(--borderRadius);padding:.2em .4em}.page-cheatmd .content-inner section.width-50{display:block;width:50%;margin:0}.page-cheatmd .content-inner section.width-50>section>table{width:100%}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:40px}.page-cheatmd .content-inner section.col-2{column-count:2;height:auto}.page-cheatmd .content-inner section.col-2-left{display:grid;grid-template-columns:calc(100% / 3) auto}.page-cheatmd .content-inner section.col-2-left>h2{grid-column-end:span 2}.page-cheatmd .content-inner section.col-3{column-count:3;height:auto}.page-cheatmd .content-inner section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-4>ul>li{flex:0 0 25%}.page-cheatmd .content-inner section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 calc(100% / 6)}@media screen and (max-width: 1400px){.page-cheatmd .content-inner section.col-3{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:flex;flex-direction:column}}@media screen and (max-width: 1200px){.page-cheatmd .content-inner section:is(.col-2,.col-3){display:flex;flex-direction:column}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 25%}}@media screen and (max-width: 1000px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 calc(100% / 3)}}@media screen and (max-width: 600px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 50%}.page-cheatmd .content-inner section.width-50{width:100%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;transition:color .1s ease-in-out;color:var(--links)}#search .result-id a:is(:visited,:active,:focus){color:var(--linksVisited)}#search .result-id a:hover{color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:var(--borderRadius);box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:color .15s}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:opacity .15s}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:var(--borderRadius);font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;position:absolute;width:calc(100% - 32px);top:55px}.autocomplete .triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:12px solid var(--autocompleteBackground);position:absolute;top:8px;left:26px;transform:translate(-50%);z-index:100;background-color:transparent}.autocomplete-preview{width:100%;margin:0;height:100%;line-height:20px;background-color:var(--background);font-family:var(--sansFontFamily);border:4px solid var(--autocompleteBorder);padding:12px 16px}.autocomplete-preview div,.autocomplete-preview span{display:none}.autocomplete-preview.loading div{float:left;display:block;border:5px solid var(--autocompleteBorder);border-radius:50%;border-top:5px solid var(--textDetailAccent);width:20px;height:20px;animation:spinner 4s linear infinite}.autocomplete-preview.loading span{color:var(--autocompleteResults);display:inline;margin-left:6px}.autocomplete-preview.loading span:after{color:var(--autocompleteResults);content:"Loading"}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.autocomplete-preview.loading iframe{height:0}.autocomplete-preview iframe{width:100%;height:100%;border:0}.autocomplete-results{list-style:none;margin:0;padding:15px 20px;display:flex;justify-content:space-between;color:var(--autocompleteResults);font-family:var(--sansFontFamily);font-weight:300;font-size:.9rem}.autocomplete-results .bold{color:var(--autocompleteResultsBold);font-weight:400}.autocomplete.shown{display:block}.autocomplete-container{position:absolute;top:15px;width:100%;z-index:200}.autocomplete-suggestions{background-color:var(--autocompleteBackground);border-radius:8px;box-shadow:0 15px 99px 0 var(--autocompleteBorder);overflow-y:auto;max-height:450px;white-space:normal;overflow-x:hidden;overscroll-behavior-y:contain}.autocomplete-suggestions.previewing:has(.selected){max-height:80vh}.autocomplete-suggestions.previewing:has(.selected) .autocomplete-suggestion:not(.selected){display:none}.autocomplete-suggestions.previewing:not(:has(.selected)) .autocomplete-preview{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview{display:none}.autocomplete-suggestion{color:inherit;display:block;padding:12px 20px;text-decoration:none;transition:background-color .3s ease-in-out;border-top:1px solid var(--suggestionBorder);font-size:.9rem}.autocomplete-suggestion:hover,.autocomplete-suggestion.selected{background-color:var(--autocompleteHover)}.autocomplete-suggestion:not(.selected) .autocomplete-preview-indicator{display:none}.autocomplete-preview-indicator{float:right}.autocomplete-preview-indicator button{color:var(--iconAction);display:flex;align-items:center;text-decoration:none;border:1px solid var(--suggestionBorder);border-radius:8px;transition:color .3s ease-in-out;background-color:var(--autocompletePreview);cursor:pointer;padding:4px 8px;font-size:14px}.autocomplete-preview-indicator button:hover{color:var(--iconActionHover);background-color:var(--autocompleteHover)}.autocomplete-preview-indicator button i{margin-right:4px}.autocomplete-suggestions.previewing .autocomplete-preview-indicator-closed{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview-indicator-open{display:none}.autocomplete-suggestion:hover:not(.selected) .autocomplete-preview-indicator-closed{display:block}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{background-color:var(--autocompleteLabelBack);opacity:.6;color:var(--autocompleteLabelFont);padding:4px 8px;border-radius:4px;margin-left:5px;text-transform:uppercase;font-family:var(--sansFontFamily);font-size:.7rem}.autocomplete-suggestion .header{margin-right:5px}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.autocomplete-suggestions a{text-decoration:none!important}.autocomplete-suggestions::-webkit-scrollbar{width:5px;border-radius:7px;flex-shrink:0}.autocomplete-suggestions::-webkit-scrollbar-thumb{background-color:var(--autocompleteSrollbarThumb);border-radius:7px}.autocomplete-suggestions::-webkit-scrollbar-track{background-color:var(--autocompleteSrollbarTrack)}@media screen and (max-width: 1023px){.autocomplete-results .press-return{display:none}}#tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}#tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}#tooltip .tooltip-body{border:1px solid var(--codeBorder)}#tooltip .tooltip-body .signature{min-width:320px;width:100%}#tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}#tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}#tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}#tooltip .tooltip-body .version-info{float:right;line-height:1.6rem;font-family:var(--monoFontFamily);font-size:.9rem;font-weight:400;margin-bottom:-6px;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button,pre .copy-button:focus{opacity:1}.copy-button{display:flex;opacity:0;position:absolute;top:5px;right:5px;padding:4px;background-color:var(--codeBackground);border:none;cursor:pointer;transition:all .15s;font-family:var(--defaultFontFamily);font-size:14px;line-height:24px;color:currentColor}.copy-button svg{opacity:.5;transition:all .15s}pre .copy-button:hover svg,pre .copy-button:focus-visible svg{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{opacity:1;color:var(--success)}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:14px;background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:8px;transition:border-color .15s}#settings-modal-content .input:focus{border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray400)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:18px}#settings-modal-content .switch-button-container>div>p{font-size:14px;font-weight:300;line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:all .15s}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:all .3s}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:all .3s}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .switch-button__checkbox:focus{outline:0}#settings-modal-content .switch-button__checkbox:focus+.switch-button__bg{outline:2px solid var(--main);outline-offset:2px}#settings-modal-content .switch-button__checkbox:focus:not(:focus-visible)+.switch-button__bg{outline:0}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#toast{opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:10px;border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out;cursor:default}#toast.show{opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.body-wrapper{display:block}.sidebar,.sidebar-button,.top-search{display:none}.content{padding-left:0;overflow:visible;left:0;width:100%}.summary-row{break-inside:avoid}#toast{display:none}.content-inner{padding:0}.content-inner .section-heading a.hover-link,.content-inner button.icon-action,.content-inner a.icon-action,.content-inner .bottom-actions{display:none}.footer p:first-of-type{display:none}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip){border:2px solid var(--gray400)}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip){color:var(--textHeaders);border-bottom:2px solid var(--gray400)}.content-inner pre code.makeup{border-color:var(--gray400);white-space:break-spaces;break-inside:avoid}.content-inner blockquote code.inline,.content-inner code.inline{border-color:var(--gray400)}}@media print{.page-cheatmd .content-inner *{background-color:transparent!important;border-color:var(--gray400)!important}.page-cheatmd .content-inner{max-width:100%;width:100%;padding:0;font-size:.7em}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:30px}.page-cheatmd .content-inner section.col-2{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:grid}.page-cheatmd .content-inner section.col-3{column-count:3}.page-cheatmd .content-inner h1{margin-top:0;margin-bottom:.5em}.page-cheatmd .content-inner h2.section-heading{font-weight:700;margin-top:1em;column-span:all}.page-cheatmd .content-inner section.h2{break-inside:avoid}.page-cheatmd .content-inner h3{font-weight:700;color:var(--mainDark)}.page-cheatmd .content-inner h3:after{height:2px;background-color:var(--gray400)}.page-cheatmd .content-inner section.h3{min-width:300px;break-inside:avoid}.page-cheatmd .content-inner h4{padding:.5em 0;border:none;font-weight:700;color:#000}.page-cheatmd .content-inner .h2 p{padding-left:0;padding-right:0;border:none!important}.page-cheatmd .content-inner code{line-height:1.5em}.page-cheatmd .content-inner .h2 table{font-variant-numeric:tabular-nums;break-inside:avoid}.page-cheatmd .content-inner .h2 :is(th,td){vertical-align:top;padding-left:0;padding-right:0}.page-cheatmd .content-inner .h2 thead{border-style:solid none;border-width:1px}.page-cheatmd .content-inner .h2 tr{border-bottom:none}.page-cheatmd .content-inner .h2 th{font-weight:700}.page-cheatmd .content-inner .h2 li{padding-left:0;padding-right:0;vertical-align:middle;border-bottom:none}.page-cheatmd .content-inner pre:hover button.copy-button,.page-cheatmd .content-inner div#tooltip{display:none}.page-cheatmd .content-inner footer p:not(.built-using){display:none}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}.tabset{--borderWidth: 1px;--tabsetPadding: var(--baseLineHeight);margin:var(--baseLineHeight) 0}.tabset-tablist{display:flex;overflow-x:auto}.tabset-tab{padding:.6rem var(--tabsetPadding);min-height:46px;font-family:var(--sansFontFamily);background-color:var(--tabBackground);color:var(--tab);border:var(--borderWidth) solid var(--tabBorder);margin-right:calc(-1 * var(--borderWidth));border-top-width:4px;border-top-color:var(--tabBorderTop);border-radius:0;border-top-left-radius:var(--borderRadius);border-top-right-radius:var(--borderRadius);box-shadow:0 -3px 4px var(--tabShadow) inset;cursor:pointer}.tabset-tab[aria-selected=true]{border-bottom-color:var(--tabBackground);border-top-color:var(--mainLight);box-shadow:none}.tabset-tab[aria-selected=true]:focus-visible{background-color:var(--mainLight);border-color:var(--mainLight);color:var(--white)}.tabset-panel{padding:0 var(--tabsetPadding);border:var(--borderWidth) solid var(--tabBorder);margin-top:calc(-1 * var(--borderWidth));border-bottom-left-radius:var(--borderRadius);border-bottom-right-radius:var(--borderRadius)}@media screen and (max-width: 768px){.tabset{--tabsetPadding: calc(var(--baseLineHeight) / 2)}.tabset-panel{padding-top:calc(var(--tabsetPadding) / 2);padding-bottom:calc(var(--tabsetPadding) / 2)}.tabset-panel pre,.tabset-panel blockquote{margin-left:calc(-1 * var(--tabsetPadding))!important;margin-right:calc(-1 * var(--tabsetPadding))!important}.tabset-panel>pre code{border-left-width:0;border-right-width:0}}body.preview{--sidebarWidth: 0px;overflow:hidden}body.preview .content{height:auto}body.preview .content-inner{padding:0}body.preview .sidebar,body.preview #sidebar-menu,body.preview .hover-link,body.preview .detail-link{display:none}body.preview :is(h1,h2,h3):first-of-type{margin-top:0}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} +/*! Bundled license information: + +normalize.css/normalize.css: + (*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css *) +*/ diff --git a/dist/html-elixir-HHVY3JYD.css b/dist/html-elixir-HHVY3JYD.css deleted file mode 100644 index 0affec2a6..000000000 --- a/dist/html-elixir-HHVY3JYD.css +++ /dev/null @@ -1,6 +0,0 @@ -:root{--main: hsl(250, 68%, 69%);--main-darkened-10: hsl(250, 68%, 59%);--main-darkened-20: hsl(250, 68%, 49%);--main-lightened-05: hsl(250, 68%, 74%);--main-lightened-10: hsl(250, 68%, 79%)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:300;src:url(./lato-latin-ext-300-normal-VPGGJKJL.woff2) format("woff2"),url(./lato-all-300-normal-GIV56FBX.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:300;src:url(./lato-latin-300-normal-YUMVEFOL.woff2) format("woff2"),url(./lato-all-300-normal-GIV56FBX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-ext-400-normal-N27NCBWW.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-400-normal-W7754I4D.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-300-normal-7PAAHU3N.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-vietnamese-300-normal-U376L4Z4.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-latin-ext-300-normal-K6L27CZ5.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-latin-300-normal-RWDJH4FN.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-300-italic-M6KMXZSZ.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-vietnamese-300-italic-EHHNZPUO.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-latin-ext-300-italic-MWCA36KE.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-latin-300-italic-353COS6Q.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-vietnamese-400-normal-IGQPHHJH.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-latin-ext-400-normal-K7HVGTP7.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-latin-400-normal-RGKDDNDD.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-vietnamese-700-normal-LHEGSN35.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-latin-ext-700-normal-4MPBLFZC.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-latin-700-normal-DTS2D7TO.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-width: 949px;--content-gutter: 60px;--serifFontFamily: "Merriweather", "Book Antiqua", Georgia, "Century Schoolbook", serif;--sansFontFamily: "Lato", sans-serif;--monoFontFamily: "Inconsolata", Menlo, Courier, monospace;--baseFontSize: 18px;--baseLineHeight: 1.5em;--gray25: hsl(207, 43%, 98% );--gray50: hsl(207, 43%, 96% );--gray100: hsl(212, 33%, 91% );--gray200: hsl(210, 29%, 88% );--gray300: hsl(210, 26%, 84% );--gray400: hsl(210, 21%, 64% );--gray500: hsl(210, 21%, 34% );--gray600: hsl(210, 27%, 26% );--gray700: hsl(212, 35%, 17% );--gray800: hsl(216, 52%, 11% );--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray900: hsl(218, 73%, 4% );--gray900-opacity-50: hsla(218, 73%, 4%, 50%);--gray900-opacity-0: hsla(218, 73%, 4%, 0%);--coldGrayFaint: hsl(240, 5%, 97% );--coldGrayLight: hsl(240, 5%, 88% );--coldGray-lightened-10: hsl(240, 5%, 56% );--coldGray: hsl(240, 5%, 46% );--coldGrayDark: hsl(240, 5%, 28% );--coldGrayDim: hsl(240, 5%, 18% );--yellowLight: hsl( 60, 100%, 81% );--yellowDark: hsl( 60, 100%, 43%, 62%);--yellow: hsl( 60, 100%, 43% );--green-lightened-10: hsl( 90, 100%, 45% );--green: hsl( 90, 100%, 35% );--white: hsl( 0, 0%, 100% );--white-opacity-50: hsla( 0, 0%, 100%, 50%);--white-opacity-10: hsla( 0, 0%, 100%, 10%);--white-opacity-0: hsla( 0, 0%, 100%, 0%);--black: hsl( 0, 0%, 0% );--black-opacity-10: hsla( 0, 0%, 0%, 10%);--black-opacity-50: hsla( 0, 0%, 0%, 50%)}@media screen and (max-width: 768px){:root{--content-width: 100%;--content-gutter: 20px}}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray700);--textHeaders: var(--gray800);--textDetailBackground: var(--coldGrayFaint);--textFooter: var(--gray600);--links: var(--black);--linksVisited: var(--black);--linksNoUnderline: var(--main-darkened-10);--linksNoUnderlineVisited: var(--main-darkened-20);--iconAction: var(--coldGray);--iconActionHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray25);--codeBorder: var(--gray100);--inlineCodeBackground: var(--codeBackground);--inlineCodeBorder: var(--codeBorder);--codeScrollThumb: var(--gray400);--codeScrollBackground: var(--codeBorder);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnSubheader: var(--main-darkened-10);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray300);--settingsSectionBorder: var(--gray300);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--sidebarButtonBackground: linear-gradient(180deg, var(--gray900) 20%, var(--gray900-opacity-50) 70%, var(--gray900-opacity-0) 100%);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarGradient: linear-gradient(var(--sidebarBackground), var(gray800-opacity-0));--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarScrollbarThumb: var(--coldGray);--sidebarScrollbarTrack: var(--sidebarBackground);--sidebarSearch: var(--gray700);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--main);--sidebarActiveItem: var(--main-lightened-10)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailBackground: var(--gray700);--textFooter: var(--gray300);--links: var(--gray100);--linksVisited: var(--gray100);--linksNoUnderline: var(--main-lightened-10);--linksNoUnderlineVisited: var(--main-lightened-05);--iconAction: var(--coldGray-lightened-10);--iconActionHover: var(--white);--blockquoteBackground: var(--coldGrayDim);--blockquoteBorder: var(--coldGrayDark);--warningBackground: hsl( 40, 67%, 79%);--warningHeadingBackground: hsl( 27, 66%, 29%);--warningHeading: var(--white);--errorBackground: hsl(358, 52%, 78%);--errorHeadingBackground: hsl(349, 55%, 34%);--errorHeading: var(--white);--infoBackground: hsl(222, 57%, 77%);--infoHeadingBackground: hsl(243, 65%, 26%);--infoHeading: var(--white);--neutralBackground: hsl(220, 23%, 82%);--neutralHeadingBackground: hsl(224, 24%, 16%);--neutralHeading: var(--white);--tipBackground: hsl(139, 26%, 69%);--tipHeadingBackground: hsl(158, 35%, 17%);--tipHeading: var(--white);--fnSpecAttr: var(--gray500);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray800);--codeBorder: var(--gray700);--inlineCodeBackground: var(--gray50);--inlineCodeBorder: var(--gray100);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnSubheader: var(--main);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray300);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--sidebarButtonBackground: linear-gradient(180deg, var(--gray900) 20%, var(--gray900-opacity-50) 70%, var(--gray900-opacity-0) 100%);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarGradient: linear-gradient(var(--sidebarBackground), var(gray800-opacity-0));--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarScrollbarThumb: var(--coldGray);--sidebarScrollbarTrack: var(--sidebarBackground);--sidebarSearch: var(--gray700);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--main);--sidebarActiveItem: var(--main-lightened-10)}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:remixicon;src:url(./remixicon-NKANDIL5.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6";--icon-printer-line: "\f029"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}.ri-printer-line:before{content:var(--icon-printer-line)}html,body{box-sizing:border-box;height:100%;width:100%}body{background-color:var(--background);color:var(--textBody);font-size:16px;font-family:var(--sansFontFamily);line-height:1.6875em}*,*:before,*:after{box-sizing:inherit}.main{display:flex;justify-content:flex-end;height:100%}.sidebar{display:flex;flex-direction:column;width:300px;height:100%;position:fixed;top:0;left:0;z-index:4}.sidebar-button{--sidebarButtonTopOpen: 6px;position:fixed;z-index:99;left:0;top:0;transition:all .3s ease-in-out;will-change:transform}.content{width:calc(100% - 300px);left:300px;height:100%;position:absolute;z-index:3}@media screen and (max-width: 768px){.content{overflow:auto;scroll-padding-top:45px}}body:is(.sidebar-opening,.sidebar-opened) .sidebar-button{transform:translate(250px);top:var(--sidebarButtonTopOpen)}body.sidebar-opening .sidebar{left:0;transition:left .3s ease-in-out}body.sidebar-opening .content{width:calc(100% - 300px);left:300px;transition:all .3s ease-in-out}body.sidebar-closing .sidebar-button{transform:translate(0)}body.sidebar-closing .sidebar{left:-300px;transition:left .3s ease-in-out}body.sidebar-closing .content{width:100%;left:0;transition:all .3s ease-in-out}body.sidebar-closed .sidebar{left:-300px}body.sidebar-closed .content{width:100%;left:0}@media screen and (max-width: 768px){.sidebar-button:before{--sidebarButtonHeight: 60px;content:"";display:block;z-index:-1;pointer-events:none;position:fixed;left:-1px;top:0;height:var(--sidebarButtonHeight);width:calc(100vw + 2px);background:var(--sidebarButtonBackground);transition:top .3s ease-in-out}body:is(.sidebar-closed,.sidebar-closing) .sidebar-button:before{top:0}body:is(.sidebar-opening,.sidebar-opened) .sidebar-button:before{top:calc(-1 * var(--sidebarButtonHeight) - var(--sidebarButtonTopOpen))}body.sidebar-opened .sidebar-button:before{opacity:0}}body.search-focused .sidebar-button{transform:translate(250px) scaleY(0);transition:all .15s ease-out;opacity:0}body.search-focused .sidebar-search .search-close-button{transform:scaleY(1);transition:transform .15s ease-out .15s}.content-inner{max-width:var(--content-width);margin:0 auto;padding:3px var(--content-gutter)}.content-inner:focus{outline:none}.content-outer{min-height:100%}@media screen and (max-width: 768px){.content,body.sidebar-opening .content{left:0;width:100%}.content-inner{padding-top:10px;padding-bottom:27px;overflow-x:auto}}.sidebar{font-family:var(--sansFontFamily);font-size:16px;font-weight:300;line-height:18px;background-color:var(--sidebarBackground);color:var(--sidebarAccentMain);overflow:hidden;scrollbar-color:var(--sidebarScrollbarThumb) var(--sidebarScrollbarTrack)}.non-apple-os .sidebar{font-weight:400}.sidebar .gradient{background:var(--sidebarGradient);height:20px;margin-top:-20px;pointer-events:none;position:relative;top:20px;z-index:100}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--sidebarAccentMain);text-decoration:none;transition:color .3s ease-in-out}.sidebar a:hover{color:var(--sidebarHover)}.sidebar .sidebar-header{margin:12px;border-radius:4px;background-color:var(--sidebarHeader);width:276px}.sidebar .sidebar-projectDetails{display:inline-block;text-align:left;vertical-align:top;margin:6px 0 0 10px}.sidebar .sidebar-projectImage{display:inline-block;max-width:48px;max-height:48px;margin:0 0 0 10px;vertical-align:bottom}.sidebar .sidebar-projectName{font-weight:700;font-size:20px;line-height:30px;color:var(--sidebarAccentMain);margin:0;padding:0;max-width:230px;word-wrap:break-word}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-size:16px;line-height:20px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersionsDropdown{cursor:pointer;position:relative;margin:0;padding:0 0 0 12px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--sidebarMuted);z-index:2}.sidebar .sidebar-projectVersionsDropdown option{color:initial}.sidebar .sidebar-projectVersionsDropdown:focus{outline:none}.sidebar .sidebar-projectVersion form:after{position:absolute;left:0;top:2px;content:"\25bc";z-index:1;font-size:8px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersionsDropdown::-ms-expand{display:none}.sidebar .sidebar-listNav{padding:12px 0 0;margin:0}.sidebar .sidebar-listNav :is(li,li a){text-transform:uppercase;font-size:14px;color:var(--sidebarMuted)}.sidebar .sidebar-listNav li{display:inline-block;padding:0}.sidebar .sidebar-listNav li a{display:inline-block;line-height:27px;border-bottom:3px solid transparent;padding:0 10px}.sidebar .sidebar-listNav li:is(:hover,.selected) a{border-color:var(--sidebarLanguageAccentBar)}.sidebar .sidebar-listNav li:is(:hover,.selected) a{color:var(--sidebarAccentMain)}.sidebar .sidebar-search{margin-top:12px}.sidebar .sidebar-search.selected .search-button,.sidebar .sidebar-search .search-button:hover{color:var(--sidebarLanguageAccentBar);opacity:1}.sidebar .sidebar-search .search-label{position:relative;width:100%}.sidebar .sidebar-search .search-button{font-size:14px;color:var(--sidebarAccentMain);background-color:transparent;border:none;cursor:pointer;left:22px;margin:0;opacity:.5;padding:3px 1px 3px 0;position:absolute;top:18px;z-index:2}.sidebar .sidebar-search .search-close-button{font-size:16px;color:var(--sidebarAccentMain);background-color:transparent;border:none;cursor:pointer;right:18px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:17px;transition:.15s transform ease-out;z-index:2}.sidebar .sidebar-search .search-close-button:hover{opacity:.7}.sidebar .sidebar-search .search-close-button:is(:focus,:hover){outline:none}.sidebar .sidebar-search .search-input{background-color:var(--sidebarSearch);border:none;border-radius:4px;color:var(--sidebarAccentMain);margin-left:12px;padding:8px 6px 8px 38px;width:276px}.sidebar .sidebar-search .search-input:is(:focus,:hover){outline:none}.sidebar .sidebar-search .ri-search-2-line{font-weight:700}.sidebar #full-list{margin:0;padding:20px 0;overflow-y:auto;overscroll-behavior:contain;position:relative;-webkit-overflow-scrolling:touch;flex:1 1 .01%}.sidebar #full-list li{padding:0;margin-right:30px;line-height:27px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar #full-list li.docs{margin-right:0}.sidebar #full-list li.open>ul{display:block;margin-left:10px}.sidebar #full-list li a span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar #full-list li a.expand>span.icon-expand:after{content:var(--icon-arrow-down-s);margin-right:10px;font-size:1.2em;position:absolute;right:0}.sidebar #full-list li.open>a.expand>span.icon-expand:after{content:var(--icon-arrow-up-s)}.sidebar #full-list li.docs>a>span.icon-expand:after{margin-right:12px;content:var(--icon-add);font-size:1em;position:absolute;right:0}.sidebar #full-list li.docs.open>a>span.icon-expand:after{content:var(--icon-subtract)}.sidebar #full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar #full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:1.5em 0 0;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar #full-list li a{padding:3px 0 3px 15px;color:var(--sidebarItem);overflow:hidden}.sidebar #full-list>li>a{display:block;width:100%;height:27px;line-height:20px}.sidebar #full-list li a.expand,.sidebar #full-list li .sections-list>li{text-overflow:ellipsis}.sidebar #full-list li .current-section>a{color:var(--sidebarActiveItem)}.sidebar #full-list>li>a:hover{border-left:3px solid var(--sidebarLanguageAccentBar);padding-left:12px}.sidebar #full-list>li.current-page>a{color:var(--sidebarActiveItem);border-left:3px solid var(--sidebarLanguageAccentBar);padding-left:12px}.sidebar #full-list>li.current-page>a:after,.sidebar #full-list>li.current-page{color:var(--sidebarActiveItem)}.sidebar #full-list>li:last-child{margin-bottom:30px}.sidebar #full-list>li.group:first-child{margin-top:0}.sidebar #full-list ul{display:none;margin:10px 0 10px 15px;padding:0}.sidebar #full-list ul li{font-weight:300;line-height:16px;padding:0 8px;margin-right:0;color:var(--sidebarAccentMain)}.sidebar #full-list ul li.current-hash{color:var(--sidebarActiveItem)}.sidebar #full-list ul li.current-hash>a{color:var(--sidebarActiveItem)}.sidebar #full-list ul li.current-hash>a:before,.sidebar #full-list>li>ul>li>a:hover:before{content:"\2022";position:absolute;margin-left:-15px;color:var(--sidebarActiveItem)}.sidebar #full-list ul li a{padding-left:15px;display:block;width:100%;height:24px}.sidebar #full-list ul li ul{display:none;margin:9px 0 9px 20px}.sidebar #full-list ul li ul li{margin-right:0;height:20px;color:var(--sidebarAccentMain)}.sidebar #full-list ul li ul li a{border-left:1px solid var(--sidebarInactiveItemMarker);padding:0 10px;height:20px}.sidebar #full-list ul li ul li.current-hash>a:before{content:none}.sidebar #full-list ul li ul li>a:hover{border-color:var(--sidebarLanguageAccentBar)}.sidebar #full-list ul li ul li.current-hash>a{color:var(--sidebarActiveItem);border-color:var(--sidebarLanguageAccentBar)}.sidebar #full-list ul li ul li.current-hash>a{color:var(--sidebarActiveItem);margin-left:0}.sidebar ::-webkit-scrollbar{width:14px}::-webkit-scrollbar-track{background-color:var(--sidebarBackground)}.sidebar ::-webkit-scrollbar-thumb{background-color:var(--sidebarScrollbarThumb);border-radius:10px;border:3px solid var(--sidebarBackground)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;padding:15px 11px;font-size:16px}.sidebar-button:hover{color:var(--sidebarHover)}.sidebar-button:is(:active,:hover,:focus){outline:none}.sidebar-button{color:var(--sidebarAccentMain)}.sidebar-closed .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar #full-list{overflow:visible}}.content-inner{font-family:var(--serifFontFamily);font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:1em 0 .5em}.content-inner h1.signature{margin:0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner h1 small{font-weight:300}.content-inner h1 .icon-action{font-size:1.2rem;font-weight:400}.content-inner h2{font-size:1.6em;margin:1em 0 .5em;font-weight:700}.content-inner h3{font-size:1.375em;margin:1em 0 .5em;font-weight:700}.content-inner :is(a,.a-main){color:var(--links);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--linksVisited)}.content-inner .icon-action{float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer}.content-inner button.icon-action{margin-top:12px}.content-inner .icon-action:hover{color:var(--iconActionHover)}.content-inner .icon-action:visited{color:var(--iconAction)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--iconAction);margin-right:5px;font-size:14px;font-weight:400}.content-inner blockquote{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:3px}.content-inner blockquote p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0}.content-inner th{text-align:left;font-family:var(--sansFontFamily);text-transform:uppercase;font-weight:700;padding-bottom:.5em}.content-inner tr{border-bottom:1px solid var(--gray50);vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding-left:1em;line-height:2em;vertical-align:top}.content-inner .section-heading{position:relative}.content-inner .section-heading:hover a.hover-link{opacity:1;text-decoration:none}.content-inner .section-heading a.hover-link{transition:opacity .3s ease-in-out;display:inline-block;opacity:0;padding:.3em .4em .6em .6em;line-height:1em;margin-left:-2.4em;text-decoration:none;border:none;font-size:16px;vertical-align:middle}@media screen and (max-width: 768px){.content-inner .section-heading a.hover-link{position:absolute;bottom:0;right:-20px;padding:.3em .6em .4em}}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400}@media screen and (max-width: 768px){.content-inner :is(ol,ul){padding-left:calc(1.5 * var(--content-gutter))}}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip){color:var(--black);border-radius:10px;border-left:0}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip) :is(a,a:visited){color:var(--black)}.content-inner blockquote.warning{background-color:var(--warningBackground)}.content-inner blockquote.error{background-color:var(--errorBackground)}.content-inner blockquote.info{background-color:var(--infoBackground)}.content-inner blockquote.neutral{background-color:var(--neutralBackground)}.content-inner blockquote.tip{background-color:var(--tipBackground)}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip){color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip):before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner blockquote :is(h3,h4).warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner blockquote :is(h3,h4).warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner blockquote :is(h3,h4).error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner blockquote :is(h3,h4).error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner blockquote :is(h3,h4).info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner blockquote :is(h3,h4).info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner blockquote :is(h3,h4).neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner blockquote :is(h3,h4).neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner blockquote :is(h3,h4).tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner blockquote :is(h3,h4).tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip) code{background-color:var(--inlineCodeBackground);border:1px solid var(--inlineCodeBorder);color:var(--black)}@media screen and (max-width: 768px){.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip){margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip){margin:0 calc(-1 * var(--content-gutter))}}.content-inner .summary h2{font-weight:700}.content-inner .summary h2 a{text-decoration:none;border:none}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400;font-style:italic}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{font-family:var(--serifFontFamily);font-style:italic;padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}.content-inner :is(a.no-underline,pre a){color:var(--linksNoUnderline);text-shadow:none;text-decoration:none;background-image:none}.content-inner :is(a.no-underline,pre a):is(:visited,:active,:focus,:hover){color:var(--linksNoUnderlineVisited)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:.5em 1em;background-color:var(--codeBackground)}.content-inner pre code::-webkit-scrollbar{width:.4rem;height:.4rem}.content-inner pre code::-webkit-scrollbar-thumb{border-radius:.25rem;background-color:var(--codeScrollThumb)}.content-inner pre code::-webkit-scrollbar-track{background-color:var(--codeScrollBackground)}.content-inner pre code::-webkit-scrollbar-corner{background-color:var(--codeScrollBackground)}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:12px;font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@media screen and (max-width: 768px){.content-inner>pre,.content-inner section>pre{margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter))}.content-inner>pre code,.content-inner section>pre code{padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0;border-left-width:0;border-right-width:0}}@keyframes blink-background{0%{background-color:var(--textDetailBackground)}to{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:2em 0 1em;padding:.5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--main);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .note{float:right}.content-inner .detail-header .signature{display:inline-block;font-family:var(--monoFontFamily);font-size:1rem;font-weight:700}.content-inner .detail-header:hover a.detail-link{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}@media screen and (max-width: 768px){.content-inner .detail-header a.detail-link{margin-left:-30px}}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:.9em;font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}@media screen and (max-width: 768px){.content-inner .docstring{margin-left:0}}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:9px 15px;background-color:var(--fnDeprecated)}.content-inner .footer{margin:4em auto 1em;text-align:center;font-style:italic;font-size:14px}.content-inner .footer,.content-inner .footer :is(a,.footer-button){color:var(--textFooter)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;font-style:italic;outline:none;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:4px;border:1px solid var(--bottomActionsBtnBorder);padding:8px 16px;min-width:150px}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--bottomActionsBtnSubheader);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button[rel=prev] .subheader{text-align:right}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}.content-inner .bottom-actions .bottom-actions-item:not(:first-child){margin-bottom:16px}}.page-cheatmd .content-inner{--horizontal-space: 1.5em;--vertical-space: 1em}@media (max-width: 600px){.page-cheatmd .content-inner{--horizontal-space: 1em;--vertical-space: .75em}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd .content-inner h1{margin-bottom:var(--vertical-space)}.page-cheatmd .content-inner h2{margin:var(--vertical-space) 0;column-span:all;color:var(--gray700);font-weight:500}.page-cheatmd.dark .content-inner h2{color:var(--gray200)}.page-cheatmd .content-inner h3{margin:0 0 1em;color:var(--main);font-weight:400;overflow:hidden}.page-cheatmd .content-inner h3.section-heading .hover-link{display:none}.page-cheatmd .content-inner section.h3{min-width:300px;margin:0 0 calc(var(--vertical-space) * 2) 0;break-inside:avoid}.page-cheatmd .content-inner h3:after{content:"";margin-left:calc(var(--horizontal-space) / 2);vertical-align:baseline;display:inline-block;width:100%;height:1px;margin-right:-100%;margin-bottom:5px;background-color:var(--codeBorder)}.page-cheatmd .content-inner h4{display:block;margin:0;padding:.25em var(--horizontal-space);font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.page-cheatmd.dark .content-inner h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .content-inner .h2 p{margin:0;display:block;background:var(--gray50);padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd.dark .content-inner .h2 p{background:var(--gray700)}.page-cheatmd .content-inner .h2 p>code{color:#eb5757;border-radius:3px;padding:.2em .4em}.page-cheatmd .content-inner pre code{padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd .content-inner pre code::-webkit-scrollbar{width:.4rem;height:.6rem}.page-cheatmd .content-inner .h2 pre{margin:0}.page-cheatmd .content-inner .h2 pre+pre{margin-top:-1px}.page-cheatmd .content-inner pre.wrap{white-space:break-spaces}@media screen and (max-width: 768px){.page-cheatmd .content-inner pre code{border-left-width:1px!important;border-right-width:1px!important}}.page-cheatmd .content-inner .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .content-inner .h2 th{padding:var(--vertical-space) var(--horizontal-space);line-height:inherit;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td{padding:var(--vertical-space) var(--horizontal-space);border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td code{color:#eb5757;border-radius:3px;padding:.2em .4em}.page-cheatmd .content-inner .h2 thead{background-color:var(--gray50)}.page-cheatmd.dark .content-inner .h2 thead{background-color:var(--gray700)}.page-cheatmd .content-inner .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .content-inner .h2 :is(ul,ol){margin:0;padding:0}.page-cheatmd .content-inner .h2 li{list-style-position:inside;padding:.5em var(--horizontal-space);line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 :is(ul,ol)+pre code{border-top:0}.page-cheatmd .content-inner .h2 li>code{color:#eb5757;border-radius:3px;padding:.2em .4em}.page-cheatmd .content-inner section.width-50{display:block;width:50%;margin:0}.page-cheatmd .content-inner section.width-50>section>table{width:100%}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:40px}.page-cheatmd .content-inner section.col-2{column-count:2;height:auto}.page-cheatmd .content-inner section.col-2-left{display:grid;grid-template-columns:calc(100% / 3) auto}.page-cheatmd .content-inner section.col-2-left>h2{grid-column-end:span 2}.page-cheatmd .content-inner section.col-3{column-count:3;height:auto}.page-cheatmd .content-inner section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-4>ul>li{flex:0 0 25%}.page-cheatmd .content-inner section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 calc(100% / 6)}@media screen and (max-width: 1400px){.page-cheatmd .content-inner section.col-3{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:block;column-count:1}}@media screen and (max-width: 1200px){.page-cheatmd .content-inner section:is(.col-2,.col-3){column-count:1}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 25%}}@media screen and (max-width: 1000px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 calc(100% / 3)}}@media screen and (max-width: 600px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 50%}.page-cheatmd .content-inner section.width-50{width:100%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;vertical-align:middle;position:absolute;top:50%;left:18%}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;transition:color .1s ease-in-out;color:var(--links)}#search .result-id a:is(:visited,:active,:focus){color:var(--linksVisited)}#search .result-id a:hover{color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:3px;box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:color .15s}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:opacity .15s}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:3px;font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-input:focus{outline:none}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;height:0;margin:0 5px 0 12px;overflow:visible;position:relative;width:100%}.autocomplete.shown{display:block}.autocomplete-suggestions{box-shadow:2px 2px 10px #00000040;background-color:var(--gray700);border-top:1px solid var(--gray800);left:0;position:absolute;top:-2px;width:276px;z-index:200}.autocomplete-suggestion{color:inherit;display:block;padding:10px;text-decoration:none}.autocomplete-suggestion:hover,.autocomplete-suggestion.selected{background-color:var(--gray600);border-left:3px solid var(--main)}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{padding-left:2px;opacity:.75}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}#tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}#tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}#tooltip .tooltip-body{border:1px solid var(--codeBorder)}#tooltip .tooltip-body .signature{min-width:320px;width:100%}#tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}#tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}#tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}#tooltip .tooltip-body .version-info{float:right;line-height:1.6rem;font-family:var(--monoFontFamily);font-size:.9rem;font-weight:400;margin-bottom:-6px;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button{display:block}.copy-button{display:none;position:absolute;top:9px;right:9px;background-color:transparent;border:none;cursor:pointer;padding:0;opacity:.5;transition:all .15s;font-family:var(--serifFontFamily);font-size:14px;line-height:24px;color:currentColor}.copy-button:hover{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{display:block;opacity:1;color:var(--success)}.copy-button.clicked:after{content:"Copied! \2713"}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:14px;background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:8px;transition:border-color .15s}#settings-modal-content .input:focus{outline:none;border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray400)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:18px}#settings-modal-content .switch-button-container>div>p{font-size:14px;font-weight:300;line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:all .15s}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:all .3s}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:all .3s}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#settings-modal-content .settings-select:focus{outline:none}#toast{opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:10px;border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out}#toast.show{opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.main{display:block}.sidebar,.sidebar-button{display:none}.content{padding-left:0;overflow:visible;left:0;width:100%}.summary-row{break-inside:avoid}#toast,.content-inner .section-heading a.hover-link,.content-inner button.icon-action,.content-inner a.icon-action,.content-inner .bottom-actions{display:none}.footer p:first-of-type{display:none}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip){border:2px solid var(--gray400)}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip){color:var(--textHeaders);border-bottom:2px solid var(--gray400)}.content-inner pre code.makeup{border-color:var(--gray400);white-space:break-spaces;break-inside:avoid}.content-inner blockquote code.inline,.content-inner code.inline{border-color:var(--gray400)}}@media print{.page-cheatmd .content-inner *{background-color:transparent!important;border-color:var(--gray400)!important}.page-cheatmd .content-inner{max-width:100%;width:100%;padding:0;font-size:.7em}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:30px}.page-cheatmd .content-inner section.col-2{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:grid}.page-cheatmd .content-inner section.col-3{column-count:3}.page-cheatmd .content-inner h1{margin-top:0;margin-bottom:.5em}.page-cheatmd .content-inner h2.section-heading{font-weight:700;margin-top:1em;column-span:all}.page-cheatmd .content-inner section.h2{break-inside:avoid}.page-cheatmd .content-inner h3{font-weight:700;color:var(--main-darkened-10)}.page-cheatmd .content-inner h3:after{height:2px;background-color:var(--gray400)}.page-cheatmd .content-inner section.h3{min-width:300px;break-inside:avoid}.page-cheatmd .content-inner h4{padding:.5em 0;border:none;font-weight:700;color:#000}.page-cheatmd .content-inner .h2 p{padding-left:0;padding-right:0;border:none!important}.page-cheatmd .content-inner code{line-height:1.5em}.page-cheatmd .content-inner .h2 table{font-variant-numeric:tabular-nums;break-inside:avoid}.page-cheatmd .content-inner .h2 :is(th,td){vertical-align:top;padding-left:0;padding-right:0}.page-cheatmd .content-inner .h2 thead{border-style:solid none;border-width:1px}.page-cheatmd .content-inner .h2 tr{border-bottom:none}.page-cheatmd .content-inner .h2 th{font-weight:700}.page-cheatmd .content-inner .h2 li{padding-left:0;padding-right:0;vertical-align:middle;border-bottom:none}.page-cheatmd .content-inner pre:hover button.copy-button,.page-cheatmd .content-inner div#tooltip{display:none}.page-cheatmd .content-inner footer p:not(.built-using){display:none}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} -/*! Bundled license information: - -normalize.css/normalize.css: - (*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css *) -*/ diff --git a/dist/merriweather-cyrillic-300-italic-M6KMXZSZ.woff2 b/dist/merriweather-cyrillic-300-italic-M6KMXZSZ.woff2 deleted file mode 100644 index 71e8f7ee92a07050e0bd3440d12b59f65c08404e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15244 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 diff --git a/dist/merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2 b/dist/merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2 deleted file mode 100644 index 0bc4aac166ffee04eb3e41210bd1f5e6231af70a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20308 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 diff --git a/dist/merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2 b/dist/merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2 deleted file mode 100644 index 8874d2c433d25a26faaf10493f69959d19beedc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19320 zcmV)AK*YayPew8T0RR91084lP5dZ)H0IVDU0817C0RR9100000000000000000000 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 diff --git a/dist/merriweather-latin-300-normal-RWDJH4FN.woff2 b/dist/merriweather-latin-300-normal-RWDJH4FN.woff2 deleted file mode 100644 index a11988387bd3d353ed0f1729f9b266fe4ddec444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19752 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 H2iipd8BQ&h diff --git a/dist/merriweather-latin-ext-300-italic-MWCA36KE.woff2 b/dist/merriweather-latin-ext-300-italic-MWCA36KE.woff2 deleted file mode 100644 index 8a6b26f8b134b93d5a463d65badc39fae8e61710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18676 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 diff --git a/dist/merriweather-vietnamese-300-normal-U376L4Z4.woff2 b/dist/merriweather-vietnamese-300-normal-U376L4Z4.woff2 deleted file mode 100644 index b250a2d450b9189c97056fba663983350ea1bff1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7796 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 G3r|PeQ0kEY diff --git a/dist/search_data-40BAA532.js b/dist/search_data-40BAA532.js new file mode 100644 index 000000000..508e05dcb --- /dev/null +++ b/dist/search_data-40BAA532.js @@ -0,0 +1 @@ +searchData={"items":[{"type":"task","title":"mix gh.docs","doc":"Task that pushes docs to gh-pages branch on Discord.","ref":"Mix.Tasks.Gh.Docs.html"},{"type":"function","title":"Mix.Tasks.Gh.Docs.run/1","doc":"","ref":"Mix.Tasks.Gh.Docs.html#run/1"},{"type":"module","title":"Nostrum.Api","doc":"Interface for Discord's rest API.\n\nBy default all methods in this module are ran synchronously. If you wish to\nhave async rest operations I recommend you execute these functions inside of a\ntask.\n\n**Examples**\n```elixir\n# Async Task\nt = Task.async fn ->\n Nostrum.Api.get_channel_messages(12345678912345, :infinity, {})\nend\nmessages = Task.await t\n\n# A lot of times we don't care about the return value of the function\nTask.start fn ->\n messages = [\"in\", \"the\", \"end\", \"it\", \"doesn't\", \"even\", \"matter\"]\n Enum.each messages, &Nostrum.Api.create_message!(12345678912345, &1)\nend\n```\n\n#### A note about Strings and Ints\nCurrently, responses from the REST api will have `id` fields as `string`.\nEverything received from the WS connection will have `id` fields as `int`.\n\nIf you're processing a response from the API and trying to access something in the cache\nbased off of an `id` in the response, you will need to convert it to an `int` using\n`String.to_integer/1`. I'm open to suggestions for how this should be handled going forward.\n\n**Example**\n```elixir\nmessages = Nostrum.Api.get_pinned_messages!(12345678912345)\n\nauthors =\n Enum.map messages, fn msg ->\n author_id = String.to_integer(msg.author.id)\n Nostrum.Cache.User.get!(id: author_id)\n end\n```","ref":"Nostrum.Api.html"},{"type":"function","title":"Nostrum.Api.add_guild_member/3","doc":"Puts a user in a guild.\n\nThis endpoint fires the `t:Nostrum.Consumer.guild_member_add/0` event.\nIt requires the `CREATE_INSTANT_INVITE` permission. Additionally, it\nsituationally requires the `MANAGE_NICKNAMES`, `MANAGE_ROLES`,\n`MUTE_MEMBERS`, and `DEAFEN_MEMBERS` permissions.\n\nIf successful, returns `{:ok, member}` or `{:ok}` if the user was already a member of the\nguild. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#add_guild_member/3"},{"type":"function","title":"Options - Nostrum.Api.add_guild_member/3","doc":"* `:access_token` (string) - the user's oauth2 access token\n * `:nick` (string) - value to set users nickname to\n * `:roles` (list of `t:Nostrum.Struct.Guild.Role.id/0`) - array of role ids the member is assigned\n * `:mute` (boolean) - if the user is muted\n * `:deaf` (boolean) - if the user is deafened\n\n`:access_token` is always required.","ref":"Nostrum.Api.html#add_guild_member/3-options"},{"type":"function","title":"Examples - Nostrum.Api.add_guild_member/3","doc":"```elixir\nNostrum.Api.add_guild_member(\n 41771983423143937,\n 18374719829378473,\n access_token: \"6qrZcUqja7812RVdnEKjpzOL4CvHBFG\",\n nick: \"nostrum\",\n roles: [431849301, 913809431]\n)\n```","ref":"Nostrum.Api.html#add_guild_member/3-examples"},{"type":"function","title":"Nostrum.Api.add_guild_member!/3","doc":"Same as `add_guild_member/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#add_guild_member!/3"},{"type":"function","title":"Nostrum.Api.add_guild_member_role/4","doc":"Adds a role to a member.\n\nRole to add is specified by `role_id`.\nUser to add role to is specified by `guild_id` and `user_id`.\nAn optional `reason` can be given for the audit log.","ref":"Nostrum.Api.html#add_guild_member_role/4"},{"type":"function","title":"Nostrum.Api.add_pinned_channel_message/2","doc":"Pins a message in a channel.\n\nThis endpoint requires the 'VIEW_CHANNEL', 'READ_MESSAGE_HISTORY', and\n'MANAGE_MESSAGES' permissions. It fires the\n`t:Nostrum.Consumer.message_update/0` and\n`t:Nostrum.Consumer.channel_pins_update/0` events.\n\nIf successful, returns `{:ok}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#add_pinned_channel_message/2"},{"type":"function","title":"Examples - Nostrum.Api.add_pinned_channel_message/2","doc":"```elixir\nNostrum.Api.add_pinned_channel_message(43189401384091, 18743893102394)\n```","ref":"Nostrum.Api.html#add_pinned_channel_message/2-examples"},{"type":"function","title":"Nostrum.Api.add_pinned_channel_message!/2","doc":"Same as `add_pinned_channel_message/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#add_pinned_channel_message!/2"},{"type":"function","title":"Nostrum.Api.add_thread_member/2","doc":"Add a user to a thread, requires the ability to send messages in the thread.","ref":"Nostrum.Api.html#add_thread_member/2"},{"type":"function","title":"Nostrum.Api.batch_edit_application_command_permissions/3","doc":"Edits command permissions for a specific command for your application in a guild. You can only add up to 10 permission overwrites for a command.","ref":"Nostrum.Api.html#batch_edit_application_command_permissions/3"},{"type":"function","title":"Parameters - Nostrum.Api.batch_edit_application_command_permissions/3","doc":"- `application_id`: Application ID commands are registered under.\n If not given, this will be fetched from `Me`.\n- `guild_id`: Guild ID to fetch command permissions from.\n- `command_id`: Command ID to fetch permissions for.\n- `permissions`: List of partial [guild application command permissions](hhttps://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure) with `id` and `permissions`. You can add up to 10 overwrites per command.","ref":"Nostrum.Api.html#batch_edit_application_command_permissions/3-parameters"},{"type":"function","title":"Return value - Nostrum.Api.batch_edit_application_command_permissions/3","doc":"This method returns a guild application command permission object, see all available values on the [Discord API docs](https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure).","ref":"Nostrum.Api.html#batch_edit_application_command_permissions/3-return-value"},{"type":"function","title":"Nostrum.Api.begin_guild_prune/3","doc":"Begins a guild prune to prune members within `days`.\n\nAn optional `reason` can be provided for the guild audit log.\n\nThis endpoint requires the `KICK_MEMBERS` permission. It fires multiple\n`t:Nostrum.Consumer.guild_member_remove/0` events.\n\nIf successful, returns `{:ok, %{pruned: pruned}}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#begin_guild_prune/3"},{"type":"function","title":"Examples - Nostrum.Api.begin_guild_prune/3","doc":"```elixir\nNostrum.Api.begin_guild_prune(81384788765712384, 1)\n{:ok, %{pruned: 0}}\n```","ref":"Nostrum.Api.html#begin_guild_prune/3-examples"},{"type":"function","title":"Nostrum.Api.begin_guild_prune!/3","doc":"Same as `begin_guild_prune/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#begin_guild_prune!/3"},{"type":"function","title":"Nostrum.Api.bulk_delete_messages/3","doc":"Deletes multiple messages from a channel.\n\n`messages` is a list of `Nostrum.Struct.Message.id` that you wish to delete.\nWhen given more than 100 messages, this function will chunk the given message\nlist into blocks of 100 and send them off to the API. It will stop deleting\non the first error that occurs. Keep in mind that deleting thousands of\nmessages will take a pretty long time and it may be proper to just delete\nthe channel you want to bulk delete in and recreate it.\n\nThis method can only delete messages sent within the last two weeks.\n`Filter` is an optional parameter that specifies whether messages sent over\ntwo weeks ago should be filtered out; defaults to `true`.","ref":"Nostrum.Api.html#bulk_delete_messages/3"},{"type":"function","title":"Nostrum.Api.bulk_delete_messages!/3","doc":"Same as `bulk_delete_messages/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#bulk_delete_messages!/3"},{"type":"function","title":"Nostrum.Api.bulk_overwrite_global_application_commands/2","doc":"Overwrite the existing global application commands.\n\nThis action will:\n- Create any command that was provided and did not already exist\n- Update any command that was provided and already existed if its configuration changed\n- Delete any command that was not provided but existed on Discord's end\n\nUpdates will be available in all guilds after 1 hour.\nCommands that do not already exist will count toward daily application command create limits.","ref":"Nostrum.Api.html#bulk_overwrite_global_application_commands/2"},{"type":"function","title":"Parameters - Nostrum.Api.bulk_overwrite_global_application_commands/2","doc":"- `application_id`: Application ID for which to overwrite the commands.\n If not given, this will be fetched from `Me`.\n- `commands`: List of command configurations, see the linked API documentation for reference.","ref":"Nostrum.Api.html#bulk_overwrite_global_application_commands/2-parameters"},{"type":"function","title":"Return value - Nostrum.Api.bulk_overwrite_global_application_commands/2","doc":"Updated list of global application commands. See the official reference:\nhttps://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands","ref":"Nostrum.Api.html#bulk_overwrite_global_application_commands/2-return-value"},{"type":"function","title":"Nostrum.Api.bulk_overwrite_guild_application_commands/3","doc":"Overwrite the existing guild application commands on the specified guild.\n\nThis action will:\n- Create any command that was provided and did not already exist\n- Update any command that was provided and already existed if its configuration changed\n- Delete any command that was not provided but existed on Discord's end","ref":"Nostrum.Api.html#bulk_overwrite_guild_application_commands/3"},{"type":"function","title":"Parameters - Nostrum.Api.bulk_overwrite_guild_application_commands/3","doc":"- `application_id`: Application ID for which to overwrite the commands.\n If not given, this will be fetched from `Me`.\n- `guild_id`: Guild on which to overwrite the commands.\n- `commands`: List of command configurations, see the linked API documentation for reference.","ref":"Nostrum.Api.html#bulk_overwrite_guild_application_commands/3-parameters"},{"type":"function","title":"Return value - Nostrum.Api.bulk_overwrite_guild_application_commands/3","doc":"Updated list of guild application commands. See the official reference:\nhttps://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-guild-application-commands","ref":"Nostrum.Api.html#bulk_overwrite_guild_application_commands/3-return-value"},{"type":"function","title":"Nostrum.Api.create_channel_invite/3","doc":"Creates an invite for a guild channel.\n\nAn optional `reason` can be provided for the audit log.\n\nThis endpoint requires the `CREATE_INSTANT_INVITE` permission.\n\nIf successful, returns `{:ok, invite}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#create_channel_invite/3"},{"type":"function","title":"Options - Nostrum.Api.create_channel_invite/3","doc":"* `:max_age` (integer) - duration of invite in seconds before expiry, or 0 for never.\n (default: `86400`)\n * `:max_uses` (integer) - max number of uses or 0 for unlimited.\n (default: `0`)\n * `:temporary` (boolean) - Whether the invite should grant temporary\n membership. (default: `false`)\n * `:unique` (boolean) - used when creating unique one time use invites.\n (default: `false`)","ref":"Nostrum.Api.html#create_channel_invite/3-options"},{"type":"function","title":"Examples - Nostrum.Api.create_channel_invite/3","doc":"```elixir\nNostrum.Api.create_channel_invite(41771983423143933)\n{:ok, Nostrum.Struct.Invite{}}\n\nNostrum.Api.create_channel_invite(41771983423143933, max_uses: 20)\n{:ok, %Nostrum.Struct.Invite{}}\n```","ref":"Nostrum.Api.html#create_channel_invite/3-examples"},{"type":"function","title":"Nostrum.Api.create_channel_invite!/3","doc":"Same as `create_channel_invite/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#create_channel_invite!/3"},{"type":"function","title":"Nostrum.Api.create_dm/1","doc":"Create a new DM channel with a user.\n\nIf successful, returns `{:ok, dm_channel}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#create_dm/1"},{"type":"function","title":"Examples - Nostrum.Api.create_dm/1","doc":"```elixir\nNostrum.Api.create_dm(150061853001777154)\n{:ok, %Nostrum.Struct.Channel{type: 1}}\n```","ref":"Nostrum.Api.html#create_dm/1-examples"},{"type":"function","title":"Nostrum.Api.create_dm!/1","doc":"Same as `create_dm/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#create_dm!/1"},{"type":"function","title":"Nostrum.Api.create_followup_message/3","doc":"Create a followup message for an interaction.\n\nDelegates to ``execute_webhook/3``, see the function for more details.","ref":"Nostrum.Api.html#create_followup_message/3"},{"type":"function","title":"Nostrum.Api.create_followup_message!/3","doc":"Same as `create_followup_message/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#create_followup_message!/3"},{"type":"function","title":"Nostrum.Api.create_global_application_command/2","doc":"Create a new global application command.\n\nThe new command will be available on all guilds in around an hour.\nIf you want to test commands, use `create_guild_application_command/2` instead,\nas commands will become available instantly there.\nIf an existing command with the same name exists, it will be overwritten.","ref":"Nostrum.Api.html#create_global_application_command/2"},{"type":"function","title":"Parameters - Nostrum.Api.create_global_application_command/2","doc":"- `application_id`: Application ID for which to create the command.\n If not given, this will be fetched from `Me`.\n- `command`: Command configuration, see the linked API documentation for reference.","ref":"Nostrum.Api.html#create_global_application_command/2-parameters"},{"type":"function","title":"Return value - Nostrum.Api.create_global_application_command/2","doc":"The created command. See the official reference:\nhttps://discord.com/developers/docs/interactions/application-commands#create-global-application-command","ref":"Nostrum.Api.html#create_global_application_command/2-return-value"},{"type":"function","title":"Example - Nostrum.Api.create_global_application_command/2","doc":"```elixir\nNostrum.Api.create_application_command(\n %{name: \"edit\", description: \"ed, man! man, ed\", options: []}\n)\n```","ref":"Nostrum.Api.html#create_global_application_command/2-example"},{"type":"function","title":"Nostrum.Api.create_group_dm/2","doc":"Creates a new group DM channel.\n\nIf successful, returns `{:ok, group_dm_channel}`. Otherwise, returns a `t:Nostrum.Api.error/0`.\n\n`access_tokens` are user oauth2 tokens. `nicks` is a map that maps a user id\nto a nickname.","ref":"Nostrum.Api.html#create_group_dm/2"},{"type":"function","title":"Examples - Nostrum.Api.create_group_dm/2","doc":"```elixir\nNostrum.Api.create_group_dm([\"6qrZcUqja7812RVdnEKjpzOL4CvHBFG\"], %{41771983423143937 => \"My Nickname\"})\n{:ok, %Nostrum.Struct.Channel{type: 3}}\n```","ref":"Nostrum.Api.html#create_group_dm/2-examples"},{"type":"function","title":"Nostrum.Api.create_group_dm!/2","doc":"Same as `create_group_dm/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#create_group_dm!/2"},{"type":"function","title":"Nostrum.Api.create_guild_application_command/3","doc":"Create a guild application command on the specified guild.\n\nThe new command will be available immediately.","ref":"Nostrum.Api.html#create_guild_application_command/3"},{"type":"function","title":"Parameters - Nostrum.Api.create_guild_application_command/3","doc":"- `application_id`: Application ID for which to create the command.\n If not given, this will be fetched from `Me`.\n- `guild_id`: Guild on which to create the command.\n- `command`: Command configuration, see the linked API documentation for reference.","ref":"Nostrum.Api.html#create_guild_application_command/3-parameters"},{"type":"function","title":"Return value - Nostrum.Api.create_guild_application_command/3","doc":"The created command. See the official reference:\nhttps://discord.com/developers/docs/interactions/application-commands#create-guild-application-command","ref":"Nostrum.Api.html#create_guild_application_command/3-return-value"},{"type":"function","title":"Nostrum.Api.create_guild_auto_moderation_rule/2","doc":"Create a new auto-moderation rule for a guild.","ref":"Nostrum.Api.html#create_guild_auto_moderation_rule/2"},{"type":"function","title":"Options - Nostrum.Api.create_guild_auto_moderation_rule/2","doc":"* `:name` (`t:String.t/0`) - The name of the rule.\n * `:event_type` (`t:AutoModerationRule.event_type/0`) - The type of event that triggers the rule.\n * `:trigger_type` (`t:AutoModerationRule.trigger_type/0`) - The type of content that triggers the rule.\n * `:trigger_metadata` (`t:AutoModerationRule.trigger_metadata/0`) - The metadata associated with the rule trigger.\n - optional, based on the `:trigger_type`.\n * `:actions` (`t:AutoModerationRule.actions/0`) - The actions to take when the rule is triggered.\n * `:enabled` (`t:AutoModerationRule.enabled/0`) - Whether the rule is enabled or not.\n - optional, defaults to `false`.\n * `:exempt_roles` - (`t:AutoModerationRule.exempt_roles/0`) - A list of role id's that are exempt from the rule.\n - optional, defaults to `[]`, maximum of 20.\n * `:exempt_channels` - (`t:AutoModerationRule.exempt_channels/0`) - A list of channel id's that are exempt from the rule.\n - optional, defaults to `[]`, maximum of 50.","ref":"Nostrum.Api.html#create_guild_auto_moderation_rule/2-options"},{"type":"function","title":"Nostrum.Api.create_guild_ban/4","doc":"Bans a user from a guild.\n\nUser to delete is specified by `guild_id` and `user_id`.\nAn optional `reason` can be specified for the audit log.","ref":"Nostrum.Api.html#create_guild_ban/4"},{"type":"function","title":"Nostrum.Api.create_guild_channel/2","doc":"Creates a channel for a guild.\n\nThis endpoint requires the `MANAGE_CHANNELS` permission. It fires a\n`t:Nostrum.Consumer.channel_create/0` event.\n\nIf successful, returns `{:ok, channel}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#create_guild_channel/2"},{"type":"function","title":"Options - Nostrum.Api.create_guild_channel/2","doc":"* `:name` (string) - channel name (2-100 characters)\n * `:type` (integer) - the type of channel (See `Nostrum.Struct.Channel`)\n * `:topic` (string) - channel topic (0-1024 characters)\n * `:bitrate` (integer) - the bitrate (in bits) of the voice channel (voice only)\n * `:user_limit` (integer) - the user limit of the voice channel (voice only)\n * `:permission_overwrites` (list of `t:Nostrum.Struct.Overwrite.t/0` or equivalent map) -\n the channel's permission overwrites\n * `:parent_id` (`t:Nostrum.Struct.Channel.id/0`) - id of the parent category for a channel\n * `:nsfw` (boolean) - if the channel is nsfw\n\n`:name` is always required.","ref":"Nostrum.Api.html#create_guild_channel/2-options"},{"type":"function","title":"Examples - Nostrum.Api.create_guild_channel/2","doc":"```elixir\nNostrum.Api.create_guild_channel(81384788765712384, name: \"elixir-nostrum\", topic: \"craig's domain\")\n{:ok, %Nostrum.Struct.Channel{guild_id: 81384788765712384}}\n```","ref":"Nostrum.Api.html#create_guild_channel/2-examples"},{"type":"function","title":"Nostrum.Api.create_guild_channel!/2","doc":"Same as `create_guild_channel/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#create_guild_channel!/2"},{"type":"function","title":"Nostrum.Api.create_guild_emoji/3","doc":"Creates a new emoji for the given guild.\n\nThis endpoint requires the `MANAGE_EMOJIS` permission. It fires a\n`t:Nostrum.Consumer.guild_emojis_update/0` event.\n\nAn optional `reason` can be provided for the audit log.\n\nIf successful, returns `{:ok, emoji}`. Otherwise, returns `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#create_guild_emoji/3"},{"type":"function","title":"Options - Nostrum.Api.create_guild_emoji/3","doc":"* `:name` (string) - name of the emoji\n * `:image` (base64 data URI) - the 128x128 emoji image. Maximum size of 256kb\n * `:roles` (list of `t:Nostrum.Snowflake.t/0`) - roles for which this emoji will be whitelisted\n (default: [])\n\n`:name` and `:image` are always required.","ref":"Nostrum.Api.html#create_guild_emoji/3-options"},{"type":"function","title":"Examples - Nostrum.Api.create_guild_emoji/3","doc":"```elixir\nimage = \"data:image/png;base64,YXl5IGJieSB1IGx1a2luIDQgc3VtIGZ1az8=\"\n\nNostrum.Api.create_guild_emoji(43189401384091, name: \"nostrum\", image: image, roles: [])\n```","ref":"Nostrum.Api.html#create_guild_emoji/3-examples"},{"type":"function","title":"Nostrum.Api.create_guild_emoji!/3","doc":"Same as `create_guild_emoji/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#create_guild_emoji!/3"},{"type":"function","title":"Nostrum.Api.create_guild_integrations/2","doc":"Creates a new guild integeration.\n\nGuild to create integration with is specified by `guild_id`.\n\n`options` is a map with the following requires keys:\n * `type` - Integration type.\n * `id` - Integeration id.","ref":"Nostrum.Api.html#create_guild_integrations/2"},{"type":"function","title":"Nostrum.Api.create_guild_role/3","doc":"Creates a guild role.\n\nAn optional reason for the audit log can be provided via `reason`.\n\nThis endpoint requires the `MANAGE_ROLES` permission. It fires a\n`t:Nostrum.Consumer.guild_role_create/0` event.\n\nIf successful, returns `{:ok, role}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#create_guild_role/3"},{"type":"function","title":"Options - Nostrum.Api.create_guild_role/3","doc":"* `:name` (string) - name of the role (default: \"new role\")\n * `:permissions` (integer) - bitwise of the enabled/disabled permissions (default: @everyone perms)\n * `:color` (integer) - RGB color value (default: 0)\n * `:hoist` (boolean) - whether the role should be displayed separately in the sidebar (default: false)\n * `:mentionable` (boolean) - whether the role should be mentionable (default: false)\n * `:icon` (string) - URL role icon (default: `nil`)\n * `:unicode_emoji` (string) - standard unicode character emoji role icon (default: `nil`)","ref":"Nostrum.Api.html#create_guild_role/3-options"},{"type":"function","title":"Examples - Nostrum.Api.create_guild_role/3","doc":"```elixir\nNostrum.Api.create_guild_role(41771983423143937, name: \"nostrum-club\", hoist: true)\n```","ref":"Nostrum.Api.html#create_guild_role/3-examples"},{"type":"function","title":"Nostrum.Api.create_guild_role!/3","doc":"Same as `create_guild_role/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#create_guild_role!/3"},{"type":"function","title":"Nostrum.Api.create_guild_scheduled_event/3","doc":"Creates a new scheduled event for the guild.","ref":"Nostrum.Api.html#create_guild_scheduled_event/3"},{"type":"function","title":"Options - Nostrum.Api.create_guild_scheduled_event/3","doc":"* `:channel_id` - (`t:Nostrum.Snowflake.t/0`) optional channel id for the event\n * `:entity_metadata` - (`t:Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.t/0`) metadata for the event\n * `:name` - (string) required name for the event\n * `:privacy_level` - (integer) at the time of writing, this must always be 2 for `GUILD_ONLY`\n * `:scheduled_start_time` - required time for the event to start as a `DateTime` or (ISO8601 timestamp)[`DateTime.to_iso8601/3`]\n * `:scheduled_end_time` - optional time for the event to end as a `DateTime` or (ISO8601 timestamp)[`DateTime.to_iso8601/3`]\n * `:description` - (string) optional description for the event\n * `:entity_type` - (integer) an integer representing the type of entity the event is for\n * `1` - `STAGE_INSTANCE`\n * `2` - `VOICE`\n * `3` - `EXTERNAL`\n\nSee the (official documentation)[https://discord.com/developers/docs/resources/guild-scheduled-event] for more information.\n\n\nAn optional `reason` can be specified for the audit log.","ref":"Nostrum.Api.html#create_guild_scheduled_event/3-options"},{"type":"function","title":"Nostrum.Api.create_interaction_response/2","doc":"Same as `create_interaction_response/3`, but directly takes the\n`t:Nostrum.Struct.Interaction.t/0` received from the gateway.","ref":"Nostrum.Api.html#create_interaction_response/2"},{"type":"function","title":"Nostrum.Api.create_interaction_response/3","doc":"Create a response to an interaction received from the gateway.","ref":"Nostrum.Api.html#create_interaction_response/3"},{"type":"function","title":"Parameters - Nostrum.Api.create_interaction_response/3","doc":"- `id`: The interaction ID to which the response should be created.\n- `token`: The interaction token.\n- `response`: An [`InteractionResponse`](https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object)\n object. See the linked documentation.","ref":"Nostrum.Api.html#create_interaction_response/3-parameters"},{"type":"function","title":"Attachments - Nostrum.Api.create_interaction_response/3","doc":"To include attachments in the response, you can include a `:files` field in the response.\nThis field expects a list of attachments which can be in either of the following formats:\n- A path to the file to upload.\n- A map with the following fields:\n - `:body` The file contents.\n - `:name` The filename of the file.","ref":"Nostrum.Api.html#create_interaction_response/3-attachments"},{"type":"function","title":"Example - Nostrum.Api.create_interaction_response/3","doc":"```elixir\nresponse = %{\n type: 4,\n data: %{\n content: \"I copy and pasted this code.\"\n }\n}\nNostrum.Api.create_interaction_response(interaction, response)\n```\n\nAs an alternative to passing the interaction ID and token, the\noriginal `t:Nostrum.Struct.Interaction.t/0` can also be passed\ndirectly. See `create_interaction_response/2`.","ref":"Nostrum.Api.html#create_interaction_response/3-example"},{"type":"function","title":"Nostrum.Api.create_interaction_response!/2","doc":"Same as `create_interaction_response/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#create_interaction_response!/2"},{"type":"function","title":"Nostrum.Api.create_interaction_response!/3","doc":"","ref":"Nostrum.Api.html#create_interaction_response!/3"},{"type":"function","title":"Nostrum.Api.create_message/2","doc":"Posts a message to a guild text or DM channel.\n\nThis endpoint requires the `VIEW_CHANNEL` and `SEND_MESSAGES` permissions. It\nmay situationally need the `SEND_MESSAGES_TTS` permission. It fires the\n`t:Nostrum.Consumer.message_create/0` event.\n\nIf `options` is a string, `options` will be used as the message's content.\n\nIf successful, returns `{:ok, message}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#create_message/2"},{"type":"function","title":"Options - Nostrum.Api.create_message/2","doc":"* `:content` (string) - the message contents (up to 2000 characters)\n * `:nonce` (`t:Nostrum.Snowflake.t/0`) - a nonce that can be used for\n optimistic message sending\n * `:tts` (boolean) - true if this is a TTS message\n * `:file` (`t:Path.t/0` | map) - the path of the file being sent, or a map with the following keys\n if sending a binary from memory\n * `:name` (string) - the name of the file\n * `:body` (string) - binary you wish to send\n * `:files` - a list of files where each element is the same format as the `:file` option. If both\n `:file` and `:files` are specified, `:file` will be prepended to the `:files` list.\n * `:embeds` (`t:Nostrum.Struct.Embed.t/0`) - a list of embedded rich content\n * `:allowed_mentions` (`t:allowed_mentions/0`) - see the allowed mentions type documentation\n * `:message_reference` (`map`) - See \"Message references\" below\n * `:poll` (`t:Nostrum.Struct.Message.Poll.t/0`) - A poll object to send with the message\n\n At least one of the following is required: `:content`, `:file`, `:embeds`, `:poll`.","ref":"Nostrum.Api.html#create_message/2-options"},{"type":"function","title":"Message reference - Nostrum.Api.create_message/2","doc":"You can create a reply to another message on guilds using this option, given\nthat you have the ``VIEW_MESSAGE_HISTORY`` permission. To do so, include the\n``message_reference`` field in your call. The complete structure\ndocumentation can be found [on the Discord Developer\nPortal](https://discord.com/developers/docs/resources/channel#message-object-message-reference-structure),\nbut simply passing ``message_id`` will suffice:\n\n```elixir\ndef my_command(msg) do\n # Reply to the author - ``msg`` is a ``Nostrum.Struct.Message``\n Nostrum.Api.create_message(\n msg.channel_id,\n content: \"Hello\",\n message_reference: %{message_id: msg.id}\n )\nend\n```\n\nPassing a list will merge the settings provided","ref":"Nostrum.Api.html#create_message/2-message-reference"},{"type":"function","title":"Examples - Nostrum.Api.create_message/2","doc":"```elixir\nNostrum.Api.create_message(43189401384091, content: \"hello world!\")\n\nNostrum.Api.create_message(43189401384091, \"hello world!\")\n\nimport Nostrum.Struct.Embed\nembed =\n %Nostrum.Struct.Embed{}\n |> put_title(\"embed\")\n |> put_description(\"new desc\")\nNostrum.Api.create_message(43189401384091, embeds: [embed])\n\nNostrum.Api.create_message(43189401384091, file: \"/path/to/file.txt\")\n\nNostrum.Api.create_message(43189401384091, content: \"hello world!\", embeds: [embed], file: \"/path/to/file.txt\")\n\nNostrum.Api.create_message(43189401384091, content: \"Hello @everyone\", allowed_mentions: :none)\n```","ref":"Nostrum.Api.html#create_message/2-examples"},{"type":"function","title":"Nostrum.Api.create_message!/2","doc":"Same as `create_message/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#create_message!/2"},{"type":"function","title":"Nostrum.Api.create_reaction/3","doc":"Creates a reaction for a message.\n\nThis endpoint requires the `VIEW_CHANNEL` and `READ_MESSAGE_HISTORY`\npermissions. Additionally, if nobody else has reacted to the message with\nthe `emoji`, this endpoint requires the `ADD_REACTIONS` permission. It\nfires a `t:Nostrum.Consumer.message_reaction_add/0` event.\n\nIf successful, returns `{:ok}`. Otherwise, returns `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#create_reaction/3"},{"type":"function","title":"Examples - Nostrum.Api.create_reaction/3","doc":"```elixir\n# Using a Nostrum.Struct.Emoji.\nemoji = %Nostrum.Struct.Emoji{id: 43819043108, name: \"foxbot\"}\nNostrum.Api.create_reaction(123123123123, 321321321321, emoji)\n\n# Using a base 16 emoji string.\nNostrum.Api.create_reaction(123123123123, 321321321321, \"\\xF0\\x9F\\x98\\x81\")\n\n```\n\nFor other emoji string examples, see `t:Nostrum.Struct.Emoji.api_name/0`.","ref":"Nostrum.Api.html#create_reaction/3-examples"},{"type":"function","title":"Nostrum.Api.create_reaction!/3","doc":"Same as `create_reaction/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#create_reaction!/3"},{"type":"function","title":"Nostrum.Api.create_webhook/3","doc":"Creates a webhook.","ref":"Nostrum.Api.html#create_webhook/3"},{"type":"function","title":"Parameters - Nostrum.Api.create_webhook/3","doc":"- `channel_id` - Id of the channel to send the message to.\n - `args` - Map with the following **required** keys:\n - `name` - Name of the webhook.\n - `avatar` - Base64 128x128 jpeg image for the default avatar.\n - `reason` - An optional reason for the guild audit log.","ref":"Nostrum.Api.html#create_webhook/3-parameters"},{"type":"function","title":"Nostrum.Api.delete_all_reactions/2","doc":"Deletes all reactions from a message.\n\nThis endpoint requires the `VIEW_CHANNEL`, `READ_MESSAGE_HISTORY`, and\n`MANAGE_MESSAGES` permissions. It fires a `t:Nostrum.Consumer.message_reaction_remove_all/0` event.\n\nIf successful, returns `{:ok}`. Otherwise, return `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#delete_all_reactions/2"},{"type":"function","title":"Nostrum.Api.delete_all_reactions!/2","doc":"Same as `delete_all_reactions/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_all_reactions!/2"},{"type":"function","title":"Nostrum.Api.delete_channel/2","doc":"Deletes a channel.\n\nAn optional `reason` can be provided for the guild audit log.\n\nIf deleting a `t:Nostrum.Struct.Channel.guild_channel/0`, this endpoint requires\nthe `MANAGE_CHANNELS` permission. It fires a\n`t:Nostrum.Consumer.channel_delete/0`. If a `t:Nostrum.Struct.Channel.guild_category_channel/0`\nis deleted, then a `t:Nostrum.Consumer.channel_update/0` event will fire\nfor each channel under the category.\n\nIf successful, returns `{:ok, channel}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#delete_channel/2"},{"type":"function","title":"Examples - Nostrum.Api.delete_channel/2","doc":"```elixir\nNostrum.Api.delete_channel(421533712753360896)\n{:ok, %Nostrum.Struct.Channel{id: 421533712753360896}}\n```","ref":"Nostrum.Api.html#delete_channel/2-examples"},{"type":"function","title":"Nostrum.Api.delete_channel!/2","doc":"Same as `delete_channel/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_channel!/2"},{"type":"function","title":"Nostrum.Api.delete_channel_permissions/3","doc":"Delete a channel permission for a user or role.\n\nRole or user overwrite to delete is specified by `channel_id` and `overwrite_id`.\nAn optional `reason` can be given for the audit log.","ref":"Nostrum.Api.html#delete_channel_permissions/3"},{"type":"function","title":"Nostrum.Api.delete_global_application_command/2","doc":"Delete an existing global application command.","ref":"Nostrum.Api.html#delete_global_application_command/2"},{"type":"function","title":"Parameters - Nostrum.Api.delete_global_application_command/2","doc":"- `application_id`: Application ID for which to create the command.\n If not given, this will be fetched from `Me`.\n- `command_id`: The current snowflake of the command.","ref":"Nostrum.Api.html#delete_global_application_command/2-parameters"},{"type":"function","title":"Nostrum.Api.delete_guild/1","doc":"Deletes a guild.\n\nThis endpoint requires that the current user is the owner of the guild.\nIt fires the `t:Nostrum.Consumer.guild_delete/0` event.\n\nIf successful, returns `{:ok}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#delete_guild/1"},{"type":"function","title":"Examples - Nostrum.Api.delete_guild/1","doc":"```elixir\nNostrum.Api.delete_guild(81384788765712384)\n{:ok}\n```","ref":"Nostrum.Api.html#delete_guild/1-examples"},{"type":"function","title":"Nostrum.Api.delete_guild!/1","doc":"Same as `delete_guild/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_guild!/1"},{"type":"function","title":"Nostrum.Api.delete_guild_application_command/3","doc":"Delete an existing guild application command.","ref":"Nostrum.Api.html#delete_guild_application_command/3"},{"type":"function","title":"Parameters - Nostrum.Api.delete_guild_application_command/3","doc":"- `application_id`: Application ID for which to create the command.\n If not given, this will be fetched from `Me`.\n- `guild_id`: The guild on which the command exists.\n- `command_id`: The current snowflake of the command.","ref":"Nostrum.Api.html#delete_guild_application_command/3-parameters"},{"type":"function","title":"Nostrum.Api.delete_guild_auto_moderation_rule/2","doc":"Delete an auto-moderation rule for a guild.","ref":"Nostrum.Api.html#delete_guild_auto_moderation_rule/2"},{"type":"function","title":"Nostrum.Api.delete_guild_emoji/3","doc":"Deletes the given emoji.\n\nAn optional `reason` can be provided for the audit log.\n\nThis endpoint requires the `MANAGE_EMOJIS` permission. It fires a\n`t:Nostrum.Consumer.guild_emojis_update/0` event.\n\nIf successful, returns `{:ok}`. Otherwise, returns `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#delete_guild_emoji/3"},{"type":"function","title":"Nostrum.Api.delete_guild_emoji!/3","doc":"Same as `delete_guild_emoji/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_guild_emoji!/3"},{"type":"function","title":"Nostrum.Api.delete_guild_integrations/2","doc":"Deletes a guild integeration.\n\nIntegration to delete is specified by `guild_id` and `integeration_id`.","ref":"Nostrum.Api.html#delete_guild_integrations/2"},{"type":"function","title":"Nostrum.Api.delete_guild_role/3","doc":"Deletes a role from a guild.\n\nAn optional `reason` can be specified for the audit log.\n\nThis endpoint requires the `MANAGE_ROLES` permission. It fires a\n`t:Nostrum.Consumer.guild_role_delete/0` event.\n\nIf successful, returns `{:ok}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#delete_guild_role/3"},{"type":"function","title":"Examples - Nostrum.Api.delete_guild_role/3","doc":"```elixir\nNostrum.Api.delete_guild_role(41771983423143937, 392817238471936)\n```","ref":"Nostrum.Api.html#delete_guild_role/3-examples"},{"type":"function","title":"Nostrum.Api.delete_guild_role!/3","doc":"Same as `delete_guild_role/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_guild_role!/3"},{"type":"function","title":"Nostrum.Api.delete_guild_scheduled_event/2","doc":"Delete a scheduled event for a guild.","ref":"Nostrum.Api.html#delete_guild_scheduled_event/2"},{"type":"function","title":"Nostrum.Api.delete_interaction_followup_message/3","doc":"Delete a followup message for an interaction.","ref":"Nostrum.Api.html#delete_interaction_followup_message/3"},{"type":"function","title":"Parameters - Nostrum.Api.delete_interaction_followup_message/3","doc":"- `application_id`: Application ID for which to create the command.\n If not given, this will be fetched from `Me`.\n- `token`: Interaction token.\n- `message_id`: Followup message ID.","ref":"Nostrum.Api.html#delete_interaction_followup_message/3-parameters"},{"type":"function","title":"Nostrum.Api.delete_interaction_followup_message!/3","doc":"Same as `delete_interaction_followup_message/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_interaction_followup_message!/3"},{"type":"function","title":"Nostrum.Api.delete_interaction_response/1","doc":"Same as `delete_interaction_response/3`, but directly takes the\n`t:Nostrum.Struct.Interaction.t/0` received from the gateway.","ref":"Nostrum.Api.html#delete_interaction_response/1"},{"type":"function","title":"Nostrum.Api.delete_interaction_response/2","doc":"Deletes the original interaction response.","ref":"Nostrum.Api.html#delete_interaction_response/2"},{"type":"function","title":"Nostrum.Api.delete_interaction_response!/1","doc":"","ref":"Nostrum.Api.html#delete_interaction_response!/1"},{"type":"function","title":"Nostrum.Api.delete_interaction_response!/2","doc":"Same as `delete_interaction_response/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_interaction_response!/2"},{"type":"function","title":"Nostrum.Api.delete_invite/1","doc":"Deletes an invite by its `invite_code`.\n\nThis endpoint requires the `MANAGE_CHANNELS` permission.\n\nIf successful, returns `{:ok, invite}`. Otherwise, returns a\n`t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#delete_invite/1"},{"type":"function","title":"Examples - Nostrum.Api.delete_invite/1","doc":"```elixir\nNostrum.Api.delete_invite(\"zsjUsC\")\n```","ref":"Nostrum.Api.html#delete_invite/1-examples"},{"type":"function","title":"Nostrum.Api.delete_invite!/1","doc":"Same as `delete_invite/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_invite!/1"},{"type":"function","title":"Nostrum.Api.delete_message/1","doc":"Same as `delete_message/2`, but takes a `Nostrum.Struct.Message` instead of a\n`channel_id` and `message_id`.","ref":"Nostrum.Api.html#delete_message/1"},{"type":"function","title":"Nostrum.Api.delete_message/2","doc":"Deletes a message.\n\nThis endpoint requires the 'VIEW_CHANNEL' and 'MANAGE_MESSAGES' permission. It\nfires the `MESSAGE_DELETE` event.\n\nIf successful, returns `{:ok}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#delete_message/2"},{"type":"function","title":"Examples - Nostrum.Api.delete_message/2","doc":"```elixir\nNostrum.Api.delete_message(43189401384091, 43189401384091)\n```","ref":"Nostrum.Api.html#delete_message/2-examples"},{"type":"function","title":"Nostrum.Api.delete_message!/1","doc":"Same as `delete_message/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_message!/1"},{"type":"function","title":"Nostrum.Api.delete_message!/2","doc":"Same as `delete_message/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_message!/2"},{"type":"function","title":"Nostrum.Api.delete_own_reaction/3","doc":"Deletes a reaction the current user has made for the message.\n\nThis endpoint requires the `VIEW_CHANNEL` and `READ_MESSAGE_HISTORY`\npermissions. It fires a `t:Nostrum.Consumer.message_reaction_remove/0` event.\n\nIf successful, returns `{:ok}`. Otherwise, returns `t:Nostrum.Api.error/0`.\n\nSee `create_reaction/3` for similar examples.","ref":"Nostrum.Api.html#delete_own_reaction/3"},{"type":"function","title":"Nostrum.Api.delete_own_reaction!/3","doc":"Same as `delete_own_reaction/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_own_reaction!/3"},{"type":"function","title":"Nostrum.Api.delete_pinned_channel_message/2","doc":"Unpins a message in a channel.\n\nThis endpoint requires the 'VIEW_CHANNEL', 'READ_MESSAGE_HISTORY', and\n'MANAGE_MESSAGES' permissions. It fires the\n`t:Nostrum.Consumer.message_update/0` and\n`t:Nostrum.Consumer.channel_pins_update/0` events.\n\nReturns `{:ok}` if successful. `error` otherwise.","ref":"Nostrum.Api.html#delete_pinned_channel_message/2"},{"type":"function","title":"Nostrum.Api.delete_pinned_channel_message!/2","doc":"Same as `delete_pinned_channel_message/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_pinned_channel_message!/2"},{"type":"function","title":"Nostrum.Api.delete_reaction/3","doc":"Deletes all reactions of a given emoji from a message.\n\nThis endpoint requires the `MANAGE_MESSAGES` permissions. It fires a `t:Nostrum.Consumer.message_reaction_remove_emoji/0` event.\n\nIf successful, returns `{:ok}`. Otherwise, returns `t:Nostrum.Api.error/0`.\n\nSee `create_reaction/3` for similar examples.","ref":"Nostrum.Api.html#delete_reaction/3"},{"type":"function","title":"Nostrum.Api.delete_reaction!/3","doc":"Same as `delete_reaction/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_reaction!/3"},{"type":"function","title":"Nostrum.Api.delete_user_reaction/4","doc":"Deletes another user's reaction from a message.\n\nThis endpoint requires the `VIEW_CHANNEL`, `READ_MESSAGE_HISTORY`, and\n`MANAGE_MESSAGES` permissions. It fires a `t:Nostrum.Consumer.message_reaction_remove/0` event.\n\nIf successful, returns `{:ok}`. Otherwise, returns `t:Nostrum.Api.error/0`.\n\nSee `create_reaction/3` for similar examples.","ref":"Nostrum.Api.html#delete_user_reaction/4"},{"type":"function","title":"Nostrum.Api.delete_user_reaction!/4","doc":"Same as `delete_user_reaction/4`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#delete_user_reaction!/4"},{"type":"function","title":"Nostrum.Api.delete_webhook/2","doc":"Deletes a webhook.","ref":"Nostrum.Api.html#delete_webhook/2"},{"type":"function","title":"Parameters - Nostrum.Api.delete_webhook/2","doc":"- `webhook_id` - Id of webhook to delete.\n - `reason` - An optional reason for the guild audit log.","ref":"Nostrum.Api.html#delete_webhook/2-parameters"},{"type":"function","title":"Nostrum.Api.edit_application_command_permissions/4","doc":"Edits command permissions for a specific command for your application in a guild. You can only add up to 10 permission overwrites for a command.","ref":"Nostrum.Api.html#edit_application_command_permissions/4"},{"type":"function","title":"Parameters - Nostrum.Api.edit_application_command_permissions/4","doc":"- `application_id`: Application ID commands are registered under.\n If not given, this will be fetched from `Me`.\n- `guild_id`: Guild ID to fetch command permissions from.\n- `command_id`: Command ID to fetch permissions for.\n- `permissions`: List of [application command permissions](https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-structure)","ref":"Nostrum.Api.html#edit_application_command_permissions/4-parameters"},{"type":"function","title":"Return value - Nostrum.Api.edit_application_command_permissions/4","doc":"This method returns a guild application command permission object, see all available values on the [Discord API docs](https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure).","ref":"Nostrum.Api.html#edit_application_command_permissions/4-return-value"},{"type":"function","title":"Nostrum.Api.edit_channel_permissions/4","doc":"Edit the permission overwrites for a user or role.\n\nRole or user to overwrite is specified by `overwrite_id`.\n\n`permission_info` is a map with the following keys:\n * `type` - Required; `member` if editing a user, `role` if editing a role.\n * `allow` - Bitwise value of allowed permissions.\n * `deny` - Bitwise value of denied permissions.\n * `type` - `member` if editing a user, `role` if editing a role.\n\nAn optional `reason` can be provided for the audit log.\n\n `allow` and `deny` are defaulted to `0`, meaning that even if you don't\n specify them, they will override their respective former values in an\n existing overwrite.","ref":"Nostrum.Api.html#edit_channel_permissions/4"},{"type":"function","title":"Nostrum.Api.edit_channel_permissions!/4","doc":"Same as `edit_channel_permissions/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#edit_channel_permissions!/4"},{"type":"function","title":"Nostrum.Api.edit_global_application_command/3","doc":"Update an existing global application command.\n\nThe updated command will be available on all guilds in around an hour.","ref":"Nostrum.Api.html#edit_global_application_command/3"},{"type":"function","title":"Parameters - Nostrum.Api.edit_global_application_command/3","doc":"- `application_id`: Application ID for which to edit the command.\n If not given, this will be fetched from `Me`.\n- `command_id`: The current snowflake of the command.\n- `command`: Command configuration, see the linked API documentation for reference.","ref":"Nostrum.Api.html#edit_global_application_command/3-parameters"},{"type":"function","title":"Return value - Nostrum.Api.edit_global_application_command/3","doc":"The updated command. See the official reference:\nhttps://discord.com/developers/docs/interactions/application-commands#edit-global-application-command","ref":"Nostrum.Api.html#edit_global_application_command/3-return-value"},{"type":"function","title":"Nostrum.Api.edit_guild_application_command/4","doc":"Update an existing guild application command.\n\nThe updated command will be available immediately.","ref":"Nostrum.Api.html#edit_guild_application_command/4"},{"type":"function","title":"Parameters - Nostrum.Api.edit_guild_application_command/4","doc":"- `application_id`: Application ID for which to edit the command.\n If not given, this will be fetched from `Me`.\n- `guild_id`: Guild for which to update the command.\n- `command_id`: The current snowflake of the command.\n- `command`: Command configuration, see the linked API documentation for reference.","ref":"Nostrum.Api.html#edit_guild_application_command/4-parameters"},{"type":"function","title":"Return value - Nostrum.Api.edit_guild_application_command/4","doc":"The updated command. See the official reference:\nhttps://discord.com/developers/docs/interactions/application-commands#edit-guild-application-command","ref":"Nostrum.Api.html#edit_guild_application_command/4-return-value"},{"type":"function","title":"Nostrum.Api.edit_interaction_response/2","doc":"Same as `edit_interaction_response/3`, but directly takes the\n`t:Nostrum.Struct.Interaction.t/0` received from the gateway.","ref":"Nostrum.Api.html#edit_interaction_response/2"},{"type":"function","title":"Nostrum.Api.edit_interaction_response/3","doc":"Edits the original interaction response.\n\nFunctions the same as `edit_webhook_message/3`","ref":"Nostrum.Api.html#edit_interaction_response/3"},{"type":"function","title":"Nostrum.Api.edit_interaction_response!/2","doc":"Same as `edit_interaction_response/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#edit_interaction_response!/2"},{"type":"function","title":"Nostrum.Api.edit_interaction_response!/3","doc":"Same as `edit_interaction_response/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#edit_interaction_response!/3"},{"type":"function","title":"Nostrum.Api.edit_message/2","doc":"Same as `edit_message/3`, but takes a `Nostrum.Struct.Message` instead of a\n`channel_id` and `message_id`.","ref":"Nostrum.Api.html#edit_message/2"},{"type":"function","title":"Nostrum.Api.edit_message/3","doc":"Edits a previously sent message in a channel.\n\nThis endpoint requires the `VIEW_CHANNEL` permission. It fires the\n`t:Nostrum.Consumer.message_update/0` event.\n\nIf `options` is a string, `options` will be used as the message's content.\n\nIf successful, returns `{:ok, message}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#edit_message/3"},{"type":"function","title":"Options - Nostrum.Api.edit_message/3","doc":"* `:content` (string) - the message contents (up to 2000 characters)\n* `:embeds` (`t:Nostrum.Struct.Embed.t/0`) - a list of embedded rich content\n* `:files` - a list of files where each element is the same format as the\n`:file` option. If both `:file` and `:files` are specified, `:file` will be\nprepended to the `:files` list. See `create_message/2` for more information.\n\nNote that if you edit a message with attachments, all attachments that should\nbe present after edit **must** be included in your request body. This\nincludes attachments that were sent in the original request.","ref":"Nostrum.Api.html#edit_message/3-options"},{"type":"function","title":"Examples - Nostrum.Api.edit_message/3","doc":"```elixir\nNostrum.Api.edit_message(43189401384091, 1894013840914098, content: \"hello world!\")\n\nNostrum.Api.edit_message(43189401384091, 1894013840914098, \"hello world!\")\n\nimport Nostrum.Struct.Embed\nembed =\n %Nostrum.Struct.Embed{}\n |> put_title(\"embed\")\n |> put_description(\"new desc\")\nNostrum.Api.edit_message(43189401384091, 1894013840914098, embeds: [embed])\n\nNostrum.Api.edit_message(43189401384091, 1894013840914098, content: \"hello world!\", embeds: [embed])\n```","ref":"Nostrum.Api.html#edit_message/3-examples"},{"type":"function","title":"Nostrum.Api.edit_message!/2","doc":"Same as `edit_message/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#edit_message!/2"},{"type":"function","title":"Nostrum.Api.edit_message!/3","doc":"Same as `edit_message/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#edit_message!/3"},{"type":"function","title":"Nostrum.Api.edit_webhook_message/4","doc":"Edits a message previously created by the same webhook,\nargs are the same as `execute_webhook/3`,\nhowever all fields are optional.","ref":"Nostrum.Api.html#edit_webhook_message/4"},{"type":"function","title":"Nostrum.Api.execute_git_webhook/3","doc":"Executes a git webhook.","ref":"Nostrum.Api.html#execute_git_webhook/3"},{"type":"function","title":"Parameters - Nostrum.Api.execute_git_webhook/3","doc":"- `webhook_id` - Id of the webhook to execute.\n - `webhook_token` - Token of the webhook to execute.","ref":"Nostrum.Api.html#execute_git_webhook/3-parameters"},{"type":"function","title":"Nostrum.Api.execute_slack_webhook/3","doc":"Executes a slack webhook.","ref":"Nostrum.Api.html#execute_slack_webhook/3"},{"type":"function","title":"Parameters - Nostrum.Api.execute_slack_webhook/3","doc":"- `webhook_id` - Id of the webhook to execute.\n - `webhook_token` - Token of the webhook to execute.","ref":"Nostrum.Api.html#execute_slack_webhook/3-parameters"},{"type":"function","title":"Nostrum.Api.execute_webhook/4","doc":"Executes a webhook.","ref":"Nostrum.Api.html#execute_webhook/4"},{"type":"function","title":"Parameters - Nostrum.Api.execute_webhook/4","doc":"- `webhook_id` - Id of the webhook to execute.\n- `webhook_token` - Token of the webhook to execute.\n- `args` - Map with the following allowed keys:\n - `content` - Message content.\n - `files` - List of Files to send.\n - `embeds` - List of embeds to send.\n - `username` - Overrides the default name of the webhook.\n - `avatar_url` - Overrides the default avatar of the webhook.\n - `tts` - Whether the message should be read over text to speech.\n - `flags` - Bitwise flags.\n - `thread_id` - Send a message to the specified thread within the webhook's channel.\n - `allowed_mentions` - Mentions to allow in the webhook message\n- `wait` - Whether to return an error or not. Defaults to `false`.\n\n**Note**: If `wait` is `true`, this method will return a `Message.t()` on success.\n\nAt least one of `content`, `files` or `embeds` should be supplied in the `args` parameter.","ref":"Nostrum.Api.html#execute_webhook/4-parameters"},{"type":"function","title":"Nostrum.Api.expire_poll/2","doc":"Expire (close voting on) a poll before the scheduled end time.\n\nReturns the original message containing the poll.","ref":"Nostrum.Api.html#expire_poll/2"},{"type":"function","title":"Nostrum.Api.expire_poll!/2","doc":"Same as `expire_poll/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#expire_poll!/2"},{"type":"function","title":"Nostrum.Api.get_application_command_permissions/3","doc":"Fetches command permissions for a specific command for your application in a guild.","ref":"Nostrum.Api.html#get_application_command_permissions/3"},{"type":"function","title":"Parameters - Nostrum.Api.get_application_command_permissions/3","doc":"- `application_id`: Application ID commands are registered under.\n If not given, this will be fetched from `Me`.\n- `guild_id`: Guild ID to fetch command permissions from.\n- `command_id`: Command ID to fetch permissions for.","ref":"Nostrum.Api.html#get_application_command_permissions/3-parameters"},{"type":"function","title":"Return value - Nostrum.Api.get_application_command_permissions/3","doc":"This method returns a single guild application command permission object, see all available values on the [Discord API docs](https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure).","ref":"Nostrum.Api.html#get_application_command_permissions/3-return-value"},{"type":"function","title":"Nostrum.Api.get_application_information/0","doc":"Gets the bot's OAuth2 application info.","ref":"Nostrum.Api.html#get_application_information/0"},{"type":"function","title":"Example - Nostrum.Api.get_application_information/0","doc":"```elixir\nNostrum.Api.get_application_information\n{:ok,\n%{\n bot_public: false,\n bot_require_code_grant: false,\n description: \"Test\",\n icon: nil,\n id: \"172150183260323840\",\n name: \"Baba O-Riley\",\n owner: %{\n avatar: nil,\n discriminator: \"0042\",\n id: \"172150183260323840\",\n username: \"i own a bot\"\n },\n}}\n```","ref":"Nostrum.Api.html#get_application_information/0-example"},{"type":"function","title":"Nostrum.Api.get_channel/1","doc":"Gets a channel.\n\nIf successful, returns `{:ok, channel}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_channel/1"},{"type":"function","title":"Examples - Nostrum.Api.get_channel/1","doc":"```elixir\nNostrum.Api.get_channel(381889573426429952)\n{:ok, %Nostrum.Struct.Channel{id: 381889573426429952}}\n```","ref":"Nostrum.Api.html#get_channel/1-examples"},{"type":"function","title":"Nostrum.Api.get_channel!/1","doc":"Same as `get_channel/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_channel!/1"},{"type":"function","title":"Nostrum.Api.get_channel_invites/1","doc":"Gets a list of invites for a channel.\n\nThis endpoint requires the 'VIEW_CHANNEL' and 'MANAGE_CHANNELS' permissions.\n\nIf successful, returns `{:ok, invite}`. Otherwise, returns a\n`t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_channel_invites/1"},{"type":"function","title":"Examples - Nostrum.Api.get_channel_invites/1","doc":"```elixir\nNostrum.Api.get_channel_invites(43189401384091)\n{:ok, [%Nostrum.Struct.Invite{} | _]}\n```","ref":"Nostrum.Api.html#get_channel_invites/1-examples"},{"type":"function","title":"Nostrum.Api.get_channel_invites!/1","doc":"Same as `get_channel_invites/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_channel_invites!/1"},{"type":"function","title":"Nostrum.Api.get_channel_message/2","doc":"Retrieves a message from a channel.\n\nThis endpoint requires the 'VIEW_CHANNEL' and 'READ_MESSAGE_HISTORY' permissions.\n\nIf successful, returns `{:ok, message}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_channel_message/2"},{"type":"function","title":"Examples - Nostrum.Api.get_channel_message/2","doc":"```elixir\nNostrum.Api.get_channel_message(43189401384091, 198238475613443)\n```","ref":"Nostrum.Api.html#get_channel_message/2-examples"},{"type":"function","title":"Nostrum.Api.get_channel_message!/2","doc":"Same as `get_channel_message/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_channel_message!/2"},{"type":"function","title":"Nostrum.Api.get_channel_messages/3","doc":"Retrieves a channel's messages around a `locator` up to a `limit`.\n\nThis endpoint requires the 'VIEW_CHANNEL' permission. If the current user\nis missing the 'READ_MESSAGE_HISTORY' permission, then this function will\nreturn no messages.\n\nIf successful, returns `{:ok, messages}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_channel_messages/3"},{"type":"function","title":"Examples - Nostrum.Api.get_channel_messages/3","doc":"```elixir\nNostrum.Api.get_channel_messages(43189401384091, 5, {:before, 130230401384})\n```","ref":"Nostrum.Api.html#get_channel_messages/3-examples"},{"type":"function","title":"Nostrum.Api.get_channel_messages!/3","doc":"Same as `get_channel_messages/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_channel_messages!/3"},{"type":"function","title":"Nostrum.Api.get_channel_webhooks/1","doc":"Gets a list of webhooks for a channel.","ref":"Nostrum.Api.html#get_channel_webhooks/1"},{"type":"function","title":"Parameters - Nostrum.Api.get_channel_webhooks/1","doc":"- `channel_id` - Channel to get webhooks for.","ref":"Nostrum.Api.html#get_channel_webhooks/1-parameters"},{"type":"function","title":"Nostrum.Api.get_current_user/0","doc":"Gets info on the current user.\n\nIf nostrum's caching is enabled, it is recommended to use `Me.get/0`\ninstead of this function. This is because sending out an API request is much slower\nthan pulling from our cache.\n\nIf the request is successful, this function returns `{:ok, user}`, where\n`user` is nostrum's `Nostrum.Struct.User`. Otherwise, returns `{:error, reason}`.","ref":"Nostrum.Api.html#get_current_user/0"},{"type":"function","title":"Nostrum.Api.get_current_user!/0","doc":"Same as `get_current_user/0`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_current_user!/0"},{"type":"function","title":"Nostrum.Api.get_current_user_guilds/1","doc":"Gets a list of guilds the user is currently in.\n\nThis endpoint requires the `guilds` OAuth2 scope.\n\nIf successful, returns `{:ok, guilds}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_current_user_guilds/1"},{"type":"function","title":"Options - Nostrum.Api.get_current_user_guilds/1","doc":"* `:before` (`t:Nostrum.Snowflake.t/0`) - get guilds before this\n guild ID\n * `:after` (`t:Nostrum.Snowflake.t/0`) - get guilds after this guild\n ID\n * `:limit` (integer) - max number of guilds to return (1-100)","ref":"Nostrum.Api.html#get_current_user_guilds/1-options"},{"type":"function","title":"Examples - Nostrum.Api.get_current_user_guilds/1","doc":"```elixir\niex> Nostrum.Api.get_current_user_guilds(limit: 1)\n{:ok, [%Nostrum.Struct.Guild{}]}\n```","ref":"Nostrum.Api.html#get_current_user_guilds/1-examples"},{"type":"function","title":"Nostrum.Api.get_current_user_guilds!/1","doc":"Same as `get_current_user_guilds/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_current_user_guilds!/1"},{"type":"function","title":"Nostrum.Api.get_global_application_commands/1","doc":"Fetch all global commands.","ref":"Nostrum.Api.html#get_global_application_commands/1"},{"type":"function","title":"Parameters - Nostrum.Api.get_global_application_commands/1","doc":"- `application_id`: Application ID for which to search commands.\n If not given, this will be fetched from `Me`.","ref":"Nostrum.Api.html#get_global_application_commands/1-parameters"},{"type":"function","title":"Return value - Nostrum.Api.get_global_application_commands/1","doc":"A list of ``ApplicationCommand``s on success. See the official reference:\nhttps://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure","ref":"Nostrum.Api.html#get_global_application_commands/1-return-value"},{"type":"function","title":"Example - Nostrum.Api.get_global_application_commands/1","doc":"```elixir\niex> Nostrum.Api.get_global_application_commands\n{:ok,\n [\n %{\n application_id: \"455589479713865749\",\n description: \"ed, man! man, ed\",\n id: \"789841753196331029\",\n name: \"edit\"\n }\n ]}\n```","ref":"Nostrum.Api.html#get_global_application_commands/1-example"},{"type":"function","title":"Nostrum.Api.get_guild/1","doc":"Gets a guild.\n\nIf successful, returns `{:ok, guild}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_guild/1"},{"type":"function","title":"Examples - Nostrum.Api.get_guild/1","doc":"```elixir\nNostrum.Api.get_guild(81384788765712384)\n{:ok, %Nostrum.Struct.Guild{id: 81384788765712384}}\n```","ref":"Nostrum.Api.html#get_guild/1-examples"},{"type":"function","title":"Nostrum.Api.get_guild!/1","doc":"Same as `get_guild/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_guild!/1"},{"type":"function","title":"Nostrum.Api.get_guild_application_command_permissions/2","doc":"Fetches command permissions for all commands for your application in a guild.","ref":"Nostrum.Api.html#get_guild_application_command_permissions/2"},{"type":"function","title":"Parameters - Nostrum.Api.get_guild_application_command_permissions/2","doc":"- `application_id`: Application ID commands are registered under.\n If not given, this will be fetched from `Me`.\n- `guild_id`: Guild ID to fetch command permissions from.","ref":"Nostrum.Api.html#get_guild_application_command_permissions/2-parameters"},{"type":"function","title":"Return value - Nostrum.Api.get_guild_application_command_permissions/2","doc":"This method returns a list of guild application command permission objects, see all available values on the [Discord API docs](https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure).","ref":"Nostrum.Api.html#get_guild_application_command_permissions/2-return-value"},{"type":"function","title":"Nostrum.Api.get_guild_application_commands/2","doc":"Fetch all guild application commands for the given guild.","ref":"Nostrum.Api.html#get_guild_application_commands/2"},{"type":"function","title":"Parameters - Nostrum.Api.get_guild_application_commands/2","doc":"- `application_id`: Application ID for which to fetch commands.\n If not given, this will be fetched from `Me`.\n- `guild_id`: The guild ID for which guild application commands\n should be requested.","ref":"Nostrum.Api.html#get_guild_application_commands/2-parameters"},{"type":"function","title":"Return value - Nostrum.Api.get_guild_application_commands/2","doc":"A list of ``ApplicationCommand``s on success. See the official reference:\nhttps://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure","ref":"Nostrum.Api.html#get_guild_application_commands/2-return-value"},{"type":"function","title":"Nostrum.Api.get_guild_audit_log/2","doc":"Get the `t:Nostrum.Struct.Guild.AuditLog.t/0` for the given `guild_id`.","ref":"Nostrum.Api.html#get_guild_audit_log/2"},{"type":"function","title":"Options - Nostrum.Api.get_guild_audit_log/2","doc":"* `:user_id` (`t:Nostrum.Struct.User.id/0`) - filter the log for a user ID\n * `:action_type` (`t:integer/0`) - filter the log by audit log type, see [Audit Log Events](https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events)\n * `:before` (`t:Nostrum.Struct.Snowflake.t/0`) - filter the log before a certain entry ID\n * `:limit` (`t:pos_integer/0`) - how many entries are returned (default 50, minimum 1, maximum 100)","ref":"Nostrum.Api.html#get_guild_audit_log/2-options"},{"type":"function","title":"Nostrum.Api.get_guild_auto_moderation_rule/2","doc":"Get a single auto-moderation rule for a guild.","ref":"Nostrum.Api.html#get_guild_auto_moderation_rule/2"},{"type":"function","title":"Nostrum.Api.get_guild_auto_moderation_rules/1","doc":"Get a list of all auto-moderation rules for a guild.","ref":"Nostrum.Api.html#get_guild_auto_moderation_rules/1"},{"type":"function","title":"Nostrum.Api.get_guild_ban/2","doc":"Gets a ban object for the given user from a guild.","ref":"Nostrum.Api.html#get_guild_ban/2"},{"type":"function","title":"Nostrum.Api.get_guild_bans/1","doc":"Gets a list of users banned from a guild.\n\nGuild to get bans for is specified by `guild_id`.","ref":"Nostrum.Api.html#get_guild_bans/1"},{"type":"function","title":"Nostrum.Api.get_guild_channels/1","doc":"Gets a list of guild channels.\n\nIf successful, returns `{:ok, channels}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_guild_channels/1"},{"type":"function","title":"Examples - Nostrum.Api.get_guild_channels/1","doc":"```elixir\nNostrum.Api.get_guild_channels(81384788765712384)\n{:ok, [%Nostrum.Struct.Channel{guild_id: 81384788765712384} | _]}\n```","ref":"Nostrum.Api.html#get_guild_channels/1-examples"},{"type":"function","title":"Nostrum.Api.get_guild_channels!/1","doc":"Same as `get_guild_channels/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_guild_channels!/1"},{"type":"function","title":"Nostrum.Api.get_guild_emoji/2","doc":"Gets an emoji for the given guild and emoji ids.\n\nThis endpoint requires the `MANAGE_EMOJIS` permission.\n\nIf successful, returns `{:ok, emoji}`. Otherwise, returns `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_guild_emoji/2"},{"type":"function","title":"Nostrum.Api.get_guild_emoji!/2","doc":"Same as `get_guild_emoji/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_guild_emoji!/2"},{"type":"function","title":"Nostrum.Api.get_guild_integrations/1","doc":"Gets a list of guild integerations.\n\nGuild to get integrations for is specified by `guild_id`.","ref":"Nostrum.Api.html#get_guild_integrations/1"},{"type":"function","title":"Nostrum.Api.get_guild_invites/1","doc":"Gets a list of invites for a guild.\n\nThis endpoint requires the `MANAGE_GUILD` permission.\n\nIf successful, returns `{:ok, invites}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_guild_invites/1"},{"type":"function","title":"Examples - Nostrum.Api.get_guild_invites/1","doc":"```elixir\nNostrum.Api.get_guild_invites(81384788765712384)\n{:ok, [%Nostrum.Struct.Invite{} | _]}\n```","ref":"Nostrum.Api.html#get_guild_invites/1-examples"},{"type":"function","title":"Nostrum.Api.get_guild_invites!/1","doc":"Same as `get_guild_invites/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_guild_invites!/1"},{"type":"function","title":"Nostrum.Api.get_guild_member/2","doc":"Gets a guild member.\n\nIf successful, returns `{:ok, member}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_guild_member/2"},{"type":"function","title":"Examples - Nostrum.Api.get_guild_member/2","doc":"```elixir\nNostrum.Api.get_guild_member(4019283754613, 184937267485)\n```","ref":"Nostrum.Api.html#get_guild_member/2-examples"},{"type":"function","title":"Nostrum.Api.get_guild_member!/2","doc":"Same as `get_guild_member/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_guild_member!/2"},{"type":"function","title":"Nostrum.Api.get_guild_prune_count/2","doc":"Gets the number of members that would be removed in a prune given `days`.\n\nThis endpoint requires the `KICK_MEMBERS` permission.\n\nIf successful, returns `{:ok, %{pruned: pruned}}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_guild_prune_count/2"},{"type":"function","title":"Examples - Nostrum.Api.get_guild_prune_count/2","doc":"```elixir\nNostrum.Api.get_guild_prune_count(81384788765712384, 1)\n{:ok, %{pruned: 0}}\n```","ref":"Nostrum.Api.html#get_guild_prune_count/2-examples"},{"type":"function","title":"Nostrum.Api.get_guild_prune_count!/2","doc":"Same as `get_guild_prune_count/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_guild_prune_count!/2"},{"type":"function","title":"Nostrum.Api.get_guild_roles/1","doc":"Gets a guild's roles.\n\nIf successful, returns `{:ok, roles}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_guild_roles/1"},{"type":"function","title":"Examples - Nostrum.Api.get_guild_roles/1","doc":"```elixir\nNostrum.Api.get_guild_roles(147362948571673)\n```","ref":"Nostrum.Api.html#get_guild_roles/1-examples"},{"type":"function","title":"Nostrum.Api.get_guild_roles!/1","doc":"Same as `get_guild_roles/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_guild_roles!/1"},{"type":"function","title":"Nostrum.Api.get_guild_scheduled_event/2","doc":"Get a scheduled event for a guild.","ref":"Nostrum.Api.html#get_guild_scheduled_event/2"},{"type":"function","title":"Nostrum.Api.get_guild_scheduled_event_users/3","doc":"Get a list of users who have subscribed to an event.","ref":"Nostrum.Api.html#get_guild_scheduled_event_users/3"},{"type":"function","title":"Options - Nostrum.Api.get_guild_scheduled_event_users/3","doc":"All are optional, with their default values listed.\n* `:limit` (integer) maximum number of users to return, defaults to `100`\n* `:with_member` (boolean) whether to include the member object for each user, defaults to `false`\n* `:before` (`t:Nostrum.Snowflake.t/0`) return only users before this user id, defaults to `nil`\n* `:after` (`t:Nostrum.Snowflake.t/0`) return only users after this user id, defaults to `nil`","ref":"Nostrum.Api.html#get_guild_scheduled_event_users/3-options"},{"type":"function","title":"Nostrum.Api.get_guild_scheduled_events/1","doc":"Get a list of scheduled events for a guild.","ref":"Nostrum.Api.html#get_guild_scheduled_events/1"},{"type":"function","title":"Nostrum.Api.get_guild_webhooks/1","doc":"Gets a list of webhooks for a guild.","ref":"Nostrum.Api.html#get_guild_webhooks/1"},{"type":"function","title":"Parameters - Nostrum.Api.get_guild_webhooks/1","doc":"- `guild_id` - Guild to get webhooks for.","ref":"Nostrum.Api.html#get_guild_webhooks/1-parameters"},{"type":"function","title":"Nostrum.Api.get_guild_widget/1","doc":"Gets a guild embed.","ref":"Nostrum.Api.html#get_guild_widget/1"},{"type":"function","title":"Nostrum.Api.get_invite/2","doc":"Gets an invite by its `invite_code`.\n\nIf successful, returns `{:ok, invite}`. Otherwise, returns a\n`t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_invite/2"},{"type":"function","title":"Options - Nostrum.Api.get_invite/2","doc":"* `:with_counts` (boolean) - whether to include member count fields","ref":"Nostrum.Api.html#get_invite/2-options"},{"type":"function","title":"Examples - Nostrum.Api.get_invite/2","doc":"```elixir\nNostrum.Api.get_invite(\"zsjUsC\")\n\nNostrum.Api.get_invite(\"zsjUsC\", with_counts: true)\n```","ref":"Nostrum.Api.html#get_invite/2-examples"},{"type":"function","title":"Nostrum.Api.get_invite!/2","doc":"Same as `get_invite/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_invite!/2"},{"type":"function","title":"Nostrum.Api.get_original_interaction_response/1","doc":"Retrieves the original message of an interaction.","ref":"Nostrum.Api.html#get_original_interaction_response/1"},{"type":"function","title":"Nostrum.Api.get_pinned_messages/1","doc":"Retrieves all pinned messages from a channel.\n\nThis endpoint requires the 'VIEW_CHANNEL' and 'READ_MESSAGE_HISTORY' permissions.\n\nIf successful, returns `{:ok, messages}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_pinned_messages/1"},{"type":"function","title":"Examples - Nostrum.Api.get_pinned_messages/1","doc":"```elixir\nNostrum.Api.get_pinned_messages(43189401384091)\n```","ref":"Nostrum.Api.html#get_pinned_messages/1-examples"},{"type":"function","title":"Nostrum.Api.get_pinned_messages!/1","doc":"Same as `get_pinned_messages/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_pinned_messages!/1"},{"type":"function","title":"Nostrum.Api.get_poll_answer_voters/4","doc":"Get voters for the provided answer on the poll attached to the provided message.\n\nIf successful, returns `{:ok, users}`. Otherwise, returns `t:Nostrum.Api.error/0`.\n\nThe optional `params` are `after`, the user ID to query after, absent by default,\nand `limit`, the max number of users to return, 1-100, 25 by default. Results are\nsorted by Discord user snowflake (ID) in ascending order.","ref":"Nostrum.Api.html#get_poll_answer_voters/4"},{"type":"function","title":"Nostrum.Api.get_poll_answer_voters!/4","doc":"Same as `get_poll_answer_voters/4`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_poll_answer_voters!/4"},{"type":"function","title":"Nostrum.Api.get_reactions/4","doc":"Gets all users who reacted with an emoji.\n\nThis endpoint requires the `VIEW_CHANNEL` and `READ_MESSAGE_HISTORY` permissions.\n\nIf successful, returns `{:ok, users}`. Otherwise, returns `t:Nostrum.Api.error/0`.\n\nThe optional `params` are `after`, the user ID to query after, absent by default,\nand `limit`, the max number of users to return, 1-100, 25 by default.\n\nSee `create_reaction/3` for similar examples.","ref":"Nostrum.Api.html#get_reactions/4"},{"type":"function","title":"Nostrum.Api.get_reactions!/4","doc":"Same as `get_reactions/4`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_reactions!/4"},{"type":"function","title":"Nostrum.Api.get_thread_member/2","doc":"Returns a thread member object for the specified user if they are a member of the thread","ref":"Nostrum.Api.html#get_thread_member/2"},{"type":"function","title":"Nostrum.Api.get_thread_members/1","doc":"Returns a list of thread members for the specified thread.\n\nThis endpoint is restricted according to whether the `GUILD_MEMBERS` privileged intent is enabled.","ref":"Nostrum.Api.html#get_thread_members/1"},{"type":"function","title":"Nostrum.Api.get_token/0","doc":"Returns the token of the bot.","ref":"Nostrum.Api.html#get_token/0"},{"type":"function","title":"Nostrum.Api.get_user/1","doc":"Gets a user by its `t:Nostrum.Struct.User.id/0`.\n\nIf the request is successful, this function returns `{:ok, user}`, where\n`user` is a `Nostrum.Struct.User`. Otherwise, returns `{:error, reason}`.","ref":"Nostrum.Api.html#get_user/1"},{"type":"function","title":"Nostrum.Api.get_user!/1","doc":"Same as `get_user/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_user!/1"},{"type":"function","title":"Nostrum.Api.get_user_connections/0","doc":"Gets a list of user connections.","ref":"Nostrum.Api.html#get_user_connections/0"},{"type":"function","title":"Nostrum.Api.get_user_dms/0","doc":"Gets a list of our user's DM channels.\n\nIf successful, returns `{:ok, dm_channels}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#get_user_dms/0"},{"type":"function","title":"Examples - Nostrum.Api.get_user_dms/0","doc":"```elixir\nNostrum.Api.get_user_dms()\n{:ok, [%Nostrum.Struct.Channel{type: 1} | _]}\n```","ref":"Nostrum.Api.html#get_user_dms/0-examples"},{"type":"function","title":"Nostrum.Api.get_user_dms!/0","doc":"Same as `get_user_dms/0`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#get_user_dms!/0"},{"type":"function","title":"Nostrum.Api.get_voice_region/1","doc":"Gets a list of voice regions for the guild.\n\nGuild to get voice regions for is specified by `guild_id`.","ref":"Nostrum.Api.html#get_voice_region/1"},{"type":"function","title":"Nostrum.Api.get_webhook/1","doc":"Gets a webhook by id.","ref":"Nostrum.Api.html#get_webhook/1"},{"type":"function","title":"Parameters - Nostrum.Api.get_webhook/1","doc":"- `webhook_id` - Id of the webhook to get.","ref":"Nostrum.Api.html#get_webhook/1-parameters"},{"type":"function","title":"Nostrum.Api.get_webhook_message/2","doc":"Retrieves the original message of a webhook.","ref":"Nostrum.Api.html#get_webhook_message/2"},{"type":"function","title":"Nostrum.Api.get_webhook_with_token/2","doc":"Gets a webhook by id and token.\n\nThis method is exactly like `get_webhook/1` but does not require\nauthentication.","ref":"Nostrum.Api.html#get_webhook_with_token/2"},{"type":"function","title":"Parameters - Nostrum.Api.get_webhook_with_token/2","doc":"- `webhook_id` - Id of the webhook to get.\n - `webhook_token` - Token of the webhook to get.","ref":"Nostrum.Api.html#get_webhook_with_token/2-parameters"},{"type":"function","title":"Nostrum.Api.join_thread/1","doc":"Join an existing thread, requires that the thread is not archived.","ref":"Nostrum.Api.html#join_thread/1"},{"type":"function","title":"Nostrum.Api.leave_guild/1","doc":"Leaves a guild.\n\nGuild to leave is specified by `guild_id`.","ref":"Nostrum.Api.html#leave_guild/1"},{"type":"function","title":"Nostrum.Api.leave_thread/1","doc":"Leave a thread, requires that the thread is not archived.","ref":"Nostrum.Api.html#leave_thread/1"},{"type":"function","title":"Nostrum.Api.list_guild_emojis/1","doc":"Gets a list of emojis for a given guild.\n\nThis endpoint requires the `MANAGE_EMOJIS` permission.\n\nIf successful, returns `{:ok, emojis}`. Otherwise, returns `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#list_guild_emojis/1"},{"type":"function","title":"Nostrum.Api.list_guild_emojis!/1","doc":"Same as `list_guild_emojis/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#list_guild_emojis!/1"},{"type":"function","title":"Nostrum.Api.list_guild_members/2","doc":"Gets a list of a guild's members.\n\nIf successful, returns `{:ok, members}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#list_guild_members/2"},{"type":"function","title":"Options - Nostrum.Api.list_guild_members/2","doc":"* `:limit` (integer) - max number of members to return (1-1000) (default: 1)\n * `:after` (`t:Nostrum.Struct.User.id/0`) - the highest user id in the previous page (default: 0)","ref":"Nostrum.Api.html#list_guild_members/2-options"},{"type":"function","title":"Examples - Nostrum.Api.list_guild_members/2","doc":"```elixir\nNostrum.Api.list_guild_members(41771983423143937, limit: 1)\n```","ref":"Nostrum.Api.html#list_guild_members/2-examples"},{"type":"function","title":"Nostrum.Api.list_guild_members!/2","doc":"Same as `list_guild_members/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#list_guild_members!/2"},{"type":"function","title":"Nostrum.Api.list_guild_threads/1","doc":"Return all active threads for the current guild.\n\nResponse body is a map with the following keys:\n- `threads`: A list of channel objects.\n- `members`: A list of `ThreadMember` objects, one for each returned thread the current user has joined.","ref":"Nostrum.Api.html#list_guild_threads/1"},{"type":"function","title":"Nostrum.Api.list_joined_private_archived_threads/2","doc":"Same as `list_public_archived_threads/2`, but only returns private threads that the current user has joined.","ref":"Nostrum.Api.html#list_joined_private_archived_threads/2"},{"type":"function","title":"Nostrum.Api.list_private_archived_threads/2","doc":"Same as `list_public_archived_threads/2`, but for private threads instead of public.","ref":"Nostrum.Api.html#list_private_archived_threads/2"},{"type":"function","title":"Nostrum.Api.list_public_archived_threads/2","doc":"Returns a list of archived threads for a given channel.\n\nThreads are sorted by the `archive_timestamp` field, in descending order.","ref":"Nostrum.Api.html#list_public_archived_threads/2"},{"type":"function","title":"Response body - Nostrum.Api.list_public_archived_threads/2","doc":"Response body is a map with the following keys:\n- `threads`: A list of channel objects.\n- `members`: A list of `ThreadMember` objects, one for each returned thread the current user has joined.\n- `has_more`: A boolean indicating whether there are more archived threads that can be fetched.","ref":"Nostrum.Api.html#list_public_archived_threads/2-response-body"},{"type":"function","title":"Options - Nostrum.Api.list_public_archived_threads/2","doc":"- `before`: Returns threads before this timestamp, can be either a `DateTime` or [ISO8601 timestamp](`DateTime.to_iso8601/3`).\n- `limit`: Optional maximum number of threads to return.","ref":"Nostrum.Api.html#list_public_archived_threads/2-options"},{"type":"function","title":"Nostrum.Api.list_voice_regions/0","doc":"Gets a list of voice regions.","ref":"Nostrum.Api.html#list_voice_regions/0"},{"type":"function","title":"Nostrum.Api.modify_channel/3","doc":"Modifies a channel's settings.\n\nAn optional `reason` can be given for the guild audit log.\n\nIf a `t:Nostrum.Struct.Channel.guild_channel/0` is being modified, this\nendpoint requires the `MANAGE_CHANNEL` permission. It fires a\n`t:Nostrum.Consumer.channel_update/0` event. If a\n`t:Nostrum.Struct.Channel.guild_category_channel/0` is being modified, then this\nendpoint fires multiple `t:Nostrum.Consumer.channel_update/0` events.\n\nIf successful, returns `{:ok, channel}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#modify_channel/3"},{"type":"function","title":"Options - Nostrum.Api.modify_channel/3","doc":"* `:name` (string) - 2-100 character channel name\n * `:position` (integer) - the position of the channel in the left-hand listing\n * `:topic` (string) (`t:Nostrum.Struct.Channel.text_channel/0` only) -\n 0-1024 character channel topic\n * `:nsfw` (boolean) (`t:Nostrum.Struct.Channel.text_channel/0` only) -\n if the channel is nsfw\n * `:bitrate` (integer) (`t:Nostrum.Struct.Channel.voice_channel/0` only) -\n the bitrate (in bits) of the voice channel; 8000 to 96000 (128000 for VIP servers)\n * `:user_limit` (integer) (`t:Nostrum.Struct.Channel.voice_channel/0` only) -\n the user limit of the voice channel; 0 refers to no limit, 1 to 99 refers to a user limit\n * `:permission_overwrites` (list of `t:Nostrum.Struct.Overwrite.t/0` or equivalent map) -\n channel or category-specific permissions\n * `:parent_id` (`t:Nostrum.Struct.Channel.id/0`) (`t:Nostrum.Struct.Channel.guild_channel/0` only) -\n id of the new parent category for a channel","ref":"Nostrum.Api.html#modify_channel/3-options"},{"type":"function","title":"Examples - Nostrum.Api.modify_channel/3","doc":"```elixir\nNostrum.Api.modify_channel(41771983423143933, name: \"elixir-nostrum\", topic: \"nostrum discussion\")\n{:ok, %Nostrum.Struct.Channel{id: 41771983423143933, name: \"elixir-nostrum\", topic: \"nostrum discussion\"}}\n\nNostrum.Api.modify_channel(41771983423143933)\n{:ok, %Nostrum.Struct.Channel{id: 41771983423143933}}\n```","ref":"Nostrum.Api.html#modify_channel/3-examples"},{"type":"function","title":"Nostrum.Api.modify_channel!/3","doc":"Same as `modify_channel/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#modify_channel!/3"},{"type":"function","title":"Nostrum.Api.modify_current_user/1","doc":"Changes the username or avatar of the current user.","ref":"Nostrum.Api.html#modify_current_user/1"},{"type":"function","title":"Options - Nostrum.Api.modify_current_user/1","doc":"* `:username` (string) - new username\n * `:avatar` (string) - the user's avatar as [avatar data](https://discord.com/developers/docs/resources/user#avatar-data)","ref":"Nostrum.Api.html#modify_current_user/1-options"},{"type":"function","title":"Examples - Nostrum.Api.modify_current_user/1","doc":"```elixir\nNostrum.Api.modify_current_user(avatar: \"data:image/jpeg;base64,YXl5IGJieSB1IGx1a2luIDQgc3VtIGZ1az8=\")\n```","ref":"Nostrum.Api.html#modify_current_user/1-examples"},{"type":"function","title":"Nostrum.Api.modify_current_user!/1","doc":"Same as `modify_current_user/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#modify_current_user!/1"},{"type":"function","title":"Nostrum.Api.modify_current_user_nick/2","doc":"Modifies the nickname of the current user in a guild.\n\nIf successful, returns `{:ok, %{nick: nick}}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#modify_current_user_nick/2"},{"type":"function","title":"Options - Nostrum.Api.modify_current_user_nick/2","doc":"* `:nick` (string) - value to set users nickname to","ref":"Nostrum.Api.html#modify_current_user_nick/2-options"},{"type":"function","title":"Examples - Nostrum.Api.modify_current_user_nick/2","doc":"```elixir\nNostrum.Api.modify_current_user_nick(41771983423143937, nick: \"Nostrum\")\n{:ok, %{nick: \"Nostrum\"}}\n```","ref":"Nostrum.Api.html#modify_current_user_nick/2-examples"},{"type":"function","title":"Nostrum.Api.modify_current_user_nick!/2","doc":"Same as `modify_current_user_nick/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#modify_current_user_nick!/2"},{"type":"function","title":"Nostrum.Api.modify_guild/3","doc":"Modifies a guild's settings.\n\nThis endpoint requires the `MANAGE_GUILD` permission. It fires the\n`t:Nostrum.Consumer.guild_update/0` event.\n\nAn optional `reason` can be provided for the audit log.\n\nIf successful, returns `{:ok, guild}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#modify_guild/3"},{"type":"function","title":"Options - Nostrum.Api.modify_guild/3","doc":"* `:name` (string) - guild name\n * `:region` (string) - guild voice region id\n * `:verification_level` (integer) - verification level\n * `:default_message_notifications` (integer) - default message\n notification level\n * `:explicit_content_filter` (integer) - explicit content filter level\n * `:afk_channel_id` (`t:Nostrum.Snowflake.t/0`) - id for afk channel\n * `:afk_timeout` (integer) - afk timeout in seconds\n * `:icon` (base64 data URI) - 128x128 jpeg image for the guild icon\n * `:owner_id` (`t:Nostrum.Snowflake.t/0`) - user id to transfer\n guild ownership to (must be owner)\n * `:splash` (base64 data URI) - 128x128 jpeg image for the guild splash\n (VIP only)\n * `:system_channel_id` (`t:Nostrum.Snowflake.t/0`) - the id of the\n channel to which system messages are sent\n * `:rules_channel_id` (`t:Nostrum.Snowflake.t/0`) - the id of the channel that\n is used for rules in public guilds\n * `:public_updates_channel_id` (`t:Nostrum.Snowflake.t/0`) - the id of the channel\n where admins and moderators receive notices from Discord in public guilds","ref":"Nostrum.Api.html#modify_guild/3-options"},{"type":"function","title":"Examples - Nostrum.Api.modify_guild/3","doc":"```elixir\nNostrum.Api.modify_guild(451824027976073216, name: \"Nose Drum\")\n{:ok, %Nostrum.Struct.Guild{id: 451824027976073216, name: \"Nose Drum\", ...}}\n```","ref":"Nostrum.Api.html#modify_guild/3-examples"},{"type":"function","title":"Nostrum.Api.modify_guild!/2","doc":"Same as `modify_guild/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#modify_guild!/2"},{"type":"function","title":"Nostrum.Api.modify_guild_auto_moderation_rule/3","doc":"Modify an auto-moderation rule for a guild.\n\nTakes the same options as `create_guild_auto_moderation_rule/2`, however all fields are optional.","ref":"Nostrum.Api.html#modify_guild_auto_moderation_rule/3"},{"type":"function","title":"Nostrum.Api.modify_guild_channel_positions/2","doc":"Reorders a guild's channels.\n\nThis endpoint requires the `MANAGE_CHANNELS` permission. It fires multiple\n`t:Nostrum.Consumer.channel_update/0` events.\n\nIf successful, returns `{:ok, channels}`. Otherwise, returns a `t:Nostrum.Api.error/0`.\n\n`positions` is a list of maps that each map a channel id with a position.","ref":"Nostrum.Api.html#modify_guild_channel_positions/2"},{"type":"function","title":"Examples - Nostrum.Api.modify_guild_channel_positions/2","doc":"```elixir\nNostrum.Api.modify_guild_channel_positions(279093381723062272, [%{id: 351500354581692420, position: 2}])\n{:ok}\n```","ref":"Nostrum.Api.html#modify_guild_channel_positions/2-examples"},{"type":"function","title":"Nostrum.Api.modify_guild_channel_positions!/2","doc":"Same as `modify_guild_channel_positions/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#modify_guild_channel_positions!/2"},{"type":"function","title":"Nostrum.Api.modify_guild_emoji/4","doc":"Modify the given emoji.\n\nThis endpoint requires the `MANAGE_EMOJIS` permission. It fires a\n`t:Nostrum.Consumer.guild_emojis_update/0` event.\n\nAn optional `reason` can be provided for the audit log.\n\nIf successful, returns `{:ok, emoji}`. Otherwise, returns `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#modify_guild_emoji/4"},{"type":"function","title":"Options - Nostrum.Api.modify_guild_emoji/4","doc":"* `:name` (string) - name of the emoji\n * `:roles` (list of `t:Nostrum.Snowflake.t/0`) - roles to which this emoji will be whitelisted","ref":"Nostrum.Api.html#modify_guild_emoji/4-options"},{"type":"function","title":"Examples - Nostrum.Api.modify_guild_emoji/4","doc":"```elixir\nNostrum.Api.modify_guild_emoji(43189401384091, 4314301984301, name: \"elixir\", roles: [])\n```","ref":"Nostrum.Api.html#modify_guild_emoji/4-examples"},{"type":"function","title":"Nostrum.Api.modify_guild_emoji!/4","doc":"Same as `modify_guild_emoji/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#modify_guild_emoji!/4"},{"type":"function","title":"Nostrum.Api.modify_guild_integrations/3","doc":"Changes the settings and behaviours for a guild integeration.\n\nIntegration to modify is specified by `guild_id` and `integeration_id`.\n\n`options` is a map with the following keys:\n * `expire_behavior` - Expiry behavior.\n * `expire_grace_period` - Period where the integration will ignore elapsed subs.\n * `enable_emoticons` - Whether emoticons should be synced.","ref":"Nostrum.Api.html#modify_guild_integrations/3"},{"type":"function","title":"Nostrum.Api.modify_guild_member/4","doc":"Modifies a guild member's attributes.\n\nThis endpoint fires the `t:Nostrum.Consumer.guild_member_update/0` event.\nIt situationally requires the `MANAGE_NICKNAMES`, `MANAGE_ROLES`,\n`MUTE_MEMBERS`, `DEAFEN_MEMBERS`, and `MOVE_MEMBERS` permissions.\n\nIf successful, returns `{:ok, member}`. Otherwise, returns a `t:Nostrum.Api.error/0`.\n\nAn optional `reason` argument can be given for the audit log.","ref":"Nostrum.Api.html#modify_guild_member/4"},{"type":"function","title":"Options - Nostrum.Api.modify_guild_member/4","doc":"* `:nick` (string) - value to set users nickname to\n * `:roles` (list of `t:Nostrum.Snowflake.t/0`) - array of role ids the member is assigned\n * `:mute` (boolean) - if the user is muted\n * `:deaf` (boolean) - if the user is deafened\n * `:channel_id` (`t:Nostrum.Snowflake.t/0`) - id of channel to move user to (if they are connected to voice)\n * `:communication_disabled_until` (`t:DateTime.t/0` or `nil`) - datetime to disable user communication (timeout) until, or `nil` to remove timeout.","ref":"Nostrum.Api.html#modify_guild_member/4-options"},{"type":"function","title":"Examples - Nostrum.Api.modify_guild_member/4","doc":"```elixir\nNostrum.Api.modify_guild_member(41771983423143937, 637162356451, nick: \"Nostrum\")\n{:ok, %Nostrum.Struct.Member{}}\n```","ref":"Nostrum.Api.html#modify_guild_member/4-examples"},{"type":"function","title":"Nostrum.Api.modify_guild_member!/4","doc":"Same as `modify_guild_member/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#modify_guild_member!/4"},{"type":"function","title":"Nostrum.Api.modify_guild_role/4","doc":"Modifies a guild role.\n\nThis endpoint requires the `MANAGE_ROLES` permission. It fires a\n`t:Nostrum.Consumer.guild_role_update/0` event.\n\nAn optional `reason` can be specified for the audit log.\n\nIf successful, returns `{:ok, role}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#modify_guild_role/4"},{"type":"function","title":"Options - Nostrum.Api.modify_guild_role/4","doc":"* `:name` (string) - name of the role\n * `:permissions` (integer) - bitwise of the enabled/disabled permissions\n * `:color` (integer) - RGB color value (default: 0)\n * `:hoist` (boolean) - whether the role should be displayed separately in the sidebar\n * `:mentionable` (boolean) - whether the role should be mentionable","ref":"Nostrum.Api.html#modify_guild_role/4-options"},{"type":"function","title":"Examples - Nostrum.Api.modify_guild_role/4","doc":"```elixir\nNostrum.Api.modify_guild_role(41771983423143937, 392817238471936, hoist: false, name: \"foo-bar\")\n```","ref":"Nostrum.Api.html#modify_guild_role/4-examples"},{"type":"function","title":"Nostrum.Api.modify_guild_role!/4","doc":"Same as `modify_guild_role/3`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#modify_guild_role!/4"},{"type":"function","title":"Nostrum.Api.modify_guild_role_positions/3","doc":"Reorders a guild's roles.\n\nThis endpoint requires the `MANAGE_ROLES` permission. It fires multiple\n`t:Nostrum.Consumer.guild_role_update/0` events.\n\nIf successful, returns `{:ok, roles}`. Otherwise, returns a `t:Nostrum.Api.error/0`.\n\n`positions` is a list of maps that each map a role id with a position.","ref":"Nostrum.Api.html#modify_guild_role_positions/3"},{"type":"function","title":"Examples - Nostrum.Api.modify_guild_role_positions/3","doc":"```elixir\nNostrum.Api.modify_guild_role_positions(41771983423143937, [%{id: 41771983423143936, position: 2}])\n```","ref":"Nostrum.Api.html#modify_guild_role_positions/3-examples"},{"type":"function","title":"Nostrum.Api.modify_guild_role_positions!/3","doc":"Same as `modify_guild_role_positions/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#modify_guild_role_positions!/3"},{"type":"function","title":"Nostrum.Api.modify_guild_scheduled_event/4","doc":"Modify a scheduled event for a guild.\n\nOptions are the same as for `create_guild_scheduled_event/2` except all fields are optional,\nwith the additional optional integer field `:status` which can be one of:\n\n * `1` - `SCHEDULED`\n * `2` - `ACTIVE`\n * `3` - `COMPLETED`\n * `4` - `CANCELLED`\n\nCopied from the official documentation:\n* If updating entity_type to `EXTERNAL`:\n * `channel_id` is required and must be set to null\n * `entity_metadata` with a `location` field must be provided\n * `scheduled_end_time` must be provided","ref":"Nostrum.Api.html#modify_guild_scheduled_event/4"},{"type":"function","title":"Nostrum.Api.modify_guild_widget/2","doc":"Modifies a guild embed.","ref":"Nostrum.Api.html#modify_guild_widget/2"},{"type":"function","title":"Nostrum.Api.modify_webhook/3","doc":"Modifies a webhook.","ref":"Nostrum.Api.html#modify_webhook/3"},{"type":"function","title":"Parameters - Nostrum.Api.modify_webhook/3","doc":"- `webhook_id` - Id of the webhook to modify.\n - `args` - Map with the following *optional* keys:\n - `name` - Name of the webhook.\n - `avatar` - Base64 128x128 jpeg image for the default avatar.\n - `reason` - An optional reason for the guild audit log.","ref":"Nostrum.Api.html#modify_webhook/3-parameters"},{"type":"function","title":"Nostrum.Api.modify_webhook_with_token/4","doc":"Modifies a webhook with a token.\n\nThis method is exactly like `modify_webhook/1` but does not require\nauthentication.","ref":"Nostrum.Api.html#modify_webhook_with_token/4"},{"type":"function","title":"Parameters - Nostrum.Api.modify_webhook_with_token/4","doc":"- `webhook_id` - Id of the webhook to modify.\n - `webhook_token` - Token of the webhook to get.\n - `args` - Map with the following *optional* keys:\n - `name` - Name of the webhook.\n - `avatar` - Base64 128x128 jpeg image for the default avatar.\n - `reason` - An optional reason for the guild audit log.","ref":"Nostrum.Api.html#modify_webhook_with_token/4-parameters"},{"type":"function","title":"Nostrum.Api.remove_guild_ban/3","doc":"Removes a ban for a user.\n\nUser to unban is specified by `guild_id` and `user_id`.\nAn optional `reason` can be specified for the audit log.","ref":"Nostrum.Api.html#remove_guild_ban/3"},{"type":"function","title":"Nostrum.Api.remove_guild_member/3","doc":"Removes a member from a guild.\n\nThis event requires the `KICK_MEMBERS` permission. It fires a\n`t:Nostrum.Consumer.guild_member_remove/0` event.\n\nAn optional reason can be provided for the audit log with `reason`.\n\nIf successful, returns `{:ok}`. Otherwise, returns a `t:Nostrum.Api.error/0`.","ref":"Nostrum.Api.html#remove_guild_member/3"},{"type":"function","title":"Examples - Nostrum.Api.remove_guild_member/3","doc":"```elixir\nNostrum.Api.remove_guild_member(1453827904102291, 18739485766253)\n{:ok}\n```","ref":"Nostrum.Api.html#remove_guild_member/3-examples"},{"type":"function","title":"Nostrum.Api.remove_guild_member!/3","doc":"Same as `remove_guild_member/2`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#remove_guild_member!/3"},{"type":"function","title":"Nostrum.Api.remove_guild_member_role/4","doc":"Removes a role from a member.\n\nRole to remove is specified by `role_id`.\nUser to remove role from is specified by `guild_id` and `user_id`.\nAn optional `reason` can be given for the audit log.","ref":"Nostrum.Api.html#remove_guild_member_role/4"},{"type":"function","title":"Nostrum.Api.remove_thread_member/2","doc":"Removes another user from a thread, requires that the thread is not archived.\n\nAlso requires the `MANAGE_THREADS` permission, or the creator of the thread if the thread is private.","ref":"Nostrum.Api.html#remove_thread_member/2"},{"type":"function","title":"Nostrum.Api.request/1","doc":"","ref":"Nostrum.Api.html#request/1"},{"type":"function","title":"Nostrum.Api.request/4","doc":"","ref":"Nostrum.Api.html#request/4"},{"type":"function","title":"Nostrum.Api.request_multipart/4","doc":"","ref":"Nostrum.Api.html#request_multipart/4"},{"type":"function","title":"Nostrum.Api.start_thread/3","doc":"Create a thread on a channel without an associated message.\n\nIf successful, returns `{:ok, Channel}`. Otherwise returns a `t:Nostrum.Api.error/0`.\n\nAn optional `reason` argument can be given for the audit log.","ref":"Nostrum.Api.html#start_thread/3"},{"type":"function","title":"Options - Nostrum.Api.start_thread/3","doc":"- `name`: Name of the thread, max 100 characters.\n- `type`: Type of thread, can be either 11 (`GUILD_PUBLIC_THREAD`) or 12 (`GUILD_PRIVATE_THREAD`).\n- `auto_archive_duration`: Duration in minutes to auto-archive the thread after it has been inactive, can be set to 60, 1440, 4320, or 10080.\n- `invitable`: whether non-moderators can add other non-moderators to a thread; only available when creating a private thread defaults to `false`.\n- `rate_limit_per_user`: Rate limit per user in seconds, can be set to any value in `0..21600`.","ref":"Nostrum.Api.html#start_thread/3-options"},{"type":"function","title":"Nostrum.Api.start_thread_in_forum_channel/3","doc":"Create a new thread in a forum channel.\n\nIf successful, returns `{:ok, Channel}`. Otherwise returns a `t:Nostrum.Api.error/0`.\n\nAn optional `reason` argument can be given for the audit log.","ref":"Nostrum.Api.html#start_thread_in_forum_channel/3"},{"type":"function","title":"Options - Nostrum.Api.start_thread_in_forum_channel/3","doc":"- `name`: Name of the thread, max 100 characters.\n- `auto_archive_duration`: Duration in minutes to auto-archive the thread after it has been inactive, can be set to 60, 1440, 4320, or 10080.\n- `rate_limit_per_user`: Rate limit per user in seconds, can be set to any value in `0..21600`.\n- `applied_tags`: An array of tag ids to apply to the thread.\n- `message`: The first message in the created thread.","ref":"Nostrum.Api.html#start_thread_in_forum_channel/3-options"},{"type":"function","title":"Thread Message Options - Nostrum.Api.start_thread_in_forum_channel/3","doc":"- `content`: The content of the message.\n- `embeds`: A list of embeds.\n- `allowed_mentions`: Allowed mentions object.\n- `components`: A list of components.\n- `sticker_ids`: A list of sticker ids.\n- `:files` - a list of files where each element is the same format as the `:file` option. If both\n `:file` and `:files` are specified, `:file` will be prepended to the `:files` list.\n\nAt least one of `content`, `embeds`, `sticker_ids`, or `files` must be specified.","ref":"Nostrum.Api.html#start_thread_in_forum_channel/3-thread-message-options"},{"type":"function","title":"Nostrum.Api.start_thread_with_message/4","doc":"Create a thread on a channel message.\n\nThe `thread_id` will be the same as the id of the message, as such no message can have more than one thread.\n\nIf successful, returns `{:ok, Channel}`. Otherwise returns a `t:Nostrum.Api.error/0`.\n\nAn optional `reason` argument can be given for the audit log.","ref":"Nostrum.Api.html#start_thread_with_message/4"},{"type":"function","title":"Options - Nostrum.Api.start_thread_with_message/4","doc":"- `name`: Name of the thread, max 100 characters.\n- `auto_archive_duration`: Duration in minutes to auto-archive the thread after it has been inactive, can be set to 60, 1440, 4320, or 10080.\n- `rate_limit_per_user`: Rate limit per user in seconds, can be set to any value in `0..21600`.","ref":"Nostrum.Api.html#start_thread_with_message/4-options"},{"type":"function","title":"Nostrum.Api.start_typing/1","doc":"Triggers the typing indicator.\n\nTriggers the typing indicator in the channel specified by `channel_id`.\nThe typing indicator lasts for about 8 seconds and then automatically stops.\n\nReturns `{:ok}` if successful. `error` otherwise.","ref":"Nostrum.Api.html#start_typing/1"},{"type":"function","title":"Nostrum.Api.start_typing!/1","doc":"Same as `start_typing/1`, but raises `Nostrum.Error.ApiError` in case of failure.","ref":"Nostrum.Api.html#start_typing!/1"},{"type":"function","title":"Nostrum.Api.sync_guild_integrations/2","doc":"Syncs a guild integration.\n\nIntegration to sync is specified by `guild_id` and `integeration_id`.","ref":"Nostrum.Api.html#sync_guild_integrations/2"},{"type":"function","title":"Nostrum.Api.update_shard_status/5","doc":"Updates the status of the bot for a certain shard.","ref":"Nostrum.Api.html#update_shard_status/5"},{"type":"function","title":"Parameters - Nostrum.Api.update_shard_status/5","doc":"- `pid` - Pid of the shard.\n - `status` - Status of the bot.\n - `game` - The 'playing' text of the bot. Empty will clear.\n - `type` - The type of status to show. 0 (Playing) | 1 (Streaming) | 2 (Listening) | 3 (Watching)\n - `stream` - URL of twitch.tv stream","ref":"Nostrum.Api.html#update_shard_status/5-parameters"},{"type":"function","title":"Nostrum.Api.update_status/4","doc":"Updates the status of the bot for all shards.\n\nSee `update_shard_status/5` for usage.","ref":"Nostrum.Api.html#update_status/4"},{"type":"function","title":"Nostrum.Api.update_voice_state/4","doc":"Joins, moves, or disconnects the bot from a voice channel.\n\nThe correct shard to send the update to will be inferred from the\n`guild_id`. If a corresponding `guild_id` is not found a cache error will be\nraised.\n\nTo disconnect from a channel, `channel_id` should be set to `nil`.","ref":"Nostrum.Api.html#update_voice_state/4"},{"type":"type","title":"Nostrum.Api.allowed_mention/0","doc":"Represents which mentions to allow in a message.\n\nThis can be sent on its own or in a list to allow multiple types of\nmentions in a message, see `t:allowed_mentions/0` for details.","ref":"Nostrum.Api.html#t:allowed_mention/0"},{"type":"type","title":"Nostrum.Api.allowed_mentions/0","doc":"Represents mentions to allow in a message.\n\nWith this option you can control when content from a message should trigger a ping.\nConsider using this option when you are going to display user generated content.","ref":"Nostrum.Api.html#t:allowed_mentions/0"},{"type":"type","title":"Allowed values - Nostrum.Api.allowed_mentions/0","doc":"* `:all` (default) - Ping everything as usual\n * `:none` - Nobody will be pinged\n * `:everyone` - Allows to ping @here and @everyone\n * `:users` - Allows to ping users\n * `:roles` - Allows to ping roles\n * `{:users, list}` - Allows to ping list of users. Can contain up to 100 ids of users.\n * `{:roles, list}` - Allows to ping list of roles. Can contain up to 100 ids of roles.\n * list - a list containing the values above.","ref":"Nostrum.Api.html#t:allowed_mentions/0-allowed-values"},{"type":"type","title":"Nostrum.Api.emoji/0","doc":"Represents an emoji for interacting with reaction endpoints.","ref":"Nostrum.Api.html#t:emoji/0"},{"type":"type","title":"Nostrum.Api.error/0","doc":"Represents a failed response from the API.\n\nThis occurs when `:gun` fails, or when the API doesn't respond with `200` or `204`.","ref":"Nostrum.Api.html#t:error/0"},{"type":"type","title":"Nostrum.Api.limit/0","doc":"Represents a limit used to retrieve messages.\n\nInteger number of messages, or :infinity to retrieve all messages.","ref":"Nostrum.Api.html#t:limit/0"},{"type":"type","title":"Nostrum.Api.locator/0","doc":"Represents a tuple used to locate messages.\n\nThe first element of the tuple is an atom.\nThe second element will be a message_id as an integer.\nThe tuple can also be empty to search from the most recent message in the channel","ref":"Nostrum.Api.html#t:locator/0"},{"type":"type","title":"Nostrum.Api.matrix/0","doc":"","ref":"Nostrum.Api.html#t:matrix/0"},{"type":"type","title":"Nostrum.Api.options/0","doc":"Represents optional parameters for Api functions.\n\nEach function has documentation regarding what parameters it\nsupports or needs.","ref":"Nostrum.Api.html#t:options/0"},{"type":"type","title":"Nostrum.Api.status/0","doc":"Represents different statuses the bot can have.\n\n - `:dnd` - Red circle.\n - `:idle` - Yellow circle.\n - `:online` - Green circle.\n - `:invisible` - The bot will appear offline.","ref":"Nostrum.Api.html#t:status/0"},{"type":"type","title":"Nostrum.Api.thread_with_message_params/0","doc":"","ref":"Nostrum.Api.html#t:thread_with_message_params/0"},{"type":"type","title":"Nostrum.Api.thread_without_message_params/0","doc":"","ref":"Nostrum.Api.html#t:thread_without_message_params/0"},{"type":"behaviour","title":"Nostrum.Consumer","doc":"Consumer process for gateway event handling.","ref":"Nostrum.Consumer.html"},{"type":"behaviour","title":"Consuming gateway events - Nostrum.Consumer","doc":"Events are first ingested by nostrum's cache. Afterwards, they are sent to\nany subscribed consumers via `Nostrum.ConsumerGroup`.\n\nBy default, nostrum will start a process for each event. This gives us free\nparallelism and isolation. You therefore do not need to start more than one\nconsumer in your supervision tree. If you want to override this behaviour,\nimplement the `handle_info/2` function in your consumer. For reference, this\nis the default implementation:\n\n```elixir\n def handle_info({:event, event}, state) do\n Task.start_link(fn ->\n __MODULE__.handle_event(event)\n end)\n\n {:noreply, state}\n end\n```","ref":"Nostrum.Consumer.html#module-consuming-gateway-events"},{"type":"behaviour","title":"Running multiple consumers - Nostrum.Consumer","doc":"**Every process that is in a `Nostrum.ConsumerGroup` receives every event**:\nit is therefore not recommended to create multiple consumers if a single one\ncould accomplish the job.","ref":"Nostrum.Consumer.html#module-running-multiple-consumers"},{"type":"behaviour","title":"Example consumer - Nostrum.Consumer","doc":"An example consumer could look as follows:\n\n```elixir\n# Sourced from examples/event_consumer.ex\ndefmodule ExampleSupervisor do\n use Supervisor\n\n def start_link(args) do\n Supervisor.start_link(__MODULE__, args, name: __MODULE__)\n end\n\n @impl true\n def init(_init_arg) do\n children = [ExampleConsumer]\n\n Supervisor.init(children, strategy: :one_for_one)\n end\nend\n\ndefmodule ExampleConsumer do\n use Nostrum.Consumer\n\n alias Nostrum.Api\n\n def handle_event({:MESSAGE_CREATE, msg, _ws_state}) do\n case msg.content do\n \"!sleep\" ->\n Api.create_message(msg.channel_id, \"Going to sleep...\")\n # This won't stop other events from being handled.\n Process.sleep(3000)\n\n \"!ping\" ->\n Api.create_message(msg.channel_id, \"pyongyang!\")\n\n \"!raise\" ->\n # This won't crash the entire Consumer.\n raise \"No problems here!\"\n\n _ ->\n :ignore\n end\n end\n\n # Default event handler, if you don't include this, your consumer WILL crash if\n # you don't have a method definition for each event type.\n def handle_event(_event) do\n :noop\n end\nend\n\n```\n\n> ### `use Nostrum.Consumer` {: .info}\n>\n> Using `Nostrum.Consumer` will:\n>\n> - `use GenServer` (as the consumer is built on `GenServer`)\n> - set the behaviour to `Nostrum.Consumer`\n> - define `child_spec/1`, `start_link/1` and `init/1` for the `GenServer` to\n> automatically join the `Nostrum.ConsumerGroup` on boot\n> - define `handle_info/2` to automatically dispatch any events to your\n> `c:handle_event/1` via a `Task`\n> - inject a default `handle_event/1` clause to ignore any unhandled events.","ref":"Nostrum.Consumer.html#module-example-consumer"},{"type":"callback","title":"Nostrum.Consumer.handle_event/1","doc":"Callback used to handle events.","ref":"Nostrum.Consumer.html#c:handle_event/1"},{"type":"callback","title":"Event - Nostrum.Consumer.handle_event/1","doc":"`event` is a tuple describing the event. The tuple will include information in\nthe following format:\n```elixir\n{event_name, {event_payload(s)}, WSState.t}\n```\n\nFor example, a message create will look like this\n```elixir\n{:MESSAGE_CREATE, Nostrum.Struct.Message.t, WSState.t}\n```\n\nIn some cases there will be multiple payloads when something is updated, so as\nto include the new and the old versions. In the event of there being two payloads,\nthe old payload will always be first, followed by the new payload.\n```elixir\n{:USER_UPDATE, {old_user :: Nostrum.Struct.User.t, new_user :: Nostrum.Struct.User.t}, WSState.t()}\n```\n\nFor a full listing of events, please see `t:Nostrum.Consumer.event/0`.","ref":"Nostrum.Consumer.html#c:handle_event/1-event"},{"type":"type","title":"Nostrum.Consumer.auto_moderation_rule_create/0","doc":"","ref":"Nostrum.Consumer.html#t:auto_moderation_rule_create/0"},{"type":"type","title":"Nostrum.Consumer.auto_moderation_rule_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:auto_moderation_rule_delete/0"},{"type":"type","title":"Nostrum.Consumer.auto_moderation_rule_execute/0","doc":"","ref":"Nostrum.Consumer.html#t:auto_moderation_rule_execute/0"},{"type":"type","title":"Nostrum.Consumer.auto_moderation_rule_update/0","doc":"","ref":"Nostrum.Consumer.html#t:auto_moderation_rule_update/0"},{"type":"type","title":"Nostrum.Consumer.channel_create/0","doc":"Dispatched when a channel is created.\n\nStarting from [API and Gateway V8](https://discord.com/developers/docs/change-log#api-and-gateway-v8),\nthis will never be sent for a DM.","ref":"Nostrum.Consumer.html#t:channel_create/0"},{"type":"type","title":"Nostrum.Consumer.channel_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:channel_delete/0"},{"type":"type","title":"Nostrum.Consumer.channel_pins_ack/0","doc":"","ref":"Nostrum.Consumer.html#t:channel_pins_ack/0"},{"type":"type","title":"Nostrum.Consumer.channel_pins_update/0","doc":"","ref":"Nostrum.Consumer.html#t:channel_pins_update/0"},{"type":"type","title":"Nostrum.Consumer.channel_update/0","doc":"Dispatched when a channel is updated.\n\n`old_channel` will be `nil` when the pre-update channel could not be fetched from the cache.","ref":"Nostrum.Consumer.html#t:channel_update/0"},{"type":"type","title":"Nostrum.Consumer.event/0","doc":"","ref":"Nostrum.Consumer.html#t:event/0"},{"type":"type","title":"Nostrum.Consumer.guild_audit_log_entry_create/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_audit_log_entry_create/0"},{"type":"type","title":"Nostrum.Consumer.guild_available/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_available/0"},{"type":"type","title":"Nostrum.Consumer.guild_ban_add/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_ban_add/0"},{"type":"type","title":"Nostrum.Consumer.guild_ban_remove/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_ban_remove/0"},{"type":"type","title":"Nostrum.Consumer.guild_create/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_create/0"},{"type":"type","title":"Nostrum.Consumer.guild_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_delete/0"},{"type":"type","title":"Nostrum.Consumer.guild_emojis_update/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_emojis_update/0"},{"type":"type","title":"Nostrum.Consumer.guild_integrations_update/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_integrations_update/0"},{"type":"type","title":"Nostrum.Consumer.guild_member_add/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_member_add/0"},{"type":"type","title":"Nostrum.Consumer.guild_member_remove/0","doc":"Dispatched when somebody leaves a guild.\n\nIn case the guild member intent is enabled but not the guild intent,\nnostrum may not cache the actual guild, and thus be unable to provide\nfull information about members leaving guilds. In that case, this event\nreceives the guild ID and a partial member object with the leaving user as\nprovided by Discord, but no information about the user's state on the guild.","ref":"Nostrum.Consumer.html#t:guild_member_remove/0"},{"type":"type","title":"Nostrum.Consumer.guild_member_update/0","doc":"Dispatched when a guild member is updated.\n\n`old_member` will be `nil` when the pre-update member could not be fetched from the cache.","ref":"Nostrum.Consumer.html#t:guild_member_update/0"},{"type":"type","title":"Nostrum.Consumer.guild_members_chunk/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_members_chunk/0"},{"type":"type","title":"Nostrum.Consumer.guild_role_create/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_role_create/0"},{"type":"type","title":"Nostrum.Consumer.guild_role_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_role_delete/0"},{"type":"type","title":"Nostrum.Consumer.guild_role_update/0","doc":"Dispatched when a role on a guild is updated.\n\n`old_role` will be `nil` when the pre-update role could not be fetched from the cache.","ref":"Nostrum.Consumer.html#t:guild_role_update/0"},{"type":"type","title":"Nostrum.Consumer.guild_scheduled_event_create/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_scheduled_event_create/0"},{"type":"type","title":"Nostrum.Consumer.guild_scheduled_event_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_scheduled_event_delete/0"},{"type":"type","title":"Nostrum.Consumer.guild_scheduled_event_update/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_scheduled_event_update/0"},{"type":"type","title":"Nostrum.Consumer.guild_scheduled_event_user_add/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_scheduled_event_user_add/0"},{"type":"type","title":"Nostrum.Consumer.guild_scheduled_event_user_remove/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_scheduled_event_user_remove/0"},{"type":"type","title":"Nostrum.Consumer.guild_unavailable/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_unavailable/0"},{"type":"type","title":"Nostrum.Consumer.guild_update/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_update/0"},{"type":"type","title":"Nostrum.Consumer.integration_create/0","doc":"","ref":"Nostrum.Consumer.html#t:integration_create/0"},{"type":"type","title":"Nostrum.Consumer.integration_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:integration_delete/0"},{"type":"type","title":"Nostrum.Consumer.integration_update/0","doc":"Different from `t:guild_integrations_update/0` in that more than only the `guild_id` is provided","ref":"Nostrum.Consumer.html#t:integration_update/0"},{"type":"type","title":"Nostrum.Consumer.interaction_create/0","doc":"","ref":"Nostrum.Consumer.html#t:interaction_create/0"},{"type":"type","title":"Nostrum.Consumer.message_ack/0","doc":"","ref":"Nostrum.Consumer.html#t:message_ack/0"},{"type":"type","title":"Nostrum.Consumer.message_create/0","doc":"","ref":"Nostrum.Consumer.html#t:message_create/0"},{"type":"type","title":"Nostrum.Consumer.message_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:message_delete/0"},{"type":"type","title":"Nostrum.Consumer.message_delete_bulk/0","doc":"","ref":"Nostrum.Consumer.html#t:message_delete_bulk/0"},{"type":"type","title":"Nostrum.Consumer.message_poll_vote_add/0","doc":"Dispatched when a user adds a vote to a poll.","ref":"Nostrum.Consumer.html#t:message_poll_vote_add/0"},{"type":"type","title":"Nostrum.Consumer.message_poll_vote_remove/0","doc":"Dispatched when a user removes a vote from a poll.","ref":"Nostrum.Consumer.html#t:message_poll_vote_remove/0"},{"type":"type","title":"Nostrum.Consumer.message_reaction_add/0","doc":"","ref":"Nostrum.Consumer.html#t:message_reaction_add/0"},{"type":"type","title":"Nostrum.Consumer.message_reaction_remove/0","doc":"","ref":"Nostrum.Consumer.html#t:message_reaction_remove/0"},{"type":"type","title":"Nostrum.Consumer.message_reaction_remove_all/0","doc":"","ref":"Nostrum.Consumer.html#t:message_reaction_remove_all/0"},{"type":"type","title":"Nostrum.Consumer.message_reaction_remove_emoji/0","doc":"","ref":"Nostrum.Consumer.html#t:message_reaction_remove_emoji/0"},{"type":"type","title":"Nostrum.Consumer.message_update/0","doc":"","ref":"Nostrum.Consumer.html#t:message_update/0"},{"type":"type","title":"Nostrum.Consumer.presence_update/0","doc":"Dispatched when a user's presence is updated.\n\n`old_presence` will be `nil` when the pre-update presence could not be fetched from the cache.","ref":"Nostrum.Consumer.html#t:presence_update/0"},{"type":"type","title":"Nostrum.Consumer.ready/0","doc":"","ref":"Nostrum.Consumer.html#t:ready/0"},{"type":"type","title":"Nostrum.Consumer.resumed/0","doc":"","ref":"Nostrum.Consumer.html#t:resumed/0"},{"type":"type","title":"Nostrum.Consumer.thread_create/0","doc":"Dispatched when a thread is created or when added to a private thread","ref":"Nostrum.Consumer.html#t:thread_create/0"},{"type":"type","title":"Nostrum.Consumer.thread_delete/0","doc":"Dispatched when a thread is deleted, if the thread was cached, contains the original thread, otherwise contains `:noop`","ref":"Nostrum.Consumer.html#t:thread_delete/0"},{"type":"type","title":"Nostrum.Consumer.thread_list_sync/0","doc":"Dispatched when gaining access to a channel","ref":"Nostrum.Consumer.html#t:thread_list_sync/0"},{"type":"type","title":"Nostrum.Consumer.thread_member_update/0","doc":"Dispatched when a `ThreadMember` for the current user is updated","ref":"Nostrum.Consumer.html#t:thread_member_update/0"},{"type":"type","title":"Nostrum.Consumer.thread_members_update/0","doc":"Dispatched when member(s) are added or removed from a thread","ref":"Nostrum.Consumer.html#t:thread_members_update/0"},{"type":"type","title":"Nostrum.Consumer.thread_update/0","doc":"","ref":"Nostrum.Consumer.html#t:thread_update/0"},{"type":"type","title":"Nostrum.Consumer.typing_start/0","doc":"","ref":"Nostrum.Consumer.html#t:typing_start/0"},{"type":"type","title":"Nostrum.Consumer.user_settings_update/0","doc":"","ref":"Nostrum.Consumer.html#t:user_settings_update/0"},{"type":"type","title":"Nostrum.Consumer.user_update/0","doc":"Dispatched when a user is updated.\n\n`old_user` will be `nil` when the pre-update user could not be fetched from the cache.","ref":"Nostrum.Consumer.html#t:user_update/0"},{"type":"type","title":"Nostrum.Consumer.voice_incoming_packet/0","doc":"Dispatched when async listening is enabled and another user is actively speaking\n\nThe second tuple element is an `t:Nostrum.Voice.rtp_opus/0`, which is a tuple with\nRTP header information and an opus packet. While someone is actively talking, you can\nexpect about 50 events per second per speaking user.\n\nNote that the third tuple element is of type `t:Nostrum.Struct.VoiceWSState.t/0` instead of `t:Nostrum.Struct.WSState.t/0`.\nThat struct contains a `t:Nostrum.Struct.VoiceWSState.ssrc_map/0` that can determine the speaking user based\non the SSRC.","ref":"Nostrum.Consumer.html#t:voice_incoming_packet/0"},{"type":"type","title":"Nostrum.Consumer.voice_ready/0","doc":"Dispatched when the bot is ready to begin sending audio after joining a voice channel\n\nNote that the third tuple element is of type `t:Nostrum.Struct.VoiceWSState.t/0` instead of `t:Nostrum.Struct.WSState.t/0`.","ref":"Nostrum.Consumer.html#t:voice_ready/0"},{"type":"type","title":"Nostrum.Consumer.voice_server_update/0","doc":"","ref":"Nostrum.Consumer.html#t:voice_server_update/0"},{"type":"type","title":"Nostrum.Consumer.voice_speaking_update/0","doc":"Dispatched when the bot starts or stops speaking\n\nNote that the third tuple element is of type `t:Nostrum.Struct.VoiceWSState.t/0` instead of `t:Nostrum.Struct.WSState.t/0`.","ref":"Nostrum.Consumer.html#t:voice_speaking_update/0"},{"type":"type","title":"Nostrum.Consumer.voice_state_update/0","doc":"","ref":"Nostrum.Consumer.html#t:voice_state_update/0"},{"type":"type","title":"Nostrum.Consumer.webhooks_update/0","doc":"","ref":"Nostrum.Consumer.html#t:webhooks_update/0"},{"type":"module","title":"Nostrum.ConsumerGroup","doc":"Registers consumers and handles event dispatch.","ref":"Nostrum.ConsumerGroup.html"},{"type":"function","title":"Nostrum.ConsumerGroup.child_spec/1","doc":"","ref":"Nostrum.ConsumerGroup.html#child_spec/1"},{"type":"function","title":"Nostrum.ConsumerGroup.demonitor/1","doc":"Stop monitoring the given reference.","ref":"Nostrum.ConsumerGroup.html#demonitor/1"},{"type":"function","title":"Nostrum.ConsumerGroup.dispatch/1","doc":"Dispatch the given event(s) to all consumers.\n\nThis is called by nostrum internally, you likely won't need to call this\nmanually.","ref":"Nostrum.ConsumerGroup.html#dispatch/1"},{"type":"function","title":"Nostrum.ConsumerGroup.join/0","doc":"Equivalent to `ConsumerGroup.join(self())`. See `join/1`.","ref":"Nostrum.ConsumerGroup.html#join/0"},{"type":"function","title":"Nostrum.ConsumerGroup.join/1","doc":"Join the given process to the consumers.\n\nIf no process is given, joins the current process to the consumers. This can\nbe used for subscribing to gateway events and awaiting them inline.\n\nAfter the process has joined, it will receive any events sent by nostrum's\ngateway dispatch. These events are sent as messages `{:event,\nt:Consumer.Event.t/0}`. The given `pid` is automatically unsubscribed when it\nterminates.\n\nNote that there is currently no filtering done. If the gateway sends a lot of\nmessages and the event subscriber does not terminate swiftly, its message\nqueue will keep growing.","ref":"Nostrum.ConsumerGroup.html#join/1"},{"type":"function","title":"Example - Nostrum.ConsumerGroup.join/1","doc":"The following example illustrates how to use this to implement inline event\nawaiting:\n\n```elixir\ndefmodule MyBot.Command\n alias Nostrum.Api\n alias Nostrum.ConsumerGroup\n alias Nostrum.Struct.Message\n alias Nostrum.Struct.User\n\n def command(%Message{author: %User{id: author_id}}) do\n Api.create_message!(msg, \"Reply 'y' in 5 seconds to confirm ordering a large burger menu.\")\n ConsumerGroup.join()\n receive do\n {:event, {:MESSAGE_CREATE, %Message{author: %User{id: author_id}, content: \"y\"}, _}} ->\n Api.create_message!(msg, \"The large burger menu is coming.\")\n after\n 5_000 ->\n Api.create_message!(msg, \"Too slow!\")\n end\n end\nend\n```","ref":"Nostrum.ConsumerGroup.html#join/1-example"},{"type":"function","title":"Nostrum.ConsumerGroup.monitor/0","doc":"Monitor the consumer group for changes.\n\nReturn the initial state of the group on first call. Further updates are\ndelivered as messages to the calling process, see `:pg.monitor/2` for\ndetails. The returned `t:reference/0` must be saved for later calls to\n`demonitor/1`.","ref":"Nostrum.ConsumerGroup.html#monitor/0"},{"type":"function","title":"Nostrum.ConsumerGroup.start_link/1","doc":"","ref":"Nostrum.ConsumerGroup.html#start_link/1"},{"type":"module","title":"Nostrum.Permission","doc":"Functions that work on permissions.\n\nSome functions return a list of permissions. You can use enumerable functions\nto work with permissions:\n\n```elixir\nalias Nostrum.Cache.GuildCache\nalias Nostrum.Struct.Guild.Member\n\nguild = GuildCache.get!(279093381723062272)\nmember = Map.get(guild.members, 177888205536886784)\nmember_perms = Member.guild_permissions(member, guild)\n\nif :administrator in member_perms do\n IO.puts(\"This user has the administrator permission.\")\nend\n```","ref":"Nostrum.Permission.html"},{"type":"function","title":"Nostrum.Permission.all/0","doc":"Returns a list of all permissions.","ref":"Nostrum.Permission.html#all/0"},{"type":"function","title":"Nostrum.Permission.from_bit/1","doc":"Converts the given bit to a permission.\n\nThis function returns `:error` if `bit` does not map to a permission.","ref":"Nostrum.Permission.html#from_bit/1"},{"type":"function","title":"Examples - Nostrum.Permission.from_bit/1","doc":"```elixir\niex> Nostrum.Permission.from_bit(0x04000000)\n{:ok, :change_nickname}\n\niex> Nostrum.Permission.from_bit(0)\n:error\n```","ref":"Nostrum.Permission.html#from_bit/1-examples"},{"type":"function","title":"Nostrum.Permission.from_bit!/1","doc":"Same as `from_bit/1`, but raises `ArgumentError` in case of failure.","ref":"Nostrum.Permission.html#from_bit!/1"},{"type":"function","title":"Examples - Nostrum.Permission.from_bit!/1","doc":"```elixir\niex> Nostrum.Permission.from_bit!(0x04000000)\n:change_nickname\n\niex> Nostrum.Permission.from_bit!(0)\n** (ArgumentError) expected a valid bit, got: `0`\n```","ref":"Nostrum.Permission.html#from_bit!/1-examples"},{"type":"function","title":"Nostrum.Permission.from_bitset/1","doc":"Converts the given bitset to a list of permissions.\n\nIf invalid bits are given they will be omitted from the results.","ref":"Nostrum.Permission.html#from_bitset/1"},{"type":"function","title":"Examples - Nostrum.Permission.from_bitset/1","doc":"```elixir\niex> Nostrum.Permission.from_bitset(0x08000002)\n[:manage_nicknames, :kick_members]\n\niex> Nostrum.Permission.from_bitset(0x4000000000000)\n[]\n```","ref":"Nostrum.Permission.html#from_bitset/1-examples"},{"type":"macro","title":"Nostrum.Permission.is_permission/1","doc":"Returns `true` if `term` is a permission; otherwise returns `false`.","ref":"Nostrum.Permission.html#is_permission/1"},{"type":"macro","title":"Examples - Nostrum.Permission.is_permission/1","doc":"```elixir\niex> Nostrum.Permission.is_permission(:administrator)\ntrue\n\niex> Nostrum.Permission.is_permission(:not_a_permission)\nfalse\n```","ref":"Nostrum.Permission.html#is_permission/1-examples"},{"type":"function","title":"Nostrum.Permission.to_bit/1","doc":"Converts the given permission to a bit.","ref":"Nostrum.Permission.html#to_bit/1"},{"type":"function","title":"Examples - Nostrum.Permission.to_bit/1","doc":"```elixir\niex> Nostrum.Permission.to_bit(:administrator)\n8\n```","ref":"Nostrum.Permission.html#to_bit/1-examples"},{"type":"function","title":"Nostrum.Permission.to_bitset/1","doc":"Converts the given enumerable of permissions to a bitset.","ref":"Nostrum.Permission.html#to_bitset/1"},{"type":"function","title":"Examples - Nostrum.Permission.to_bitset/1","doc":"```elixir\niex> Nostrum.Permission.to_bitset([:administrator, :create_instant_invite])\n9\n```","ref":"Nostrum.Permission.html#to_bitset/1-examples"},{"type":"type","title":"Nostrum.Permission.bit/0","doc":"Represents a single permission as a bitvalue.","ref":"Nostrum.Permission.html#t:bit/0"},{"type":"type","title":"Nostrum.Permission.bitset/0","doc":"Represents a set of permissions as a bitvalue.","ref":"Nostrum.Permission.html#t:bitset/0"},{"type":"type","title":"Nostrum.Permission.general_permission/0","doc":"","ref":"Nostrum.Permission.html#t:general_permission/0"},{"type":"type","title":"Nostrum.Permission.t/0","doc":"","ref":"Nostrum.Permission.html#t:t/0"},{"type":"type","title":"Nostrum.Permission.text_permission/0","doc":"","ref":"Nostrum.Permission.html#t:text_permission/0"},{"type":"type","title":"Nostrum.Permission.voice_permission/0","doc":"","ref":"Nostrum.Permission.html#t:voice_permission/0"},{"type":"module","title":"Nostrum.Voice","doc":"Interface for playing and listening to audio through Discord's voice channels.\n\n# Using Discord Voice Channels\nTo play sound in Discord with Nostrum, you'll need `ffmpeg` to be installed.\nIf you don't have the executable `ffmpeg` in the path, the absolute path may\nbe configured through config keys `:nostrum, :ffmpeg`. If you don't want to use\nffmpeg, read on to the next section.\n\nA bot may be connected to at most one voice channel per guild. For this reason,\nmost of the functions in this module take a guild id, and the resulting action\nwill be performed in the given guild's voice channel that the bot is connected to.\n\nThe primary Discord gateway responsible for all text based communication relies on\none websocket connection per shard, where small bots typically only have one shard.\nThe Discord voice gateways work by establishing a websocket connection per guild/channel.\nAfter some handshaking on this connection, audio data can be sent over UDP/RTP. Behind\nthe scenes the voice websocket connections are implemented nearly the same way the main\nshard websocket connections are, and require no developer intervention.\n\nIn addition to playing audio, listening to incoming audio is supported through the\nfunctions `listen/3` and `start_listen_async/1`.","ref":"Nostrum.Voice.html"},{"type":"module","title":"Voice Without FFmpeg - Nostrum.Voice","doc":"If you wish to BYOE (Bring Your Own Encoder), there are a few options.\n - Use `:raw` as `type` for `play/4`\n - Provide the complete list of opus frames as the input\n - Use `:raw_s` as `type` for `play/4`\n - Provide a stateful enumerable of opus frames as input (think GenServer wrapped in `Stream.unfold/2`)\n - Use lower level functions to send opus frames at your leisure\n - Send packets on your own time using `send_frames/2`","ref":"Nostrum.Voice.html#module-voice-without-ffmpeg"},{"type":"function","title":"Nostrum.Voice.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Voice.html#child_spec/1"},{"type":"function","title":"Nostrum.Voice.connect_to_gateway/1","doc":"Low-level. Manually connect to voice websockets gateway.\n\nThis function should only be called if config option `:voice_auto_connect` is set to `false`.\nBy default Nostrum will automatically create a voice gateway when joining a channel.","ref":"Nostrum.Voice.html#connect_to_gateway/1"},{"type":"function","title":"Nostrum.Voice.create_ogg_bitstream/1","doc":"Create a complete Ogg logical bitstream from a list of Opus packets.\n\nThis function takes a list of opus packets and returns a list of Ogg\nencapsulated Opus pages for a single Ogg logical bitstream.\n\nIt is highly recommended to learn about the Ogg container format to\nunderstand how to use the data.\n\nTo get started, assuming you have a list of evenly temporally spaced\nand consecutive opus packets from a single source that you want written\nto a file, you can run the following:\n\n```elixir\nbitstream =\n opus_packets\n |> create_ogg_bitstream()\n |> :binary.list_to_bin()\n\nFile.write!(\"my_recording.ogg\", bitstream)\n```\n\nWhen creating a logical bitstream, ensure that the packets are all from a single SSRC.\nWhen listening in a channel with multiple speakers, you should be storing the received\npackets in unique buckets for each SSRC so that the multiple audio sources don't become\njumbled. A single logical bitstream should represent audio data from a single speaker.\nAn Ogg physical bitstream (e.g. a file) may be composed of multiple interleaved Ogg\nlogical bitstreams as each logical bitstream and its constituent pages contain a unique\nand randomly generated bitstream serial number, but this is a story for another time.\n\nAssuming you have a list of `t:rtp_opus/0` packets that are not separated by ssrc, you\nmay do the following:\n\n```elixir\njumbled_packets\n|> Stream.filter(fn {{_seq, _time, ssrc}, _opus} -> ssrc == particular_ssrc end)\n|> Enum.map(fn {{_seq, _time, _ssrc}, opus} -> opus end)\n|> create_ogg_bitstream()\n```","ref":"Nostrum.Voice.html#create_ogg_bitstream/1"},{"type":"function","title":"Nostrum.Voice.extract_opus_packet/1","doc":"Extract the opus packet from the RTP packet received from Discord.\n\nIncoming voice RTP packets contain a fixed length RTP header and an optional\nRTP header extension, which must be stripped to retrieve the underlying opus packet.","ref":"Nostrum.Voice.html#extract_opus_packet/1"},{"type":"function","title":"Nostrum.Voice.get_channel_id/1","doc":"Gets the id of the voice channel that the bot is connected to.","ref":"Nostrum.Voice.html#get_channel_id/1"},{"type":"function","title":"Parameters - Nostrum.Voice.get_channel_id/1","doc":"- `guild_id` - ID of guild that the resultant channel belongs to.\n\nReturns the `channel_id` for the channel the bot is connected to, otherwise `nil`.","ref":"Nostrum.Voice.html#get_channel_id/1-parameters"},{"type":"function","title":"Examples - Nostrum.Voice.get_channel_id/1","doc":"```elixir\niex> Nostrum.Voice.join_channel(123456789, 420691337)\n\niex> Nostrum.Voice.get_channel(123456789)\n420691337\n\niex> Nostrum.Voice.leave_channel(123456789)\n\niex> Nostrum.Voice.get_channel(123456789)\nnil\n```","ref":"Nostrum.Voice.html#get_channel_id/1-examples"},{"type":"function","title":"Nostrum.Voice.get_current_url/1","doc":"Gets the current URL being played.\n\nIf `play/4` was invoked with type `:url`, `:ytdl`, or `:stream`, this function will return\nthe URL given as input last time it was called.\n\nIf `play/4` was invoked with type `:pipe`, `:raw`, or `:raw_s`, this will return `nil`\nas the input is raw audio data, not be a readable URL string.","ref":"Nostrum.Voice.html#get_current_url/1"},{"type":"function","title":"Nostrum.Voice.get_ssrc_map/1","doc":"Gets a map of RTP SSRC to user id.\n\nWithin a voice channel, an SSRC (synchronization source) will uniquely map to a\nuser id of a user who is speaking.\n\nIf listening to incoming voice packets asynchronously, this function will not be\nneeded as the `t:Nostrum.Struct.VoiceWSState.ssrc_map/0` will be available with every event.\nIf listening with `listen/3`, this function may be used. It is recommended to\ncache the result of this function and only call it again when you encounter an\nSSRC that is not present in the cached result. This is to reduce excess load on the\nvoice websocket and voice state processes.","ref":"Nostrum.Voice.html#get_ssrc_map/1"},{"type":"function","title":"Nostrum.Voice.join_channel/5","doc":"Joins or moves the bot to a voice channel.\n\nThis function calls `Nostrum.Api.update_voice_state/4`.\n\nThe fifth argument `persist` defaults to `true`. When true, if calling `join_channel/5`\nwhile already in a different channel in the same guild, the audio source will be persisted\nin the new channel. If the audio is actively playing at the time of changing channels,\nit will resume playing automatically upon joining. If there is an active audio source\nthat has been paused before changing channels, the audio will be able to be resumed manually if\n`resume/1` is called.\n\nIf `persist` is set to false, the audio source will be destroyed before changing channels.\nThe same effect is achieved by calling `stop/1` or `leave_channel/1` before `join_channel/5`","ref":"Nostrum.Voice.html#join_channel/5"},{"type":"function","title":"Nostrum.Voice.leave_channel/1","doc":"Leaves the voice channel of the given guild id.\n\nThis function is equivalent to calling `Nostrum.Api.update_voice_state(guild_id, nil)`.","ref":"Nostrum.Voice.html#leave_channel/1"},{"type":"function","title":"Nostrum.Voice.listen/3","doc":"Listen for incoming voice RTP packets.","ref":"Nostrum.Voice.html#listen/3"},{"type":"function","title":"Parameters - Nostrum.Voice.listen/3","doc":"- `guild_id` - ID of guild that the bot is listening to.\n - `num_packets` - Number of packets to wait for.\n - `raw_rtp` - Whether to return raw RTP packets. Defaults to `false`.\n\nReturns a list of tuples of type `t:rtp_opus/0`.\n\nThe inner tuple contains fields from the RTP header and can be matched against\nto retrieve information about the packet such as the SSRC, which identifies the source.\nNote that RTP timestamps are completely unrelated to Unix timestamps.\n\nIf `raw_rtp` is set to `true`, a list of raw RTP packets is returned instead.\nTo extract an opus packet from an RTP packet, see `extract_opus_packet/1`.\n\nThis function will block until the specified number of packets is received.","ref":"Nostrum.Voice.html#listen/3-parameters"},{"type":"function","title":"Nostrum.Voice.pad_opus/1","doc":"Pad discontinuous chunks of opus audio with silence.\n\nThis function takes a list of `t:rtp_opus/0`, which is a tuple containing RTP bits and\nopus audio data. It returns a list of opus audio packets. The reason the input has to be in\nthe `t:rtp_opus/0` tuple format returned by `listen/3` and async listen events is that the\nRTP packet header contains info on the relative timestamps of incoming packets; the opus\npackets themselves don't contain information relating to timing.\n\nThe Discord client will continue to internally increment the `t:rtp_timestamp()` when the\nuser is not speaking such that the duration of pauses can be determined from the RTP packets.\nBots will typically not behave this way, so if you call this function on audio produced by\na bot it is very likely that no silence will be inserted.\n\nThe use case of this function is as follows:\nConsider a user speaks for two seconds, pauses for ten seconds, then speaks for another two\nseconds. During the pause, no RTP packets will be received, so if you create a bitstream from\nit, the resulting audio will be both two-second speaking segments consecutively without the\nlong pause in the middle. If you wish to preserve the timing of the speaking and include the\npause, calling this function will interleave the appropriate amount of opus silence packets\nto maintain temporal fidelity.\n\nNote that the Discord client currently sends about 10 silence packets (200 ms) each time it\ndetects end of speech, so creating a bitstream without first padding your audio with this\nfunction will maintain short silences between speech segments.\n\n*This function should only be called on a collection of RTP packets from a single SSRC*","ref":"Nostrum.Voice.html#pad_opus/1"},{"type":"function","title":"Nostrum.Voice.pause/1","doc":"Pauses the current sound being played in a voice channel.\n\nThe bot must be connected to a voice channel in the guild specified.","ref":"Nostrum.Voice.html#pause/1"},{"type":"function","title":"Parameters - Nostrum.Voice.pause/1","doc":"- `guild_id` - ID of guild whose voice channel the sound will be paused in.\n\nReturns `{:error, reason}` if unable to pause or no sound is playing, else `:ok`.\n\nThis function is similar to `stop/1`, except that the sound may be\nresumed after being paused.","ref":"Nostrum.Voice.html#pause/1-parameters"},{"type":"function","title":"Examples - Nostrum.Voice.pause/1","doc":"```elixir\niex> Nostrum.Voice.join_channel(123456789, 420691337)\n\niex> Nostrum.Voice.play(123456789, \"~/files/twelve_hour_loop_of_waterfall_sounds.mp3\")\n\niex> Nostrum.Voice.pause(123456789)\n```","ref":"Nostrum.Voice.html#pause/1-examples"},{"type":"function","title":"Nostrum.Voice.play/4","doc":"Plays sound in the voice channel the bot is in.\n\nThe bot must be connected to a voice channel in the guild specified.","ref":"Nostrum.Voice.html#play/4"},{"type":"function","title":"Parameters - Nostrum.Voice.play/4","doc":"- `guild_id` - ID of guild whose voice channel the sound will be played in.\n - `input` - Audio to be played, `t:play_input/0`. Input type determined by `type` parameter.\n - `type` - Type of input, `t:play_type/0` (defaults to `:url`).\n - `:url` Input will be [any url that `ffmpeg` can read](https://www.ffmpeg.org/ffmpeg-protocols.html).\n - `:pipe` Input will be data that is piped to stdin of `ffmpeg`.\n - `:ytdl` Input will be url for `youtube-dl`, which gets automatically piped to `ffmpeg`.\n - `:stream` Input will be livestream url for `streamlink`, which gets automatically piped to `ffmpeg`.\n - `:raw` Input will be an enumerable of raw opus packets. This bypasses `ffmpeg` and all options.\n - `:raw_s` Same as `:raw` but input must be stateful, i.e. calling `Enum.take/2` on `input` is not idempotent.\n - `options` - See options section below.\n\n\nReturns `{:error, reason}` if unable to play or a sound is playing, else `:ok`.","ref":"Nostrum.Voice.html#play/4-parameters"},{"type":"function","title":"Options - Nostrum.Voice.play/4","doc":"- `:start_pos` (string) - The start position of the audio to be played. Defaults to beginning.\n - `:duration` (string) - The duration to of the audio to be played . Defaults to entire duration.\n - `:realtime` (boolean) - Make ffmpeg process the input in realtime instead of as fast as possible. Defaults to true.\n - `:volume` (number) - The output volume of the audio. Default volume is 1.0.\n - `:filter` (string) - Filter(s) to be applied to the audio. No filters applied by default.\n\n The values of `:start_pos` and `:duration` can be [any time duration that ffmpeg can read](https://ffmpeg.org/ffmpeg-utils.html#Time-duration).\n The `:filter` can be used multiple times in a single call (see examples).\n The values of `:filter` can be [any audio filters that ffmpeg can read](https://ffmpeg.org/ffmpeg-filters.html#Audio-Filters).\n Filters will be applied in order and can be as complex as you want. The world is your oyster!\n\n Note that using the `:volume` option is shortcut for the \"volume\" filter, and will be added to the end of the filter chain, acting as a master volume.\n Volume values between `0.0` and `1.0` act as standard operating range where `0` is off and `1` is max.\n Values greater than `1.0` will add saturation and distortion to the audio.\n Negative values act the same as their position but reverse the polarity of the waveform.\n\n Having all the ffmpeg audio filters available is *extremely powerful* so it may be worth learning some of them for your use cases.\n If you use any filters to *increase* the playback speed of your audio, it's recommended to set the `:realtime` option to `false`\n because realtime processing is relative to the original playback speed.","ref":"Nostrum.Voice.html#play/4-options"},{"type":"function","title":"Examples - Nostrum.Voice.play/4","doc":"```elixir\niex> Nostrum.Voice.join_channel(123456789, 420691337)\n\niex> Nostrum.Voice.play(123456789, \"~/music/FavoriteSong.mp3\", :url)\n\niex> Nostrum.Voice.play(123456789, \"~/music/NotFavoriteButStillGoodSong.mp3\", :url, volume: 0.5)\n\niex> Nostrum.Voice.play(123456789, \"~/music/ThisWillBeHeavilyDistorted.mp3\", :url, volume: 1000)\n```\n```elixir\niex> Nostrum.Voice.join_channel(123456789, 420691337)\n\niex> raw_data = File.read!(\"~/music/sound_effect.wav\")\n\niex> Nostrum.Voice.play(123456789, raw_data, :pipe)\n```\n```elixir\niex> Nostrum.Voice.join_channel(123456789, 420691337)\n\niex> Nostrum.Voice.play(123456789, \"https://www.youtube.com/watch?v=b4RJ-QGOtw4\", :ytdl,\n...> realtime: true, start_pos: \"0:17\", duration: \"30\")\n\niex> Nostrum.Voice.play(123456789, \"https://www.youtube.com/watch?v=0ngcL_5ekXo\", :ytdl,\n...> filter: \"lowpass=f=1200\", filter: \"highpass=f=300\", filter: \"asetrate=44100*0.5\")\n```\n```elixir\niex> Nostrum.Voice.join_channel(123456789, 420691337)\n\niex> Nostrum.Voice.play(123456789, \"https://www.twitch.tv/pestily\", :stream)\n\niex> Nostrum.Voice.play(123456789, \"https://youtu.be/LN4r-K8ZP5Q\", :stream)\n```","ref":"Nostrum.Voice.html#play/4-examples"},{"type":"function","title":"Nostrum.Voice.playing?/1","doc":"Checks if the bot is playing sound in a voice channel.","ref":"Nostrum.Voice.html#playing?/1"},{"type":"function","title":"Parameters - Nostrum.Voice.playing?/1","doc":"- `guild_id` - ID of guild to check if audio being played.\n\nReturns `true` if the bot is currently being played in a voice channel, otherwise `false`.","ref":"Nostrum.Voice.html#playing?/1-parameters"},{"type":"function","title":"Examples - Nostrum.Voice.playing?/1","doc":"```elixir\niex> Nostrum.Voice.join_channel(123456789, 420691337)\n\niex> Nostrum.Voice.play(123456789, \"https://a-real-site.biz/RickRoll.m4a\")\n\niex> Nostrum.Voice.playing?(123456789)\ntrue\n\niex> Nostrum.Voice.pause(123456789)\n\niex> Nostrum.Voice.playing?(123456789)\nfalse\n```","ref":"Nostrum.Voice.html#playing?/1-examples"},{"type":"function","title":"Nostrum.Voice.ready?/1","doc":"Checks if the connection is up and ready to play audio.","ref":"Nostrum.Voice.html#ready?/1"},{"type":"function","title":"Parameters - Nostrum.Voice.ready?/1","doc":"- `guild_id` - ID of guild to check if voice connection is up.\n\nReturns `true` if the bot is connected to a voice channel, otherwise `false`.\n\nThis function does not check if audio is already playing. For that, use `playing?/1`.","ref":"Nostrum.Voice.html#ready?/1-parameters"},{"type":"function","title":"Examples - Nostrum.Voice.ready?/1","doc":"```elixir\niex> Nostrum.Voice.join_channel(123456789, 420691337)\n\niex> Nostrum.Voice.ready?(123456789)\ntrue\n\niex> Nostrum.Voice.leave_channel(123456789)\n\niex> Nostrum.Voice.ready?(123456789)\nfalse\n```","ref":"Nostrum.Voice.html#ready?/1-examples"},{"type":"function","title":"Nostrum.Voice.resume/1","doc":"Resumes playing the current paused sound in a voice channel.\n\nThe bot must be connected to a voice channel in the guild specified.","ref":"Nostrum.Voice.html#resume/1"},{"type":"function","title":"Parameters - Nostrum.Voice.resume/1","doc":"- `guild_id` - ID of guild whose voice channel the sound will be resumed in.\n\nReturns `{:error, reason}` if unable to resume or no sound has been paused, otherwise returns `:ok`.\n\nThis function is used to resume a sound that had previously been paused.","ref":"Nostrum.Voice.html#resume/1-parameters"},{"type":"function","title":"Examples - Nostrum.Voice.resume/1","doc":"```elixir\niex> Nostrum.Voice.join_channel(123456789, 420691337)\n\niex> Nostrum.Voice.play(123456789, \"~/stuff/Toto - Africa (Bass Boosted)\")\n\niex> Nostrum.Voice.pause(123456789)\n\niex> Nostrum.Voice.resume(123456789)\n```","ref":"Nostrum.Voice.html#resume/1-examples"},{"type":"function","title":"Nostrum.Voice.send_frames/2","doc":"Low-level. Send pre-encoded audio packets directly.\n\nSpeaking should be set to true via `Nostrum.Voice.set_is_speaking/2` before sending frames.\n\nOpus frames will be encrypted and prefixed with the appropriate RTP header and sent immediately.\nThe length of `frames` depends on how often you wish to send a sequence of frames.\nA single frame contains 20ms of audio. Sending more than 50 frames (1 second of audio)\nin a single function call may result in inconsistent playback rates.\n\n`Nostrum.Voice.playing?/1` will not return accurate values when using `send_frames/2`\ninstead of `Nostrum.Voice.play/4`","ref":"Nostrum.Voice.html#send_frames/2"},{"type":"function","title":"Nostrum.Voice.set_is_speaking/2","doc":"Low-level. Set speaking flag in voice channel.\n\nThis function does not need to be called unless you are sending audio frames\ndirectly using `Nostrum.Voice.send_frames/2`.","ref":"Nostrum.Voice.html#set_is_speaking/2"},{"type":"function","title":"Nostrum.Voice.start_listen_async/1","doc":"Start asynchronously receiving events for incoming RTP packets for an active voice session.\n\nThis is an alternative to the blocking `listen/3`. Events will be generated asynchronously\nwhen a user is speaking. See `t:Nostrum.Consumer.voice_incoming_packet/0` for more info.","ref":"Nostrum.Voice.html#start_listen_async/1"},{"type":"function","title":"Nostrum.Voice.stop/1","doc":"Stops the current sound being played in a voice channel.\n\nThe bot must be connected to a voice channel in the guild specified.","ref":"Nostrum.Voice.html#stop/1"},{"type":"function","title":"Parameters - Nostrum.Voice.stop/1","doc":"- `guild_id` - ID of guild whose voice channel the sound will be stopped in.\n\nReturns `{:error, reason}` if unable to stop or no sound is playing, else `:ok`.\n\nIf a sound has finished playing, this function does not need to be called to start\nplaying another sound.","ref":"Nostrum.Voice.html#stop/1-parameters"},{"type":"function","title":"Examples - Nostrum.Voice.stop/1","doc":"```elixir\niex> Nostrum.Voice.join_channel(123456789, 420691337)\n\niex> Nostrum.Voice.play(123456789, \"http://brandthill.com/files/weird_dubstep_noises.mp3\")\n\niex> Nostrum.Voice.stop(123456789)\n```","ref":"Nostrum.Voice.html#stop/1-examples"},{"type":"function","title":"Nostrum.Voice.stop_listen_async/1","doc":"Stop asynchronously receiving events for incoming RTP packets for an active voice session.","ref":"Nostrum.Voice.html#stop_listen_async/1"},{"type":"type","title":"Nostrum.Voice.opus_packet/0","doc":"Opus packet","ref":"Nostrum.Voice.html#t:opus_packet/0"},{"type":"type","title":"Nostrum.Voice.play_input/0","doc":"The play input\n\nThe input given to `play/4`, either a compatible URL or binary audio data.\nSee `play/4` for more information.","ref":"Nostrum.Voice.html#t:play_input/0"},{"type":"type","title":"Nostrum.Voice.play_type/0","doc":"The type of play input\n\nThe type given to `play/4` determines how the input parameter is interpreted.\nSee `play/4` for more information.","ref":"Nostrum.Voice.html#t:play_type/0"},{"type":"type","title":"Nostrum.Voice.rtp_opus/0","doc":"Tuple with RTP header elements and opus packet","ref":"Nostrum.Voice.html#t:rtp_opus/0"},{"type":"type","title":"Nostrum.Voice.rtp_sequence/0","doc":"RTP sequence","ref":"Nostrum.Voice.html#t:rtp_sequence/0"},{"type":"type","title":"Nostrum.Voice.rtp_ssrc/0","doc":"RTP SSRC","ref":"Nostrum.Voice.html#t:rtp_ssrc/0"},{"type":"type","title":"Nostrum.Voice.rtp_timestamp/0","doc":"RTP timestamp","ref":"Nostrum.Voice.html#t:rtp_timestamp/0"},{"type":"module","title":"Nostrum.Cache.CacheSupervisor","doc":"Supervises caches for nostrum structures.\n\nSee the documentation for the relevant submodules for details:\n\n- `Nostrum.Cache.ChannelCache`\n- `Nostrum.Cache.GuildCache`\n- `Nostrum.Cache.Me`\n- `Nostrum.Cache.PresenceCache`\n- `Nostrum.Cache.UserCache`","ref":"Nostrum.Cache.CacheSupervisor.html"},{"type":"function","title":"Nostrum.Cache.CacheSupervisor.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.CacheSupervisor.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.CacheSupervisor.init/1","doc":"","ref":"Nostrum.Cache.CacheSupervisor.html#init/1"},{"type":"function","title":"Nostrum.Cache.CacheSupervisor.start_link/1","doc":"","ref":"Nostrum.Cache.CacheSupervisor.html#start_link/1"},{"type":"behaviour","title":"Nostrum.Cache.ChannelCache","doc":"Cache behaviour & dispatcher for direct message channels.\n\nYou can call the functions provided by this module independent of which cache\nis configured, and it will dispatch to the configured cache implementation.\nThe user-facing functions for reading the cache can be found in the \"Reading\nthe cache\" section.\n\nBy default, Elixir.Nostrum.Cache.ChannelCache.ETS will be used for caching channels.\nYou can override this in the `:caches` option of the `:nostrum` application\nby setting the `:channels` field to a different module implementing the\n`Nostrum.Cache.ChannelCache` behaviour. Any module below\n`Nostrum.Cache.ChannelCache` can be used as a cache.","ref":"Nostrum.Cache.ChannelCache.html"},{"type":"behaviour","title":"Writing your own channel cache - Nostrum.Cache.ChannelCache","doc":"As with the other caches, the channel cache API consists of three parts:\n\n- Functions called by nostrum, such as `c:create/1` or `c:update/1`. These\n**do not create any objects in the Discord API**, they are purely created to\nupdate the cached data from data that Discord sends us. If you want to create\nobjects on Discord, use the functions exposed by `Nostrum.Api` instead.\n\n- the QLC query handle for read operations, `c:query_handle/0`, and\n\n- the `c:child_spec/1` callback for starting the cache under a supervisor.\n\nYou need to implement all of them for nostrum to work with your custom\ncache.\n\nThe \"upstream data\" wording in this module references the fact that the\ndata that the channel cache (and other caches) retrieves represents the raw\ndata we receive from the upstream connection, no attempt is made by nostrum\nto sanitize the data before it enters the cache. Caching implementations\nneed to cast the data to the resulting type themselves. A possible future\nimprovement would be moving the data casting into this module before the\nbacking cache implementation is called.","ref":"Nostrum.Cache.ChannelCache.html#module-writing-your-own-channel-cache"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.ChannelCache.html#c:child_spec/1"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.create/1","doc":"Create a channel in the cache.","ref":"Nostrum.Cache.ChannelCache.html#c:create/1"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.delete/1","doc":"Delete a channel from the cache.\n\nReturn the old channel if it was cached, or `nil` otherwise.","ref":"Nostrum.Cache.ChannelCache.html#c:delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.get/1","doc":"Look up a channel in the cache, by message or ID.\n\nAn optional second argument can be passed to select the cache to read from.","ref":"Nostrum.Cache.ChannelCache.html#get/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.get/2","doc":"","ref":"Nostrum.Cache.ChannelCache.html#get/2"},{"type":"function","title":"Nostrum.Cache.ChannelCache.get!/1","doc":"Same as `get/1`, but raises `Nostrum.Error.CacheError` in case of failure.","ref":"Nostrum.Cache.ChannelCache.html#get!/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.get!/2","doc":"","ref":"Nostrum.Cache.ChannelCache.html#get!/2"},{"type":"function","title":"Nostrum.Cache.ChannelCache.query_handle/0","doc":"Return the QLC handle of the configured cache.","ref":"Nostrum.Cache.ChannelCache.html#query_handle/0"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.query_handle/0","doc":"Return a QLC query handle for cache read operations.\n\nThe Erlang manual on [Implementing a QLC\nTable](https://www.erlang.org/doc/man/qlc.html#implementing_a_qlc_table)\ncontains examples for implementation. To prevent full table scans, accept\nmatch specifications in your `TraverseFun` and implement a `LookupFun` as\ndocumented.\n\nThe query handle must return items in the form `{channel_id, channel}`, where:\n- `channel_id` is a `t:Nostrum.Struct.Channel.id/0`, and\n- `channel` is a `t:Nostrum.Struct.Channel.t/0`\n\nIf your cache needs some form of setup or teardown for QLC queries (such as\nopening connections), see `c:wrap_qlc/1`.","ref":"Nostrum.Cache.ChannelCache.html#c:query_handle/0"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.update/1","doc":"Update a channel from upstream data.\n\nReturn the original channel before the update, and the updated channel.","ref":"Nostrum.Cache.ChannelCache.html#c:update/1"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.wrap_qlc/1","doc":"A function that should wrap any `:qlc` operations.\n\nIf you implement a cache that is backed by a database and want to perform\ncleanup and teardown actions such as opening and closing connections,\nmanaging transactions and so on, you want to implement this function. nostrum\nwill then effectively call `wrap_qlc(fn -> :qlc.e(...) end)`.\n\nIf your cache does not need any wrapping, you can omit this.","ref":"Nostrum.Cache.ChannelCache.html#c:wrap_qlc/1"},{"type":"type","title":"Nostrum.Cache.ChannelCache.reason/0","doc":"Specifies the reason for why a lookup operation has failed.","ref":"Nostrum.Cache.ChannelCache.html#t:reason/0"},{"type":"behaviour","title":"Nostrum.Cache.ChannelGuildMapping","doc":"Cache behaviour & dispatcher for mapping channel IDs to their respective guilds.","ref":"Nostrum.Cache.ChannelGuildMapping.html"},{"type":"behaviour","title":"Purpose - Nostrum.Cache.ChannelGuildMapping","doc":"While retrieving the channels on a specific guild is trivial as they are\nstored on the guild, retrieving the guild a given channel belongs to is not\npossible with the regular data mode of channels. This module allows to\nretrieve guilds associated with a channel via `get/1`.","ref":"Nostrum.Cache.ChannelGuildMapping.html#module-purpose"},{"type":"behaviour","title":"Configuration - Nostrum.Cache.ChannelGuildMapping","doc":"By default, nostrum will use `Elixir.Nostrum.Cache.ChannelGuildMapping.ETS` to store the\nmapping. To override this, set the `[:caches, :channel_guild_mapping]`\nsetting on nostrum's application configuration:\n\n```elixir\nconfig :nostrum,\n caches: %{\n channel_guild_mapping: MyBot.Nostrum.Cache.ChannelGuildMapping\n }\n```\n\nThis setting must be set at compile time.","ref":"Nostrum.Cache.ChannelGuildMapping.html#module-configuration"},{"type":"callback","title":"Nostrum.Cache.ChannelGuildMapping.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.ChannelGuildMapping.html#c:child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.create/2","doc":"","ref":"Nostrum.Cache.ChannelGuildMapping.html#create/2"},{"type":"callback","title":"Nostrum.Cache.ChannelGuildMapping.create/2","doc":"Create a mapping of the given channel to the given guild.","ref":"Nostrum.Cache.ChannelGuildMapping.html#c:create/2"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.delete/1","doc":"","ref":"Nostrum.Cache.ChannelGuildMapping.html#delete/1"},{"type":"callback","title":"Nostrum.Cache.ChannelGuildMapping.delete/1","doc":"Remove any mapping associated with the given channel.","ref":"Nostrum.Cache.ChannelGuildMapping.html#c:delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.get/1","doc":"","ref":"Nostrum.Cache.ChannelGuildMapping.html#get/1"},{"type":"callback","title":"Nostrum.Cache.ChannelGuildMapping.get/1","doc":"Retrieve the guild ID for the given channel ID, if present.","ref":"Nostrum.Cache.ChannelGuildMapping.html#c:get/1"},{"type":"behaviour","title":"Nostrum.Cache.GuildCache","doc":"Cache behaviour & dispatcher for guilds.\n\nYou can call the functions provided by this module independent of which cache\nis configured, and it will dispatch to the configured cache implementation.\n\nBy default, Elixir.Nostrum.Cache.GuildCache.ETS will be used for caching guilds.\nYou can override this in the `:caches` option of the `:nostrum` application\nby setting the `:guilds` field to a different module implementing the\n`Nostrum.Cache.GuildCache` behaviour. Any module below\n`Nostrum.Cache.GuildCache` can be used as a cache.","ref":"Nostrum.Cache.GuildCache.html"},{"type":"behaviour","title":"Writing your own guild cache - Nostrum.Cache.GuildCache","doc":"As with the other caches, the guild cache API consists of two parts:\n\n- The functions that nostrum calls, such as `c:create/1` or `c:update/1`.\nThese **do not create any objects in the Discord API**, they are purely\ncreated to update the cached data from data that Discord sends us. If you\nwant to create objects on Discord, use the functions exposed by `Nostrum.Api`\ninstead.\n\n- the QLC query handle for read operations, `c:query_handle/0`, and\n\n- the `c:child_spec/1` callback for starting the cache under a supervisor.\n\nYou need to implement all of them for nostrum to work with your custom\ncache. \n\nThe \"upstream data\" wording in this module references the fact that the\ndata that the guild cache (and other caches) retrieves represents the raw\ndata we receive from the upstream connection, no attempt is made by nostrum\nto sanitize the data before it enters the cache. Caching implementations\nneed to cast the data to the resulting type themselves. A possible future\nimprovement would be moving the data casting into this module before the\nbacking cache implementation is called.","ref":"Nostrum.Cache.GuildCache.html#module-writing-your-own-guild-cache"},{"type":"callback","title":"Nostrum.Cache.GuildCache.channel_create/2","doc":"Create a channel for the guild from upstream data.\n\nReturn the adapted `t:Nostrum.Struct.Channel.t/0` structure.","ref":"Nostrum.Cache.GuildCache.html#c:channel_create/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.channel_delete/2","doc":"Delete the given channel from the guild.\n\nIf the channel was cached, return the original channel. Return `:noop`\notherwise.","ref":"Nostrum.Cache.GuildCache.html#c:channel_delete/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.channel_update/2","doc":"Update the given channel on the given guild from upstream data.\n\nReturn the original channel before the update if known, and the updated\nchannel.","ref":"Nostrum.Cache.GuildCache.html#c:channel_update/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.GuildCache.html#c:child_spec/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.create/1","doc":"Create a guild in the cache.","ref":"Nostrum.Cache.GuildCache.html#c:create/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.delete/1","doc":"Delete a guild from the cache.\n\nReturn the old guild if it was cached, or `nil` otherwise.","ref":"Nostrum.Cache.GuildCache.html#c:delete/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.emoji_update/2","doc":"Update the emoji list of the given guild from upstream data.\n\nDiscord sends us the complete emoji list on an update, which is passed here.\n\nReturn the old list of emojis before the update, and the updated list of\nemojis.","ref":"Nostrum.Cache.GuildCache.html#c:emoji_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.fold/3","doc":"Fold (reduce) over all guilds in the cache.","ref":"Nostrum.Cache.GuildCache.html#fold/3"},{"type":"function","title":"Parameters - Nostrum.Cache.GuildCache.fold/3","doc":"- `acc`: The initial accumulator. Also returned if no guilds are cached.\n- `fun`: Called for every guild in the result. Takes a pair in the form\n`{guild, acc}`, and must return the updated accumulator.\n- `cache` (optional): The cache to use. nostrum will use the cache configured\nat compile time by default.","ref":"Nostrum.Cache.GuildCache.html#fold/3-parameters"},{"type":"function","title":"Nostrum.Cache.GuildCache.get/2","doc":"Retrieves a single `Nostrum.Struct.Guild` from the cache via its `id`.\n\nReturns `{:error, :not_found}` if no result was found.","ref":"Nostrum.Cache.GuildCache.html#get/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.get!/1","doc":"Same as `get/1`, but raises `Nostrum.Error.CacheError` in case of failure.","ref":"Nostrum.Cache.GuildCache.html#get!/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.member_count_down/1","doc":"Decrement the member count for this guild by one.","ref":"Nostrum.Cache.GuildCache.html#c:member_count_down/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.member_count_up/1","doc":"Increment the member count for this guild by one.","ref":"Nostrum.Cache.GuildCache.html#c:member_count_up/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.query_handle/0","doc":"Return the QLC handle of the configured cache.","ref":"Nostrum.Cache.GuildCache.html#query_handle/0"},{"type":"callback","title":"Nostrum.Cache.GuildCache.query_handle/0","doc":"Return a QLC query handle for cache read operations.\n\nThis is used by nostrum to provide any read operations on the cache. Write\noperations still need to be implemented separately.\n\nThe Erlang manual on [Implementing a QLC\nTable](https://www.erlang.org/doc/man/qlc.html#implementing_a_qlc_table)\ncontains examples for implementation. To prevent full table scans, accept\nmatch specifications in your `TraverseFun` and implement a `LookupFun` as\ndocumented.\n\nThe query handle must return items in the form `{guild_id, guild}`, where:\n- `guild_id` is a `t:Nostrum.Struct.Guild.id/0`, and\n- `guild` is a `t:Nostrum.Struct.Guild.t/0`.\n\nIf your cache needs some form of setup or teardown for QLC queries (such as\nopening connections), see `c:wrap_qlc/1`.","ref":"Nostrum.Cache.GuildCache.html#c:query_handle/0"},{"type":"callback","title":"Nostrum.Cache.GuildCache.role_create/2","doc":"Create a role on the given guild from upstream data.\n\nReturn the casted role.","ref":"Nostrum.Cache.GuildCache.html#c:role_create/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.role_delete/2","doc":"Delete the given role on the given guild.\n\nReturn the guild and the old role if it was cached, or `:noop` otherwise.","ref":"Nostrum.Cache.GuildCache.html#c:role_delete/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.role_update/2","doc":"Update a role on the given guild from upstream data.\n\nReturn the old role before the update and the updated role.","ref":"Nostrum.Cache.GuildCache.html#c:role_update/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.update/1","doc":"Update a guild from upstream data.\n\nReturn the original guild before the update (if it was cached) and the\nupdated guild.","ref":"Nostrum.Cache.GuildCache.html#c:update/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.voice_state_update/2","doc":"Update the voice state of the given guild from upstream data.\n\nNote that it is recommended to drop the `:member` / `\"member\"` keys of\nthe supplied upstream data, as these would otherwise duplicate the data\nthat is being kept in the guild cache already.\n\nReturn the guild ID and the updated voice states of the guild.","ref":"Nostrum.Cache.GuildCache.html#c:voice_state_update/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.wrap_qlc/1","doc":"A function that should wrap any `:qlc` operations.\n\nIf you implement a cache that is backed by a database and want to perform\ncleanup and teardown actions such as opening and closing connections,\nmanaging transactions and so on, you want to implement this function. nostrum\nwill then effectively call `wrap_qlc(fn -> :qlc.e(...) end)`.\n\nIf your cache does not need any wrapping, you can omit this.","ref":"Nostrum.Cache.GuildCache.html#c:wrap_qlc/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.wrap_qlc/2","doc":"Call `c:wrap_qlc/1` on the given cache, if implemented.\n\nIf no cache is given, calls out to the default cache.","ref":"Nostrum.Cache.GuildCache.html#wrap_qlc/2"},{"type":"module","title":"Nostrum.Cache.Me","doc":"Simple cache that stores information for the current user.","ref":"Nostrum.Cache.Me.html"},{"type":"function","title":"Nostrum.Cache.Me.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.Me.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.Me.get/0","doc":"Returns the current user's state.","ref":"Nostrum.Cache.Me.html#get/0"},{"type":"function","title":"Nostrum.Cache.Me.start_link/1","doc":"","ref":"Nostrum.Cache.Me.html#start_link/1"},{"type":"behaviour","title":"Nostrum.Cache.MemberCache","doc":"Cache behaviour & dispatcher for guild members.\n\nYou can call the functions provided by this module independent of which cache\nis configured, and it will dispatch to the configured cache implementation.\n\nBy default, Elixir.Nostrum.Cache.MemberCache.ETS will be used for caching\nmembers. You can override this in the `:caches` option of the `:nostrum`\napplication by setting the `:members` field to a different module\nimplementing the behaviour defined by this module.\n\nThe user-facing functions of this module can be called with a custom cache as\nthe final argument. This is mainly useful if you want to test the cache: by\ndefault, nostrum will use Elixir.Nostrum.Cache.MemberCache.ETS.","ref":"Nostrum.Cache.MemberCache.html"},{"type":"callback","title":"Nostrum.Cache.MemberCache.bulk_create/2","doc":"Bulk create multiple members in the cache from upstream data.\n\nReturn value is unused, as we currently do not dispatch a gateway for this.","ref":"Nostrum.Cache.MemberCache.html#c:bulk_create/2"},{"type":"callback","title":"Nostrum.Cache.MemberCache.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.MemberCache.html#c:child_spec/1"},{"type":"callback","title":"Nostrum.Cache.MemberCache.create/2","doc":"Add the member for the given guild from upstream data.\n\nReturn the casted member structure.","ref":"Nostrum.Cache.MemberCache.html#c:create/2"},{"type":"callback","title":"Nostrum.Cache.MemberCache.delete/2","doc":"Remove the given user for the given guild.\n\nReturn the guild ID and old member if the member was cached. Otherwise,\nreturn `:noop`.","ref":"Nostrum.Cache.MemberCache.html#c:delete/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.fold/4","doc":"Fold (reduce) over members for the given guild ID.","ref":"Nostrum.Cache.MemberCache.html#fold/4"},{"type":"function","title":"Parameters - Nostrum.Cache.MemberCache.fold/4","doc":"- `acc`: The initial accumulator. Also returned if no guild members were found.\n- `guild_id`: The guild for which to reduce members.\n- `fun`: Called for every element in the result. Takes a pair\nin the form `{member, acc)`, and must return the updated accumulator.","ref":"Nostrum.Cache.MemberCache.html#fold/4-parameters"},{"type":"function","title":"Return value - Nostrum.Cache.MemberCache.fold/4","doc":"Returns the resulting accumulator via `fun`. Returns `acc` unchanged if no\nresults were found.","ref":"Nostrum.Cache.MemberCache.html#fold/4-return-value"},{"type":"function","title":"Nostrum.Cache.MemberCache.fold_by_user/4","doc":"Reduce over all members cached for the given user ID.\n\nThe members will be returned alongside their guild ID as a pair in the\nformat `{guild_id, member}`.","ref":"Nostrum.Cache.MemberCache.html#fold_by_user/4"},{"type":"function","title":"Nostrum.Cache.MemberCache.fold_with_users/4","doc":"Calls `fun` on each member and its user on the given guild ID, with the given\naccumulator.","ref":"Nostrum.Cache.MemberCache.html#fold_with_users/4"},{"type":"function","title":"Parameters - Nostrum.Cache.MemberCache.fold_with_users/4","doc":"- `acc` (`term()`): The initial accumulator. Also returned if no guild\nmembers were found.\n- `guild_id` (`t:Nostrum.Struct.Guild.id/0`): The guild for which to reduce members.\n- `fun` (`function()`): Called for every element in the result. Takes a pair\nin the form `{{member, user}, acc)`, and must return the updated accumulator.","ref":"Nostrum.Cache.MemberCache.html#fold_with_users/4-parameters"},{"type":"function","title":"Return value - Nostrum.Cache.MemberCache.fold_with_users/4","doc":"Returns the resulting accumulator via `fun`. Returns `acc` unchanged if no\nresults were found.\n\nIf the user for a guild member is not found, the member _and_ user won't be\npresent in the result. Barring a bug in nostrum's caching, this should never\nhappen in practice.","ref":"Nostrum.Cache.MemberCache.html#fold_with_users/4-return-value"},{"type":"function","title":"Nostrum.Cache.MemberCache.get/3","doc":"Get a single member on the given guild ID.","ref":"Nostrum.Cache.MemberCache.html#get/3"},{"type":"function","title":"Nostrum.Cache.MemberCache.get_with_user/3","doc":"Return a member together with its user via the user cache.","ref":"Nostrum.Cache.MemberCache.html#get_with_user/3"},{"type":"function","title":"Nostrum.Cache.MemberCache.query_handle/0","doc":"Return the QLC handle of the configured cache.","ref":"Nostrum.Cache.MemberCache.html#query_handle/0"},{"type":"callback","title":"Nostrum.Cache.MemberCache.query_handle/0","doc":"Return a QLC query handle for cache read operations.\n\nThis is used by nostrum to provide any read operations on the cache. Write\noperations still need to be implemented separately.\n\nThe Erlang manual on [Implementing a QLC\nTable](https://www.erlang.org/doc/man/qlc.html#implementing_a_qlc_table)\ncontains examples for implementation. To prevent full table scans, accept\nmatch specifications in your `TraverseFun` and implement a `LookupFun` as\ndocumented.\n\nThe query handle must return items in the form `{guild_id, user_id,\nmember}`, where:\n- `guild_id` is a `t:Nostrum.Struct.Guild.id/0`,\n- `user_id` is a `t:Nostrum.Struct.User.id/0`, and\n- `member` is a `t:Nostrum.Struct.Guild.Member.t/0`.\n\nIf your cache needs some form of setup or teardown for QLC queries (such as\nopening connections), see `c:wrap_qlc/1`.","ref":"Nostrum.Cache.MemberCache.html#c:query_handle/0"},{"type":"callback","title":"Nostrum.Cache.MemberCache.update/2","doc":"Update the given member for the given guild from upstream data.\n\nReturn the guild ID that was updated, the old cached member (if the member\nwas known to the cache), and the updated member.","ref":"Nostrum.Cache.MemberCache.html#c:update/2"},{"type":"callback","title":"Note regarding intents - Nostrum.Cache.MemberCache.update/2","doc":"Even if the required intents to receive `GUILD_MEMBER_UPDATE` events are\ndisabled to a point where we do not receive guild creation events, it is\nstill possible to receive the event for our own user. An example of this can\nbe found in [issue\n#293](https://github.com/Kraigie/nostrum/issues/293). Note that the issue\npredates the modern nostrum caching infrastructure.","ref":"Nostrum.Cache.MemberCache.html#c:update/2-note-regarding-intents"},{"type":"callback","title":"Nostrum.Cache.MemberCache.wrap_qlc/1","doc":"A function that should wrap any `:qlc` operations.\n\nIf you implement a cache that is backed by a database and want to perform\ncleanup and teardown actions such as opening and closing connections,\nmanaging transactions and so on, you want to implement this function. nostrum\nwill then effectively call `wrap_qlc(fn -> :qlc.e(...) end)`.\n\nIf your cache does not need any wrapping, you can omit this.","ref":"Nostrum.Cache.MemberCache.html#c:wrap_qlc/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.wrap_qlc/2","doc":"Call `c:wrap_qlc/1` on the given cache, if implemented.\n\nIf no cache is given, calls out to the default cache.","ref":"Nostrum.Cache.MemberCache.html#wrap_qlc/2"},{"type":"behaviour","title":"Nostrum.Cache.PresenceCache","doc":"Cache behaviour & dispatcher for Discord presences.\n\nBy default, `Elixir.Nostrum.Cache.PresenceCache.ETS` will be use for caching\npresences. You can override this in the `:caches` option of the `nostrum`\napplication by setting the `:presences` fields to a different module\nimplementing the `Nostrum.Cache.PresenceCache` behaviour. Any module below\n`Nostrum.Cache.PresenceCache` implements this behaviour and can be used as a\ncache.","ref":"Nostrum.Cache.PresenceCache.html"},{"type":"behaviour","title":"Writing your own presence cache - Nostrum.Cache.PresenceCache","doc":"As with the other caches, the presence cache API consists of two parts:\n\n- The functions that nostrum calls, such as `c:create/1` or `c:update/1`.\nThese **do not create any objects in the Discord API**, they are purely\ncreated to update the cached data from data that Discord sends us. If you\nwant to create objects on Discord, use the functions exposed by `Nostrum.Api`\ninstead.\n\n- the QLC query handle for read operations, `c:query_handle/0`, and\n\n- the `c:child_spec/1` callback for starting the cache under a supervisor.\n\nYou need to implement both of them for nostrum to work with your custom\ncache.","ref":"Nostrum.Cache.PresenceCache.html#module-writing-your-own-presence-cache"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.bulk_create/2","doc":"Bulk create multiple presences for the given guild in the cache.","ref":"Nostrum.Cache.PresenceCache.html#c:bulk_create/2"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.PresenceCache.html#c:child_spec/1"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.create/1","doc":"Create a presence in the cache.","ref":"Nostrum.Cache.PresenceCache.html#c:create/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.get/3","doc":"Retrieves a presence for a user from the cache by guild and id.\n\nIf successful, returns `{:ok, presence}`. Otherwise returns `{:error, reason}`.","ref":"Nostrum.Cache.PresenceCache.html#get/3"},{"type":"function","title":"Example - Nostrum.Cache.PresenceCache.get/3","doc":"```elixir\ncase Nostrum.Cache.PresenceCache.get(111133335555, 222244446666) do\n {:ok, presence} ->\n \"They're #{presence.status}\"\n {:error, _reason} ->\n \"They're dead Jim\"\nend\n```","ref":"Nostrum.Cache.PresenceCache.html#get/3-example"},{"type":"function","title":"Nostrum.Cache.PresenceCache.get!/3","doc":"Same as `get/1`, but raise `Nostrum.Error.CacheError` in case of a failure.","ref":"Nostrum.Cache.PresenceCache.html#get!/3"},{"type":"function","title":"Nostrum.Cache.PresenceCache.query_handle/0","doc":"Return the QLC handle of the configured cache.","ref":"Nostrum.Cache.PresenceCache.html#query_handle/0"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.query_handle/0","doc":"Return a QLC query handle for cache read operations.\n\nThis is used by nostrum to provide any read operations on the cache. Write\noperations still need to be implemented separately.\n\nThe Erlang manual on [Implementing a QLC\nTable](https://www.erlang.org/doc/man/qlc.html#implementing_a_qlc_table)\ncontains examples for implementation. To prevent full table scans, accept\nmatch specifications in your `TraverseFun` and implement a `LookupFun` as\ndocumented.\n\nThe query handle must return items in the form `{{guild_id, user_id}, presence}`, where:\n- `guild_id` is a `t:Nostrum.Struct.Guild.id/0`, and\n- `user_id` is a `t:Nostrum.Struct.User.id/0`, and\n- `presence` is a `t:presence/0`.\n\nIf your cache needs some form of setup or teardown for QLC queries (such as\nopening connections), see `c:wrap_qlc/1`.","ref":"Nostrum.Cache.PresenceCache.html#c:query_handle/0"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.update/1","doc":"Update the given presence in the cache from upstream data.","ref":"Nostrum.Cache.PresenceCache.html#c:update/1"},{"type":"callback","title":"Return value - Nostrum.Cache.PresenceCache.update/1","doc":"Return the guild ID along with the old presence (if it was cached, otherwise\n`nil`) and the updated presence structure. If the `:activities` or `:status`\nfields of the presence did not change, return `:noop`.","ref":"Nostrum.Cache.PresenceCache.html#c:update/1-return-value"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.wrap_qlc/1","doc":"A function that should wrap any `:qlc` operations.\n\nIf you implement a cache that is backed by a database and want to perform\ncleanup and teardown actions such as opening and closing connections,\nmanaging transactions and so on, you want to implement this function. nostrum\nwill then effectively call `wrap_qlc(fn -> :qlc.e(...) end)`.\n\nIf your cache does not need any wrapping, you can omit this.","ref":"Nostrum.Cache.PresenceCache.html#c:wrap_qlc/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.wrap_qlc/2","doc":"Call `c:wrap_qlc/1` on the given cache, if implemented.\n\nIf no cache is given, calls out to the default cache.","ref":"Nostrum.Cache.PresenceCache.html#wrap_qlc/2"},{"type":"opaque","title":"Nostrum.Cache.PresenceCache.presence/0","doc":"Represents a presence as received from Discord.\nSee [Presence Update](https://discord.com/developers/docs/topics/gateway#presence-update).","ref":"Nostrum.Cache.PresenceCache.html#t:presence/0"},{"type":"behaviour","title":"Nostrum.Cache.UserCache","doc":"Cache behaviour & dispatcher for users.\n\nYou can call the functions provided by this module independent of which cache\nis configured, and it will dispatch to the configured cache implementation.\n\nBy default, Elixir.Nostrum.Cache.UserCache.ETS will be used for caching users.\nYou can override this in the `:caches` option of the `:nostrum` application\nby setting the `:users` field to a different module implementing the behaviour\ndefined by this module.\n\nSee the documentation for the `Nostrum.Cache.GuildCache` module for more details.","ref":"Nostrum.Cache.UserCache.html"},{"type":"callback","title":"Nostrum.Cache.UserCache.bulk_create/1","doc":"Bulk add multiple users to the cache at once.\n\nReturns `:ok`.","ref":"Nostrum.Cache.UserCache.html#c:bulk_create/1"},{"type":"callback","title":"Nostrum.Cache.UserCache.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.UserCache.html#c:child_spec/1"},{"type":"callback","title":"Nostrum.Cache.UserCache.create/1","doc":"Add a new user to the cache based on the Discord Gateway payload.\n\nReturns a `t:Nostrum.Struct.User.t/0` struct representing the created user.","ref":"Nostrum.Cache.UserCache.html#c:create/1"},{"type":"callback","title":"Nostrum.Cache.UserCache.delete/1","doc":"Delete a user by ID.\n\nReturns the deleted user if present in the cache, or\n`:noop` if the user was not cached.","ref":"Nostrum.Cache.UserCache.html#c:delete/1"},{"type":"function","title":"Nostrum.Cache.UserCache.get/2","doc":"Retrieves a user from the cache by id.\n\nThis function can be called with the cache to use as an optional argument. By\ndefault, the cache configured at compile time is used.","ref":"Nostrum.Cache.UserCache.html#get/2"},{"type":"function","title":"Example - Nostrum.Cache.UserCache.get/2","doc":"```elixir\ncase Nostrum.Cache.UserCache.get(1111222233334444) do\n {:ok, user} ->\n \"We found \" <> user.username\n {:error, _reason} ->\n \"No es bueno\"\nend\n```","ref":"Nostrum.Cache.UserCache.html#get/2-example"},{"type":"function","title":"Nostrum.Cache.UserCache.get!/1","doc":"Same as `get/1`, but raises `Nostrum.Error.CacheError` in case of a failure.","ref":"Nostrum.Cache.UserCache.html#get!/1"},{"type":"function","title":"Nostrum.Cache.UserCache.query_handle/0","doc":"Call `c:query_handle/0` on the configured cache.","ref":"Nostrum.Cache.UserCache.html#query_handle/0"},{"type":"callback","title":"Nostrum.Cache.UserCache.query_handle/0","doc":"Return a query handle for usage with `:qlc`.\n\nThis is used by nostrum to provide automatic joins between the member and the\nuser cache, and may be used for other functions in the future.\n\nThe Erlang manual on [Implementing a QLC\nTable](https://www.erlang.org/doc/man/qlc.html#implementing_a_qlc_table)\ncontains examples for implementation.\n\nThe query handle must return items in the form `{user_id, user}`, where\n`user_id` is a `t:Nostrum.Struct.User.id/0` and `user` is a\n`t:Nostrum.Struct.User.t/0`.","ref":"Nostrum.Cache.UserCache.html#c:query_handle/0"},{"type":"callback","title":"Nostrum.Cache.UserCache.update/1","doc":"Update a user in the cache based on payload sent via the Gateway.\n\nReturns `:noop` if the user has not been updated in the cache, or\n`{old_user, new_user}` is the user has been written to the cache.","ref":"Nostrum.Cache.UserCache.html#c:update/1"},{"type":"callback","title":"Nostrum.Cache.UserCache.wrap_qlc/1","doc":"A function that should wrap any `:qlc` operations.\n\nIf you implement a cache that is backed by a database and want to perform\ncleanup and teardown actions such as opening and closing connections,\nmanaging transactions and so on, you want to implement this function. Nostrum\nwill then effectively call `wrap_qlc(fn -> :qlc.e(...) end)`.\n\nIf your cache does not need any wrapping, you can omit this.","ref":"Nostrum.Cache.UserCache.html#c:wrap_qlc/1"},{"type":"function","title":"Nostrum.Cache.UserCache.wrap_qlc/2","doc":"Call `c:wrap_qlc/1` on the given cache, if implemented.\n\nIf no cache is given, calls out to the default cache.","ref":"Nostrum.Cache.UserCache.html#wrap_qlc/2"},{"type":"module","title":"Nostrum.Struct.ApplicationCommand","doc":"Typespecs for creating Application Commands\n\nOfficial reference:\nhttps://discord.com/developers/docs/interactions/application-commands","ref":"Nostrum.Struct.ApplicationCommand.html"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.application_command_edit_map/0","doc":"When editing an existing application command, only the following fields may be updated,\nmissing fields will remain unchanged.","ref":"Nostrum.Struct.ApplicationCommand.html#t:application_command_edit_map/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.application_command_map/0","doc":"This defines the map for creating an application command.\n\n`:default_permission` is for if the command is enabled for all users by default\n\nFor more information see [the official documentation](https://discord.com/developers/docs/interactions/application-commands)","ref":"Nostrum.Struct.ApplicationCommand.html#t:application_command_map/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.application_command_permission_type/0","doc":"- `1` for `ROLE`\n- `2` for `USER`\n- `3` for `CHANNEL`\n\nYou can use one of the `Nostrum.Constants.ApplicationCommandPermissionType` methods.","ref":"Nostrum.Struct.ApplicationCommand.html#t:application_command_permission_type/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.application_command_permissions/0","doc":"For editing the permissions for an application command\n - `:id` is the id of the role or user\n - `:type` is the type of the id, either `role` or `user`\n - `:allow` is whether the role or user should be allowed to use the command","ref":"Nostrum.Struct.ApplicationCommand.html#t:application_command_permissions/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_choice/0","doc":"If you specify choices for a command those become the only valid options for the user to select from.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_choice/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_description/0","doc":"The description of the command, subcommand, or command_option.\nFor `CHAT_INPUT` commands, it must be between 1 and 100 characters in length.\nFor `USER` and `MESSAGE` commands it must be an empty string.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_description/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_name/0","doc":"The name of the command, subcommand, or command_option.\nIt must be between 1 and 32 characters in length and match the following regex: `^[w-]{1,32}$`.\nOnly `USER` and `MESSAGE` commands may include uppercase letters and spaces.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_name/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_option/0","doc":"This defines a command's parameters. Only valid for `CHAT_INPUT` commands.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_option/0"},{"type":"type","title":"Notes - Nostrum.Struct.ApplicationCommand.command_option/0","doc":"- required parameters on a command must precede optional ones\n - for subcommands and subcommand groups, `:options` are its parameters\n - `:options` and `:choices` are mutually exclusive\n - `:autocomplete` must not be set to true if `:choices` is present\n - if `:type` is 7 then `:channel_types` can be a list of allowed [channel types](https://discord.com/developers/docs/resources/channel#channel-object-channel-types)","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_option/0-notes"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_option_type/0","doc":"Indicates what type of argument the command expects.\n\n- `1` for `SUB_COMMAND`\n- `2` for `SUB_COMMAND_GROUP`\n- `3` for `​STRING`\n- `4` for `​INTEGER` *Note*: due to API limitations they can only be between -2^53 and 2^53\n- `5` for `BOOLEAN`\n- `6` for `USER`\n- `7` for `CHANNEL`\n- `8` for `ROLE`\n- `9` for `MENTIONABLE` *Note*: Includes users and roles\n- `10` for `NUMBER` *Note*: This has the same limitations as `​INTEGER`\n\nYou may use one of the `Nostrum.Constants.ApplicationCommandOptionType` methods.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_option_type/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_type/0","doc":"The type of application command you wish to create\n- `1` for `CHAT_INPUT`, regular slash commands (default)\n- `2` for `USER`, right-click menu commands on a specific user\n- `3` for `MESSAGE`, right-click menu commands on a specific message\n\nYou may use one of the `Nostrum.Constants.ApplicationCommandType` methods.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_type/0"},{"type":"module","title":"Nostrum.Struct.ApplicationCommandInteractionData","doc":"Struct for interaction data.","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.component_type/0","doc":"For components, the ``type`` of the component","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:component_type/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.components/0","doc":"For Modal Sumbit interactions, this will contain the values the user submitted.","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:components/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.custom_id/0","doc":"For components, the ``custom_id`` of the component","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:custom_id/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.id/0","doc":"ID of the invoked command","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.interaction_type/0","doc":"The type of application command invoked.\nOfficial reference:\nhttps://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:interaction_type/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.name/0","doc":"Name of the invoked command","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.options/0","doc":"Parameters and values supplied by the user, if applicable","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:options/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.resolved/0","doc":"Converted users & roles & channels","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:resolved/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.select_values/0","doc":"For select menu components, this will be a list of the values the user selected.","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:select_values/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.t/0","doc":"Command interaction data for slash commands.\n\nUsed as part of `t:Nostrum.Struct.Interaction.t/0`.\n\nOfficial reference:\nhttps://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.target_id/0","doc":"ID of the user or message targeted by a context menu command","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:target_id/0"},{"type":"module","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption","doc":"Struct for command invocation arguments.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.focused/0","doc":"Whether this parameter is focused for `autocomplete` interactions.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:focused/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.name/0","doc":"Parameter name","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.options/0","doc":"Parameter options for subcommands.\n\nMutually exclusive with `value`.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:options/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.t/0","doc":"Command interaction data struct","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.type/0","doc":"The application command option type.\n\nSee https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type\nfor more details.\n\nYou can use one of the `Nostrum.Constants.ApplicationCommandOptionType` methods.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.value/0","doc":"Parameter value.\n\nThe type of this depends on the `t:type/0`:\n\n- For `t:type/0` of `3`, this will be a `t:String.t/0`.\n- For `t:type/0` of `4`, this will be a `t:integer/0`.\n- For `t:type/0` of `5`, this will be a `t:boolean/0`.\n- For `t:type/0` of `6`, this will be a `t:Nostrum.Struct.User.id/0`. The\n corresponding guild member _and_ user can be looked up in\n `t:Nostrum.Struct.ApplicationCommandInteractionData.resolved/0`.\n- For `t:type/0` of `7`, this will be a `t:Nostrum.Struct.Channel.id/0`. The\n corresponding channel can be looked up in\n `t:Nostrum.Struct.ApplicationCommandInteractionData.resolved/0`.\n- For `t:type/0` of `8`, this will be a `t:Nostrum.Struct.Guild.Role.id/0`. The\n corresponding role can be looked up in\n `t:Nostrum.Struct.ApplicationCommandInteractionData.resolved/0`.\n- For `t:type/0` of `9`, this will be a `t:Nostrum.Struct.User.id/0` or `t:Nostrum.Struct.Guild.Role.id/0`. The\n corresponding user or role can be looked up in\n `t:Nostrum.Struct.ApplicationCommandInteractionData.resolved/0`.\n- For `t:type/0` of `10`, this will be a `t:number/0`.\n\nMutually exclusive with `options`. If `options` is not `nil`, this will be `nil`.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:value/0"},{"type":"module","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved","doc":"Converted interaction payload.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.attachments/0","doc":"Attachments sent along with the interaction.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:attachments/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.channels/0","doc":"IDs and corresponding partial channels.\n\nThe channels in this map *only* have the following keys set:\n\n- ``id``\n- ``name``\n- ``type``\n- ``permissions``","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:channels/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.members/0","doc":"IDs and corresponding partial members.\n\nThese members are *missing* values on the following fields:\n\n- ``user``\n- ``deaf``\n- ``mute``\n\nThe corresponding user data can be looked up in ``users``. For members that\nare part of this map, data for the corresponding user will always be included.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:members/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.messages/0","doc":"The IDs and corresponding messages.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:messages/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.roles/0","doc":"IDs and corresponding roles","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:roles/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.t/0","doc":"Resolved interaction data","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.users/0","doc":"IDs and corresponding users","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:users/0"},{"type":"module","title":"Nostrum.Struct.AutoModerationRule","doc":"Struct representing an auto-moderation rule.","ref":"Nostrum.Struct.AutoModerationRule.html"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.actions/0","doc":"A list of Actions which will be performed when the rule is triggered.","ref":"Nostrum.Struct.AutoModerationRule.html#t:actions/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.creator_id/0","doc":"The id of the user who created the rule","ref":"Nostrum.Struct.AutoModerationRule.html#t:creator_id/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.enabled/0","doc":"If the rule is enabled or not.","ref":"Nostrum.Struct.AutoModerationRule.html#t:enabled/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.event_type/0","doc":"Indicates in what event context a rule should be checked\n\n| value | type | description\n| ---- | ---- | -----------\n|`1` | `MESSAGE_SEND` | when a member sends or edits a message in a guild","ref":"Nostrum.Struct.AutoModerationRule.html#t:event_type/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.exempt_channels/0","doc":"A list of channels that are exempt from the rule","ref":"Nostrum.Struct.AutoModerationRule.html#t:exempt_channels/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.exempt_roles/0","doc":"A list of roles that are exempt from the rule.","ref":"Nostrum.Struct.AutoModerationRule.html#t:exempt_roles/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.guild_id/0","doc":"The id of the guild the rule belongs to","ref":"Nostrum.Struct.AutoModerationRule.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.id/0","doc":"The id of the auto-moderation rule","ref":"Nostrum.Struct.AutoModerationRule.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.name/0","doc":"The name of the rule","ref":"Nostrum.Struct.AutoModerationRule.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.preset_values/0","doc":"Values which represent the different presets defined by Discord\n\n| value | type | description\n| ---- | ---- | -----------\n|`1` | `PROFANITY` | Words which may be considered profane\n| `2` | `HARMFUL_LINK` | Words that refer to sexually explicit behavior or activity\n| `3` | `SLURS` | Personal insults or words that may be considered hate speech","ref":"Nostrum.Struct.AutoModerationRule.html#t:preset_values/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.t/0","doc":"","ref":"Nostrum.Struct.AutoModerationRule.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.trigger_metadata/0","doc":"Additional data used to determine if the rule should triggered.\n\nThe `t:trigger_type/0` field will determine which of the following fields are present.\n\n| key | associated `trigger_type`\n| ---- | -----------\n| `keywords` | `​KEYWORD`\n| `preset` | `KEYWORD_PRESET`","ref":"Nostrum.Struct.AutoModerationRule.html#t:trigger_metadata/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.trigger_type/0","doc":"Characters the type of content which triggered the rule\n\n| value | type | max per guild | description\n| ---- | ---- | ----- | -----------\n|`1` | `​KEYWORD` | 3 | check if content contains words from a user defined list of keywords\n| `2` | `HARMFUL_LINK` | 1 | check if the content contains any harmful links\n| `3` | `SPAM` | 1 | check if the content represents generic spam\n| `4` | `KEYWORD_PRESET `| 1 | check if the content contains a list of discord defined keywords\n\nnote: `HARMFUL_LINK` and `SPAM` are not yet offically released at the time of this writing.","ref":"Nostrum.Struct.AutoModerationRule.html#t:trigger_type/0"},{"type":"module","title":"Nostrum.Struct.AutoModerationRule.Action","doc":"Defines an action to be taken when a rule is triggered.","ref":"Nostrum.Struct.AutoModerationRule.Action.html"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.Action.action_type/0","doc":"The type of action to be taken.\n\n| value | action | description\n| ---- | ---- | -----------\n|`1` | `BLOCK_MESSAGE` | Blocks the message from being created\n| `2` | `SEND_ALERT_MESSAGE` | Logs the content of the message in the specified channel\n| `3` | `TIMEOUT` | timeout a user for a specified duration","ref":"Nostrum.Struct.AutoModerationRule.Action.html#t:action_type/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.Action.metadata/0","doc":"","ref":"Nostrum.Struct.AutoModerationRule.Action.html#t:metadata/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.Action.t/0","doc":"","ref":"Nostrum.Struct.AutoModerationRule.Action.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.AutoModerationRule.ActionMetadata","doc":"Struct representing any additional data used when an action is taken.","ref":"Nostrum.Struct.AutoModerationRule.ActionMetadata.html"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.ActionMetadata.send_alert_message_metadata/0","doc":"The id of the channel to send an alert message to.","ref":"Nostrum.Struct.AutoModerationRule.ActionMetadata.html#t:send_alert_message_metadata/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.ActionMetadata.t/0","doc":"The type of metadata present depends on the action type.\n\n| value | type\n| ---- | ----\n| `channel_id` | `SEND_ALERT_MESSAGE`\n| `duration_seconds` | `TIMEOUT`","ref":"Nostrum.Struct.AutoModerationRule.ActionMetadata.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.ActionMetadata.timeout_metadata/0","doc":"The number of seconds to timeout the user for,\nhas a maximum of 2419200 seconds (4 weeks).","ref":"Nostrum.Struct.AutoModerationRule.ActionMetadata.html#t:timeout_metadata/0"},{"type":"module","title":"Nostrum.Struct.AutoModerationRule.TriggerMetadata","doc":"Struct representing the metadata of a trigger.","ref":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.html"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.keyword_metadata/0","doc":"Contains the list of keywords to that will trigger the rule.","ref":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.html#t:keyword_metadata/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.preset_value_metadata/0","doc":"A list of Values which represent the different presets defined by Discord\n\n| value | type | description\n| ---- | ---- | -----------\n| `1` | `PROFANITY` | Words which may be considered profane\n| `2` | `HARMFUL_LINK` | Words that refer to sexually explicit behavior or activity\n| `3` | `SLURS` | Personal insults or words that may be considered hate speech","ref":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.html#t:preset_value_metadata/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.t/0","doc":"Additional data used to determine if the rule should triggered.\n\nThe `t:Nostrum.Struct.AutoModerationRule.trigger_type/0` of the parent struct determine which of the following fields are not `nil`.\n\n| key | associated `trigger_type`\n| ---- | -----------\n| `keywords` | `​KEYWORD`\n| `preset` | `KEYWORD_PRESET`","ref":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Channel","doc":"Struct and helper functions for working with channels.","ref":"Nostrum.Struct.Channel.html"},{"type":"module","title":"Channel Struct - Nostrum.Struct.Channel","doc":"The channel struct is used by Nostrum to represent a _Discord Channel Object_. More information can be found on the [Discord API Channel Documentation](https://discord.com/developers/docs/resources/channel#channels-resource).\n\nThe struct can have one of several forms depending on the type of channel. You can read more about the individual channel types [below](#module-channel-types).\n\nA typical channel would appear as:\n\n```elixir\n%Nostrum.Struct.Channel{\n guild_id: 766435015768539156,\n id: 827333533688397865,\n name: \"announcements\",\n nsfw: false,\n permission_overwrites: [],\n position: 1,\n type: 5,\n}\n```\n\nThe channel struct implements `String.Chars` protocol through the `mention/1` function. This example uses our channel from the previous code block.\n\n```elixir\nchannel |> to_string()\n\"<#766435015768539156>\"\n```","ref":"Nostrum.Struct.Channel.html#module-channel-struct"},{"type":"module","title":"Channel Cache - Nostrum.Struct.Channel","doc":"The [`ChannelCache`](`Nostrum.Cache.ChannelCache`) module provides functionality for you to retrieve information about any channel that your application can see. It provides two functions: [`get/1`](`Nostrum.Cache.ChannelCache.get/1`) and [`get!/1`](`Nostrum.Cache.ChannelCache.get!/1`).","ref":"Nostrum.Struct.Channel.html#module-channel-cache"},{"type":"module","title":"Example - Nostrum.Struct.Channel","doc":"```elixir\nNostrum.Cache.ChannelCache.get!(827333533688397865)\n%Nostrum.Struct.Channel{\n application_id: nil,\n bitrate: nil,\n guild_id: 766435015768539156,\n icon: nil,\n id: 827333533688397865,\n last_message_id: nil,\n last_pin_timestamp: nil,\n name: \"announcements\",\n nsfw: false,\n owner_id: nil,\n parent_id: nil,\n permission_overwrites: [\n %Nostrum.Struct.Overwrite{\n allow: 0,\n deny: 2048,\n id: 766435015768539156,\n type: :role\n }\n ],\n position: 1,\n recipients: nil,\n topic: nil,\n type: 5,\n user_limit: nil\n}\n```\n\nMore details of the cache can be found at `Nostrum.Cache.ChannelCache`.","ref":"Nostrum.Struct.Channel.html#module-example"},{"type":"module","title":"Helper Functions - Nostrum.Struct.Channel","doc":"This module contains two functions for assisting with channel structs. `mention/1` to convert the channel into a mention as a string, and `link/1` to convert the channel into a hyperlink as a string. Further details and examples are detailed in the [Functions section of this module.](#functions)","ref":"Nostrum.Struct.Channel.html#module-helper-functions"},{"type":"module","title":"Api Functions - Nostrum.Struct.Channel","doc":"The Nostrum Api contains numerous functions related to channels. Notable functions relating to channels are shown below.\n\n- `Nostrum.Api.create_guild_channel/2`\n- `Nostrum.Api.get_channel/1`\n- `Nostrum.Api.modify_channel/3`\n- `Nostrum.Api.delete_channel/2`\n- `Nostrum.Api.add_pinned_channel_message/2`\n- `Nostrum.Api.create_channel_invite/3`\n- `Nostrum.Api.get_guild_channels/1`\n- `Nostrum.Api.modify_guild_channel_positions/2`\n\n> Note: This is not an exhaustive list, for full details please see the `Nostrum.Api` module documentation.","ref":"Nostrum.Struct.Channel.html#module-api-functions"},{"type":"module","title":"Channel Types - Nostrum.Struct.Channel","doc":"Channels take the shape of various types depending on their use and not all fields are always used. The currently implemented channel types are detailed below. The type of channel is determined by the `:type` field.\n\nThis diagram represents the regular channel types `0`, `2`, `5` and `13`.\n\n ![Discord Channels](./assets/channel_types.png)\n\n The currently implemented channel types are:\n\n| |Channel Type | |\n|---- |-------------------- |--------------------------------------------------------------- |\n|`0` |[`GUILD_TEXT`](`t:guild_text_channel/0`) |_A text channel within a server_ |\n|`1` |[`DM`](`t:dm_channel/0`) |_A direct message between users_ |\n|`2` |[`GUILD_VOICE`](`t:guild_voice_channel/0`) |_A voice channel within a server_ |\n|`3` |[`GROUP_DM`](`t:group_dm_channel/0`) |_A direct message between multiple users_ |\n|`4` |[`GUILD_CATEGORY`](`t:guild_category_channel/0`) |_A category that contains up to 50 channels_ |\n|`5` |[`GUILD_NEWS`](`t:guild_news_channel/0`) |_A channel that users can follow and crosspost_ |\n|`6` |[`GUILD_STORE`](`t:guild_store_channel/0`) |_A channel to sell games on Discord_ |\n|`10` |[`GUILD_NEWS_THREAD`](`t:guild_news_thread_channel/0`) |_A temporary sub-channel within a news channel_ |\n|`11` |[`GUILD_PUBLIC_THREAD`](`t:guild_public_thread_channel/0`) |_A temporary sub-channel within a text channel_ |\n|`12` |[`GUILD_PRIVATE_THREAD`](`t:guild_private_thread_channel/0`) |_A temporary private sub-channel within a text channel_ |\n|`13` |[`GUILD_STAGE_VOICE`](`t:guild_stage_voice_channel/0`) |_A voice channel for hosting events with an audience_ |\n|`15` |[`GUILD_FORUM`](`t:guild_forum_channel/0`) |_A channel that can only contain threads |\n\nYou can use one of the `Nostrum.Constants.ChannelType` methods.\n\nMore information about _Discord Channel Types_ can be found on the [Discord API Channel Type Documentation](https://discord.com/developers/docs/resources/channel#channel-object-channel-types).","ref":"Nostrum.Struct.Channel.html#module-channel-types"},{"type":"function","title":"Nostrum.Struct.Channel.mention/1","doc":"Convert a channel into a mention.\n\nHandles the conversion of a `Nostrum.Struct.Channel` into the required format to _mention_ the channel within a message. Mentioning the channel will provide a clickable link to take the user to the channel.","ref":"Nostrum.Struct.Channel.html#mention/1"},{"type":"function","title":"Parameters - Nostrum.Struct.Channel.mention/1","doc":"- channel: `t:Nostrum.Struct.Channel.t/0`","ref":"Nostrum.Struct.Channel.html#mention/1-parameters"},{"type":"function","title":"Examples - Nostrum.Struct.Channel.mention/1","doc":"```elixir\nNostrum.Cache.ChannelCache.get(381889573426429952)\n|> Nostrum.Struct.Channel.mention()\n\"<#381889573426429952>\"\n\n```","ref":"Nostrum.Struct.Channel.html#mention/1-examples"},{"type":"type","title":"Nostrum.Struct.Channel.application_id/0","doc":"The id of the application that created a group direct message or thread.\n\nThis applies to bot created channels.","ref":"Nostrum.Struct.Channel.html#t:application_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.applied_tags/0","doc":"","ref":"Nostrum.Struct.Channel.html#t:applied_tags/0"},{"type":"type","title":"Nostrum.Struct.Channel.archive_timestamp/0","doc":"When the thread was archived.","ref":"Nostrum.Struct.Channel.html#t:archive_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Channel.archived/0","doc":"The threads archived status.","ref":"Nostrum.Struct.Channel.html#t:archived/0"},{"type":"type","title":"Nostrum.Struct.Channel.auto_archive_duration/0","doc":"Archive duration for the thread in minutes.\n\n- 60, 1 hour\n- 1440, 24 hours\n- 4320, 3 days\n- 10080, 7 days","ref":"Nostrum.Struct.Channel.html#t:auto_archive_duration/0"},{"type":"type","title":"Nostrum.Struct.Channel.bitrate/0","doc":"The bitate of the voice channel.","ref":"Nostrum.Struct.Channel.html#t:bitrate/0"},{"type":"type","title":"Nostrum.Struct.Channel.channel_mention/0","doc":"A partial channel object representing a channel mention.\n\nMore information about the _Discord Channel Mention Object_ can be found at the [Discord API Channel Mention Object\nDocumentation](https://discord.com/developers/docs/resources/channel#channel-mention-object).","ref":"Nostrum.Struct.Channel.html#t:channel_mention/0"},{"type":"type","title":"Nostrum.Struct.Channel.default_auto_archive_duration/0","doc":"Default duration for newly created threads in minutes.\n\n- 60, 1 hour\n- 1440, 24 hours\n- 4320, 3 days\n- 10080, 7 days","ref":"Nostrum.Struct.Channel.html#t:default_auto_archive_duration/0"},{"type":"type","title":"Nostrum.Struct.Channel.default_reaction_emoji/0","doc":"An object that specifies the emoji to use as the default way to react to a forum post.\n\n`:emoji_id` and `:emoji_name` are mutually exclusive","ref":"Nostrum.Struct.Channel.html#t:default_reaction_emoji/0"},{"type":"type","title":"Nostrum.Struct.Channel.default_thread_rate_limit_per_user/0","doc":"The `:rate_limit_per_user` which will be applied to threads created in the channel, in seconds.","ref":"Nostrum.Struct.Channel.html#t:default_thread_rate_limit_per_user/0"},{"type":"type","title":"Nostrum.Struct.Channel.dm_channel/0","doc":"Type 1 partial channel object representing a direct message.","ref":"Nostrum.Struct.Channel.html#t:dm_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.flags/0","doc":"User thread settings, currently only used for notifications.","ref":"Nostrum.Struct.Channel.html#t:flags/0"},{"type":"type","title":"Nostrum.Struct.Channel.forum_tag/0","doc":"A map representing a tag for use in forum channels.\n\n`:moderated` indicates whether the tag can only be added or removed by moderators.\n`:emoji_id` and `:emoji_name` are mutually exclusive and indicate the emoji used to represent the tag.","ref":"Nostrum.Struct.Channel.html#t:forum_tag/0"},{"type":"type","title":"Nostrum.Struct.Channel.group_dm_channel/0","doc":"Type 3 partial channel object representing a group direct message.","ref":"Nostrum.Struct.Channel.html#t:group_dm_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_category_channel/0","doc":"Type 4 partial channel object representing a channel category.\n\n> Note: Other channels `parent_id` field refers to this type of object.","ref":"Nostrum.Struct.Channel.html#t:guild_category_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_channel/0","doc":"Guild channel types","ref":"Nostrum.Struct.Channel.html#t:guild_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_forum_channel/0","doc":"Type 15 a guild forum channel.","ref":"Nostrum.Struct.Channel.html#t:guild_forum_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_id/0","doc":"The id of the guild the channel is located in.","ref":"Nostrum.Struct.Channel.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_news_channel/0","doc":"Type 5 partial channel object representing a news channel.","ref":"Nostrum.Struct.Channel.html#t:guild_news_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_news_thread_channel/0","doc":"Type 10 partial channel object representing a news thread.","ref":"Nostrum.Struct.Channel.html#t:guild_news_thread_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_private_thread_channel/0","doc":"Type 12 partial channel object representing a private thread.","ref":"Nostrum.Struct.Channel.html#t:guild_private_thread_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_public_thread_channel/0","doc":"Type 11 partial channel object representing a standard thread.","ref":"Nostrum.Struct.Channel.html#t:guild_public_thread_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_stage_voice_channel/0","doc":"Type 13 channel object representing a stage channel.","ref":"Nostrum.Struct.Channel.html#t:guild_stage_voice_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_store_channel/0","doc":"Type 6 partial channel object representing a store channel.","ref":"Nostrum.Struct.Channel.html#t:guild_store_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_text_channel/0","doc":"Type 0 partial channel object representing a text channel within a guild.","ref":"Nostrum.Struct.Channel.html#t:guild_text_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_voice_channel/0","doc":"Type 2 partial channel object representing an audio channel within a guild.","ref":"Nostrum.Struct.Channel.html#t:guild_voice_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.icon/0","doc":"The hash of the channels icon.","ref":"Nostrum.Struct.Channel.html#t:icon/0"},{"type":"type","title":"Nostrum.Struct.Channel.id/0","doc":"The id of the channel object.","ref":"Nostrum.Struct.Channel.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Channel.join_timestamp/0","doc":"When the user joined the thread.","ref":"Nostrum.Struct.Channel.html#t:join_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Channel.last_message_id/0","doc":"The id of the last message sent in the channel.\n\nFor `GUILD_FORUM` channels, this is the last thread created in the channel.","ref":"Nostrum.Struct.Channel.html#t:last_message_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.last_pin_timestamp/0","doc":"Timestamp for the last pinned message.","ref":"Nostrum.Struct.Channel.html#t:last_pin_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Channel.locked/0","doc":"The threads locked status.","ref":"Nostrum.Struct.Channel.html#t:locked/0"},{"type":"type","title":"Nostrum.Struct.Channel.member/0","doc":"Present when the bot joins a thread.\n\nNote: This is omitted on threads that the bot can immediately access on `:GUILD_CREATE` events received.","ref":"Nostrum.Struct.Channel.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Channel.member_count/0","doc":"Approximate count of members in a thread, capped at 50.","ref":"Nostrum.Struct.Channel.html#t:member_count/0"},{"type":"type","title":"Nostrum.Struct.Channel.message_count/0","doc":"Approximate count of messages in a thread, capped at 50.","ref":"Nostrum.Struct.Channel.html#t:message_count/0"},{"type":"type","title":"Nostrum.Struct.Channel.name/0","doc":"The name of the channel.","ref":"Nostrum.Struct.Channel.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Channel.newly_created/0","doc":"Included only in the `THREAD_CREATE` event.","ref":"Nostrum.Struct.Channel.html#t:newly_created/0"},{"type":"type","title":"Nostrum.Struct.Channel.nsfw/0","doc":"Whether the NSFW setting is enabled for this channel.","ref":"Nostrum.Struct.Channel.html#t:nsfw/0"},{"type":"type","title":"Nostrum.Struct.Channel.owner_id/0","doc":"The id of the user of a group direct message or thread.\n\nThis applies to user created channels.","ref":"Nostrum.Struct.Channel.html#t:owner_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.parent_id/0","doc":"The id of the parent channel that this channel is located under.\n\nFor threads, that is the channel that contains the thread. For regular channels, it is the category that the channel is located under.","ref":"Nostrum.Struct.Channel.html#t:parent_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.permission_overwrites/0","doc":"A list of permission overwrites applied to the channel.","ref":"Nostrum.Struct.Channel.html#t:permission_overwrites/0"},{"type":"type","title":"Nostrum.Struct.Channel.permissions/0","doc":"Computed permissions of the invoking user.\n\nPermissions for the invoking user in the channel, including overwrites, only included when part of the resolved data received on a slash command interaction","ref":"Nostrum.Struct.Channel.html#t:permissions/0"},{"type":"type","title":"Nostrum.Struct.Channel.position/0","doc":"The position of the channel in the sidebar of the guild.","ref":"Nostrum.Struct.Channel.html#t:position/0"},{"type":"type","title":"Nostrum.Struct.Channel.rate_limit_per_user/0","doc":"The users rate limit.\n\nAmount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages or manage_channel, are unaffected","ref":"Nostrum.Struct.Channel.html#t:rate_limit_per_user/0"},{"type":"type","title":"Nostrum.Struct.Channel.recipients/0","doc":"A list of users in a group DM.","ref":"Nostrum.Struct.Channel.html#t:recipients/0"},{"type":"type","title":"Nostrum.Struct.Channel.rtc_region/0","doc":"Region id for the channel.\n\nMore information about _region ids_ can be found on the [Discord API Voice Region Object Documentation](https://discord.com/developers/docs/resources/voice#voice-region-object).","ref":"Nostrum.Struct.Channel.html#t:rtc_region/0"},{"type":"type","title":"Nostrum.Struct.Channel.t/0","doc":"All valid channel types.","ref":"Nostrum.Struct.Channel.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Channel.text_channel/0","doc":"All valid text channels.","ref":"Nostrum.Struct.Channel.html#t:text_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.thread_metadata/0","doc":"Thread-specific fields not needed by other channels.","ref":"Nostrum.Struct.Channel.html#t:thread_metadata/0"},{"type":"type","title":"Nostrum.Struct.Channel.topic/0","doc":"The topic of the channel.","ref":"Nostrum.Struct.Channel.html#t:topic/0"},{"type":"type","title":"Nostrum.Struct.Channel.type/0","doc":"The type of channel.\n\nMore information about _Discord Channel Types_ can be found under the [`types`](#module-channel-types) on the [Discord API Channel Type Documentation](https://discord.com/developers/docs/resources/channel#channel-object-channel-types).","ref":"Nostrum.Struct.Channel.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Channel.user_id/0","doc":"User id of the threads creator.","ref":"Nostrum.Struct.Channel.html#t:user_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.user_limit/0","doc":"The user limit of a voice channel.","ref":"Nostrum.Struct.Channel.html#t:user_limit/0"},{"type":"type","title":"Nostrum.Struct.Channel.video_quality_mode/0","doc":"The video quality mode of the channel.\n\nMore information about _video quality modes_ can be found on the [Discord API Video Quality Mode Documentation](https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes).","ref":"Nostrum.Struct.Channel.html#t:video_quality_mode/0"},{"type":"type","title":"Nostrum.Struct.Channel.voice_channel/0","doc":"A `Nostrum.Struct.Channel` that represents a voice channel","ref":"Nostrum.Struct.Channel.html#t:voice_channel/0"},{"type":"behaviour","title":"Nostrum.Struct.Component","doc":"Components are a framework for adding interactive elements to the messages your app or bot sends. They're accessible, customizable, and easy to use. There are several different types of components; this documentation will outline the basics of this new framework and each example.\n\n> Components have been broken out into individual modules for easy distinction between them and to separate helper functions and individual type checking between component types - especially as more components are added by Discord.\n\nEach of the components are provided all of the valid types through this module to avoid repetition and allow new components to be added quicker and easier.","ref":"Nostrum.Struct.Component.html"},{"type":"behaviour","title":"Action Row - Nostrum.Struct.Component","doc":"An Action Row is a non-interactive container component for other types of components. It has a `type: 1` and a sub-array of `components` of other types.\n\n- You can have up to 5 Action Rows per message\n- An Action Row cannot contain another Action Row\n- An Action Row containing buttons cannot also contain a select menu","ref":"Nostrum.Struct.Component.html#module-action-row"},{"type":"behaviour","title":"Buttons - Nostrum.Struct.Component","doc":"Buttons are interactive components that render on messages. They have a `type: 2`, They can be clicked by users. Buttons in Nostrum are further separated into two types, detailed below. Only the [Interaction Button](#module-interaction-buttons-non-link-buttons) will fire a `Nostrum.Struct.Interaction` when pressed.\n\n![Discord Buttons](./assets/buttons.png)\n\n- Buttons must exist inside an Action Row\n- An Action Row can contain up to 5 buttons\n- An Action Row containing buttons cannot also contain a select menu\n\nFor more information check out the [Discord API Button Styles](https://discord.com/developers/docs/interactions/message-components#button-object-button-styles) for more information.","ref":"Nostrum.Struct.Component.html#module-buttons"},{"type":"behaviour","title":"Link Buttons - Nostrum.Struct.Component","doc":"- Link buttons **do not** send an `interaction` to your app when clicked\n- Link buttons **must** have a `url`, and **cannot** have a `custom_id`\n- Link buttons will **always** use `style: 5`\n\n#### Link `style: 5`\n![Link Button](./assets/secondary_button.png)","ref":"Nostrum.Struct.Component.html#module-link-buttons"},{"type":"behaviour","title":"Interaction Buttons ( Non-link Buttons ) - Nostrum.Struct.Component","doc":"> Discord calls these buttons \"Non-link Buttons\" due to the fact that they do not contain a url. However it would be more accurate to call them an \"Interaction Button\" as they **do** fire an interaction when clicked which is far more useful for your applications interactivity. As such they are referred to as \"Interaction Button\" throughout the rest of this module.\n\n- Interaction buttons **must** have a `custom_id`, and **cannot** have a `url`\n- Can have one of the below `:style` applied.\n\n#### Primary `style: 1`\n![Primary](./assets/primary_button.png)\n\n#### Secondary `style: 2`\n![Secondary](./assets/secondary_button.png)\n\n#### Success `style: 3`\n![Success](./assets/success_button.png)\n\n#### Danger `style: 4`\n![Danger (1)](./assets/danger_button.png)","ref":"Nostrum.Struct.Component.html#module-interaction-buttons-non-link-buttons"},{"type":"behaviour","title":"🐼 ~~Emoji Buttons~~ - Nostrum.Struct.Component","doc":"> Note: The discord documentation and marketing material in relation to buttons indicates that there are three kinds of buttons: 🐼 **Emoji Buttons**, **Link Buttons** & **Non-Link Buttons**. When in fact all buttons can contain an emoji. Because of this reason 🐼 **Emoji Buttons** are not included as a separate type. Emojis will be instead handled by the two included ( superior ) button types.\n\n![emoji buttons in action](./assets/emoji_button.png)\n\n> The field requirements are already becoming convoluted especially considering everything so far is all still a \"Component\". Using the sub types and helper functions will ensure all of the rules are followed when creating components.","ref":"Nostrum.Struct.Component.html#module-emoji-buttons"},{"type":"behaviour","title":"Select Menu - Nostrum.Struct.Component","doc":"Select menus are another interactive component that renders on messages. On desktop, clicking on a select menu opens a dropdown-style UI; on mobile, tapping a select menu opens up a half-sheet with the options.\n\n![Discord Selects](./assets/select_menu.png)\n\nSelect menus support single-select and multi-select behavior, meaning you can prompt a user to choose just one item from a list, or multiple. When a user finishes making their choice by clicking out of the dropdown or closing the half-sheet, your app will receive an interaction.\n- Select menus **must** be sent inside an Action Row\n- An Action Row can contain **only one** select menu\n- An Action Row containing a select menu **cannot** also contain buttons","ref":"Nostrum.Struct.Component.html#module-select-menu"},{"type":"behaviour","title":"Text Input - Nostrum.Struct.Component","doc":"Text inputs are an interactive component that render on modals. They can be used to collect short-form or long-form text.\n- Text inputs **must** be sent inside an Action Row\n- An Action Row can contain **only one** text input\n- An Action Row containing a text input **cannot** also contain buttons or a select menu\n\nCan be used to collect short-form or long-form text.\n- For short-form text, use `style: 1`\n- For long-form text, use `style: 2`\n\nText inputs are only allowed to be sent as part of an Interaction response that opens a MODAL.","ref":"Nostrum.Struct.Component.html#module-text-input"},{"type":"callback","title":"Nostrum.Struct.Component.new/1","doc":"Create a component from the given keyword list of options\n\n> Note: While using this function directly, you are not guaranteed to produce a valid component and it is the responsibility of the user to ensure they are passing a valid combination of component attributes. eg. if you pass a button component both a `custom_id`, and a `url`, the component is invalid as only one of these fields is allowed.","ref":"Nostrum.Struct.Component.html#c:new/1"},{"type":"function","title":"Nostrum.Struct.Component.to_struct/1","doc":"","ref":"Nostrum.Struct.Component.html#to_struct/1"},{"type":"callback","title":"Nostrum.Struct.Component.update/2","doc":"Updates a component with the parameters provided.\n\n> Note: While using this function directly, you are not guaranteed to produce a valid component and it is the responsibility of the user to ensure they are passing a valid combination of component attributes. eg. if you pass a button component both a `custom_id`, and a `url`, the component is invalid as only one of these fields is allowed.","ref":"Nostrum.Struct.Component.html#c:update/2"},{"type":"type","title":"Nostrum.Struct.Component.components/0","doc":"A list of components to place inside an action row.\n\nDue to constraints of action rows, this can either be a list of up to five buttons, a single select menu, or a single text input.\n\nValid for [Action Row](#module-action-row).","ref":"Nostrum.Struct.Component.html#t:components/0"},{"type":"type","title":"Nostrum.Struct.Component.custom_id/0","doc":"Used to identify the command when the interaction is sent to you from the user.\n\nValid for [Interaction Buttons](#module-interaction-button), [Select Menus](#module-select-menu), and [Text Input](#module-text-input).","ref":"Nostrum.Struct.Component.html#t:custom_id/0"},{"type":"type","title":"Nostrum.Struct.Component.disabled/0","doc":"Indicates if the component is disabled or not.\n\nValid for [Buttons](#module-buttons) & [Select Menus](#module-select-menu).","ref":"Nostrum.Struct.Component.html#t:disabled/0"},{"type":"type","title":"Nostrum.Struct.Component.emoji/0","doc":"A partial emoji to display on the object.\n\nValid for [Buttons](#module-buttons)","ref":"Nostrum.Struct.Component.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Component.label/0","doc":"A string that appears on the button, max 80 characters.\n\nValid for [Buttons](#module-buttons)","ref":"Nostrum.Struct.Component.html#t:label/0"},{"type":"type","title":"Nostrum.Struct.Component.max_length/0","doc":"The maximum length of the text input. Minimum value 1, max 4000.\n\nValid for [Text Input](#module-text-input).","ref":"Nostrum.Struct.Component.html#t:max_length/0"},{"type":"type","title":"Nostrum.Struct.Component.max_values/0","doc":"The maximum number of permitted selections. Minimum value 0, max 25.\n\nValid for [Select Menus](#module-select-menu).","ref":"Nostrum.Struct.Component.html#t:max_values/0"},{"type":"type","title":"Nostrum.Struct.Component.min_length/0","doc":"The minimum length of the text input. Minimum value 0, max 4000.\n\nValid for [Text Input](#module-text-input).","ref":"Nostrum.Struct.Component.html#t:min_length/0"},{"type":"type","title":"Nostrum.Struct.Component.min_values/0","doc":"The minimum number of permitted selections. Minimum value 0, max 25.\n\nValid for [Select Menus](#module-select-menu).","ref":"Nostrum.Struct.Component.html#t:min_values/0"},{"type":"type","title":"Nostrum.Struct.Component.options/0","doc":"A list of options for select menus, max 25.\n\nValid for [Select Menus](#module-select-menu).","ref":"Nostrum.Struct.Component.html#t:options/0"},{"type":"type","title":"Nostrum.Struct.Component.placeholder/0","doc":"Placeholder text if nothing is selected, max 100 characters\n\nValid for [Select Menus](#module-select-menu) and [Text Input](#module-text-input).","ref":"Nostrum.Struct.Component.html#t:placeholder/0"},{"type":"type","title":"Nostrum.Struct.Component.required/0","doc":"Indicates if the text input is required.\n\nValid for [Text Input](#module-text-input).","ref":"Nostrum.Struct.Component.html#t:required/0"},{"type":"type","title":"Nostrum.Struct.Component.style/0","doc":"Indicates the style.\n\nYou can use one of the `Nostrum.Constants.ButtonStyle` methods.\n\nValid for Valid for [Interaction Buttons](#module-interaction-button) and [Text Input](#module-text-input).","ref":"Nostrum.Struct.Component.html#t:style/0"},{"type":"type","title":"Nostrum.Struct.Component.t/0","doc":"The currently valid component types.","ref":"Nostrum.Struct.Component.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Component.type/0","doc":"The type of component.\n\nValid for All Types.\n\n| | Component Types |\n|------|-----|\n| `1` | Action Row |\n| `2` | Button |\n| `3` | SelectMenu |\n| `4` | TextInput |\n\nYou can use one of the `Nostrum.Constants.ComponentType` methods.\n\nCheck out the [Discord API Message Component Types](https://discord.com/developers/docs/interactions/message-components#component-object-component-types) for more information.","ref":"Nostrum.Struct.Component.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Component.url/0","doc":"A url for link buttons.\n\nValid for: [Buttons](#module-buttons)","ref":"Nostrum.Struct.Component.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Component.value/0","doc":"A pre-filled value for the text input, max 4000 characters.\n\nValid for [Text Input](#module-text-input).","ref":"Nostrum.Struct.Component.html#t:value/0"},{"type":"module","title":"Nostrum.Struct.Component.ActionRow","doc":"Action Rows.","ref":"Nostrum.Struct.Component.ActionRow.html"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.action_row/1","doc":"Create an empty action row.\n\nOptions can be passed as a keyword list. The only supported option is a list of inner components","ref":"Nostrum.Struct.Component.ActionRow.html#action_row/1"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.append/2","doc":"Appends a button to the action row.\n\nReturns the action row unchanged if there are already 5 buttons or if the action row contains a select menu or text input.","ref":"Nostrum.Struct.Component.ActionRow.html#append/2"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.append_lazy/2","doc":"Lazily appends a button to the action row.\n\nIf there are already 5 buttons, the first one will be dropped.","ref":"Nostrum.Struct.Component.ActionRow.html#append_lazy/2"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.flatten/1","doc":"","ref":"Nostrum.Struct.Component.ActionRow.html#flatten/1"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.put/2","doc":"Puts the given component into the action row, any existing components are discarded.","ref":"Nostrum.Struct.Component.ActionRow.html#put/2"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.put_new/2","doc":"Puts the components into the action row unless a list of inner components already exists.","ref":"Nostrum.Struct.Component.ActionRow.html#put_new/2"},{"type":"type","title":"Nostrum.Struct.Component.ActionRow.t/0","doc":"","ref":"Nostrum.Struct.Component.ActionRow.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Component.Button","doc":"Helpers for dealing with Button Components","ref":"Nostrum.Struct.Component.Button.html"},{"type":"function","title":"Nostrum.Struct.Component.Button.button/1","doc":"Create a button.\n\nThis function provides direct access to the `new/1` callback.\n\n> Note: While using this function directly you are **not** guaranteed to return a valid button, providing a valid combination of options becomes the responsibility of the reader. It is instead recommended to use the helper functions provided below.","ref":"Nostrum.Struct.Component.Button.html#button/1"},{"type":"function","title":"Nostrum.Struct.Component.Button.disable/2","doc":"Disables the button when `disabled` is true. Enables it otherwise.","ref":"Nostrum.Struct.Component.Button.html#disable/2"},{"type":"function","title":"Nostrum.Struct.Component.Button.flatten/1","doc":"","ref":"Nostrum.Struct.Component.Button.html#flatten/1"},{"type":"function","title":"Nostrum.Struct.Component.Button.interaction_button/3","doc":"Create an interaction button.\n\nRead more about interaction buttons in the `Nostrum.Struct.Component` documentation.","ref":"Nostrum.Struct.Component.Button.html#interaction_button/3"},{"type":"function","title":"Nostrum.Struct.Component.Button.link_button/3","doc":"Create a link button.\n\nRead more about link buttons in the `Nostrum.Struct.Component` documentation.","ref":"Nostrum.Struct.Component.Button.html#link_button/3"},{"type":"function","title":"Nostrum.Struct.Component.Button.put_style/2","doc":"Changes the style of the button.","ref":"Nostrum.Struct.Component.Button.html#put_style/2"},{"type":"function","title":"Nostrum.Struct.Component.Button.toggle/1","doc":"Toggle the buttons disabled state.","ref":"Nostrum.Struct.Component.Button.html#toggle/1"},{"type":"type","title":"Nostrum.Struct.Component.Button.interaction_button/0","doc":"","ref":"Nostrum.Struct.Component.Button.html#t:interaction_button/0"},{"type":"type","title":"Nostrum.Struct.Component.Button.link_button/0","doc":"","ref":"Nostrum.Struct.Component.Button.html#t:link_button/0"},{"type":"type","title":"Nostrum.Struct.Component.Button.opt/0","doc":"","ref":"Nostrum.Struct.Component.Button.html#t:opt/0"},{"type":"type","title":"Nostrum.Struct.Component.Button.opts/0","doc":"","ref":"Nostrum.Struct.Component.Button.html#t:opts/0"},{"type":"type","title":"Nostrum.Struct.Component.Button.t/0","doc":"","ref":"Nostrum.Struct.Component.Button.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Component.Option","doc":"Component Options","ref":"Nostrum.Struct.Component.Option.html"},{"type":"type","title":"Nostrum.Struct.Component.Option.default/0","doc":"If this option is selected by default.","ref":"Nostrum.Struct.Component.Option.html#t:default/0"},{"type":"type","title":"Nostrum.Struct.Component.Option.description/0","doc":"An optional description of the option. Max length is 100 characters.","ref":"Nostrum.Struct.Component.Option.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Component.Option.emoji/0","doc":"","ref":"Nostrum.Struct.Component.Option.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Component.Option.label/0","doc":"The user-facing name of the option.","ref":"Nostrum.Struct.Component.Option.html#t:label/0"},{"type":"type","title":"Nostrum.Struct.Component.Option.t/0","doc":"","ref":"Nostrum.Struct.Component.Option.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Component.Option.value/0","doc":"The developer defined value of the option.","ref":"Nostrum.Struct.Component.Option.html#t:value/0"},{"type":"module","title":"Nostrum.Struct.Component.SelectMenu","doc":"Select Menu","ref":"Nostrum.Struct.Component.SelectMenu.html"},{"type":"function","title":"Nostrum.Struct.Component.SelectMenu.flatten/1","doc":"","ref":"Nostrum.Struct.Component.SelectMenu.html#flatten/1"},{"type":"function","title":"Nostrum.Struct.Component.SelectMenu.select_menu/2","doc":"Creates a select menu that can be used inside an action row.\n\nOptions can be passed as a keyword list.","ref":"Nostrum.Struct.Component.SelectMenu.html#select_menu/2"},{"type":"function","title":"Parameters - Nostrum.Struct.Component.SelectMenu.select_menu/2","doc":"- `custom_id` - lower case string, used for matching against when your application receives an interaction.","ref":"Nostrum.Struct.Component.SelectMenu.html#select_menu/2-parameters"},{"type":"function","title":"Options - Nostrum.Struct.Component.SelectMenu.select_menu/2","doc":"- `disabled` - If the select should be disabled\n- `options` - A list of options for the select menu, see `Nostrum.Struct.Component.Option`\n- `placeholder` - Value to be shown before anything is selected\n- `min_values` - minimum number of values the user must select, between 0 and 25, default is 1\n- `max_values` - maximum number of values the user must select, between 0 and 25, default is 1","ref":"Nostrum.Struct.Component.SelectMenu.html#select_menu/2-options"},{"type":"type","title":"Nostrum.Struct.Component.SelectMenu.opt/0","doc":"","ref":"Nostrum.Struct.Component.SelectMenu.html#t:opt/0"},{"type":"type","title":"Nostrum.Struct.Component.SelectMenu.opts/0","doc":"","ref":"Nostrum.Struct.Component.SelectMenu.html#t:opts/0"},{"type":"type","title":"Nostrum.Struct.Component.SelectMenu.t/0","doc":"","ref":"Nostrum.Struct.Component.SelectMenu.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Component.TextInput","doc":"Text Input.","ref":"Nostrum.Struct.Component.TextInput.html"},{"type":"function","title":"Nostrum.Struct.Component.TextInput.flatten/1","doc":"","ref":"Nostrum.Struct.Component.TextInput.html#flatten/1"},{"type":"function","title":"Nostrum.Struct.Component.TextInput.put_style/2","doc":"","ref":"Nostrum.Struct.Component.TextInput.html#put_style/2"},{"type":"function","title":"Nostrum.Struct.Component.TextInput.text_input/3","doc":"Create a text input component.","ref":"Nostrum.Struct.Component.TextInput.html#text_input/3"},{"type":"type","title":"Nostrum.Struct.Component.TextInput.opt/0","doc":"","ref":"Nostrum.Struct.Component.TextInput.html#t:opt/0"},{"type":"type","title":"Nostrum.Struct.Component.TextInput.opts/0","doc":"","ref":"Nostrum.Struct.Component.TextInput.html#t:opts/0"},{"type":"type","title":"Nostrum.Struct.Component.TextInput.t/0","doc":"","ref":"Nostrum.Struct.Component.TextInput.html#t:t/0"},{"type":"behaviour","title":"Nostrum.Struct.Embed","doc":"Functions that work on Discord embeds.","ref":"Nostrum.Struct.Embed.html"},{"type":"behaviour","title":"Building Embeds - Nostrum.Struct.Embed","doc":"`Nostrum.Struct.Embed`s can be built using this module's builder functions\nor standard `Map` syntax:\n\n```elixir\niex> import Nostrum.Struct.Embed\n...> embed =\n...> %Nostrum.Struct.Embed{}\n...> |> put_title(\"craig\")\n...> |> put_description(\"nostrum\")\n...> |> put_url(\"https://google.com/\")\n...> |> put_timestamp(\"2016-05-05T21:04:13.203Z\")\n...> |> put_color(431_948)\n...> |> put_field(\"Field 1\", \"Test\")\n...> |> put_field(\"Field 2\", \"More test\", true)\n...> embed\n%Nostrum.Struct.Embed{\n title: \"craig\",\n description: \"nostrum\",\n url: \"https://google.com/\",\n timestamp: \"2016-05-05T21:04:13.203Z\",\n color: 431_948,\n fields: [\n %Nostrum.Struct.Embed.Field{name: \"Field 1\", value: \"Test\"},\n %Nostrum.Struct.Embed.Field{name: \"Field 2\", value: \"More test\", inline: true}\n ]\n}\n```","ref":"Nostrum.Struct.Embed.html#module-building-embeds"},{"type":"behaviour","title":"Using structs - Nostrum.Struct.Embed","doc":"You can also create `Nostrum.Struct.Embed`s from structs, by using the\n`Nostrum.Struct.Embed` module. Here's how the example above could be build using structs\n\n```elixir\n defmodule MyApp.MyStruct do\n use Nostrum.Struct.Embed\n\n defstruct []\n\n def title(_), do: \"craig\"\n def description(_), do: \"nostrum\"\n def url(_), do: \"https://google.com/\"\n def timestamp(_), do: \"2016-05-05T21:04:13.203Z\"\n def color(_), do: 431_948\n\n def fields(_) do\n [\n %Nostrum.Struct.Embed.Field{name: \"Field 1\", value: \"Test\"},\n %Nostrum.Struct.Embed.Field{name: \"Field 2\", value: \"More test\", inline: true}\n ]\n end\n end\n\niex> Nostrum.Struct.Embed.from(%MyApp.MyStruct{})\n%Nostrum.Struct.Embed{\n title: \"craig\",\n description: \"nostrum\",\n url: \"https://google.com/\",\n timestamp: \"2016-05-05T21:04:13.203Z\",\n color: 431_948,\n fields: [\n %Nostrum.Struct.Embed.Field{name: \"Field 1\", value: \"Test\"},\n %Nostrum.Struct.Embed.Field{name: \"Field 2\", value: \"More test\", inline: true}\n ]\n}\n```\nSee this modules callbacks for a list of all the functions that can be implemented.\n\nThe implementation of these callbacks is optional. Not implemented functions will simply\nbe ignored.","ref":"Nostrum.Struct.Embed.html#module-using-structs"},{"type":"callback","title":"Nostrum.Struct.Embed.author/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:author/1"},{"type":"callback","title":"Nostrum.Struct.Embed.color/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:color/1"},{"type":"callback","title":"Nostrum.Struct.Embed.description/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:description/1"},{"type":"callback","title":"Nostrum.Struct.Embed.fields/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:fields/1"},{"type":"callback","title":"Nostrum.Struct.Embed.footer/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:footer/1"},{"type":"function","title":"Nostrum.Struct.Embed.from/1","doc":"Create an embed from a struct that implements the `Nostrum.Struct.Embed` behaviour","ref":"Nostrum.Struct.Embed.html#from/1"},{"type":"callback","title":"Nostrum.Struct.Embed.image/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:image/1"},{"type":"function","title":"Nostrum.Struct.Embed.put_author/4","doc":"Puts a `Nostrum.Struct.Embed.Author` under `:author` in `embed`.","ref":"Nostrum.Struct.Embed.html#put_author/4"},{"type":"function","title":"Examples - Nostrum.Struct.Embed.put_author/4","doc":"```elixir\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_author(embed, \"skippi\", \"https://github.com/skippi\", nil)\n%Nostrum.Struct.Embed{\n author: %Nostrum.Struct.Embed.Author{\n name: \"skippi\",\n url: \"https://github.com/skippi\",\n icon_url: nil\n }\n}\n```","ref":"Nostrum.Struct.Embed.html#put_author/4-examples"},{"type":"function","title":"Nostrum.Struct.Embed.put_color/2","doc":"Puts the given `value` under `:color` in `embed`.","ref":"Nostrum.Struct.Embed.html#put_color/2"},{"type":"function","title":"Examples - Nostrum.Struct.Embed.put_color/2","doc":"```elixir\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_color(embed, 431948)\n%Nostrum.Struct.Embed{color: 431948}\n```","ref":"Nostrum.Struct.Embed.html#put_color/2-examples"},{"type":"function","title":"Nostrum.Struct.Embed.put_description/2","doc":"Puts the given `value` under `:description` in `embed`.","ref":"Nostrum.Struct.Embed.html#put_description/2"},{"type":"function","title":"Examples - Nostrum.Struct.Embed.put_description/2","doc":"```elixir\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_description(embed, \"An elixir library for the discord API.\")\n%Nostrum.Struct.Embed{description: \"An elixir library for the discord API.\"}\n```","ref":"Nostrum.Struct.Embed.html#put_description/2-examples"},{"type":"function","title":"Nostrum.Struct.Embed.put_field/4","doc":"Adds a `Nostrum.Struct.Embed.Field` under `:fields` in `embed`.","ref":"Nostrum.Struct.Embed.html#put_field/4"},{"type":"function","title":"Examples - Nostrum.Struct.Embed.put_field/4","doc":"```elixir\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_field(embed, \"First User\", \"b1nzy\")\n%Nostrum.Struct.Embed{\n fields: [\n %Nostrum.Struct.Embed.Field{name: \"First User\", value: \"b1nzy\"}\n ]\n}\n\niex> embed = %Nostrum.Struct.Embed{\n...> fields: [\n...> %Nostrum.Struct.Embed.Field{name: \"First User\", value: \"b1nzy\"}\n...> ]\n...> }\n...> Nostrum.Struct.Embed.put_field(embed, \"Second User\", \"Danny\")\n%Nostrum.Struct.Embed{\n fields: [\n %Nostrum.Struct.Embed.Field{name: \"First User\", value: \"b1nzy\"},\n %Nostrum.Struct.Embed.Field{name: \"Second User\", value: \"Danny\"}\n ]\n}\n```","ref":"Nostrum.Struct.Embed.html#put_field/4-examples"},{"type":"function","title":"Nostrum.Struct.Embed.put_footer/3","doc":"Puts a `Nostrum.Struct.Embed.Footer` under `:footer` in `embed`.","ref":"Nostrum.Struct.Embed.html#put_footer/3"},{"type":"function","title":"Examples - Nostrum.Struct.Embed.put_footer/3","doc":"```elixir\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_footer(embed, \"Discord API\", nil)\n%Nostrum.Struct.Embed{\n footer: %Nostrum.Struct.Embed.Footer{\n text: \"Discord API\",\n icon_url: nil\n }\n}\n\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_footer(embed, \"nostrum footer\", \"https://discord.com/assets/53ef346458017da2062aca5c7955946b.svg\")\n%Nostrum.Struct.Embed{\n footer: %Nostrum.Struct.Embed.Footer{\n text: \"nostrum footer\",\n icon_url: \"https://discord.com/assets/53ef346458017da2062aca5c7955946b.svg\"\n }\n}\n```","ref":"Nostrum.Struct.Embed.html#put_footer/3-examples"},{"type":"function","title":"Nostrum.Struct.Embed.put_image/2","doc":"Puts a `Nostrum.Struct.Embed.Image` under `:image` in `embed`.","ref":"Nostrum.Struct.Embed.html#put_image/2"},{"type":"function","title":"Examples - Nostrum.Struct.Embed.put_image/2","doc":"```elixir\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_image(embed, \"https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg\")\n%Nostrum.Struct.Embed{\n image: %Nostrum.Struct.Embed.Image{\n url: \"https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg\"\n }\n}\n```","ref":"Nostrum.Struct.Embed.html#put_image/2-examples"},{"type":"function","title":"Nostrum.Struct.Embed.put_thumbnail/2","doc":"Puts a `Nostrum.Struct.Embed.Thumbnail` under `:thumbnail` in `embed`.","ref":"Nostrum.Struct.Embed.html#put_thumbnail/2"},{"type":"function","title":"Examples - Nostrum.Struct.Embed.put_thumbnail/2","doc":"```elixir\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_thumbnail(embed, \"https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg\")\n%Nostrum.Struct.Embed{\n thumbnail: %Nostrum.Struct.Embed.Thumbnail{\n url: \"https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg\"\n }\n}\n```","ref":"Nostrum.Struct.Embed.html#put_thumbnail/2-examples"},{"type":"function","title":"Nostrum.Struct.Embed.put_timestamp/2","doc":"Puts the given `value` under `:timestamp` in `embed`.","ref":"Nostrum.Struct.Embed.html#put_timestamp/2"},{"type":"function","title":"Examples - Nostrum.Struct.Embed.put_timestamp/2","doc":"```elixir\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_timestamp(embed, \"2018-04-21T17:33:51.893000Z\")\n%Nostrum.Struct.Embed{timestamp: \"2018-04-21T17:33:51.893000Z\"}\n```","ref":"Nostrum.Struct.Embed.html#put_timestamp/2-examples"},{"type":"function","title":"Nostrum.Struct.Embed.put_title/2","doc":"Puts the given `value` under `:title` in `embed`.","ref":"Nostrum.Struct.Embed.html#put_title/2"},{"type":"function","title":"Examples - Nostrum.Struct.Embed.put_title/2","doc":"```elixir\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_title(embed, \"nostrum\")\n%Nostrum.Struct.Embed{title: \"nostrum\"}\n```","ref":"Nostrum.Struct.Embed.html#put_title/2-examples"},{"type":"function","title":"Nostrum.Struct.Embed.put_url/2","doc":"Puts the given `value` under `:url` in `embed`.","ref":"Nostrum.Struct.Embed.html#put_url/2"},{"type":"function","title":"Examples - Nostrum.Struct.Embed.put_url/2","doc":"```elixir\niex> embed = %Nostrum.Struct.Embed{}\n...> Nostrum.Struct.Embed.put_url(embed, \"https://github.com/Kraigie/nostrum\")\n%Nostrum.Struct.Embed{url: \"https://github.com/Kraigie/nostrum\"}\n```","ref":"Nostrum.Struct.Embed.html#put_url/2-examples"},{"type":"callback","title":"Nostrum.Struct.Embed.thumbnail/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:thumbnail/1"},{"type":"callback","title":"Nostrum.Struct.Embed.timestamp/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:timestamp/1"},{"type":"callback","title":"Nostrum.Struct.Embed.title/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:title/1"},{"type":"callback","title":"Nostrum.Struct.Embed.url/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:url/1"},{"type":"type","title":"Nostrum.Struct.Embed.author/0","doc":"Author information","ref":"Nostrum.Struct.Embed.html#t:author/0"},{"type":"type","title":"Nostrum.Struct.Embed.color/0","doc":"Color code of the embed","ref":"Nostrum.Struct.Embed.html#t:color/0"},{"type":"type","title":"Nostrum.Struct.Embed.description/0","doc":"Description of the embed","ref":"Nostrum.Struct.Embed.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Embed.fields/0","doc":"Fields information","ref":"Nostrum.Struct.Embed.html#t:fields/0"},{"type":"type","title":"Nostrum.Struct.Embed.footer/0","doc":"Footer information","ref":"Nostrum.Struct.Embed.html#t:footer/0"},{"type":"type","title":"Nostrum.Struct.Embed.image/0","doc":"Image information","ref":"Nostrum.Struct.Embed.html#t:image/0"},{"type":"type","title":"Nostrum.Struct.Embed.provider/0","doc":"Provider information","ref":"Nostrum.Struct.Embed.html#t:provider/0"},{"type":"type","title":"Nostrum.Struct.Embed.t/0","doc":"","ref":"Nostrum.Struct.Embed.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.thumbnail/0","doc":"Thumbnail information","ref":"Nostrum.Struct.Embed.html#t:thumbnail/0"},{"type":"type","title":"Nostrum.Struct.Embed.timestamp/0","doc":"Timestamp of embed content","ref":"Nostrum.Struct.Embed.html#t:timestamp/0"},{"type":"type","title":"Nostrum.Struct.Embed.title/0","doc":"Title of the embed","ref":"Nostrum.Struct.Embed.html#t:title/0"},{"type":"type","title":"Nostrum.Struct.Embed.type/0","doc":"Type of the embed","ref":"Nostrum.Struct.Embed.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Embed.url/0","doc":"Url of the embed","ref":"Nostrum.Struct.Embed.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Embed.video/0","doc":"Video information","ref":"Nostrum.Struct.Embed.html#t:video/0"},{"type":"module","title":"Nostrum.Struct.Embed.Author","doc":"Struct representing a Discord embed author.","ref":"Nostrum.Struct.Embed.Author.html"},{"type":"type","title":"Nostrum.Struct.Embed.Author.icon_url/0","doc":"URL of the author icon","ref":"Nostrum.Struct.Embed.Author.html#t:icon_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Author.name/0","doc":"Name of the author","ref":"Nostrum.Struct.Embed.Author.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Embed.Author.proxy_icon_url/0","doc":"Proxied URL of author icon","ref":"Nostrum.Struct.Embed.Author.html#t:proxy_icon_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Author.t/0","doc":"","ref":"Nostrum.Struct.Embed.Author.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Author.url/0","doc":"URL of the author","ref":"Nostrum.Struct.Embed.Author.html#t:url/0"},{"type":"module","title":"Nostrum.Struct.Embed.Field","doc":"Struct representing a Discord embed field.","ref":"Nostrum.Struct.Embed.Field.html"},{"type":"type","title":"Nostrum.Struct.Embed.Field.inline/0","doc":"Whether the field should display as inline","ref":"Nostrum.Struct.Embed.Field.html#t:inline/0"},{"type":"type","title":"Nostrum.Struct.Embed.Field.name/0","doc":"Name of the field","ref":"Nostrum.Struct.Embed.Field.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Embed.Field.t/0","doc":"","ref":"Nostrum.Struct.Embed.Field.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Field.value/0","doc":"Value of the field","ref":"Nostrum.Struct.Embed.Field.html#t:value/0"},{"type":"module","title":"Nostrum.Struct.Embed.Footer","doc":"Struct representing a Discord embed footer.","ref":"Nostrum.Struct.Embed.Footer.html"},{"type":"type","title":"Nostrum.Struct.Embed.Footer.icon_url/0","doc":"URL of footer icon","ref":"Nostrum.Struct.Embed.Footer.html#t:icon_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Footer.proxy_icon_url/0","doc":"Proxied URL of footer icon","ref":"Nostrum.Struct.Embed.Footer.html#t:proxy_icon_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Footer.t/0","doc":"","ref":"Nostrum.Struct.Embed.Footer.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Footer.text/0","doc":"Footer text","ref":"Nostrum.Struct.Embed.Footer.html#t:text/0"},{"type":"module","title":"Nostrum.Struct.Embed.Image","doc":"Struct representing a Discord embed image.","ref":"Nostrum.Struct.Embed.Image.html"},{"type":"type","title":"Nostrum.Struct.Embed.Image.height/0","doc":"Height of the image","ref":"Nostrum.Struct.Embed.Image.html#t:height/0"},{"type":"type","title":"Nostrum.Struct.Embed.Image.proxy_url/0","doc":"URL of image icon","ref":"Nostrum.Struct.Embed.Image.html#t:proxy_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Image.t/0","doc":"","ref":"Nostrum.Struct.Embed.Image.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Image.url/0","doc":"Image text","ref":"Nostrum.Struct.Embed.Image.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Image.width/0","doc":"Width of the image","ref":"Nostrum.Struct.Embed.Image.html#t:width/0"},{"type":"module","title":"Nostrum.Struct.Embed.Provider","doc":"Struct representing a Discord embed provider.","ref":"Nostrum.Struct.Embed.Provider.html"},{"type":"type","title":"Nostrum.Struct.Embed.Provider.name/0","doc":"Name of the provider","ref":"Nostrum.Struct.Embed.Provider.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Embed.Provider.t/0","doc":"","ref":"Nostrum.Struct.Embed.Provider.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Provider.url/0","doc":"URL of provider","ref":"Nostrum.Struct.Embed.Provider.html#t:url/0"},{"type":"module","title":"Nostrum.Struct.Embed.Thumbnail","doc":"Struct representing a Discord embed thumbnail.","ref":"Nostrum.Struct.Embed.Thumbnail.html"},{"type":"type","title":"Nostrum.Struct.Embed.Thumbnail.height/0","doc":"Height of the thumbnail","ref":"Nostrum.Struct.Embed.Thumbnail.html#t:height/0"},{"type":"type","title":"Nostrum.Struct.Embed.Thumbnail.proxy_url/0","doc":"URL of thumbnail icon","ref":"Nostrum.Struct.Embed.Thumbnail.html#t:proxy_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Thumbnail.t/0","doc":"","ref":"Nostrum.Struct.Embed.Thumbnail.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Thumbnail.url/0","doc":"Source URL of the thumbnail","ref":"Nostrum.Struct.Embed.Thumbnail.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Thumbnail.width/0","doc":"Width of the thumbnail","ref":"Nostrum.Struct.Embed.Thumbnail.html#t:width/0"},{"type":"module","title":"Nostrum.Struct.Embed.Video","doc":"Struct representing a Discord embed video.","ref":"Nostrum.Struct.Embed.Video.html"},{"type":"type","title":"Nostrum.Struct.Embed.Video.height/0","doc":"Height of the video","ref":"Nostrum.Struct.Embed.Video.html#t:height/0"},{"type":"type","title":"Nostrum.Struct.Embed.Video.t/0","doc":"","ref":"Nostrum.Struct.Embed.Video.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Video.url/0","doc":"Source URL of the video","ref":"Nostrum.Struct.Embed.Video.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Video.width/0","doc":"Width of the video","ref":"Nostrum.Struct.Embed.Video.html#t:width/0"},{"type":"module","title":"Nostrum.Struct.Emoji","doc":"Struct representing a Discord emoji.","ref":"Nostrum.Struct.Emoji.html"},{"type":"module","title":"Mentioning Emojis in Messages - Nostrum.Struct.Emoji","doc":"A `Nostrum.Struct.Emoji` can be mentioned in message content using the `String.Chars`\nprotocol or `mention/1`.\n\n```elixir\nemoji = %Nostrum.Struct.Emoji{id: 437093487582642177, name: \"foxbot\"}\nNostrum.Api.create_message!(184046599834435585, \"#{emoji}\")\n%Nostrum.Struct.Message{content: \"<:foxbot:437093487582642177>\"}\n\nemoji = %Nostrum.Struct.Emoji{id: 436885297037312001, name: \"tealixir\"}\nNostrum.Api.create_message!(280085880452939778, \"#{Nostrum.Struct.Emoji.mention(emoji)}\")\n%Nostrum.Struct.Message{content: \"<:tealixir:436885297037312001>\"}\n```","ref":"Nostrum.Struct.Emoji.html#module-mentioning-emojis-in-messages"},{"type":"module","title":"Using Emojis in the Api - Nostrum.Struct.Emoji","doc":"A `Nostrum.Struct.Emoji` can be used in `Nostrum.Api` by using its api name\nor the struct itself.\n\n```elixir\nemoji = %Nostrum.Struct.Emoji{id: 436885297037312001, name: \"tealixir\"}\nNostrum.Api.create_reaction(381889573426429952, 436247584349356032, Nostrum.Struct.Emoji.api_name(emoji))\n{:ok}\n\nemoji = %Nostrum.Struct.Emoji{id: 436189601820966923, name: \"elixir\"}\nNostrum.Api.create_reaction(381889573426429952, 436247584349356032, emoji)\n{:ok}\n```\n\nSee `t:Nostrum.Struct.Emoji.api_name/0` for more information.","ref":"Nostrum.Struct.Emoji.html#module-using-emojis-in-the-api"},{"type":"function","title":"Nostrum.Struct.Emoji.api_name/1","doc":"Formats an emoji struct into its `t:Nostrum.Struct.Emoji.api_name/0`.","ref":"Nostrum.Struct.Emoji.html#api_name/1"},{"type":"function","title":"Examples - Nostrum.Struct.Emoji.api_name/1","doc":"```elixir\niex> emoji = %Nostrum.Struct.Emoji{name: \"Γ¡É\"}\n...> Nostrum.Struct.Emoji.api_name(emoji)\n\"Γ¡É\"\n\niex> emoji = %Nostrum.Struct.Emoji{id: 437093487582642177, name: \"foxbot\"}\n...> Nostrum.Struct.Emoji.api_name(emoji)\n\"foxbot:437093487582642177\"\n```","ref":"Nostrum.Struct.Emoji.html#api_name/1-examples"},{"type":"function","title":"Nostrum.Struct.Emoji.image_url/1","doc":"Returns the url of a custom emoji's image. If the emoji is not a custom one,\nreturns `nil`.","ref":"Nostrum.Struct.Emoji.html#image_url/1"},{"type":"function","title":"Examples - Nostrum.Struct.Emoji.image_url/1","doc":"```elixir\niex> emoji = %Nostrum.Struct.Emoji{id: 450225070569291776}\niex> Nostrum.Struct.Emoji.image_url(emoji)\n\"https://cdn.discordapp.com/emojis/450225070569291776.png\"\n\niex> emoji = %Nostrum.Struct.Emoji{id: 406140226998894614, animated: true}\niex> Nostrum.Struct.Emoji.image_url(emoji)\n\"https://cdn.discordapp.com/emojis/406140226998894614.gif\"\n\niex> emoji = %Nostrum.Struct.Emoji{id: nil, name: \"Γ¡É\"}\niex> Nostrum.Struct.Emoji.image_url(emoji)\nnil\n```","ref":"Nostrum.Struct.Emoji.html#image_url/1-examples"},{"type":"function","title":"Nostrum.Struct.Emoji.mention/1","doc":"Formats an `Nostrum.Struct.Emoji` into a mention.","ref":"Nostrum.Struct.Emoji.html#mention/1"},{"type":"function","title":"Examples - Nostrum.Struct.Emoji.mention/1","doc":"```elixir\niex> emoji = %Nostrum.Struct.Emoji{name: \"≡ƒæì\"}\n...> Nostrum.Struct.Emoji.mention(emoji)\n\"≡ƒæì\"\n\niex> emoji = %Nostrum.Struct.Emoji{id: 436885297037312001, name: \"tealixir\"}\n...> Nostrum.Struct.Emoji.mention(emoji)\n\"<:tealixir:436885297037312001>\"\n\niex> emoji = %Nostrum.Struct.Emoji{id: 437016804309860372, name: \"blobseizure\", animated: true}\n...> Nostrum.Struct.Emoji.mention(emoji)\n\" \"\n```","ref":"Nostrum.Struct.Emoji.html#mention/1-examples"},{"type":"type","title":"Nostrum.Struct.Emoji.animated/0","doc":"Whether this emoji is animated","ref":"Nostrum.Struct.Emoji.html#t:animated/0"},{"type":"type","title":"Nostrum.Struct.Emoji.api_name/0","doc":"Emoji string to be used with the Discord API.\n\nSome API endpoints take an `emoji`. If it is a custom emoji, it must be\nstructured as `\"id:name\"`. If it is an unicode emoji, it can be structured\nas any of the following:\n\n * `\"name\"`\n * A base 16 unicode emoji string.\n\n`api_name/1` is a convenience function that returns a `Nostrum.Struct.Emoji`'s\napi name.","ref":"Nostrum.Struct.Emoji.html#t:api_name/0"},{"type":"type","title":"Examples - Nostrum.Struct.Emoji.api_name/0","doc":"```elixir\n# Custom Emojis\n\"nostrum:431890438091489\"\n\n# Unicode Emojis\n\"≡ƒæì\"\n\"\\xF0\\x9F\\x98\\x81\"\n\"\\u2b50\"\n```","ref":"Nostrum.Struct.Emoji.html#t:api_name/0-examples"},{"type":"type","title":"Nostrum.Struct.Emoji.id/0","doc":"Id of the emoji","ref":"Nostrum.Struct.Emoji.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Emoji.managed/0","doc":"Whether this emoji is managed","ref":"Nostrum.Struct.Emoji.html#t:managed/0"},{"type":"type","title":"Nostrum.Struct.Emoji.name/0","doc":"Name of the emoji","ref":"Nostrum.Struct.Emoji.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Emoji.require_colons/0","doc":"Whether this emoji must be wrapped in colons","ref":"Nostrum.Struct.Emoji.html#t:require_colons/0"},{"type":"type","title":"Nostrum.Struct.Emoji.roles/0","doc":"Roles this emoji is whitelisted to","ref":"Nostrum.Struct.Emoji.html#t:roles/0"},{"type":"type","title":"Nostrum.Struct.Emoji.t/0","doc":"","ref":"Nostrum.Struct.Emoji.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Emoji.user/0","doc":"User that created this emoji","ref":"Nostrum.Struct.Emoji.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Guild","doc":"Struct representing a Discord guild.","ref":"Nostrum.Struct.Guild.html"},{"type":"function","title":"Nostrum.Struct.Guild.icon_url/2","doc":"Returns the URL of a guild's icon, or `nil` if there is no icon.\n\nSupported image formats are PNG, JPEG, and WebP.","ref":"Nostrum.Struct.Guild.html#icon_url/2"},{"type":"function","title":"Examples - Nostrum.Struct.Guild.icon_url/2","doc":"```elixir\niex> guild = %Nostrum.Struct.Guild{icon: \"86e39f7ae3307e811784e2ffd11a7310\",\n...> id: 41771983423143937}\niex> Nostrum.Struct.Guild.icon_url(guild)\n\"https://cdn.discordapp.com/icons/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.webp\"\niex> Nostrum.Struct.Guild.icon_url(guild, \"png\")\n\"https://cdn.discordapp.com/icons/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.png\"\n\niex> guild = %Nostrum.Struct.Guild{icon: nil}\niex> Nostrum.Struct.Guild.icon_url(guild)\nnil\n```","ref":"Nostrum.Struct.Guild.html#icon_url/2-examples"},{"type":"function","title":"Nostrum.Struct.Guild.splash_url/2","doc":"Returns the URL of a guild's splash, or `nil` if there is no splash.\n\nSupported image formats are PNG, JPEG, and WebP.","ref":"Nostrum.Struct.Guild.html#splash_url/2"},{"type":"function","title":"Examples - Nostrum.Struct.Guild.splash_url/2","doc":"```elixir\niex> guild = %Nostrum.Struct.Guild{splash: \"86e39f7ae3307e811784e2ffd11a7310\",\n...> id: 41771983423143937}\niex> Nostrum.Struct.Guild.splash_url(guild)\n\"https://cdn.discordapp.com/splashes/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.webp\"\niex> Nostrum.Struct.Guild.splash_url(guild, \"png\")\n\"https://cdn.discordapp.com/splashes/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.png\"\n\niex> guild = %Nostrum.Struct.Guild{splash: nil}\niex> Nostrum.Struct.Guild.splash_url(guild)\nnil\n```","ref":"Nostrum.Struct.Guild.html#splash_url/2-examples"},{"type":"type","title":"Nostrum.Struct.Guild.afk_channel_id/0","doc":"The id of the guild's afk channel","ref":"Nostrum.Struct.Guild.html#t:afk_channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.afk_timeout/0","doc":"The time someone must be afk before being moved","ref":"Nostrum.Struct.Guild.html#t:afk_timeout/0"},{"type":"type","title":"Nostrum.Struct.Guild.application_id/0","doc":"Application id of the guild creator if it is bot created.","ref":"Nostrum.Struct.Guild.html#t:application_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.available_guild/0","doc":"A `Nostrum.Struct.Guild` that is fully available.","ref":"Nostrum.Struct.Guild.html#t:available_guild/0"},{"type":"type","title":"Nostrum.Struct.Guild.channels/0","doc":"List of channels","ref":"Nostrum.Struct.Guild.html#t:channels/0"},{"type":"type","title":"Nostrum.Struct.Guild.default_message_notifications/0","doc":"Default message notifications level.","ref":"Nostrum.Struct.Guild.html#t:default_message_notifications/0"},{"type":"type","title":"Nostrum.Struct.Guild.emojis/0","doc":"List of emojis","ref":"Nostrum.Struct.Guild.html#t:emojis/0"},{"type":"type","title":"Nostrum.Struct.Guild.explicit_content_filter/0","doc":"Explicit content filter level.","ref":"Nostrum.Struct.Guild.html#t:explicit_content_filter/0"},{"type":"type","title":"Nostrum.Struct.Guild.features/0","doc":"List of guild features","ref":"Nostrum.Struct.Guild.html#t:features/0"},{"type":"type","title":"Nostrum.Struct.Guild.guild_scheduled_events/0","doc":"List of scheduled events","ref":"Nostrum.Struct.Guild.html#t:guild_scheduled_events/0"},{"type":"type","title":"Nostrum.Struct.Guild.icon/0","doc":"The hash of the guild's icon","ref":"Nostrum.Struct.Guild.html#t:icon/0"},{"type":"type","title":"Nostrum.Struct.Guild.id/0","doc":"The guild's id","ref":"Nostrum.Struct.Guild.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.joined_at/0","doc":"Date the bot user joined the guild","ref":"Nostrum.Struct.Guild.html#t:joined_at/0"},{"type":"type","title":"Nostrum.Struct.Guild.large/0","doc":"Whether the guild is considered 'large'","ref":"Nostrum.Struct.Guild.html#t:large/0"},{"type":"type","title":"Nostrum.Struct.Guild.member_count/0","doc":"Total number of members in the guild","ref":"Nostrum.Struct.Guild.html#t:member_count/0"},{"type":"type","title":"Nostrum.Struct.Guild.mfa_level/0","doc":"Required MFA level of the guild","ref":"Nostrum.Struct.Guild.html#t:mfa_level/0"},{"type":"type","title":"Nostrum.Struct.Guild.name/0","doc":"The name of the guild.","ref":"Nostrum.Struct.Guild.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.owner_id/0","doc":"The id of the guild owner","ref":"Nostrum.Struct.Guild.html#t:owner_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.public_updates_channel_id/0","doc":"The id of the channel where admins and moderators receive notices from Discord. This\nis only available to guilds that contain ``PUBLIC`` in `t:features/0`.","ref":"Nostrum.Struct.Guild.html#t:public_updates_channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.region/0","doc":"The id of the voice region","ref":"Nostrum.Struct.Guild.html#t:region/0"},{"type":"type","title":"Nostrum.Struct.Guild.rest_guild/0","doc":"A `Nostrum.Struct.Guild` that is sent on guild-specific rest endpoints.","ref":"Nostrum.Struct.Guild.html#t:rest_guild/0"},{"type":"type","title":"Nostrum.Struct.Guild.roles/0","doc":"List of roles","ref":"Nostrum.Struct.Guild.html#t:roles/0"},{"type":"type","title":"Nostrum.Struct.Guild.rules_channel_id/0","doc":"The id of the channel that is used for rules. This is only available to guilds that\ncontain ``PUBLIC`` in `t:features/0`.","ref":"Nostrum.Struct.Guild.html#t:rules_channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.splash/0","doc":"The hash of the guild's splash","ref":"Nostrum.Struct.Guild.html#t:splash/0"},{"type":"type","title":"Nostrum.Struct.Guild.system_channel_id/0","doc":"The id of the channel to which system messages are sent.","ref":"Nostrum.Struct.Guild.html#t:system_channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.t/0","doc":"","ref":"Nostrum.Struct.Guild.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.threads/0","doc":"All active threads in the guild that the current user has permission to view","ref":"Nostrum.Struct.Guild.html#t:threads/0"},{"type":"type","title":"Nostrum.Struct.Guild.unavailable/0","doc":"Whether the guild is available","ref":"Nostrum.Struct.Guild.html#t:unavailable/0"},{"type":"type","title":"Nostrum.Struct.Guild.unavailable_guild/0","doc":"A `Nostrum.Struct.Guild` that is unavailable.","ref":"Nostrum.Struct.Guild.html#t:unavailable_guild/0"},{"type":"type","title":"Nostrum.Struct.Guild.user_guild/0","doc":"A `Nostrum.Struct.Guild` that is sent on user-specific rest endpoints.","ref":"Nostrum.Struct.Guild.html#t:user_guild/0"},{"type":"type","title":"Nostrum.Struct.Guild.vanity_url_code/0","doc":"Guild invite vanity URL","ref":"Nostrum.Struct.Guild.html#t:vanity_url_code/0"},{"type":"type","title":"Nostrum.Struct.Guild.verification_level/0","doc":"The level of verification","ref":"Nostrum.Struct.Guild.html#t:verification_level/0"},{"type":"type","title":"Nostrum.Struct.Guild.voice_states/0","doc":"List of voice states as maps","ref":"Nostrum.Struct.Guild.html#t:voice_states/0"},{"type":"type","title":"Nostrum.Struct.Guild.widget_channel_id/0","doc":"The channel id for the server widget.","ref":"Nostrum.Struct.Guild.html#t:widget_channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.widget_enabled/0","doc":"Whether or not the server widget is enabled.","ref":"Nostrum.Struct.Guild.html#t:widget_enabled/0"},{"type":"module","title":"Nostrum.Struct.Guild.AuditLog","doc":"Represents a guild's audit log.","ref":"Nostrum.Struct.Guild.AuditLog.html"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLog.entries/0","doc":"Entries of this guild's audit log","ref":"Nostrum.Struct.Guild.AuditLog.html#t:entries/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLog.t/0","doc":"","ref":"Nostrum.Struct.Guild.AuditLog.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLog.users/0","doc":"Users found in the audit log","ref":"Nostrum.Struct.Guild.AuditLog.html#t:users/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLog.webhooks/0","doc":"Webhooks found in the audit log","ref":"Nostrum.Struct.Guild.AuditLog.html#t:webhooks/0"},{"type":"module","title":"Nostrum.Struct.Guild.AuditLogEntry","doc":"Represents a single entry in the guild's audit log.","ref":"Nostrum.Struct.Guild.AuditLogEntry.html"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.action_type/0","doc":"An audit log event identifier. See [Audit log events](https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events)","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:action_type/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.changes/0","doc":"Individual changes of this audit log entry.\nChange keys are documented [here](https://discord.com/developers/docs/resources/audit-log#audit-log-change-object-audit-log-change-key)","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:changes/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.id/0","doc":"The ID of this entry","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.options/0","doc":"[Optional audit entry info](https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info)","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:options/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.reason/0","doc":"The reason for this change, if applicable","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:reason/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.t/0","doc":"","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.target_id/0","doc":"The ID of the affected entity","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:target_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.user_id/0","doc":"The user who made the changes","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Guild.Ban","doc":"Represents a guild ban.","ref":"Nostrum.Struct.Guild.Ban.html"},{"type":"type","title":"Nostrum.Struct.Guild.Ban.reason/0","doc":"The reason for the ban","ref":"Nostrum.Struct.Guild.Ban.html#t:reason/0"},{"type":"type","title":"Nostrum.Struct.Guild.Ban.t/0","doc":"","ref":"Nostrum.Struct.Guild.Ban.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.Ban.user/0","doc":"The banned user","ref":"Nostrum.Struct.Guild.Ban.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Guild.Integration","doc":"Struct representing a Discord guild integration.\n\nThe struct defined here only has the fields provided for Discord Bot\nintegrations available. If you use Nostrum in a non-bot application, feel\nfree to open an issue to add it.","ref":"Nostrum.Struct.Guild.Integration.html"},{"type":"module","title":"References - Nostrum.Struct.Guild.Integration","doc":"- https://discord.com/developers/docs/resources/guild#integration-object","ref":"Nostrum.Struct.Guild.Integration.html#module-references"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.account/0","doc":"The integration account.","ref":"Nostrum.Struct.Guild.Integration.html#t:account/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.application/0","doc":"The bot/OAuth2 application for discord integrations","ref":"Nostrum.Struct.Guild.Integration.html#t:application/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.enabled/0","doc":"Whether this integration is enabled","ref":"Nostrum.Struct.Guild.Integration.html#t:enabled/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.guild_id/0","doc":"The id of the guild this integration is for.\n\nOnly included when the Integration is sent via the gateway.","ref":"Nostrum.Struct.Guild.Integration.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.id/0","doc":"Snowflake ID of the integration","ref":"Nostrum.Struct.Guild.Integration.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.name/0","doc":"Name of the integration","ref":"Nostrum.Struct.Guild.Integration.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.t/0","doc":"Represents a Guild integration","ref":"Nostrum.Struct.Guild.Integration.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.type/0","doc":"Integration type (Twitch, YouTube or Discord)","ref":"Nostrum.Struct.Guild.Integration.html#t:type/0"},{"type":"module","title":"Nostrum.Struct.Guild.Integration.Account","doc":"Struct representing a Discord guild's integration account.","ref":"Nostrum.Struct.Guild.Integration.Account.html"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Account.id/0","doc":"The id of the account","ref":"Nostrum.Struct.Guild.Integration.Account.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Account.name/0","doc":"The name of the account","ref":"Nostrum.Struct.Guild.Integration.Account.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Account.t/0","doc":"","ref":"Nostrum.Struct.Guild.Integration.Account.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Guild.Integration.Application","doc":"Struct representing a Discord Guild Integration Application.","ref":"Nostrum.Struct.Guild.Integration.Application.html"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.bot/0","doc":"The bot associated with the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:bot/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.description/0","doc":"The description of the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.icon/0","doc":"The icon hash of the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:icon/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.id/0","doc":"The id of the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.name/0","doc":"The name of the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.summary/0","doc":"The summary of the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:summary/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.t/0","doc":"","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Guild.Member","doc":"Struct representing a Discord guild member.\n\nA `Nostrum.Struct.Guild.Member` stores a `Nostrum.Struct.User`'s properties\npertaining to a specific `Nostrum.Struct.Guild`.","ref":"Nostrum.Struct.Guild.Member.html"},{"type":"module","title":"Mentioning Members in Messages - Nostrum.Struct.Guild.Member","doc":"A `Nostrum.Struct.Guild.Member` can be mentioned in message content using the `String.Chars`\nprotocol or `mention/1`.\n\n```elixir\nmember = %Nostrum.Struct.Guild.Member{user_id: 120571255635181568}\nNostrum.Api.create_message!(184046599834435585, \"#{member}\")\n%Nostrum.Struct.Message{content: \"<@120571255635181568>\"}\n\nmember = %Nostrum.Struct.Guild.Member{user_id: 89918932789497856}\nNostrum.Api.create_message!(280085880452939778, \"#{Nostrum.Struct.Guild.Member.mention(member)}\")\n%Nostrum.Struct.Message{content: \"<@89918932789497856>\"}\n```","ref":"Nostrum.Struct.Guild.Member.html#module-mentioning-members-in-messages"},{"type":"function","title":"Nostrum.Struct.Guild.Member.guild_channel_permissions/3","doc":"Returns a member's permissions in a guild channel, based on its `Nostrum.Struct.Overwrite`s.","ref":"Nostrum.Struct.Guild.Member.html#guild_channel_permissions/3"},{"type":"function","title":"Examples - Nostrum.Struct.Guild.Member.guild_channel_permissions/3","doc":"```elixir\nguild = Nostrum.Cache.GuildCache.get!(279093381723062272)\nmember = Map.get(guild.members, 177888205536886784)\nchannel_id = 381889573426429952\nNostrum.Struct.Guild.Member.guild_channel_permissions(member, guild, channel_id)\n#=> [:manage_messages]\n```","ref":"Nostrum.Struct.Guild.Member.html#guild_channel_permissions/3-examples"},{"type":"function","title":"Nostrum.Struct.Guild.Member.guild_permissions/2","doc":"Returns a member's guild permissions.","ref":"Nostrum.Struct.Guild.Member.html#guild_permissions/2"},{"type":"function","title":"Examples - Nostrum.Struct.Guild.Member.guild_permissions/2","doc":"```elixir\nguild = Nostrum.Cache.GuildCache.get!(279093381723062272)\nmember = Map.get(guild.members, 177888205536886784)\nNostrum.Struct.Guild.Member.guild_permissions(member, guild)\n#=> [:administrator]\n```","ref":"Nostrum.Struct.Guild.Member.html#guild_permissions/2-examples"},{"type":"function","title":"Nostrum.Struct.Guild.Member.mention/1","doc":"Formats a `Nostrum.Struct.Guild.Member` into a mention.","ref":"Nostrum.Struct.Guild.Member.html#mention/1"},{"type":"function","title":"Examples - Nostrum.Struct.Guild.Member.mention/1","doc":"```elixir\niex> member = %Nostrum.Struct.Guild.Member{user_id: 177888205536886784}\n...> Nostrum.Struct.Guild.Member.mention(member)\n\"<@177888205536886784>\"\n```","ref":"Nostrum.Struct.Guild.Member.html#mention/1-examples"},{"type":"function","title":"Nostrum.Struct.Guild.Member.top_role/2","doc":"Return the topmost role of the given member on the given guild.\n\nThe topmost role is determined via `t:Nostrum.Struct.Guild.Role.position`.","ref":"Nostrum.Struct.Guild.Member.html#top_role/2"},{"type":"function","title":"Parameters - Nostrum.Struct.Guild.Member.top_role/2","doc":"- `member`: The member whose top role to return.\n- `guild`: The guild which the member belongs to.","ref":"Nostrum.Struct.Guild.Member.html#top_role/2-parameters"},{"type":"function","title":"Return value - Nostrum.Struct.Guild.Member.top_role/2","doc":"The topmost role of the member on the given guild, if the member has roles\nassigned. Otherwise, `nil` is returned.","ref":"Nostrum.Struct.Guild.Member.html#top_role/2-return-value"},{"type":"type","title":"Nostrum.Struct.Guild.Member.communication_disabled_until/0","doc":"Current timeout status of the member.\n\nIf member is currently timed out this will be a `t:DateTime.t/0` of the\nunmute time, it will be `nil` or a date in the past if the member is not\ncurrently timed out.","ref":"Nostrum.Struct.Guild.Member.html#t:communication_disabled_until/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.deaf/0","doc":"Whether the member is deafened.\nIf you dont request offline guild members this field will be `nil` for any members that come online.","ref":"Nostrum.Struct.Guild.Member.html#t:deaf/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.joined_at/0","doc":"Date the member joined the guild, as a unix timestamp.\nIf you dont request offline guild members this field will be `nil` for any members that come online.","ref":"Nostrum.Struct.Guild.Member.html#t:joined_at/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.mute/0","doc":"Whether the member is muted.\nIf you dont request offline guild members this field will be `nil` for any members that come online.","ref":"Nostrum.Struct.Guild.Member.html#t:mute/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.nick/0","doc":"The nickname of the member","ref":"Nostrum.Struct.Guild.Member.html#t:nick/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.premium_since/0","doc":"Current guild booster status of the member.\n\nIf member is currently boosting a guild this will be a `t:DateTime.t/0` since\nthe start of the boosting, it will be `nil` if the member is not currently\nboosting the guild.","ref":"Nostrum.Struct.Guild.Member.html#t:premium_since/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.roles/0","doc":"A list of role ids","ref":"Nostrum.Struct.Guild.Member.html#t:roles/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.t/0","doc":"","ref":"Nostrum.Struct.Guild.Member.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.user_id/0","doc":"The user ID.\n\nThis field can be `nil` if the Member struct came as a partial Member object\nincluded in a message received from a guild channel. To retrieve the user\nobject, use `Nostrum.Cache.UserCache`.","ref":"Nostrum.Struct.Guild.Member.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Guild.Role","doc":"Struct representing a Discord role.","ref":"Nostrum.Struct.Guild.Role.html"},{"type":"module","title":"Mentioning Roles in Messages - Nostrum.Struct.Guild.Role","doc":"A `Nostrum.Struct.Guild.Role` can be mentioned in message content using the `String.Chars`\nprotocol or `mention/1`.\n\n```elixir\nrole = %Nostrum.Struct.Guild.Role{id: 431886897539973131}\nNostrum.Api.create_message!(184046599834435585, \"#{role}\")\n%Nostrum.Struct.Message{}\n\nrole = %Nostrum.Struct.Guild.Role{id: 431884023535632398}\nNostrum.Api.create_message!(280085880452939778, \"#{Nostrum.Struct.Guild.Role.mention(role)}\")\n%Nostrum.Struct.Message{}\n```","ref":"Nostrum.Struct.Guild.Role.html#module-mentioning-roles-in-messages"},{"type":"function","title":"Nostrum.Struct.Guild.Role.mention/1","doc":"Formats an `Nostrum.Struct.Role` into a mention.","ref":"Nostrum.Struct.Guild.Role.html#mention/1"},{"type":"function","title":"Examples - Nostrum.Struct.Guild.Role.mention/1","doc":"```elixir\niex> role = %Nostrum.Struct.Guild.Role{id: 431886639627763722}\n...> Nostrum.Struct.Guild.Role.mention(role)\n\"<@&431886639627763722>\"\n```","ref":"Nostrum.Struct.Guild.Role.html#mention/1-examples"},{"type":"type","title":"Nostrum.Struct.Guild.Role.color/0","doc":"The hexadecimal color code","ref":"Nostrum.Struct.Guild.Role.html#t:color/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.hoist/0","doc":"Whether the role is pinned in the user listing","ref":"Nostrum.Struct.Guild.Role.html#t:hoist/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.icon/0","doc":"The hash of the role icon","ref":"Nostrum.Struct.Guild.Role.html#t:icon/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.id/0","doc":"The id of the role","ref":"Nostrum.Struct.Guild.Role.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.managed/0","doc":"Whether the role is managed by an integration","ref":"Nostrum.Struct.Guild.Role.html#t:managed/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.mentionable/0","doc":"Whether the role is mentionable","ref":"Nostrum.Struct.Guild.Role.html#t:mentionable/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.name/0","doc":"The name of the role","ref":"Nostrum.Struct.Guild.Role.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.permissions/0","doc":"The permission bit set","ref":"Nostrum.Struct.Guild.Role.html#t:permissions/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.position/0","doc":"The position of the role","ref":"Nostrum.Struct.Guild.Role.html#t:position/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.t/0","doc":"","ref":"Nostrum.Struct.Guild.Role.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.unicode_emoji/0","doc":"The standard unicode character emoji icon for the role","ref":"Nostrum.Struct.Guild.Role.html#t:unicode_emoji/0"},{"type":"module","title":"Nostrum.Struct.Guild.ScheduledEvent","doc":"Struct representing a scheduled event in a guild.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html"},{"type":"function","title":"Nostrum.Struct.Guild.ScheduledEvent.to_struct/1","doc":"","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#to_struct/1"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.channel_id/0","doc":"The id of the channel the scheduled event is in.\nWill be `nil` if `entity_type` is `EXTERNAL`","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.creator/0","doc":"The user who created the scheduled event. Only present when retrieving the event from the API.\n\nnote: This will be `nil` for events created before October 25th, 2021.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:creator/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.creator_id/0","doc":"The id of the user who created the scheduled event.\n\nnote: This will be `nil` only for events created before October 25th, 2021.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:creator_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.description/0","doc":"The description of the scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.entity_id/0","doc":"the id of an entity associated with a guild scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:entity_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.entity_metadata/0","doc":"Holds additional metadata associated with a scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:entity_metadata/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.entity_type/0","doc":"The type of entity the scheduled event is for.\n\n`1` - `STAGE_INSTANCE`\n`2` - `VOICE`\n`3` - `EXTERNAL`","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:entity_type/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.guild_id/0","doc":"The id of the guild the scheduled event is in.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.id/0","doc":"The id of the scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.name/0","doc":"The name of the scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.privacy_level/0","doc":"The privacy level of the scheduled event.\nAt the time of writing, this is always `2` for `GUILD_ONLY`","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:privacy_level/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.scheduled_end_time/0","doc":"The time the scheduled event ends as an ISO8601 timestamp.\nOnly required if `entity_type` is `EXTERNAL`","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:scheduled_end_time/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.scheduled_start_time/0","doc":"The time the scheduled event starts.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:scheduled_start_time/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.status/0","doc":"The status of the scheduled event.\n\n`1` - `SCHEDULED`\n`2` - `ACTIVE`\n`3` - `COMPLETED`\n`4` - `CANCELLED`\n\nnote: Once status is set to Completed or Cancelled it can no longer be updated.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:status/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.t/0","doc":"","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.user_count/0","doc":"The number of users who have subscribed to the scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:user_count/0"},{"type":"module","title":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata","doc":"Struct representing any additional metadata associated with a Guild Event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.html"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.location/0","doc":"The location of the event, 1-100 characters.\n\nRequired for events with `entity_type` of `EXTERNAL`.","ref":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.html#t:location/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.t/0","doc":"","ref":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Guild.ScheduledEvent.User","doc":"Struct representing a user in a guild's scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html"},{"type":"function","title":"Nostrum.Struct.Guild.ScheduledEvent.User.to_struct/1","doc":"","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html#to_struct/1"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.User.event_id/0","doc":"The ID of the guild scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html#t:event_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.User.member/0","doc":"The guild member for the event","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.User.t/0","doc":"","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.User.user/0","doc":"The user which is subscribed to the event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Guild.UnavailableGuild","doc":"Struct representing an unavailable Discord guild.","ref":"Nostrum.Struct.Guild.UnavailableGuild.html"},{"type":"function","title":"Nostrum.Struct.Guild.UnavailableGuild.to_struct/1","doc":"","ref":"Nostrum.Struct.Guild.UnavailableGuild.html#to_struct/1"},{"type":"type","title":"Nostrum.Struct.Guild.UnavailableGuild.id/0","doc":"The guild's id","ref":"Nostrum.Struct.Guild.UnavailableGuild.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.UnavailableGuild.t/0","doc":"","ref":"Nostrum.Struct.Guild.UnavailableGuild.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.UnavailableGuild.unavailable/0","doc":"Whether the guild is available","ref":"Nostrum.Struct.Guild.UnavailableGuild.html#t:unavailable/0"},{"type":"module","title":"Nostrum.Struct.Interaction","doc":"Application command and Component invocation struct.","ref":"Nostrum.Struct.Interaction.html"},{"type":"type","title":"Nostrum.Struct.Interaction.application_id/0","doc":"ID of the application that this interaction is for\n\nWill be `nil` if the interaction was part of a message struct.","ref":"Nostrum.Struct.Interaction.html#t:application_id/0"},{"type":"type","title":"Nostrum.Struct.Interaction.channel/0","doc":"PartialChannel object for the channel where the command was invoked\n\nAt the time of writing, only the fields `:type` and `:id` are guaranteed to be present.","ref":"Nostrum.Struct.Interaction.html#t:channel/0"},{"type":"type","title":"Nostrum.Struct.Interaction.channel_id/0","doc":"ID of the channel where the command was invoked","ref":"Nostrum.Struct.Interaction.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Interaction.data/0","doc":"Invocation data.\n\nOnly present for *ApplicationCommand* and *MessageComponent* interactions, that is, `type=2` or `type=3`.","ref":"Nostrum.Struct.Interaction.html#t:data/0"},{"type":"type","title":"Nostrum.Struct.Interaction.guild_id/0","doc":"ID of the guild where the command was invoked","ref":"Nostrum.Struct.Interaction.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Interaction.guild_locale/0","doc":"The guild's preferred locale, if invoked in a guild.","ref":"Nostrum.Struct.Interaction.html#t:guild_locale/0"},{"type":"type","title":"Nostrum.Struct.Interaction.id/0","doc":"Interaction identifier","ref":"Nostrum.Struct.Interaction.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Interaction.locale/0","doc":"The selected langauge of the invoking user.\n\nAvailable on all interaction types except for *PING*","ref":"Nostrum.Struct.Interaction.html#t:locale/0"},{"type":"type","title":"Nostrum.Struct.Interaction.member/0","doc":"Member information about the invoker, if invoked on a guild","ref":"Nostrum.Struct.Interaction.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Interaction.message/0","doc":"For components, the message they were attached to","ref":"Nostrum.Struct.Interaction.html#t:message/0"},{"type":"type","title":"Nostrum.Struct.Interaction.t/0","doc":"A command invocation for Application Commands or Components.\n\nOfficial reference:\nhttps://discord.com/developers/docs/interactions/application-commands","ref":"Nostrum.Struct.Interaction.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Interaction.token/0","doc":"Continuation token for responses\n\nWill be `nil` if this interaction is part of a message struct.","ref":"Nostrum.Struct.Interaction.html#t:token/0"},{"type":"type","title":"Nostrum.Struct.Interaction.type/0","doc":"Interaction kind.\n\n- `1` for *Ping*\n- `2` for *ApplicationCommand*\n- `3` for *MessageComponent*\n- `4` for *ApplicationCommandAutocomplete*\n- `5` for *ModalSubmit*","ref":"Nostrum.Struct.Interaction.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Interaction.user/0","doc":"User object for the invoking user, will be a copy of `member.user` if invoked in a guild","ref":"Nostrum.Struct.Interaction.html#t:user/0"},{"type":"type","title":"Nostrum.Struct.Interaction.version/0","doc":"Version identifier, always `1`\n\nWill be `nil` if this interaction is part of a message struct.","ref":"Nostrum.Struct.Interaction.html#t:version/0"},{"type":"module","title":"Nostrum.Struct.Invite","doc":"Struct representing a Discord invite.","ref":"Nostrum.Struct.Invite.html"},{"type":"type","title":"Nostrum.Struct.Invite.approximate_member_count/0","doc":"Approximate total member count of the guild this invite is for.","ref":"Nostrum.Struct.Invite.html#t:approximate_member_count/0"},{"type":"type","title":"Nostrum.Struct.Invite.approximate_presence_count/0","doc":"Approximate online member count of the guild this invite is for.","ref":"Nostrum.Struct.Invite.html#t:approximate_presence_count/0"},{"type":"type","title":"Nostrum.Struct.Invite.channel/0","doc":"The channel this invite is for.","ref":"Nostrum.Struct.Invite.html#t:channel/0"},{"type":"type","title":"Nostrum.Struct.Invite.code/0","doc":"The invite code (unique ID).","ref":"Nostrum.Struct.Invite.html#t:code/0"},{"type":"type","title":"Nostrum.Struct.Invite.created_at/0","doc":"When this invite was created.","ref":"Nostrum.Struct.Invite.html#t:created_at/0"},{"type":"type","title":"Nostrum.Struct.Invite.detailed_invite/0","doc":"An invite with metadata.","ref":"Nostrum.Struct.Invite.html#t:detailed_invite/0"},{"type":"type","title":"Nostrum.Struct.Invite.guild/0","doc":"Partially populated guild struct of the guild this invite is for.","ref":"Nostrum.Struct.Invite.html#t:guild/0"},{"type":"type","title":"Nostrum.Struct.Invite.inviter/0","doc":"The user who created this invite.","ref":"Nostrum.Struct.Invite.html#t:inviter/0"},{"type":"type","title":"Nostrum.Struct.Invite.max_age/0","doc":"Duration (in seconds) after which the invite expires.","ref":"Nostrum.Struct.Invite.html#t:max_age/0"},{"type":"type","title":"Nostrum.Struct.Invite.max_uses/0","doc":"Max number of times this invite can be used.","ref":"Nostrum.Struct.Invite.html#t:max_uses/0"},{"type":"type","title":"Nostrum.Struct.Invite.simple_invite/0","doc":"An invite without metadata.","ref":"Nostrum.Struct.Invite.html#t:simple_invite/0"},{"type":"type","title":"Nostrum.Struct.Invite.t/0","doc":"","ref":"Nostrum.Struct.Invite.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Invite.target_user/0","doc":"Partially populated user struct of the target user for this invite.","ref":"Nostrum.Struct.Invite.html#t:target_user/0"},{"type":"type","title":"Nostrum.Struct.Invite.target_user_type/0","doc":"The type of user target for this invite.","ref":"Nostrum.Struct.Invite.html#t:target_user_type/0"},{"type":"type","title":"Nostrum.Struct.Invite.temporary/0","doc":"Whether this invite only grants temporary membership.","ref":"Nostrum.Struct.Invite.html#t:temporary/0"},{"type":"type","title":"Nostrum.Struct.Invite.uses/0","doc":"Number of times this invite has been used.","ref":"Nostrum.Struct.Invite.html#t:uses/0"},{"type":"module","title":"Nostrum.Struct.Message","doc":"A `Nostrum.Struct.Message` represents a message.\n\nMore information can be found on the\n[Discord API Message Object Documentation](https://discord.com/developers/docs/resources/channel#message-object).","ref":"Nostrum.Struct.Message.html"},{"type":"function","title":"Nostrum.Struct.Message.to_url/1","doc":"Takes the message and produces a URL that, when clicked from the user client, will\njump them to that message, assuming they have access to the message and the message\nis valid.","ref":"Nostrum.Struct.Message.html#to_url/1"},{"type":"type","title":"Nostrum.Struct.Message.activity/0","doc":"The activity of the message. Sent with Rich Presence-related chat embeds","ref":"Nostrum.Struct.Message.html#t:activity/0"},{"type":"type","title":"Nostrum.Struct.Message.application/0","doc":"The application of the message. Sent with Rich Presence-related chat embeds","ref":"Nostrum.Struct.Message.html#t:application/0"},{"type":"type","title":"Nostrum.Struct.Message.application_id/0","doc":"if the message is a response to an interaction, this is the ID of the interaction's application","ref":"Nostrum.Struct.Message.html#t:application_id/0"},{"type":"type","title":"Nostrum.Struct.Message.attachments/0","doc":"List of attached files in the message","ref":"Nostrum.Struct.Message.html#t:attachments/0"},{"type":"type","title":"Nostrum.Struct.Message.author/0","doc":"The user struct of the author","ref":"Nostrum.Struct.Message.html#t:author/0"},{"type":"type","title":"Nostrum.Struct.Message.channel_id/0","doc":"The id of the channel","ref":"Nostrum.Struct.Message.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Message.components/0","doc":"List of Message Components","ref":"Nostrum.Struct.Message.html#t:components/0"},{"type":"type","title":"Nostrum.Struct.Message.content/0","doc":"The content of the message","ref":"Nostrum.Struct.Message.html#t:content/0"},{"type":"type","title":"Nostrum.Struct.Message.edited_timestamp/0","doc":"When the message was edited","ref":"Nostrum.Struct.Message.html#t:edited_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Message.embeds/0","doc":"List of embedded content in the message","ref":"Nostrum.Struct.Message.html#t:embeds/0"},{"type":"type","title":"Nostrum.Struct.Message.guild_id/0","doc":"The id of the guild","ref":"Nostrum.Struct.Message.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Message.id/0","doc":"The id of the message","ref":"Nostrum.Struct.Message.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Message.interaction/0","doc":"Message interaction object","ref":"Nostrum.Struct.Message.html#t:interaction/0"},{"type":"type","title":"Nostrum.Struct.Message.member/0","doc":"Partial Guild Member object received with the Message Create event if message came from a guild channel","ref":"Nostrum.Struct.Message.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Message.mention_channels/0","doc":"List of channels mentioned in the message\n\n[Discord API Channel Mention Object Documentation](https://discord.com/developers/docs/resources/channel#channel-mention-object-channel-mention-structure)","ref":"Nostrum.Struct.Message.html#t:mention_channels/0"},{"type":"type","title":"Nostrum.Struct.Message.mention_everyone/0","doc":"Whether this message mentions everyone","ref":"Nostrum.Struct.Message.html#t:mention_everyone/0"},{"type":"type","title":"Nostrum.Struct.Message.mention_roles/0","doc":"List of roles ids mentioned in the message","ref":"Nostrum.Struct.Message.html#t:mention_roles/0"},{"type":"type","title":"Nostrum.Struct.Message.mentions/0","doc":"List of users mentioned in the message","ref":"Nostrum.Struct.Message.html#t:mentions/0"},{"type":"type","title":"Nostrum.Struct.Message.message_reference/0","doc":"Reference data sent with crossposted messages and replies.\n\nFor `THREAD_STARTER_MESSAGE` messages, this field points to the message that the thread was started from.","ref":"Nostrum.Struct.Message.html#t:message_reference/0"},{"type":"type","title":"Nostrum.Struct.Message.nonce/0","doc":"Validates if a message was sent","ref":"Nostrum.Struct.Message.html#t:nonce/0"},{"type":"type","title":"Nostrum.Struct.Message.pinned/0","doc":"Whether this message is pinned","ref":"Nostrum.Struct.Message.html#t:pinned/0"},{"type":"type","title":"Nostrum.Struct.Message.poll/0","doc":"The poll object attached to the message","ref":"Nostrum.Struct.Message.html#t:poll/0"},{"type":"type","title":"Nostrum.Struct.Message.reactions/0","doc":"Reactions to the message.","ref":"Nostrum.Struct.Message.html#t:reactions/0"},{"type":"type","title":"Nostrum.Struct.Message.referenced_message/0","doc":"The message associated with the `:message_reference`\n\nThis field is only returned for messages with a `type: 19` (Reply). If the message is a reply but the`:referenced_message` field is not present, the backend did not attempt to fetch the message that was being replied to,so its state is unknown. If the field exists but is `nil`, the referenced message was deleted.","ref":"Nostrum.Struct.Message.html#t:referenced_message/0"},{"type":"type","title":"Nostrum.Struct.Message.sticker_items/0","doc":"Array of Message Sticker Item Objects","ref":"Nostrum.Struct.Message.html#t:sticker_items/0"},{"type":"type","title":"Nostrum.Struct.Message.t/0","doc":"","ref":"Nostrum.Struct.Message.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.thread/0","doc":"The thread that was started from this message, includes a thread member object","ref":"Nostrum.Struct.Message.html#t:thread/0"},{"type":"type","title":"Nostrum.Struct.Message.timestamp/0","doc":"When the message was sent","ref":"Nostrum.Struct.Message.html#t:timestamp/0"},{"type":"type","title":"Nostrum.Struct.Message.tts/0","doc":"Whether this was a TTS message","ref":"Nostrum.Struct.Message.html#t:tts/0"},{"type":"type","title":"Nostrum.Struct.Message.type/0","doc":"[Discord API Message Object Type Documentation](https://discord.com/developers/docs/resources/channel#message-object-message-types)\n\n- `0` - `DEFAULT`\n- `1` - `RECIPIENT_ADD`\n- `2` - `RECIPIENT_REMOVE`\n- `3` - `CALL`\n- `4` - `CHANNEL_NAME_CHANGE`\n- `5` - `CHANNEL_ICON_CHANGE`\n- `6` - `CHANNEL_PINNED_MESSAGE`\n- `7` - `GUILD_MEMBER_JOIN`\n- `8` - `USER_PREMIUM_GUILD_SUBSCRIPTION`\n- `9` - `USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1`\n- `10` - `USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2`\n- `11` - `USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3`\n- `12` - `CHANNEL_FOLLOW_ADD`\n- `14` - `GUILD_DISCOVERY_DISQUALIFIED`\n- `15` - `GUILD_DISCOVERY_REQUALIFIED`\n- `16` - `GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING`\n- `17` - `GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING`\n- `18` - `THREAD_CREATED`\n- `19` - `REPLY`\n- `20` - `APPLICATION_COMMAND`\n- `21` - `THREAD_STARTER_MESSAGE`\n- `22` - `GUILD_INVITE_REMINDER`","ref":"Nostrum.Struct.Message.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Message.webhook_id/0","doc":"If the message is generated by a webhook, this is the webhook's id","ref":"Nostrum.Struct.Message.html#t:webhook_id/0"},{"type":"module","title":"Nostrum.Struct.Message.Activity","doc":"Struct representing a Discord message activity.","ref":"Nostrum.Struct.Message.Activity.html"},{"type":"type","title":"Nostrum.Struct.Message.Activity.party_id/0","doc":"The party id from a [rich presence event](https://discord.com/developers/docs/rich-presence/how-to).","ref":"Nostrum.Struct.Message.Activity.html#t:party_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Activity.t/0","doc":"","ref":"Nostrum.Struct.Message.Activity.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.Activity.type/0","doc":"[Type of message activity](https://discord.com/developers/docs/resources/channel#message-object-message-activity-types).","ref":"Nostrum.Struct.Message.Activity.html#t:type/0"},{"type":"module","title":"Nostrum.Struct.Message.Application","doc":"Struct representing a Discord message application.","ref":"Nostrum.Struct.Message.Application.html"},{"type":"type","title":"Nostrum.Struct.Message.Application.cover_image/0","doc":"Id of the embed's image asset","ref":"Nostrum.Struct.Message.Application.html#t:cover_image/0"},{"type":"type","title":"Nostrum.Struct.Message.Application.description/0","doc":"Application's description","ref":"Nostrum.Struct.Message.Application.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Message.Application.icon/0","doc":"Id of the application's icon","ref":"Nostrum.Struct.Message.Application.html#t:icon/0"},{"type":"type","title":"Nostrum.Struct.Message.Application.id/0","doc":"Id of the application","ref":"Nostrum.Struct.Message.Application.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Message.Application.name/0","doc":"Name of the application","ref":"Nostrum.Struct.Message.Application.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Message.Application.t/0","doc":"","ref":"Nostrum.Struct.Message.Application.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Attachment","doc":"Struct representing a Discord message attachment.","ref":"Nostrum.Struct.Message.Attachment.html"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.filename/0","doc":"Name of attached file","ref":"Nostrum.Struct.Message.Attachment.html#t:filename/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.height/0","doc":"Height of the file (if image)","ref":"Nostrum.Struct.Message.Attachment.html#t:height/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.id/0","doc":"Attachment id","ref":"Nostrum.Struct.Message.Attachment.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.proxy_url/0","doc":"Proxy url of the file","ref":"Nostrum.Struct.Message.Attachment.html#t:proxy_url/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.size/0","doc":"Size of the file in bytes","ref":"Nostrum.Struct.Message.Attachment.html#t:size/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.t/0","doc":"","ref":"Nostrum.Struct.Message.Attachment.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.url/0","doc":"Source url of the file","ref":"Nostrum.Struct.Message.Attachment.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.width/0","doc":"Width of the file (if image)","ref":"Nostrum.Struct.Message.Attachment.html#t:width/0"},{"type":"module","title":"Nostrum.Struct.Message.Component","doc":"A component attached to a message.\n\nNote that the fields present depend on the `t:type/0` of the component object.\n\nSee the [Discord API Component Object\nDocumentation](https://discord.com/developers/docs/interactions/message-components#component-object)\nfor more information.","ref":"Nostrum.Struct.Message.Component.html"},{"type":"type","title":"Nostrum.Struct.Message.Component.components/0","doc":"Child components for action rows.\n\nOnly present for action rows.","ref":"Nostrum.Struct.Message.Component.html#t:components/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.custom_id/0","doc":"A developer-defined identifier for the component.\n\nMaximum of 100 characters. Only present for buttons and select menus.","ref":"Nostrum.Struct.Message.Component.html#t:custom_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.disabled/0","doc":"Whether the component is disabled.\n\nOnly present for buttons and select menus.","ref":"Nostrum.Struct.Message.Component.html#t:disabled/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.emoji/0","doc":"Partial emoji of the button.\n\nOnly present for buttons. The following fields are set:\n\n- ``name``\n- ``id``\n- ``animated``","ref":"Nostrum.Struct.Message.Component.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.label/0","doc":"Text that appears on the button, or above the text input.\n\nMaximum of 80 characters. Only present for buttons and text input.","ref":"Nostrum.Struct.Message.Component.html#t:label/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.max_length/0","doc":"Maximum length of the input text.\n\nDefaults to ``1``. Maximum of ``4000``. Only present for text inputs.","ref":"Nostrum.Struct.Message.Component.html#t:max_length/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.max_values/0","doc":"Maximum number of items that must be chosen.\n\nDefaults to ``1``. Maximum of ``25``. Only present for select menus.","ref":"Nostrum.Struct.Message.Component.html#t:max_values/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.min_length/0","doc":"Minimum length of the input text.\n\nDefaults to ``0``. Maximum of ``4000``. Only present for text inputs.","ref":"Nostrum.Struct.Message.Component.html#t:min_length/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.min_values/0","doc":"Minimum number of items that must be chosen.\n\nDefaults to ``1``. Minimum of ``0``. Maximum of ``25``. Only present for select menus.","ref":"Nostrum.Struct.Message.Component.html#t:min_values/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.options/0","doc":"Choices of the select menu.\n\nMaximum of 25 options. Only present for select menus.","ref":"Nostrum.Struct.Message.Component.html#t:options/0"},{"type":"type","title":"References - Nostrum.Struct.Message.Component.options/0","doc":"See [Discord Developer Portal: Select Option\nStructure](https://discord.com/developers/docs/interactions/message-components#select-menu-object-select-option-structure).","ref":"Nostrum.Struct.Message.Component.html#t:options/0-references"},{"type":"type","title":"Nostrum.Struct.Message.Component.placeholder/0","doc":"Custom placeholder text if nothing is selected.\n\nMaximum of 100 characters. Only present for select menus and text inputs.","ref":"Nostrum.Struct.Message.Component.html#t:placeholder/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.required/0","doc":"Whether the component is required to be filled, defaults to `false`.\n\nOnly present for text inputs.","ref":"Nostrum.Struct.Message.Component.html#t:required/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.style/0","doc":"An integer representing the style of the button or text input.\n\nOnly present for buttons and text input.","ref":"Nostrum.Struct.Message.Component.html#t:style/0"},{"type":"type","title":"Values (Button) - Nostrum.Struct.Message.Component.style/0","doc":"- ``1``: Primary - blurple, ``custom_id`` required.\n- ``2``: Secondary - grey, ``custom_id`` required.\n- ``3``: Success - green, ``custom_id`` required.\n- ``4``: Danger - red, ``custom_id`` required.\n- ``5``: Link - grey, ``url`` required, navigates to the URL.","ref":"Nostrum.Struct.Message.Component.html#t:style/0-values-button"},{"type":"type","title":"Values (Text Input) - Nostrum.Struct.Message.Component.style/0","doc":"- ``1``: Short - A single line text input.\n- ``2``: Paragraph - A multi-line text input.","ref":"Nostrum.Struct.Message.Component.html#t:style/0-values-text-input"},{"type":"type","title":"References - Nostrum.Struct.Message.Component.style/0","doc":"See [Discord Developer Portal: Button\nStyles](https://discord.com/developers/docs/interactions/message-components#button-object-button-styles).","ref":"Nostrum.Struct.Message.Component.html#t:style/0-references"},{"type":"type","title":"Nostrum.Struct.Message.Component.t/0","doc":"Represents a message component.","ref":"Nostrum.Struct.Message.Component.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.type/0","doc":"Component type.\n\nThis field is always set.","ref":"Nostrum.Struct.Message.Component.html#t:type/0"},{"type":"type","title":"Values - Nostrum.Struct.Message.Component.type/0","doc":"- ``1``: Action Row - A container for other components.\n- ``2``: Button - A button object.\n- ``3``: Select Menu - A select menu for picking from choices.\n- ``4``: Text Input - A text input field.","ref":"Nostrum.Struct.Message.Component.html#t:type/0-values"},{"type":"type","title":"References - Nostrum.Struct.Message.Component.type/0","doc":"See [Discord Developer Portal: Component\nTypes](https://discord.com/developers/docs/interactions/message-components#component-object-component-types).","ref":"Nostrum.Struct.Message.Component.html#t:type/0-references"},{"type":"type","title":"Nostrum.Struct.Message.Component.url/0","doc":"URL for link-style buttons.\n\nOnly present for buttons.","ref":"Nostrum.Struct.Message.Component.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.value/0","doc":"The current value of the component.\n\nWhen creating a new component, this will be its pre-filled value if present.\nOnly present for text inputs.","ref":"Nostrum.Struct.Message.Component.html#t:value/0"},{"type":"module","title":"Nostrum.Struct.Message.Poll","doc":"Struct representing a poll in a Discord chat.\n\nThere are various helper methods on this structure to create new poll, see `create_poll/2` and `put_answer/2` & `put_answer/3` for code samples.","ref":"Nostrum.Struct.Message.Poll.html"},{"type":"function","title":"Nostrum.Struct.Message.Poll.create_poll/2","doc":"Create a new poll struct.\n\nUse `Nostrum.Api.create_message` to send it once you've populated it.\n\nAccepts a `question_text` parameter which is the string to use as the poll title.\n\nKeyword arguments:\n- `duration`: duration (in hours) the poll should be open for\n- `allow_multiselect`: whether users should be able to select multiple answers\n\nYou can also pass an `answers` key with answers, though `put_answer/2` and `put_answer/3` are advised.","ref":"Nostrum.Struct.Message.Poll.html#create_poll/2"},{"type":"function","title":"Examples - Nostrum.Struct.Message.Poll.create_poll/2","doc":"```elixir\npoll = Poll.create_poll(\"Do you enjoy pineapple on pizza?\", duration: 2, allow_multiselect: false)\n |> Poll.put_answer(\"Yes!\", default_emoji: \"\\u2705\") # check mark emoji\n |> Poll.put_answer(\"No!\", default_emoji: \"\\u274C\") # cross emoji\n\nApi.create_message(channel_id, poll: poll)\n```","ref":"Nostrum.Struct.Message.Poll.html#create_poll/2-examples"},{"type":"function","title":"Nostrum.Struct.Message.Poll.put_answer/2","doc":"Add an answer to the provided poll.\n\nSee `create_poll/2` for a code sample of this function.\n\nTakes a required \"answer\" text field, as well as either of the optional arguments:\n- `custom_emoji`: An integer representing the snowflake of an emoji to display with the option\n- `default_emoji`: A default platform emoji represented as a unicode character","ref":"Nostrum.Struct.Message.Poll.html#put_answer/2"},{"type":"function","title":"Nostrum.Struct.Message.Poll.put_answer/3","doc":"","ref":"Nostrum.Struct.Message.Poll.html#put_answer/3"},{"type":"type","title":"Nostrum.Struct.Message.Poll.allow_multiselect/0","doc":"Whether the poll allows selection of multiple answers","ref":"Nostrum.Struct.Message.Poll.html#t:allow_multiselect/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.answers/0","doc":"List of potential answers for the poll","ref":"Nostrum.Struct.Message.Poll.html#t:answers/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.duration/0","doc":"Duration of poll in hours","ref":"Nostrum.Struct.Message.Poll.html#t:duration/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.expiry/0","doc":"Expiry time of the poll","ref":"Nostrum.Struct.Message.Poll.html#t:expiry/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.layout_type/0","doc":"Layout type for the poll, currently only 1 (`DEFAULT`) is supported here.\n\nIf set to `nil`, the value will default to `1` at the Discord API.","ref":"Nostrum.Struct.Message.Poll.html#t:layout_type/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.question/0","doc":"Question for the poll","ref":"Nostrum.Struct.Message.Poll.html#t:question/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.results/0","doc":"Result counts of a poll that has been voted on.\n\nThis field is only present for poll objects received over the gateway or Discord API.\n\nAs mentioned in the `Nostrum.Struct.Message.Poll.Results` documentation, if an answer has not been voted on it\nwill not be in this object.","ref":"Nostrum.Struct.Message.Poll.html#t:results/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.t/0","doc":"","ref":"Nostrum.Struct.Message.Poll.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Poll.Answer","doc":"A struct representing a poll answer.","ref":"Nostrum.Struct.Message.Poll.Answer.html"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Answer.answer_id/0","doc":"ID of the answer, this is only sent *from* the gateway, you do not need to send this to the gateway.","ref":"Nostrum.Struct.Message.Poll.Answer.html#t:answer_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Answer.poll_media/0","doc":"Object representing how the answer is displayed visually, with the text and optional emojis.","ref":"Nostrum.Struct.Message.Poll.Answer.html#t:poll_media/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Answer.t/0","doc":"","ref":"Nostrum.Struct.Message.Poll.Answer.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Poll.MediaObject","doc":"A struct representing a media item of a poll (e.g. a question or answer)","ref":"Nostrum.Struct.Message.Poll.MediaObject.html"},{"type":"type","title":"Nostrum.Struct.Message.Poll.MediaObject.emoji/0","doc":"A partial emoji (only supported for answers).\n\nFor a custom emoji, only the `id` field needs to be sent, for a default emoji, only the\n`name` field needs to be sent (with the Unicode emoji).","ref":"Nostrum.Struct.Message.Poll.MediaObject.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.MediaObject.t/0","doc":"","ref":"Nostrum.Struct.Message.Poll.MediaObject.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.MediaObject.text/0","doc":"Text of the poll media object, either the question or answer text.","ref":"Nostrum.Struct.Message.Poll.MediaObject.html#t:text/0"},{"type":"module","title":"Nostrum.Struct.Message.Poll.Results","doc":"A struct representing the results of a poll.","ref":"Nostrum.Struct.Message.Poll.Results.html"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Results.answer_counts/0","doc":"A list of objects representing the counts for each of the potential answers in the poll.\n\nThe `id` property of each item corresponds to the `answer_id`\nof the poll answers. If an option is not present in this list, then\nthere were no votes for that answer.","ref":"Nostrum.Struct.Message.Poll.Results.html#t:answer_counts/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Results.is_finalized/0","doc":"A flag on whether the poll has finished counting.\n\nIf this is set to true, the counts are guaranteed to be accurate from Discord.","ref":"Nostrum.Struct.Message.Poll.Results.html#t:is_finalized/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Results.t/0","doc":"","ref":"Nostrum.Struct.Message.Poll.Results.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Reaction","doc":"Struct representing a Discord message reaction.","ref":"Nostrum.Struct.Message.Reaction.html"},{"type":"type","title":"Nostrum.Struct.Message.Reaction.count/0","doc":"Times this emoji has been used to react","ref":"Nostrum.Struct.Message.Reaction.html#t:count/0"},{"type":"type","title":"Nostrum.Struct.Message.Reaction.emoji/0","doc":"Emoji information","ref":"Nostrum.Struct.Message.Reaction.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Message.Reaction.me/0","doc":"Whether the current user is the one who reacted","ref":"Nostrum.Struct.Message.Reaction.html#t:me/0"},{"type":"type","title":"Nostrum.Struct.Message.Reaction.t/0","doc":"","ref":"Nostrum.Struct.Message.Reaction.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Reference","doc":"Struct representing a discord message reference.","ref":"Nostrum.Struct.Message.Reference.html"},{"type":"type","title":"Nostrum.Struct.Message.Reference.channel_id/0","doc":"Id of the originating message's channel","ref":"Nostrum.Struct.Message.Reference.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Reference.guild_id/0","doc":"Id of the originating message's guild","ref":"Nostrum.Struct.Message.Reference.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Reference.message_id/0","doc":"Id of the originating message","ref":"Nostrum.Struct.Message.Reference.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Reference.t/0","doc":"","ref":"Nostrum.Struct.Message.Reference.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Sticker","doc":"A `Nostrum.Struct.Message.Sticker` represents a sticker that can be sent inside a `Nostrum.Struct.Message`.\n\nMore information can be found on the [Discord API Sticker Object Documentation.](https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-structure)","ref":"Nostrum.Struct.Message.Sticker.html"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.available/0","doc":"Whether this guild sticker can be used, may be false due to loss of Server Boosts","ref":"Nostrum.Struct.Message.Sticker.html#t:available/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.description/0","doc":"Description of the sticker","ref":"Nostrum.Struct.Message.Sticker.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.format_type/0","doc":"[Discord API Sticker Object Format Type Documentation](https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types)\n\n- `1` - `PNG`\n- `2` - `APNG`\n- `3` - `LOTTIE`","ref":"Nostrum.Struct.Message.Sticker.html#t:format_type/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.guild_id/0","doc":"Id of the guild that owns this sticker","ref":"Nostrum.Struct.Message.Sticker.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.id/0","doc":"Id of the sticker","ref":"Nostrum.Struct.Message.Sticker.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.name/0","doc":"Name of the sticker","ref":"Nostrum.Struct.Message.Sticker.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.pack_id/0","doc":"Id of the pack the sticker is from","ref":"Nostrum.Struct.Message.Sticker.html#t:pack_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.sort_value/0","doc":"The sticker's sort order within its pack","ref":"Nostrum.Struct.Message.Sticker.html#t:sort_value/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.t/0","doc":"","ref":"Nostrum.Struct.Message.Sticker.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.tags/0","doc":"Discord name of a unicode emoji representing the sticker's expression. for standard stickers, a comma-separated list of related expressions.","ref":"Nostrum.Struct.Message.Sticker.html#t:tags/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.type/0","doc":"[Discord API Sticker Object Type Documentation](https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types)\n\n- `1` - `STANDARD` an official sticker in a pack, part of Nitro or in a removed purchasable pack\n- `2` - `GUILD` a sticker uploaded to a Boosted guild for the guild's members","ref":"Nostrum.Struct.Message.Sticker.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.user/0","doc":"User that uploaded the guild sticker","ref":"Nostrum.Struct.Message.Sticker.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Overwrite","doc":"Struct representing a Discord overwrite.","ref":"Nostrum.Struct.Overwrite.html"},{"type":"type","title":"Nostrum.Struct.Overwrite.allow/0","doc":"Permission bit set","ref":"Nostrum.Struct.Overwrite.html#t:allow/0"},{"type":"type","title":"Nostrum.Struct.Overwrite.deny/0","doc":"Permission bit set","ref":"Nostrum.Struct.Overwrite.html#t:deny/0"},{"type":"type","title":"Nostrum.Struct.Overwrite.id/0","doc":"Role or User id","ref":"Nostrum.Struct.Overwrite.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Overwrite.t/0","doc":"","ref":"Nostrum.Struct.Overwrite.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Overwrite.type/0","doc":"Either ``0`` (role) or ``1`` (member)","ref":"Nostrum.Struct.Overwrite.html#t:type/0"},{"type":"module","title":"Nostrum.Struct.ThreadMember","doc":"Struct representing a thread member object","ref":"Nostrum.Struct.ThreadMember.html"},{"type":"type","title":"Nostrum.Struct.ThreadMember.flags/0","doc":"Any user-thread settings","ref":"Nostrum.Struct.ThreadMember.html#t:flags/0"},{"type":"type","title":"Nostrum.Struct.ThreadMember.guild_id/0","doc":"The id of the guild the thread is in.\n\nOnly present within `THREAD_MEMBER_UPDATE` events","ref":"Nostrum.Struct.ThreadMember.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.ThreadMember.id/0","doc":"The id of the thread, omitted within `GUILD_CREATE` events","ref":"Nostrum.Struct.ThreadMember.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.ThreadMember.join_timestamp/0","doc":"The timestamp of when the user last joined the thread","ref":"Nostrum.Struct.ThreadMember.html#t:join_timestamp/0"},{"type":"type","title":"Nostrum.Struct.ThreadMember.t/0","doc":"","ref":"Nostrum.Struct.ThreadMember.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.ThreadMember.user_id/0","doc":"The id of the user, omitted within `GUILD_CREATE` events","ref":"Nostrum.Struct.ThreadMember.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.User","doc":"Struct representing a Discord user.","ref":"Nostrum.Struct.User.html"},{"type":"module","title":"Mentioning Users in Messages - Nostrum.Struct.User","doc":"A `Nostrum.Struct.User` can be mentioned in message content using the `String.Chars`\nprotocol or `mention/1`.\n\n```elixir\nuser = %Nostrum.Struct.User{id: 120571255635181568}\nNostrum.Api.create_message!(184046599834435585, \"#{user}\")\n%Nostrum.Struct.Message{content: \"<@120571255635181568>\"}\n\nuser = %Nostrum.Struct.User{id: 89918932789497856}\nNostrum.Api.create_message!(280085880452939778, \"#{Nostrum.Struct.User.mention(user)}\")\n%Nostrum.Struct.Message{content: \"<@89918932789497856>\"}\n```","ref":"Nostrum.Struct.User.html#module-mentioning-users-in-messages"},{"type":"module","title":"User vs. Member - Nostrum.Struct.User","doc":"A `user` contains only general information about that user such as a `username` and an `avatar`.\nA `member` has everything that a `user` has, but also additional information on a per guild basis. This includes things like a `nickname` and a list of `roles`.","ref":"Nostrum.Struct.User.html#module-user-vs-member"},{"type":"function","title":"Nostrum.Struct.User.avatar_url/2","doc":"Returns the URL of a user's display avatar.\n\nIf `:avatar` is `nil`, the default avatar url is returned.\n\nSupported image formats are PNG, JPEG, WebP, and GIF.","ref":"Nostrum.Struct.User.html#avatar_url/2"},{"type":"function","title":"Examples - Nostrum.Struct.User.avatar_url/2","doc":"```elixir\niex> user = %Nostrum.Struct.User{avatar: \"8342729096ea3675442027381ff50dfe\",\n...> id: 80351110224678912}\niex> Nostrum.Struct.User.avatar_url(user)\n\"https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.webp\"\niex> Nostrum.Struct.User.avatar_url(user, \"png\")\n\"https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.png\"\n\niex> user = %Nostrum.Struct.User{avatar: nil,\n...> id: 80351110224678912,\n...> discriminator: \"0\"}\niex> Nostrum.Struct.User.avatar_url(user)\n\"https://cdn.discordapp.com/embed/avatars/5.png\"\n\niex> user = %Nostrum.Struct.User{avatar: nil,\n...> discriminator: \"1337\"}\niex> Nostrum.Struct.User.avatar_url(user)\n\"https://cdn.discordapp.com/embed/avatars/2.png\"\n```","ref":"Nostrum.Struct.User.html#avatar_url/2-examples"},{"type":"function","title":"Nostrum.Struct.User.full_name/1","doc":"Returns a user's `:global_name` if present, otherwise returns their\n`:username` and `:discriminator` separated by a hashtag.","ref":"Nostrum.Struct.User.html#full_name/1"},{"type":"function","title":"Examples - Nostrum.Struct.User.full_name/1","doc":"```elixir\niex> user = %Nostrum.Struct.User{global_name: \"TheRealJason\",\n...> username: \"therealjason\",\n...> discriminator: \"0\"}\niex> Nostrum.Struct.User.full_name(user)\n\"TheRealJason\"\n```\n\n```elixir\niex> user = %Nostrum.Struct.User{username: \"b1nzy\",\n...> discriminator: \"0852\"}\niex> Nostrum.Struct.User.full_name(user)\n\"b1nzy#0852\"\n```","ref":"Nostrum.Struct.User.html#full_name/1-examples"},{"type":"function","title":"Nostrum.Struct.User.mention/1","doc":"Formats an `Nostrum.Struct.User` into a mention.","ref":"Nostrum.Struct.User.html#mention/1"},{"type":"function","title":"Examples - Nostrum.Struct.User.mention/1","doc":"```elixir\niex> user = %Nostrum.Struct.User{id: 177888205536886784}\n...> Nostrum.Struct.User.mention(user)\n\"<@177888205536886784>\"\n```","ref":"Nostrum.Struct.User.html#mention/1-examples"},{"type":"type","title":"Nostrum.Struct.User.avatar/0","doc":"User's avatar hash","ref":"Nostrum.Struct.User.html#t:avatar/0"},{"type":"type","title":"Nostrum.Struct.User.bot/0","doc":"Whether the user is a bot","ref":"Nostrum.Struct.User.html#t:bot/0"},{"type":"type","title":"Nostrum.Struct.User.discriminator/0","doc":"The user's 4--digit discord-tag","ref":"Nostrum.Struct.User.html#t:discriminator/0"},{"type":"type","title":"Nostrum.Struct.User.email/0","doc":"The user's email","ref":"Nostrum.Struct.User.html#t:email/0"},{"type":"type","title":"Nostrum.Struct.User.global_name/0","doc":"The user's display name, if it is set","ref":"Nostrum.Struct.User.html#t:global_name/0"},{"type":"type","title":"Nostrum.Struct.User.id/0","doc":"The user's id","ref":"Nostrum.Struct.User.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.User.mfa_enabled/0","doc":"Whether the user has two factor enabled","ref":"Nostrum.Struct.User.html#t:mfa_enabled/0"},{"type":"type","title":"Nostrum.Struct.User.public_flags/0","doc":"The user's public flags","ref":"Nostrum.Struct.User.html#t:public_flags/0"},{"type":"type","title":"Nostrum.Struct.User.t/0","doc":"","ref":"Nostrum.Struct.User.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.User.username/0","doc":"The user's username","ref":"Nostrum.Struct.User.html#t:username/0"},{"type":"type","title":"Nostrum.Struct.User.verified/0","doc":"Whether the email on the account has been verified","ref":"Nostrum.Struct.User.html#t:verified/0"},{"type":"module","title":"Nostrum.Struct.User.Connection","doc":"Struct representing a Discord User's connections","ref":"Nostrum.Struct.User.Connection.html"},{"type":"module","title":"Nostrum.Struct.User.Flags","doc":"Struct representing the flags a user account can have","ref":"Nostrum.Struct.User.Flags.html"},{"type":"function","title":"Nostrum.Struct.User.Flags.from_integer/1","doc":"Constructs a flag struct based on an integer from the Discord API (either public_flags or flags).","ref":"Nostrum.Struct.User.Flags.html#from_integer/1"},{"type":"function","title":"Examples - Nostrum.Struct.User.Flags.from_integer/1","doc":"```elixir\niex> Nostrum.Struct.User.Flags.from_integer(131842)\n%Nostrum.Struct.User.Flags{\n bug_hunter_level_1: false,\n bug_hunter_level_2: false,\n early_supporter: true,\n hypesquad_balance: true,\n hypesquad_bravery: false,\n hypesquad_brilliance: false,\n hypesquad_events: false,\n partner: true,\n staff: false,\n system: false,\n team_user: false,\n verified_bot: false,\n verified_developer: true\n}\n```","ref":"Nostrum.Struct.User.Flags.html#from_integer/1-examples"},{"type":"function","title":"Nostrum.Struct.User.Flags.to_integer/1","doc":"Convert a flag struct to an integer value.","ref":"Nostrum.Struct.User.Flags.html#to_integer/1"},{"type":"function","title":"Examples - Nostrum.Struct.User.Flags.to_integer/1","doc":"```elixir\niex> my_flags = %Nostrum.Struct.User.Flags{\n...> bug_hunter_level_1: false,\n...> bug_hunter_level_2: false,\n...> early_supporter: true,\n...> hypesquad_balance: true,\n...> hypesquad_bravery: false,\n...> hypesquad_brilliance: false,\n...> hypesquad_events: false,\n...> partner: true,\n...> staff: false,\n...> system: false,\n...> team_user: false,\n...> verified_bot: false,\n...> verified_developer: true\n...> }\niex> Nostrum.Struct.User.Flags.to_integer(my_flags)\n131842\n```","ref":"Nostrum.Struct.User.Flags.html#to_integer/1-examples"},{"type":"type","title":"Nostrum.Struct.User.Flags.bug_hunter_level_1/0","doc":"Bug Hunter (Level 1)","ref":"Nostrum.Struct.User.Flags.html#t:bug_hunter_level_1/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.bug_hunter_level_2/0","doc":"Bug Hunter (Level 2)","ref":"Nostrum.Struct.User.Flags.html#t:bug_hunter_level_2/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.early_supporter/0","doc":"Early Supporter","ref":"Nostrum.Struct.User.Flags.html#t:early_supporter/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.flags/0","doc":"","ref":"Nostrum.Struct.User.Flags.html#t:flags/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.hypesquad_balance/0","doc":"HypeSquad Balance","ref":"Nostrum.Struct.User.Flags.html#t:hypesquad_balance/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.hypesquad_bravery/0","doc":"HypeSquad Bravery","ref":"Nostrum.Struct.User.Flags.html#t:hypesquad_bravery/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.hypesquad_brilliance/0","doc":"HypeSquad Brilliance","ref":"Nostrum.Struct.User.Flags.html#t:hypesquad_brilliance/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.hypesquad_events/0","doc":"HypeSquad Events","ref":"Nostrum.Struct.User.Flags.html#t:hypesquad_events/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.partner/0","doc":"Discord Partner","ref":"Nostrum.Struct.User.Flags.html#t:partner/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.staff/0","doc":"Discord Employee","ref":"Nostrum.Struct.User.Flags.html#t:staff/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.system/0","doc":"System user","ref":"Nostrum.Struct.User.Flags.html#t:system/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.t/0","doc":"","ref":"Nostrum.Struct.User.Flags.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.team_user/0","doc":"Team User","ref":"Nostrum.Struct.User.Flags.html#t:team_user/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.verified_bot/0","doc":"Verified bot","ref":"Nostrum.Struct.User.Flags.html#t:verified_bot/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.verified_developer/0","doc":"Verified developer","ref":"Nostrum.Struct.User.Flags.html#t:verified_developer/0"},{"type":"module","title":"Nostrum.Struct.VoiceRegion","doc":"Struct representing a Discord voice region.","ref":"Nostrum.Struct.VoiceRegion.html"},{"type":"type","title":"Nostrum.Struct.VoiceRegion.t/0","doc":"","ref":"Nostrum.Struct.VoiceRegion.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.VoiceWSState","doc":"Struct representing the current Voice WS state.","ref":"Nostrum.Struct.VoiceWSState.html"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.channel_id/0","doc":"The channel id that this voice websocket state applies to","ref":"Nostrum.Struct.VoiceWSState.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.conn/0","doc":"PID of the `:gun` worker connected to the websocket","ref":"Nostrum.Struct.VoiceWSState.html#t:conn/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.conn_pid/0","doc":"PID of the connection process","ref":"Nostrum.Struct.VoiceWSState.html#t:conn_pid/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.gateway/0","doc":"Gateway URL","ref":"Nostrum.Struct.VoiceWSState.html#t:gateway/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.guild_id/0","doc":"The guild id that this voice websocket state applies to","ref":"Nostrum.Struct.VoiceWSState.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.heartbeat_ack/0","doc":"Whether or not the last heartbeat sent was ACK'd","ref":"Nostrum.Struct.VoiceWSState.html#t:heartbeat_ack/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.heartbeat_interval/0","doc":"Interval at which heartbeats are sent","ref":"Nostrum.Struct.VoiceWSState.html#t:heartbeat_interval/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.heartbeat_ref/0","doc":"Time ref for the heartbeat","ref":"Nostrum.Struct.VoiceWSState.html#t:heartbeat_ref/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.identified/0","doc":"Whether the session has been identified","ref":"Nostrum.Struct.VoiceWSState.html#t:identified/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.last_heartbeat_ack/0","doc":"The time the last heartbeat was acknowledged, will be nil if a heartbeat\nhasn't been ACK'd yet","ref":"Nostrum.Struct.VoiceWSState.html#t:last_heartbeat_ack/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.last_heartbeat_send/0","doc":"The time the last heartbeat was sent, if a heartbeat hasn't been sent it\nwill be the time the websocket process was started","ref":"Nostrum.Struct.VoiceWSState.html#t:last_heartbeat_send/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.secret_key/0","doc":"The secret key for audio encryption","ref":"Nostrum.Struct.VoiceWSState.html#t:secret_key/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.session/0","doc":"The session id","ref":"Nostrum.Struct.VoiceWSState.html#t:session/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.ssrc_map/0","doc":"A mapping of RTP SSRC (synchronization source) to user id\n\nThis map can be used to identify the user who generated the incoming\naudio data when an RTP packet is received.","ref":"Nostrum.Struct.VoiceWSState.html#t:ssrc_map/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.stream/0","doc":"Stream reference for `:gun`","ref":"Nostrum.Struct.VoiceWSState.html#t:stream/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.t/0","doc":"","ref":"Nostrum.Struct.VoiceWSState.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.token/0","doc":"The session token","ref":"Nostrum.Struct.VoiceWSState.html#t:token/0"},{"type":"module","title":"Nostrum.Struct.WSState","doc":"Struct representing the current WS state.","ref":"Nostrum.Struct.WSState.html"},{"type":"type","title":"Nostrum.Struct.WSState.conn/0","doc":"PID of the `:gun` worker connected to the websocket","ref":"Nostrum.Struct.WSState.html#t:conn/0"},{"type":"type","title":"Nostrum.Struct.WSState.conn_pid/0","doc":"PID of the connection process","ref":"Nostrum.Struct.WSState.html#t:conn_pid/0"},{"type":"type","title":"Nostrum.Struct.WSState.gateway/0","doc":"Gateway URL","ref":"Nostrum.Struct.WSState.html#t:gateway/0"},{"type":"type","title":"Nostrum.Struct.WSState.heartbeat_ack/0","doc":"Whether or not the last hearbeat sent was ACK'd","ref":"Nostrum.Struct.WSState.html#t:heartbeat_ack/0"},{"type":"type","title":"Nostrum.Struct.WSState.heartbeat_interval/0","doc":"Interval at which heartbeats are sent","ref":"Nostrum.Struct.WSState.html#t:heartbeat_interval/0"},{"type":"type","title":"Nostrum.Struct.WSState.last_heartbeat_ack/0","doc":"The time the last heartbeat was acknowledged, will be nil if a heartbeat\nhasn't been ACK'd yet","ref":"Nostrum.Struct.WSState.html#t:last_heartbeat_ack/0"},{"type":"type","title":"Nostrum.Struct.WSState.last_heartbeat_send/0","doc":"The time the last heartbeat was sent, if a heartbeat hasn't been sent it\nwill be the time the websocket process was started","ref":"Nostrum.Struct.WSState.html#t:last_heartbeat_send/0"},{"type":"type","title":"Nostrum.Struct.WSState.resume_gateway/0","doc":"Gateway URL to use for resuming.","ref":"Nostrum.Struct.WSState.html#t:resume_gateway/0"},{"type":"type","title":"Nostrum.Struct.WSState.seq/0","doc":"The sequence number of the last event","ref":"Nostrum.Struct.WSState.html#t:seq/0"},{"type":"type","title":"Nostrum.Struct.WSState.session/0","doc":"The session id","ref":"Nostrum.Struct.WSState.html#t:session/0"},{"type":"type","title":"Nostrum.Struct.WSState.shard_num/0","doc":"The shard number","ref":"Nostrum.Struct.WSState.html#t:shard_num/0"},{"type":"type","title":"Nostrum.Struct.WSState.stream/0","doc":"Stream reference for `:gun`","ref":"Nostrum.Struct.WSState.html#t:stream/0"},{"type":"type","title":"Nostrum.Struct.WSState.t/0","doc":"","ref":"Nostrum.Struct.WSState.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.WSState.total_shards/0","doc":"The highest shard number for this bot.\n\nThis may not be started locally, it is just used by nostrum to inform the\ngateway which events we are interested in.","ref":"Nostrum.Struct.WSState.html#t:total_shards/0"},{"type":"type","title":"Nostrum.Struct.WSState.zlib_ctx/0","doc":"Reference to the current zlib context","ref":"Nostrum.Struct.WSState.html#t:zlib_ctx/0"},{"type":"module","title":"Nostrum.Struct.Webhook","doc":"Struct representing a Discord webhook.","ref":"Nostrum.Struct.Webhook.html"},{"type":"type","title":"Nostrum.Struct.Webhook.avatar/0","doc":"Default avatar of the webhook","ref":"Nostrum.Struct.Webhook.html#t:avatar/0"},{"type":"type","title":"Nostrum.Struct.Webhook.channel_id/0","doc":"Channel the webhook is for","ref":"Nostrum.Struct.Webhook.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Webhook.guild_id/0","doc":"Guild the webhook is for","ref":"Nostrum.Struct.Webhook.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Webhook.id/0","doc":"Id of the webhook","ref":"Nostrum.Struct.Webhook.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Webhook.name/0","doc":"Default name of the webhook","ref":"Nostrum.Struct.Webhook.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Webhook.t/0","doc":"","ref":"Nostrum.Struct.Webhook.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Webhook.token/0","doc":"Secure token of the webhook","ref":"Nostrum.Struct.Webhook.html#t:token/0"},{"type":"type","title":"Nostrum.Struct.Webhook.user/0","doc":"User who created the webhook","ref":"Nostrum.Struct.Webhook.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Event.AutoModerationRuleExecute","doc":"Sent when an auto-moderation rule executes.\n(e.g. message is blocked).","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.action/0","doc":"The action that was executed","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:action/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.alert_system_message_id/0","doc":"The id of any system message that was generated as a result of the action\n\nnote: will not exist if the event does not correspond to an action that generates a system message","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:alert_system_message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.channel_id/0","doc":"The id of the channel in which the content was posted\n\nnote: this field may not exist if the content was blocked from being created","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.content/0","doc":"The content of the message which triggered the rule","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:content/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.guild_id/0","doc":"The id of the guild in which the action was executed","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.matched_content/0","doc":"The substring which matched the content","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:matched_content/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.matched_keyword/0","doc":"The keyword that was matched in the content","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:matched_keyword/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.message_id/0","doc":"The id of the message which was posted\n\nnote: this field will not exist if the content was blocked from being created","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.rule_id/0","doc":"The id of the rule that was executed","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:rule_id/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.rule_trigger_type/0","doc":"The type of the rule that was executed","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:rule_trigger_type/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.t/0","doc":"","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.user_id/0","doc":"The id of the user which generated the content which triggered the rule","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.ChannelPinsUpdate","doc":"Represents an update to channel pins.","ref":"Nostrum.Struct.Event.ChannelPinsUpdate.html"},{"type":"type","title":"Nostrum.Struct.Event.ChannelPinsUpdate.channel_id/0","doc":"The ID of the channel","ref":"Nostrum.Struct.Event.ChannelPinsUpdate.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.ChannelPinsUpdate.guild_id/0","doc":"The ID of the guild, if the pin update was on a guild","ref":"Nostrum.Struct.Event.ChannelPinsUpdate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.ChannelPinsUpdate.last_pin_timestamp/0","doc":"The time at which the most recent pinned message was pinned","ref":"Nostrum.Struct.Event.ChannelPinsUpdate.html#t:last_pin_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Event.ChannelPinsUpdate.t/0","doc":"Event sent when a message is pinned or unpinned in a text channel","ref":"Nostrum.Struct.Event.ChannelPinsUpdate.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildBanAdd","doc":"Sent when a user is banned from a guild","ref":"Nostrum.Struct.Event.GuildBanAdd.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanAdd.guild_id/0","doc":"ID of the guild","ref":"Nostrum.Struct.Event.GuildBanAdd.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanAdd.t/0","doc":"Event sent when a user is banned from a guild","ref":"Nostrum.Struct.Event.GuildBanAdd.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanAdd.user/0","doc":"Banned user","ref":"Nostrum.Struct.Event.GuildBanAdd.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildBanRemove","doc":"Sent when a user is unbanned from a guild","ref":"Nostrum.Struct.Event.GuildBanRemove.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanRemove.guild_id/0","doc":"ID of the guild","ref":"Nostrum.Struct.Event.GuildBanRemove.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanRemove.t/0","doc":"Event sent when a user is unbanned from a guild","ref":"Nostrum.Struct.Event.GuildBanRemove.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanRemove.user/0","doc":"Unbanned user","ref":"Nostrum.Struct.Event.GuildBanRemove.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildIntegrationDelete","doc":"Event fired when a guild integration is deleted.","ref":"Nostrum.Struct.Event.GuildIntegrationDelete.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationDelete.application_id/0","doc":"id of the bot/OAuth2 application for this discord integration","ref":"Nostrum.Struct.Event.GuildIntegrationDelete.html#t:application_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationDelete.guild_id/0","doc":"The id of the guild the integration is in.","ref":"Nostrum.Struct.Event.GuildIntegrationDelete.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationDelete.id/0","doc":"The id of the deleted integration.","ref":"Nostrum.Struct.Event.GuildIntegrationDelete.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationDelete.t/0","doc":"","ref":"Nostrum.Struct.Event.GuildIntegrationDelete.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildIntegrationsUpdate","doc":"Sent when a guild integration is updated","ref":"Nostrum.Struct.Event.GuildIntegrationsUpdate.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationsUpdate.guild_id/0","doc":"ID of the guild whose integrations were updated","ref":"Nostrum.Struct.Event.GuildIntegrationsUpdate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationsUpdate.t/0","doc":"Event sent when a guild integration is updated","ref":"Nostrum.Struct.Event.GuildIntegrationsUpdate.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd","doc":"Struct representing a guild scheduled event user add event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.guild_id/0","doc":"The id of the guild the event is scheduled for.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.guild_scheduled_event_id/0","doc":"The id of the scheduled event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.html#t:guild_scheduled_event_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.t/0","doc":"","ref":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.user_id/0","doc":"The id of the user that subscribed to the scheduled event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove","doc":"Struct representing a guild scheduled event user remove event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.guild_id/0","doc":"The id of the guild the event is scheduled for.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.guild_scheduled_event_id/0","doc":"The id of the scheduled event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.html#t:guild_scheduled_event_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.t/0","doc":"","ref":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.user_id/0","doc":"The id of the user that unsubscribed to the scheduled event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.InviteCreate","doc":"Struct representing an Invite Create event","ref":"Nostrum.Struct.Event.InviteCreate.html"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.channel_id/0","doc":"Channel id of the channel this invite is for.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.code/0","doc":"The unique invite code.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:code/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.created_at/0","doc":"The time at which the invite was created.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:created_at/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.guild_id/0","doc":"Guild id of the guild this invite is for.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.inviter/0","doc":"The user that created the invite.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:inviter/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.max_age/0","doc":"Duration (in seconds) after which the invite expires.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:max_age/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.max_uses/0","doc":"Max number of times this invite can be used.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:max_uses/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.t/0","doc":"","ref":"Nostrum.Struct.Event.InviteCreate.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.target_user/0","doc":"Partially populated user struct of the target user for this invite.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:target_user/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.target_user_type/0","doc":"The type of user target for this invite.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:target_user_type/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.temporary/0","doc":"Whether this invite only grants temporary membership.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:temporary/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.uses/0","doc":"Number of times this invite has been used.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:uses/0"},{"type":"module","title":"Nostrum.Struct.Event.InviteDelete","doc":"Struct representing an Invite Delete event","ref":"Nostrum.Struct.Event.InviteDelete.html"},{"type":"type","title":"Nostrum.Struct.Event.InviteDelete.channel_id/0","doc":"Channel id of the channel this invite is for.","ref":"Nostrum.Struct.Event.InviteDelete.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteDelete.code/0","doc":"The unique invite code.","ref":"Nostrum.Struct.Event.InviteDelete.html#t:code/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteDelete.guild_id/0","doc":"Guild id of the guild this invite is for.","ref":"Nostrum.Struct.Event.InviteDelete.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteDelete.t/0","doc":"","ref":"Nostrum.Struct.Event.InviteDelete.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageDelete","doc":"Struct representing a Message Delete event","ref":"Nostrum.Struct.Event.MessageDelete.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageDelete.channel_id/0","doc":"Channel id of the deleted message","ref":"Nostrum.Struct.Event.MessageDelete.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDelete.guild_id/0","doc":"Guild id of the deleted message\n\n`nil` if a non-guild message was deleted.","ref":"Nostrum.Struct.Event.MessageDelete.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDelete.id/0","doc":"Id of the deleted message","ref":"Nostrum.Struct.Event.MessageDelete.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDelete.t/0","doc":"","ref":"Nostrum.Struct.Event.MessageDelete.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageDeleteBulk","doc":"Struct representing a Message Delete Bulk event","ref":"Nostrum.Struct.Event.MessageDeleteBulk.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageDeleteBulk.channel_id/0","doc":"Channel id of the deleted message","ref":"Nostrum.Struct.Event.MessageDeleteBulk.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDeleteBulk.guild_id/0","doc":"Guild id of the deleted message\n\n`nil` if a non-guild message was deleted.","ref":"Nostrum.Struct.Event.MessageDeleteBulk.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDeleteBulk.ids/0","doc":"Ids of the deleted messages","ref":"Nostrum.Struct.Event.MessageDeleteBulk.html#t:ids/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDeleteBulk.t/0","doc":"","ref":"Nostrum.Struct.Event.MessageDeleteBulk.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageReactionAdd","doc":"Sent when a user adds a reaction to a message","ref":"Nostrum.Struct.Event.MessageReactionAdd.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.channel_id/0","doc":"Channel in which the reaction was added","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.emoji/0","doc":"The (partial) emoji used to react","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.guild_id/0","doc":"Guild ID in which the reaction was added, if applicable","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.member/0","doc":"The member who reacted, if this happened on a guild","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.message_id/0","doc":"Message to which the reaction was added","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.t/0","doc":"Event sent when a user adds a reaction to a message","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.user_id/0","doc":"ID of the user who added the reaction","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageReactionRemove","doc":"Sent when a user removes a reaction from a message","ref":"Nostrum.Struct.Event.MessageReactionRemove.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.channel_id/0","doc":"ID of the channel in which the reaction was created","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.emoji/0","doc":"Partial emoji object that was removed","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.guild_id/0","doc":"ID of the guild on which the message lives, if applicable","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.message_id/0","doc":"ID of the message to which the reaction was attached","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.t/0","doc":"Event sent when a user removes a reaction from a message","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.user_id/0","doc":"Author of the reaction","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageReactionRemoveAll","doc":"Sent when a user explicitly removes all reactions from a message","ref":"Nostrum.Struct.Event.MessageReactionRemoveAll.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveAll.channel_id/0","doc":"ID of the channel in which the message resides.","ref":"Nostrum.Struct.Event.MessageReactionRemoveAll.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveAll.guild_id/0","doc":"ID of the guild for the message, if applicable.","ref":"Nostrum.Struct.Event.MessageReactionRemoveAll.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveAll.message_id/0","doc":"ID of the message from which all reactions were removed.","ref":"Nostrum.Struct.Event.MessageReactionRemoveAll.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveAll.t/0","doc":"Event sent when a user explicitly removes all reactions from a message","ref":"Nostrum.Struct.Event.MessageReactionRemoveAll.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji","doc":"Sent when a bot removes all instances of a given emoji from the reactions of a message","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.channel_id/0","doc":"Channel in which the message resides.","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.emoji/0","doc":"The (partial) emoji that was removed.","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.guild_id/0","doc":"Guild on which the message resides, if applicable.","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.message_id/0","doc":"Message from which the emoji was removed.","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.t/0","doc":"Event sent when a bot removes all instances of a given emoji from the reactions of a message","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.PartialApplication","doc":"Sent on `READY`","ref":"Nostrum.Struct.Event.PartialApplication.html"},{"type":"type","title":"Nostrum.Struct.Event.PartialApplication.flags/0","doc":"Public flags of the application.\n\nSee https://discord.com/developers/docs/resources/application#application-object-application-flags","ref":"Nostrum.Struct.Event.PartialApplication.html#t:flags/0"},{"type":"type","title":"Nostrum.Struct.Event.PartialApplication.id/0","doc":"ID of the application","ref":"Nostrum.Struct.Event.PartialApplication.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Event.PartialApplication.t/0","doc":"Event sent as part of the `READY` payload.","ref":"Nostrum.Struct.Event.PartialApplication.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.PollVoteChange","doc":"Represents an addition or removal of a vote from a Discord poll.\n\nFor polls where multiple answers were selected, one of these events will be fired for each vote.","ref":"Nostrum.Struct.Event.PollVoteChange.html"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.answer_id/0","doc":"ID corresponding to the answer_id in the `t:Nostrum.Struct.Message.Poll.answers/0` list","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:answer_id/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.channel_id/0","doc":"ID of the channel the vote took place in","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.guild_id/0","doc":"ID of the guild the poll is in (unless it is a private channel)","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.message_id/0","doc":"ID of the message the poll was attached to","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.t/0","doc":"Event representing a addition or removal of a vote from a poll","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.type/0","doc":"Whether the vote was an addition or removal for a vote of the option","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.user_id/0","doc":"ID of the user that has voted","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.Ready","doc":"Sent after initial handshake with the gateway","ref":"Nostrum.Struct.Event.Ready.html"},{"type":"type","title":"Nostrum.Struct.Event.Ready.application/0","doc":"Partial application object with `id` and `flags`","ref":"Nostrum.Struct.Event.Ready.html#t:application/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.guilds/0","doc":"The guilds that the bot user is in","ref":"Nostrum.Struct.Event.Ready.html#t:guilds/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.session_id/0","doc":"Used for resuming connections.\n\nIf you are wondering whether you need to use this, you probably don't.\nNostrum handles reconnections for you.","ref":"Nostrum.Struct.Event.Ready.html#t:session_id/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.shard/0","doc":"A pair of two integers ``{shard_id, num_shards}``.\n\nFor more information, see\nhttps://discord.com/developers/docs/topics/gateway#sharding.","ref":"Nostrum.Struct.Event.Ready.html#t:shard/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.t/0","doc":"Event sent after initial handshake with the gateway","ref":"Nostrum.Struct.Event.Ready.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.user/0","doc":"Information about the bot user","ref":"Nostrum.Struct.Event.Ready.html#t:user/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.v/0","doc":"Gateway version.\nSee https://discord.com/developers/docs/topics/gateway#gateways-gateway-versions","ref":"Nostrum.Struct.Event.Ready.html#t:v/0"},{"type":"module","title":"Nostrum.Struct.Event.SpeakingUpdate","doc":"Struct representing a Nostrum-generated Speaking Update event\n\nNostrum will generate this event when the bot starts or stops playing audio.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.channel_id/0","doc":"Id of the channel this speaking update is occurring in.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.current_url/0","doc":"Current URL being played if a readable format.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:current_url/0"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.guild_id/0","doc":"Id of the guild this speaking update is occurring in.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.speaking/0","doc":"Boolean representing if bot has started or stopped speaking.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:speaking/0"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.t/0","doc":"","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.timed_out/0","doc":"Boolean representing if speaking update was caused by an audio timeout.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:timed_out/0"},{"type":"module","title":"Nostrum.Struct.Event.ThreadListSync","doc":"Struct representing a Thread List Sync event.\n\nThis event is sent when the user gains access to a channel.","ref":"Nostrum.Struct.Event.ThreadListSync.html"},{"type":"type","title":"Nostrum.Struct.Event.ThreadListSync.channel_ids/0","doc":"The parent channel ids whose threads are being synced.\nIf omitted, all threads were synced for the entire guild.","ref":"Nostrum.Struct.Event.ThreadListSync.html#t:channel_ids/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadListSync.guid_id/0","doc":"The id of the guild.","ref":"Nostrum.Struct.Event.ThreadListSync.html#t:guid_id/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadListSync.members/0","doc":"All thread member objects from the synced threads for the current user,\nindicating which threads the user has been added to.","ref":"Nostrum.Struct.Event.ThreadListSync.html#t:members/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadListSync.t/0","doc":"","ref":"Nostrum.Struct.Event.ThreadListSync.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadListSync.threads/0","doc":"All active threads in the given channels that the user can access.","ref":"Nostrum.Struct.Event.ThreadListSync.html#t:threads/0"},{"type":"module","title":"Nostrum.Struct.Event.ThreadMembersUpdate","doc":"Struct representing a thread members update event.\n\nThis event is sent whenever a user is added or removed from a thread.\n\nIf the current user does not have the `GUILD_MEMBERS` intent,\nthis event will only be sent when the current user is added to or removed from a thread.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.added_members/0","doc":"The members that were added to the thread.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:added_members/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.guild_id/0","doc":"The id of the guild the thread is in.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.id/0","doc":"The id of the thread.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.member_count/0","doc":"The approximate number of members in the thread.\n\nThis number is capped at 50, though there can be more members in the thread.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:member_count/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.removed_member_ids/0","doc":"The ids of the members that were removed from the thread.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:removed_member_ids/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.t/0","doc":"","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.TypingStart","doc":"Sent when a user starts typing in a channel","ref":"Nostrum.Struct.Event.TypingStart.html"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.channel_id/0","doc":"Channel in which the user started typing","ref":"Nostrum.Struct.Event.TypingStart.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.guild_id/0","doc":"ID of the guild where the user started typing, if applicable","ref":"Nostrum.Struct.Event.TypingStart.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.member/0","doc":"The member who started typing if this happened in a guild","ref":"Nostrum.Struct.Event.TypingStart.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.t/0","doc":"Event sent when a user starts typing in a channel","ref":"Nostrum.Struct.Event.TypingStart.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.timestamp/0","doc":"When the user started typing","ref":"Nostrum.Struct.Event.TypingStart.html#t:timestamp/0"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.user_id/0","doc":"ID of the user who started typing","ref":"Nostrum.Struct.Event.TypingStart.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.VoiceReady","doc":"Struct representing a Nostrum-generated Voice Ready event\n\nNostrum will generate this event when the bot joins a voice channel\nand is ready to play audio.\n\nListening to this event may be used for bots that begin playing audio\ndirectly after joining a voice channel as an alternative to waiting\nuntil `Nostrum.Voice.ready?/1` returns `true`.","ref":"Nostrum.Struct.Event.VoiceReady.html"},{"type":"type","title":"Nostrum.Struct.Event.VoiceReady.channel_id/0","doc":"Id of the channel that voice is ready in.","ref":"Nostrum.Struct.Event.VoiceReady.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceReady.guild_id/0","doc":"Id of the guild that voice is ready in.","ref":"Nostrum.Struct.Event.VoiceReady.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceReady.t/0","doc":"","ref":"Nostrum.Struct.Event.VoiceReady.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.VoiceServerUpdate","doc":"Sent when a guild's voice server is updated","ref":"Nostrum.Struct.Event.VoiceServerUpdate.html"},{"type":"type","title":"Nostrum.Struct.Event.VoiceServerUpdate.endpoint/0","doc":"The voice server host","ref":"Nostrum.Struct.Event.VoiceServerUpdate.html#t:endpoint/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceServerUpdate.guild_id/0","doc":"Guild this voice server update is for","ref":"Nostrum.Struct.Event.VoiceServerUpdate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceServerUpdate.t/0","doc":"Event sent when a guild's voice server is updated","ref":"Nostrum.Struct.Event.VoiceServerUpdate.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceServerUpdate.token/0","doc":"Voice connection token","ref":"Nostrum.Struct.Event.VoiceServerUpdate.html#t:token/0"},{"type":"module","title":"Nostrum.Struct.Event.VoiceState","doc":"Represents a user's voice connection status","ref":"Nostrum.Struct.Event.VoiceState.html"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.channel_id/0","doc":"Channel ID this voice state is for","ref":"Nostrum.Struct.Event.VoiceState.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.deaf/0","doc":"Whether this user is deafened by the server","ref":"Nostrum.Struct.Event.VoiceState.html#t:deaf/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.guild_id/0","doc":"Guild ID this voice state is for, if applicable","ref":"Nostrum.Struct.Event.VoiceState.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.member/0","doc":"Guild member this voice state is for, if applicable","ref":"Nostrum.Struct.Event.VoiceState.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.mute/0","doc":"Whether this user is muteened by the server","ref":"Nostrum.Struct.Event.VoiceState.html#t:mute/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.request_to_speak_timestamp/0","doc":"Time at which the user requested to speak, if applicable","ref":"Nostrum.Struct.Event.VoiceState.html#t:request_to_speak_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.self_deaf/0","doc":"Whether this user is locally deafened","ref":"Nostrum.Struct.Event.VoiceState.html#t:self_deaf/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.self_mute/0","doc":"Whether this user is locally muted","ref":"Nostrum.Struct.Event.VoiceState.html#t:self_mute/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.self_stream/0","doc":"Whether the user is streaming using \"Go Live\"","ref":"Nostrum.Struct.Event.VoiceState.html#t:self_stream/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.self_video/0","doc":"Whether this user's camera is enabled","ref":"Nostrum.Struct.Event.VoiceState.html#t:self_video/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.session_id/0","doc":"Session ID for this voice state","ref":"Nostrum.Struct.Event.VoiceState.html#t:session_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.suppress/0","doc":"Whether this user is muted by the current user","ref":"Nostrum.Struct.Event.VoiceState.html#t:suppress/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.t/0","doc":"Event sent when a user's voice status is updated","ref":"Nostrum.Struct.Event.VoiceState.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.user_id/0","doc":"User this voice state is for","ref":"Nostrum.Struct.Event.VoiceState.html#t:user_id/0"},{"type":"module","title":"Nostrum.Constants.ApplicationCommandOptionType","doc":"Defines available types used for defining application command option types for passed options\nFor more info please refer to https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type","ref":"Nostrum.Constants.ApplicationCommandOptionType.html"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.attachment/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#attachment/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.boolean/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#boolean/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.channel/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#channel/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.integer/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#integer/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.mentionable/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#mentionable/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.number/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#number/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.role/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#role/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.string/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#string/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.sub_command/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#sub_command/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.sub_command_group/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#sub_command_group/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.user/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#user/0"},{"type":"module","title":"Nostrum.Constants.ApplicationCommandPermissionType","doc":"Defines available types for application command permissions\nFor more info please refer to https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type","ref":"Nostrum.Constants.ApplicationCommandPermissionType.html"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandPermissionType.channel/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandPermissionType.html#channel/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandPermissionType.role/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandPermissionType.html#role/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandPermissionType.user/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandPermissionType.html#user/0"},{"type":"module","title":"Nostrum.Constants.ApplicationCommandType","doc":"Defines available types used for selecting application command types\nFor more info please refer to https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types","ref":"Nostrum.Constants.ApplicationCommandType.html"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandType.chat_input/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandType.html#chat_input/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandType.message/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandType.html#message/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandType.user/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandType.html#user/0"},{"type":"module","title":"Nostrum.Constants.ButtonStyle","doc":"Defines available styles for button message components\nFor more info please refer to https://discord.com/developers/docs/interactions/message-components#button-object-button-styles","ref":"Nostrum.Constants.ButtonStyle.html"},{"type":"function","title":"Nostrum.Constants.ButtonStyle.danger/0","doc":"","ref":"Nostrum.Constants.ButtonStyle.html#danger/0"},{"type":"function","title":"Nostrum.Constants.ButtonStyle.link/0","doc":"","ref":"Nostrum.Constants.ButtonStyle.html#link/0"},{"type":"function","title":"Nostrum.Constants.ButtonStyle.primary/0","doc":"","ref":"Nostrum.Constants.ButtonStyle.html#primary/0"},{"type":"function","title":"Nostrum.Constants.ButtonStyle.secondary/0","doc":"","ref":"Nostrum.Constants.ButtonStyle.html#secondary/0"},{"type":"function","title":"Nostrum.Constants.ButtonStyle.success/0","doc":"","ref":"Nostrum.Constants.ButtonStyle.html#success/0"},{"type":"module","title":"Nostrum.Constants.ChannelType","doc":"Defines available types for channels\nFor more info please refer to https://discord.com/developers/docs/resources/channel#channel-object-channel-types","ref":"Nostrum.Constants.ChannelType.html"},{"type":"function","title":"Nostrum.Constants.ChannelType.announcement_thread/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#announcement_thread/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.dm/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#dm/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.group_db/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#group_db/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_announcement/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_announcement/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_category/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_category/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_directory/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_directory/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_forum/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_forum/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_text/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_text/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_voice/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_voice/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.private_thread/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#private_thread/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.public_thread/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#public_thread/0"},{"type":"module","title":"Nostrum.Constants.ComponentType","doc":"Defines available types for message components\nFor more info please refer to https://discord.com/developers/docs/interactions/message-components#component-object-component-types","ref":"Nostrum.Constants.ComponentType.html"},{"type":"function","title":"Nostrum.Constants.ComponentType.action_row/0","doc":"Container for other components","ref":"Nostrum.Constants.ComponentType.html#action_row/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.button/0","doc":"Button object","ref":"Nostrum.Constants.ComponentType.html#button/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.channel_select/0","doc":"Select menu for channels","ref":"Nostrum.Constants.ComponentType.html#channel_select/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.mentionable_select/0","doc":"Select menu for mentionables (users and roles)","ref":"Nostrum.Constants.ComponentType.html#mentionable_select/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.role_select/0","doc":"Select menu for roles","ref":"Nostrum.Constants.ComponentType.html#role_select/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.string_select/0","doc":"Select menu for picking from defined text options","ref":"Nostrum.Constants.ComponentType.html#string_select/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.text_input/0","doc":"Text input object","ref":"Nostrum.Constants.ComponentType.html#text_input/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.user_select/0","doc":"Select menu for users","ref":"Nostrum.Constants.ComponentType.html#user_select/0"},{"type":"module","title":"Nostrum.Constants.InteractionCallbackType","doc":"Defines available types for interaction callbacks\nFor more info please refer to https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type","ref":"Nostrum.Constants.InteractionCallbackType.html"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.application_command_autocomplete_result/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#application_command_autocomplete_result/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.channel_message_with_source/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#channel_message_with_source/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.deferred_channel_message_with_source/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#deferred_channel_message_with_source/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.deferred_update_message/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#deferred_update_message/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.modal/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#modal/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.pong/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#pong/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.update_message/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#update_message/0"},{"type":"module","title":"Nostrum.Constants.InteractionType","doc":"Defines available types for interactions\nFor more info please refer to https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type","ref":"Nostrum.Constants.InteractionType.html"},{"type":"function","title":"Nostrum.Constants.InteractionType.application_command/0","doc":"","ref":"Nostrum.Constants.InteractionType.html#application_command/0"},{"type":"function","title":"Nostrum.Constants.InteractionType.application_command_autocomplete/0","doc":"","ref":"Nostrum.Constants.InteractionType.html#application_command_autocomplete/0"},{"type":"function","title":"Nostrum.Constants.InteractionType.message_component/0","doc":"","ref":"Nostrum.Constants.InteractionType.html#message_component/0"},{"type":"function","title":"Nostrum.Constants.InteractionType.modal_submit/0","doc":"","ref":"Nostrum.Constants.InteractionType.html#modal_submit/0"},{"type":"function","title":"Nostrum.Constants.InteractionType.ping/0","doc":"","ref":"Nostrum.Constants.InteractionType.html#ping/0"},{"type":"module","title":"Nostrum.Constants.TextInputStyle","doc":"Defines available styles for modal text inputs\nFor more info please refer to https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-styles","ref":"Nostrum.Constants.TextInputStyle.html"},{"type":"function","title":"Nostrum.Constants.TextInputStyle.paragraph/0","doc":"","ref":"Nostrum.Constants.TextInputStyle.html#paragraph/0"},{"type":"function","title":"Nostrum.Constants.TextInputStyle.short/0","doc":"","ref":"Nostrum.Constants.TextInputStyle.html#short/0"},{"type":"module","title":"Nostrum.Constants.WebhookType","doc":"Defines available types for channels\nFor more info please refer to https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types","ref":"Nostrum.Constants.WebhookType.html"},{"type":"function","title":"Nostrum.Constants.WebhookType.application/0","doc":"","ref":"Nostrum.Constants.WebhookType.html#application/0"},{"type":"function","title":"Nostrum.Constants.WebhookType.channel_follower/0","doc":"","ref":"Nostrum.Constants.WebhookType.html#channel_follower/0"},{"type":"function","title":"Nostrum.Constants.WebhookType.incoming/0","doc":"","ref":"Nostrum.Constants.WebhookType.html#incoming/0"},{"type":"module","title":"Nostrum.Snowflake","doc":"Functions that work on Snowflakes.","ref":"Nostrum.Snowflake.html"},{"type":"function","title":"Nostrum.Snowflake.cast/1","doc":"Attempts to convert a term into a snowflake.","ref":"Nostrum.Snowflake.html#cast/1"},{"type":"function","title":"Examples - Nostrum.Snowflake.cast/1","doc":"```elixir\niex> Nostrum.Snowflake.cast(200317799350927360)\n{:ok, 200317799350927360}\n\niex> Nostrum.Snowflake.cast(\"200317799350927360\")\n{:ok, 200317799350927360}\n\niex> Nostrum.Snowflake.cast(nil)\n{:ok, nil}\n\niex> Nostrum.Snowflake.cast(true)\n:error\n\niex> Nostrum.Snowflake.cast(-1)\n:error\n```","ref":"Nostrum.Snowflake.html#cast/1-examples"},{"type":"function","title":"Nostrum.Snowflake.cast!/1","doc":"Same as `cast/1`, except it raises an `ArgumentError` on failure.","ref":"Nostrum.Snowflake.html#cast!/1"},{"type":"function","title":"Nostrum.Snowflake.creation_time/1","doc":"Returns the creation time of the snowflake.","ref":"Nostrum.Snowflake.html#creation_time/1"},{"type":"function","title":"Examples - Nostrum.Snowflake.creation_time/1","doc":"```elixir\niex> Nostrum.Snowflake.creation_time(177888205536886784)\n~U[2016-05-05 21:04:13.203Z]\n```","ref":"Nostrum.Snowflake.html#creation_time/1-examples"},{"type":"function","title":"Nostrum.Snowflake.dump/1","doc":"Convert a snowflake into its external representation.","ref":"Nostrum.Snowflake.html#dump/1"},{"type":"function","title":"Examples - Nostrum.Snowflake.dump/1","doc":"```elixir\niex> Nostrum.Snowflake.dump(109112383011581952)\n\"109112383011581952\"\n```","ref":"Nostrum.Snowflake.html#dump/1-examples"},{"type":"function","title":"Nostrum.Snowflake.from_datetime/1","doc":"Converts the given `datetime` into a snowflake.\n\nIf `datetime` occurred before the discord epoch, the function will return\n`:error`.\n\nThe converted snowflake's last 22 bits will be zeroed out due to missing data.","ref":"Nostrum.Snowflake.html#from_datetime/1"},{"type":"function","title":"Examples - Nostrum.Snowflake.from_datetime/1","doc":"```elixir\niex> {:ok, dt, _} = DateTime.from_iso8601(\"2016-05-05T21:04:13.203Z\")\niex> Nostrum.Snowflake.from_datetime(dt)\n{:ok, 177888205536755712}\n\niex> {:ok, dt, _} = DateTime.from_iso8601(\"1998-12-25T00:00:00.000Z\")\niex> Nostrum.Snowflake.from_datetime(dt)\n:error\n```","ref":"Nostrum.Snowflake.html#from_datetime/1-examples"},{"type":"function","title":"Nostrum.Snowflake.from_datetime!/1","doc":"Same as `from_datetime/1`, except it raises an `ArgumentError` on failure.","ref":"Nostrum.Snowflake.html#from_datetime!/1"},{"type":"macro","title":"Nostrum.Snowflake.is_snowflake/1","doc":"Returns `true` if `term` is a snowflake; otherwise returns `false`.","ref":"Nostrum.Snowflake.html#is_snowflake/1"},{"type":"macro","title":"Examples - Nostrum.Snowflake.is_snowflake/1","doc":"```elixir\niex> Nostrum.Snowflake.is_snowflake(89918932789497856)\ntrue\n\niex> Nostrum.Snowflake.is_snowflake(-1)\nfalse\n\niex> Nostrum.Snowflake.is_snowflake(0xFFFFFFFFFFFFFFFF + 1)\nfalse\n\niex> Nostrum.Snowflake.is_snowflake(\"117789813427535878\")\nfalse\n```","ref":"Nostrum.Snowflake.html#is_snowflake/1-examples"},{"type":"type","title":"Nostrum.Snowflake.external_snowflake/0","doc":"The type that represents snowflakes in JSON.\n\nIn JSON, Snowflakes are typically represented as strings due\nto some languages not being able to represent such a large number.","ref":"Nostrum.Snowflake.html#t:external_snowflake/0"},{"type":"type","title":"Nostrum.Snowflake.t/0","doc":"The snowflake type.\n\nSnowflakes are 64-bit unsigned integers used to represent discord\nobject ids.","ref":"Nostrum.Snowflake.html#t:t/0"},{"type":"module","title":"Nostrum.Token","doc":"A helper module for verifying the Discord bot token.\n\nThe token can be generated in the \"Bot\" tab of your Application the [Discord Developer Portal](https://discord.com/developers/applications) and\ncan be configured in your config file.\n\n```elixir\nconfig :nostrum,\n token: \"666\" # The token of your bot as a string\n```","ref":"Nostrum.Token.html"},{"type":"function","title":"Nostrum.Token.check_token!/0","doc":"Checks if the Discord bot token has the correct format.\n\nWe check if the token is a binary followed by splitting it into 3 parts separated by a dot `\".\"`.\nThe first part is the Base64 encoded user_id which we decode and parse into as integer.\nThe second part is an encoded timestamp, and the last part an arbitrary cryptographic signature.\n\nRaises on failure.","ref":"Nostrum.Token.html#check_token!/0"},{"type":"function","title":"Examples - Nostrum.Token.check_token!/0","doc":"iex> token = \"OTY4NTU2MzQ4MzkwMzkxODU5.G49NjP.pD8PLpKp-Xx8sr-8m1DCxSPTJZdcpcJZOExc1c\"\n iex> Nostrum.Token.check_token!(token)\n :ok\n\n iex> token = \"ODY4MDcxODUzMDMyMzU3OTc4.YPqU6Q.jNJcq1daGG3otexX3c1LcxCpgpQ\"\n iex> Nostrum.Token.check_token!(token)\n :ok","ref":"Nostrum.Token.html#check_token!/0-examples"},{"type":"function","title":"Nostrum.Token.check_token!/1","doc":"","ref":"Nostrum.Token.html#check_token!/1"},{"type":"module","title":"Nostrum.Util","doc":"Utility functions","ref":"Nostrum.Util.html"},{"type":"function","title":"Nostrum.Util.enum_to_struct/2","doc":"","ref":"Nostrum.Util.html#enum_to_struct/2"},{"type":"function","title":"Nostrum.Util.gateway/0","doc":"Returns the gateway url and shard count for current websocket connections.\n\nIf by chance no gateway connection has been made, will fetch the url to use and store it\nfor future use.","ref":"Nostrum.Util.html#gateway/0"},{"type":"function","title":"Nostrum.Util.get_all_shard_latencies/0","doc":"Gets the latencies of all shard connections.\n\nCalls `get_shard_latency/1` on all shards and returns a map whose keys are\nshard nums and whose values are latencies in milliseconds.","ref":"Nostrum.Util.html#get_all_shard_latencies/0"},{"type":"function","title":"Nostrum.Util.get_shard_latency/1","doc":"Gets the latency of the shard connection from a `Nostrum.Struct.WSState.t()` struct.\n\nReturns the latency in milliseconds as an integer, returning nil if unknown.","ref":"Nostrum.Util.html#get_shard_latency/1"},{"type":"function","title":"Nostrum.Util.maybe_to_atom/1","doc":"Attempts to convert a string to an atom.\n\nBinary `token`s that consist of digits are assumed to be snowflakes, and will\nbe parsed as such.\n\nIf atom does not currently exist, will warn that we're doing an unsafe conversion.","ref":"Nostrum.Util.html#maybe_to_atom/1"},{"type":"function","title":"Nostrum.Util.maybe_to_datetime/1","doc":"Converts possibly nil ISO8601 timestamp to a `DateTime`","ref":"Nostrum.Util.html#maybe_to_datetime/1"},{"type":"function","title":"Nostrum.Util.maybe_to_unixtime/1","doc":"Converts possibly nil ISO8601 timestamp to unix time.","ref":"Nostrum.Util.html#maybe_to_unixtime/1"},{"type":"function","title":"Nostrum.Util.now/0","doc":"Returns the number of milliseconds since unix epoch.","ref":"Nostrum.Util.html#now/0"},{"type":"function","title":"Nostrum.Util.now_iso/0","doc":"Returns the current date as an ISO formatted string.","ref":"Nostrum.Util.html#now_iso/0"},{"type":"function","title":"Nostrum.Util.num_shards/0","doc":"Returns the total amount of shards as per the configuration.","ref":"Nostrum.Util.html#num_shards/0"},{"type":"function","title":"Return value - Nostrum.Util.num_shards/0","doc":"- If you specified your shards as `:auto`, the return value will be the\nrecommended number of shards as given by the gateway.\n\n- If you explicitly specified your shard numbers as an integer, it will be\nthe given number.\n\n- If you specified your shards in the form `{lowest, highest, total}` to\nstart a specific range of the total shards you want to start, this will be\nthe `total` value.\n\nShould Discord not supply us with any shard information, this will return\n`1`.\n\nNote that this is not the number of currently active shards, but the number\nof shards specified in your config.","ref":"Nostrum.Util.html#num_shards/0-return-value"},{"type":"function","title":"Nostrum.Util.safe_atom_map/1","doc":"Converts a map into an atom-keyed map.\n\nGiven a map with variable type keys, returns the same map with all keys as `atoms`.\nTo support maps keyed with integers (such as in Discord's interaction data),\nbinaries that appear to be integers will be parsed as such.\n\nThis function will attempt to convert keys to an existing atom, and if that fails will default to\ncreating a new atom while displaying a warning. The idea here is that we should be able to see\nif any results from Discord are giving variable keys. Since we *will* define all\ntypes of objects returned by Discord, the amount of new atoms created *SHOULD* be 0. 👀","ref":"Nostrum.Util.html#safe_atom_map/1"},{"type":"function","title":"Nostrum.Util.unused_atoms/0","doc":"Since we're being sacrilegious and converting strings to atoms from the WS, there will be some\natoms that we see that aren't defined in any Discord structs. This method mainly serves as a\nmeans to define those atoms once so the user isn't warned about them in the\n`Nostrum.Util.maybe_to_atom/1` function when they are in fact harmless.\n\nThe function is public to prevent it from being optimized out at compile time.","ref":"Nostrum.Util.html#unused_atoms/0"},{"type":"function","title":"Nostrum.Util.usec_now/0","doc":"Returns the number of microseconds since unix epoch.","ref":"Nostrum.Util.html#usec_now/0"},{"type":"behaviour","title":"Nostrum.Store.GuildShardMapping","doc":"Behaviour & dispatcher for storing guild to shard mappings.","ref":"Nostrum.Store.GuildShardMapping.html"},{"type":"behaviour","title":"Purpose - Nostrum.Store.GuildShardMapping","doc":"When nostrum needs to run API calls over the gateway and multiple shards are\nused, it needs to determine which shard process will run the request. This\nmodule stores a mapping of guild IDs to their respective shard numbers. It is\nunlikely you need to use this module directly yourself.","ref":"Nostrum.Store.GuildShardMapping.html#module-purpose"},{"type":"behaviour","title":"Configuration - Nostrum.Store.GuildShardMapping","doc":"By default, nostrum will use `Elixir.Nostrum.Store.GuildShardMapping.ETS` to store the\nmapping. To override this, set the `[:stores, :guild_shard_mapping]` setting\non nostrum's application configuration:\n\n```elixir\nconfig :nostrum,\n stores: %{\n guild_shard_mapping: MyBot.Nostrum.Store.GuildShardMapping\n }\n```\n\nThis setting must be set at compile time.","ref":"Nostrum.Store.GuildShardMapping.html#module-configuration"},{"type":"callback","title":"Nostrum.Store.GuildShardMapping.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Store.GuildShardMapping.html#c:child_spec/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.create/2","doc":"","ref":"Nostrum.Store.GuildShardMapping.html#create/2"},{"type":"callback","title":"Nostrum.Store.GuildShardMapping.create/2","doc":"Create a new mapping for the given guild ID to the given shard ID.","ref":"Nostrum.Store.GuildShardMapping.html#c:create/2"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.delete/1","doc":"","ref":"Nostrum.Store.GuildShardMapping.html#delete/1"},{"type":"callback","title":"Nostrum.Store.GuildShardMapping.delete/1","doc":"Delete any stored mapping for the given guild ID.","ref":"Nostrum.Store.GuildShardMapping.html#c:delete/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.get/1","doc":"","ref":"Nostrum.Store.GuildShardMapping.html#get/1"},{"type":"callback","title":"Nostrum.Store.GuildShardMapping.get/1","doc":"Retrieve the shard number for the given guild ID.\n\nReturns `nil` if no associated shard number was found.","ref":"Nostrum.Store.GuildShardMapping.html#c:get/1"},{"type":"module","title":"Nostrum.Store.Supervisor","doc":"Supervises processes managing nostrum's internal state.\n\nPlease see the following modules for more details:\n- `Nostrum.Store.GuildShardMapping`\n- `Nostrum.Store.UnavailableGuild`","ref":"Nostrum.Store.Supervisor.html"},{"type":"function","title":"Nostrum.Store.Supervisor.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Store.Supervisor.html#child_spec/1"},{"type":"function","title":"Nostrum.Store.Supervisor.init/1","doc":"","ref":"Nostrum.Store.Supervisor.html#init/1"},{"type":"function","title":"Nostrum.Store.Supervisor.start_link/1","doc":"","ref":"Nostrum.Store.Supervisor.html#start_link/1"},{"type":"behaviour","title":"Nostrum.Store.UnavailableGuild","doc":"Behaviour & dispatcher for storing unavailable guilds.","ref":"Nostrum.Store.UnavailableGuild.html"},{"type":"behaviour","title":"Purpose - Nostrum.Store.UnavailableGuild","doc":"The `GUILD_CREATE` gateway event on its own provides no means to determine\nwhether the guild we receive is a guild that the bot joined, or a guild that\nhas just become available over the gateway. To work around this, this store\nkeeps track of unavailable guilds we received to determine whether a guild\nsent over this event is unavailable or new. It is therefore unlikely this\nmodule needs to be used outside of nostrum.","ref":"Nostrum.Store.UnavailableGuild.html#module-purpose"},{"type":"behaviour","title":"Configuration - Nostrum.Store.UnavailableGuild","doc":"By default, nostrum will use `Elixir.Nostrum.Store.UnavailableGuild.ETS` to store\nunavailable guilds. To override this, set the `[:stores,\n:unavailable_guilds]` setting on nostrum's application configuration:\n\n```elixir\nconfig :nostrum,\n stores: %{\n unavailable_guilds: MyBot.Nostrum.Store.UnavailableGuild\n }\n```\n\nThis setting must be set at compile time.","ref":"Nostrum.Store.UnavailableGuild.html#module-configuration"},{"type":"behaviour","title":"Implementation - Nostrum.Store.UnavailableGuild","doc":"If implementing your own unavailable guild store, in addition to the\ncallbacks of this module, you must also provide the function `child_spec/1`.\nThe recommended approach is to spawn a `Supervisor` to manage your store.","ref":"Nostrum.Store.UnavailableGuild.html#module-implementation"},{"type":"callback","title":"Nostrum.Store.UnavailableGuild.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Store.UnavailableGuild.html#c:child_spec/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.create/1","doc":"","ref":"Nostrum.Store.UnavailableGuild.html#create/1"},{"type":"callback","title":"Nostrum.Store.UnavailableGuild.create/1","doc":"Mark the given guild as unavailable.","ref":"Nostrum.Store.UnavailableGuild.html#c:create/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.is?/1","doc":"","ref":"Nostrum.Store.UnavailableGuild.html#is?/1"},{"type":"callback","title":"Nostrum.Store.UnavailableGuild.is?/1","doc":"Return whether the guild is unavailable.","ref":"Nostrum.Store.UnavailableGuild.html#c:is?/1"},{"type":"module","title":"Nostrum.Cache.ChannelCache.ETS","doc":"An ETS-based cache for channels outside of guilds.\n\nThe supervisor defined by this module will set up the ETS table associated\nwith it.\n\nIf you need to get the table reference for the table used by this module,\nplease use the `table/0` function.\n\nNote that users should not call the functions not related to this specific\nimplementation of the cache directly. Instead, call the functions of\n`Nostrum.Cache.ChannelCache` directly, which will dispatch to the configured\ncache.","ref":"Nostrum.Cache.ChannelCache.ETS.html"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.ChannelCache.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.create/1","doc":"Converts and creates the given map as a channel in the cache.","ref":"Nostrum.Cache.ChannelCache.ETS.html#create/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.delete/1","doc":"Delete the channel from the cache by ID.","ref":"Nostrum.Cache.ChannelCache.ETS.html#delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.init/1","doc":"Set up the cache's ETS table.","ref":"Nostrum.Cache.ChannelCache.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.query_handle/0","doc":"Retrieve a query handle for usage with QLC.","ref":"Nostrum.Cache.ChannelCache.ETS.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelCache.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.table/0","doc":"Retrieve the ETS table reference used for the cache.","ref":"Nostrum.Cache.ChannelCache.ETS.html#table/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.update/1","doc":"Update the given channel in the cache.","ref":"Nostrum.Cache.ChannelCache.ETS.html#update/1"},{"type":"module","title":"Nostrum.Cache.ChannelCache.Mnesia","doc":"An Mnesia-based cache for channels outside of guilds.\n\nPlease note that this module is only compiled if Mnesia is available on\nyour system. See the Mnesia section of the [State](functionality/state.md)\ndocumentation for more information.\n\nTo retrieve the table name used by this cache, use `table/0`.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#clear/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.create/1","doc":"Creates the given channel in the cache.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#create/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.delete/1","doc":"Delete the channel from the cache by ID.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.init/1","doc":"Set up the cache's Mnesia table.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.query_handle/0","doc":"Retrieve a QLC query handle for the channel cache.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.table/0","doc":"Retrieve the table name used by the cache.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#teardown/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.update/1","doc":"Update the given channel in the cache.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#update/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.wrap_qlc/1","doc":"Wrap QLC operations in a transaction.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.ChannelCache.NoOp","doc":"A NoOp implementation for the ChannelCache\n\nThis cache does nothing, enable it if you dont need to cache channels","ref":"Nostrum.Cache.ChannelCache.NoOp.html"},{"type":"function","title":"Nostrum.Cache.ChannelCache.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.ChannelCache.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelCache.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Cache.ChannelGuildMapping.ETS","doc":"Maps channels to guilds via `:ets`.\n\nPlease use the function `table/0` for retrieving a reference to the table\nused by nostrum.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.create/2","doc":"Create a mapping of the given channel to the given guild.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#create/2"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.delete/1","doc":"Remove any mapping associated with the given channel.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.get/1","doc":"Retrieve the guild ID for the given channel ID, if present.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#get/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.init/1","doc":"Set up the ETS table.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.table/0","doc":"Retrieve the table used by this module.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#table/0"},{"type":"module","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia","doc":"An Mnesia-based mapping between channel and guild IDs.\n\nPlease note that this module is only compiled if Mnesia is available on\nyour system. See the Mnesia section of the [State](functionality/state.md)\ndocumentation for more information.\n\nTo retrieve the table name used by this cache, use `table/0`.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.create/2","doc":"Create a mapping of the given channel to the given guild.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#create/2"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.delete/1","doc":"Remove any mapping associated with the given channel.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.get/1","doc":"Retrieve the guild ID for the given channel ID, if present.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#get/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.init/1","doc":"Set up the ETS table.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.table/0","doc":"Retrieve the table used by this module.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#teardown/0"},{"type":"module","title":"Nostrum.Cache.ChannelGuildMapping.NoOp","doc":"NoOp implementation for the Channel Guild map","ref":"Nostrum.Cache.ChannelGuildMapping.NoOp.html"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.ChannelGuildMapping.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelGuildMapping.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Cache.GuildCache.ETS","doc":"An ETS-based cache for guilds.\n\nThe supervisor defined by this module will set up the ETS table associated\nwith it.\n\nThe default table name under which guilds are cached is `nostrum_guilds`.\nIn addition to the cache behaviour implementations provided by this module,\nyou can also call regular ETS table methods on it, such as `:ets.info`.\n\nNote that users should not call the functions not related to this specific\nimplementation of the cache directly. Instead, call the functions of\n`Nostrum.Cache.GuildCache` directly, which will dispatch to the configured\ncache.","ref":"Nostrum.Cache.GuildCache.ETS.html"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.channel_create/2","doc":"Create the given channel for the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#channel_create/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.channel_delete/2","doc":"Delete the channel from the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#channel_delete/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.channel_update/2","doc":"Update the channel on the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#channel_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.GuildCache.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.create/1","doc":"Create the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#create/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.delete/1","doc":"Delete the given guild from the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#delete/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.emoji_update/2","doc":"Update the emoji list for the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#emoji_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.init/1","doc":"Set up the cache's ETS table.","ref":"Nostrum.Cache.GuildCache.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.member_count_down/1","doc":"Decrement the guild member count by one.","ref":"Nostrum.Cache.GuildCache.ETS.html#member_count_down/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.member_count_up/1","doc":"Increment the guild member count by one.","ref":"Nostrum.Cache.GuildCache.ETS.html#member_count_up/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.query_handle/0","doc":"Get a QLC query handle for the guild cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.role_create/2","doc":"Create the given role in the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#role_create/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.role_delete/2","doc":"Delete the given role from the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#role_delete/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.role_update/2","doc":"Update the given role in the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#role_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.GuildCache.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.tabname/0","doc":"Retrieve the ETS table name used for the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#tabname/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.update/1","doc":"Update the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#update/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.voice_state_update/2","doc":"Update guild voice states with the given voice state in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#voice_state_update/2"},{"type":"module","title":"Nostrum.Cache.GuildCache.Mnesia","doc":"An Mnesia-based cache for guilds.\n\nPlease note that this module is only compiled if Mnesia is available on\nyour system. See the Mnesia section of the [State](functionality/state.md)\ndocumentation for more information.\n\nTo retrieve the table name used by this cache, use `table/0`.","ref":"Nostrum.Cache.GuildCache.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.channel_create/2","doc":"Create the given channel for the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#channel_create/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.channel_delete/2","doc":"Delete the channel from the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#channel_delete/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.channel_update/2","doc":"Update the channel on the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#channel_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#clear/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.create/1","doc":"Create a guild from upstream data.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#create/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.delete/1","doc":"Remove the given guild from the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#delete/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.emoji_update/2","doc":"Update the emoji list for the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#emoji_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.init/1","doc":"Set up the cache's Mnesia table.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.member_count_down/1","doc":"Decrement the guild member count by one.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#member_count_down/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.member_count_up/1","doc":"Increment the guild member count by one.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#member_count_up/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.query_handle/0","doc":"Get a QLC handle for the guild cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.role_create/2","doc":"Create the given role in the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#role_create/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.role_delete/2","doc":"Delete the given role from the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#role_delete/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.role_update/2","doc":"Update the given role in the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#role_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.table/0","doc":"Retrieve the Mnesia table name used for the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#teardown/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.update/1","doc":"Update the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#update/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.voice_state_update/2","doc":"Update guild voice states with the given voice state in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#voice_state_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.wrap_qlc/1","doc":"Wrap QLC operations in a transaction.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.GuildCache.NoOp","doc":"A cache module that does nothing.\n\nUseful for bots that don't need to cache guilds.","ref":"Nostrum.Cache.GuildCache.NoOp.html"},{"type":"function","title":"Nostrum.Cache.GuildCache.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.GuildCache.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.NoOp.init/1","doc":"Start up the cache supervisor.","ref":"Nostrum.Cache.GuildCache.NoOp.html#init/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.GuildCache.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Cache.MemberCache.ETS","doc":"An ETS-based cache for members.\n\nIf you need to get the table reference for the table used by this module,\nplease use the `table/0` function.","ref":"Nostrum.Cache.MemberCache.ETS.html"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.bulk_create/2","doc":"Bulk create a chunk of members for the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#bulk_create/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.MemberCache.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#clear/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.create/2","doc":"Add the given member to the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#create/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.delete/2","doc":"Remove the given member from the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#delete/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.init/1","doc":"Set up the cache's ETS table.","ref":"Nostrum.Cache.MemberCache.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.query_handle/0","doc":"Get a QLC query handle for the member cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.MemberCache.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.table/0","doc":"Retrieve the ETS table reference used for the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#table/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.update/2","doc":"Update the given member for the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#update/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.wrap_qlc/1","doc":"Wrap QLC operations.","ref":"Nostrum.Cache.MemberCache.ETS.html#wrap_qlc/1"},{"type":"function","title":"Safety {: .note} - Nostrum.Cache.MemberCache.ETS.wrap_qlc/1","doc":"Any QLC operations are surrounded by `:ets.safe_fixtable`. It is therefore\nrecommended to finish your read quickly.","ref":"Nostrum.Cache.MemberCache.ETS.html#wrap_qlc/1-safety-note"},{"type":"module","title":"Nostrum.Cache.MemberCache.Mnesia","doc":"An Mnesia-based cache for guild members.\n\nPlease note that this module is only compiled if Mnesia is available on\nyour system. See the Mnesia section of the [State](functionality/state.md)\ndocumentation for more information.\n\nTo retrieve the table name used by this cache, use `table/0`.","ref":"Nostrum.Cache.MemberCache.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.bulk_create/2","doc":"Bulk create a chunk of members for the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#bulk_create/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#clear/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.create/2","doc":"Add the given member to the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#create/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.delete/2","doc":"Remove the given member from the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#delete/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.init/1","doc":"Set up the cache's Mnesia table.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.query_handle/0","doc":"Get a QLC query handle for the member cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.table/0","doc":"Retrieve the Mnesia table name used for the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#teardown/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.update/2","doc":"Update the given member for the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#update/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.wrap_qlc/1","doc":"Wrap QLC operations in a transaction.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.MemberCache.NoOp","doc":"A NoOp implementation for the MemberCache\n\nThis cache does nothing, enable it if you dont need to cache members","ref":"Nostrum.Cache.MemberCache.NoOp.html"},{"type":"function","title":"Nostrum.Cache.MemberCache.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.MemberCache.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.MemberCache.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Cache.PresenceCache.ETS","doc":"ETS-based cache for user presences.\n\nIf you need to get the table reference for the table used by this module,\nplease use the `table/0` function.","ref":"Nostrum.Cache.PresenceCache.ETS.html"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.bulk_create/2","doc":"Bulk create multiple presences in the cache.","ref":"Nostrum.Cache.PresenceCache.ETS.html#bulk_create/2"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.PresenceCache.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.create/1","doc":"Add the given presence data to the cache.","ref":"Nostrum.Cache.PresenceCache.ETS.html#create/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.init/1","doc":"Set up the cache's ETS table.","ref":"Nostrum.Cache.PresenceCache.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.query_handle/0","doc":"Retrieve a query handle for QLC queries.","ref":"Nostrum.Cache.PresenceCache.ETS.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.PresenceCache.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.table/0","doc":"Retrieve the ETS table reference used for the cache.","ref":"Nostrum.Cache.PresenceCache.ETS.html#table/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.update/1","doc":"Update the given presence data in the cache.","ref":"Nostrum.Cache.PresenceCache.ETS.html#update/1"},{"type":"module","title":"Nostrum.Cache.PresenceCache.Mnesia","doc":"An Mnesia-based cache for presences.\n\nPlease note that this module is only compiled if Mnesia is available on\nyour system. See the Mnesia section of the [State](functionality/state.md)\ndocumentation for more information.\n\nTo retrieve the table name used by this cache, use `table/0`.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.bulk_create/2","doc":"Bulk create a chunk of presences for the given guild in the cache.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#bulk_create/2"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#clear/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.create/1","doc":"Add the given presence to the cache.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#create/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.init/1","doc":"Set up the cache's Mnesia table.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.query_handle/0","doc":"Retrieve a query handle for the table.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.table/0","doc":"Retrieve the table name used by the cache.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#teardown/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.update/1","doc":"Update the given presence in the cache.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#update/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.wrap_qlc/1","doc":"Wrap QLC operations in a transaction.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.PresenceCache.NoOp","doc":"A cache module that does not cache anything.\n\nUseful for bots that do not need presence caching.","ref":"Nostrum.Cache.PresenceCache.NoOp.html"},{"type":"function","title":"Nostrum.Cache.PresenceCache.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.PresenceCache.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.NoOp.init/1","doc":"Start up the cache supervisor.","ref":"Nostrum.Cache.PresenceCache.NoOp.html#init/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.PresenceCache.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Cache.UserCache.ETS","doc":"An ETS-based cache for users.\n\nIf you need to get the table reference for the table used by this module,\nplease use the `table/0` function.","ref":"Nostrum.Cache.UserCache.ETS.html"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.bulk_create/1","doc":"Bulk create a list of users from upstream data.","ref":"Nostrum.Cache.UserCache.ETS.html#bulk_create/1"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.UserCache.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.create/1","doc":"Create a user from upstream data.","ref":"Nostrum.Cache.UserCache.ETS.html#create/1"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.init/1","doc":"Set up the ETS table.","ref":"Nostrum.Cache.UserCache.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.query_handle/0","doc":"Get a QLC query handle for the user cache.","ref":"Nostrum.Cache.UserCache.ETS.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.UserCache.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.table/0","doc":"Retrieve the ETS table reference used for the cache.","ref":"Nostrum.Cache.UserCache.ETS.html#table/0"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.update/1","doc":"Update a user from upstream data.","ref":"Nostrum.Cache.UserCache.ETS.html#update/1"},{"type":"module","title":"Nostrum.Cache.UserCache.Mnesia","doc":"An Mnesia-based cache for users.\n\nPlease note that this module is only compiled if Mnesia is available on\nyour system. See the Mnesia section of the [State](functionality/state.md)\ndocumentation for more information.\n\nTo retrieve the table name used by this cache, use `table/0`.","ref":"Nostrum.Cache.UserCache.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.bulk_create/1","doc":"Bulk create a chunk of users in the cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#bulk_create/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.UserCache.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#clear/0"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.create/1","doc":"Create a user from upstream data.","ref":"Nostrum.Cache.UserCache.Mnesia.html#create/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.delete/1","doc":"Remove the given user from cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#delete/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.init/1","doc":"Set up the cache's Mnesia table.","ref":"Nostrum.Cache.UserCache.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.query_handle/0","doc":"Get a QLC query handle for the user cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.UserCache.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.table/0","doc":"Retrieve the Mnesia table name used for the cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.UserCache.Mnesia.html#teardown/0"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.update/1","doc":"Update the given member for the given guild in the cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#update/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.wrap_qlc/1","doc":"Wrap QLC operations in a transaction.","ref":"Nostrum.Cache.UserCache.Mnesia.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.UserCache.NoOp","doc":"A NoOp implementation for the UserCache\n\nThis cache does nothing, enable it if you dont need to cache users","ref":"Nostrum.Cache.UserCache.NoOp.html"},{"type":"function","title":"Nostrum.Cache.UserCache.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Cache.UserCache.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.UserCache.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.UserCache.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Store.GuildShardMapping.ETS","doc":"Maintains a mapping of guild IDs to their shard numbers using `:ets`.\n\nIf programmatic access to the ETS table is needed, please use the `table/0`\nfunction.\n\nPlease do not use this module directly, apart from special functions such as\n`table/0`. Use `Nostrum.Store.GuildShardMapping` to call the configured\nmapping instead.","ref":"Nostrum.Store.GuildShardMapping.ETS.html"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.create/2","doc":"Create a new mapping for the given guild ID to the given shard ID.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#create/2"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.delete/1","doc":"Delete any stored mapping for the given guild ID.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#delete/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.get/1","doc":"Get the shard number for the given guild ID.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#get/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.init/1","doc":"Set up the store's ETS table.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#init/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.table/0","doc":"Retrieve the ETS table reference used for the store.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#table/0"},{"type":"module","title":"Nostrum.Store.GuildShardMapping.Mnesia","doc":"Maintains a mapping of guild IDs to their shard numbers using Mnesia.\n\nPlease note that this module is only compiled if Mnesia is available on\nyour system. See the Mnesia section of the [State](functionality/state.md)\ndocumentation for more information.\n\nTo retrieve the table name used by this cache, use `table/0`.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.create/2","doc":"Create a new mapping for the given guild ID to the given shard ID.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#create/2"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.delete/1","doc":"Delete any stored mapping for the given guild ID.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#delete/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.get/1","doc":"Get the shard number for the given guild ID.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#get/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.init/1","doc":"Set up the store's Mnesia table.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.table/0","doc":"Retrieve the Mnesia table name used for the store.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.teardown/0","doc":"Drop the table used for the store.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#teardown/0"},{"type":"module","title":"Nostrum.Store.UnavailableGuild.ETS","doc":"Stores guilds that are currently unavailable using `:ets`.\n\nIf programmatic access to the ETS table is needed, please use the `table/0`\nfunction.\n\nPlease do not use this module directly, apart from special functions such as\n`tabname/0`. Use `Nostrum.Store.UnavailableGuild` to call the configured\nmapping instead.","ref":"Nostrum.Store.UnavailableGuild.ETS.html"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.create/1","doc":"Create the given guild as an unavailable guild.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#create/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.init/1","doc":"Set up the store's ETS table.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#init/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.is?/1","doc":"Return whether the given guild is unavailable.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#is?/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.table/0","doc":"Retrieve the ETS table reference used for the store.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#table/0"},{"type":"module","title":"Nostrum.Store.UnavailableGuild.Mnesia","doc":"Keeps track of unavailable guilds.\n\nPlease note that this module is only compiled if Mnesia is available on\nyour system. See the Mnesia section of the [State](functionality/state.md)\ndocumentation for more information.\n\nTo retrieve the table name used by this cache, use `table/0`.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.create/1","doc":"Create the given guild as an unavailable guild.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#create/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.init/1","doc":"Set up the store's Mnesia table.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.is?/1","doc":"Return whether the given guild is unavailable.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#is?/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.table/0","doc":"Retrieve the Mnesia table name used for the store.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.teardown/0","doc":"Drop the table used for the store.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#teardown/0"},{"type":"module","title":"Nostrum.Api.Ratelimiter","doc":"Handles REST calls to the Discord API while respecting ratelimits.","ref":"Nostrum.Api.Ratelimiter.html"},{"type":"module","title":"Purpose - Nostrum.Api.Ratelimiter","doc":"Discord's API returns information about ratelimits that we must respect. This\nmodule performs serialization of these requests through a single process,\nthus preventing concurrency issues from arising if two processes make a\nremote API call at the same time.\n\n\n>","ref":"Nostrum.Api.Ratelimiter.html#module-purpose"},{"type":"module","title":"Internal module {: .info} - Nostrum.Api.Ratelimiter","doc":">\n> This module is intended for exclusive usage inside of nostrum, and is\n> documented for completeness and people curious to look behind the covers.","ref":"Nostrum.Api.Ratelimiter.html#module-internal-module-info"},{"type":"module","title":"Asynchronous requests - Nostrum.Api.Ratelimiter","doc":"The ratelimiter is fully asynchronous internally. In theory, it also supports\nqueueing requests in an asynchronous manner. However, support for this is\ncurrently not implemented in `Nostrum.Api`.\n\nIf you want to make one or multiple asynchronous requests manually, you can\nuse the following pattern:\n\n```elixir\nreq = :gen_statem.send_request(Nostrum.Api.Ratelimiter, {:queue, request})\n# ...\nresponse = :gen_statem.receive_response(req, timeout)\n```\n\nwhere `request` is a map describing the request to run - see `Nostrum.Api`\nfor more information. You can also send multiple requests at the same time\nand wait for their response: see `:gen_statem.reqids_add/3` and\n`:gen_statem.wait_response/3` for more information.","ref":"Nostrum.Api.Ratelimiter.html#module-asynchronous-requests"},{"type":"module","title":"Multi-node - Nostrum.Api.Ratelimiter","doc":"If a single global process is desired to handle all ratelimiting, the\nratelimiter can theoretically be adjusted to start registered via `:global`.\nIn practice, it may be more beneficial to have a local ratelimiter process on\neach node and either using the local one for any API calls, or using a\nconsistent hash mechanism to distribute API requests around the cluster as\nneeded. **Do note that the API enforces a global user ratelimit across all\nrequests**. With a single process, the ratelimiter can track this without\nhitting 429s at all, with multiple ratelimiters, the built-in requeue\nfunctionality may or may not help.","ref":"Nostrum.Api.Ratelimiter.html#module-multi-node"},{"type":"module","title":"Inner workings - Nostrum.Api.Ratelimiter","doc":"When a client process wants to perform some request on the Discord API, it\nsends a request to the `:gen_statem` behind this module to ask it to `:queue`\nthe incoming request.","ref":"Nostrum.Api.Ratelimiter.html#module-inner-workings"},{"type":"module","title":"Connection setup - Nostrum.Api.Ratelimiter","doc":"If the state machine is not connected to the HTTP endpoint, it will\ntransition to the `:connecting` state and try to open the connection. If this\nsucceeds, it transitions to the `:connected` state.","ref":"Nostrum.Api.Ratelimiter.html#module-connection-setup"},{"type":"module","title":"Queueing requests - Nostrum.Api.Ratelimiter","doc":"The state machine associates a `t::queue.queue/1` of `t:queued_request/0` to\neach individual bucket, together with an internal count of remaining calls.\nWhen queueing requests, the following cases occur:\n\n- If there are no remaining calls in the bot's global ratelimit bucket or\nthere are no remaining calls in the bucket, the request is put into the\nbucket's queue.\n\n- If there is an `:initial` running request to the bucket, the request is put\ninto the bucket's queue.\n\n- If there are more than 0 remaining calls on both the request-specific\nbucket and the global bucket, the request is started right away. This allows\nnostrum to dispatch multiple requests to the same endpoint as soon as\npossible as long as calls remain.\n\n- If no ratelimit information is known for the bucket and remaining calls on\nthe global bucket, the request is sent out as the \"pioneer\" request that will\nretrieve how many calls we have for this bucket (`:initial`, see above).\n\n- If none of the above is true, a new queue is created and the pending\nrqeuest marked as the `:initial` request. It will be run as soon as the bot's\nglobal limit limit expires.\n\nThe request starting function, `:next`, will start new requests from the\nqueue as long as more calls are possible in the timeframe. Any requests are\nthen started asynchronously. Bookkeeping is set up to associate the resulting\n`t::gun.stream_ref/0` with the original client along with its request and the\nratelimiter bucket.\n\nResults from the HTTP connection are delivered non-blocking: simple responses\nwith purely status codes and no body (code `204`) will be sent in a single\nmessage, other requests will be sent to us incrementally. To finally deliver\nthe full response body to the client with the final package, an internal\nbuffer of the body is kept. A possible future optimization could be having a\nway for `:gun` to only send the ratelimiter state machine the initial\n`:gun_response` and forward any item of the body directly to the client.\n\nWhen the headers for a request have been received, the ratelimiter parses the\nratelimit information and starts off an internal timer expiring when the\nratelimits expire. It will also reschedule calls with the `:next` internal\nevent for as many remaining calls as it knows about. Once the timer expires\nfor the current bucket, two cases can happen:\n\n- The queue has items: Schedule all items and repeat this later.\n\n- The queue is empty: Delete the queue and remaining calls from the\noutstanding buckets.\n\nIn practice, this means that we never store more information than we need,\nand removes the previous regular bucket sweeping functionality that the\nratelimit buckets required.\n\n**Global ratelimits** (note this is a distinct ratelimit from the bot's\n\"global\", per-user ratelimit) are handled with the special `global_limit`\nstate. This state is entered for exactly the the `X-Ratelimit-Reset-After`\ntime provided in the global ratelimit response. This state does nothing apart\nfrom postponing any events it receives and returning to the previous state\n(`:connected`) once the global timeout is gone. Requests that failed because\nof the global ratelimit are requeued after returning back into the regular\nstate: a warning is logged to inform you of this.","ref":"Nostrum.Api.Ratelimiter.html#module-queueing-requests"},{"type":"module","title":"Failure modes - Nostrum.Api.Ratelimiter","doc":"#### HTTP connection death\n\nIf the HTTP connection dies, the ratelimiter will inform each affected client\nby replying with `{:error, {:connection_died, reason}}`, where `reason` is\nthe reason as provided by the `:gun_down` event. It will then transition to\n`:disconnected` state. If no requests were running at time the connection was\nshut down - for instance, because we simply reached the maximum idle time on\nthe HTTP/2 connection - we will simply move on.\n\n#### Upstream errors\n\nThe ratelimiter works by queueing requests aggressively as soon as it has\nratelimit information to do so. If no ratelimit information is available, for\ninstance, because Discord returned us a 502 status code, the ratelimiter will\nnot automatically kick the queue to start further running requests.\n\n#### Other internal issues\n\nAny other internal problems that are not handled appropriately in the\nratelimiter will crash it, effectively resulting in the complete loss of any\nqueued requests.","ref":"Nostrum.Api.Ratelimiter.html#module-failure-modes"},{"type":"module","title":"Implementation benefits & drawbacks - Nostrum.Api.Ratelimiter","doc":"#### A history of ratelimiting\n\nFirst, it is important to give a short history of nostrum's ratelimiting: pre\n`0.8`, nostrum used to use a `GenServer` that would call out to ETS tables to\nlook up ratelimiting buckets for requests. If it needed to sleep before\nissuing a request due to the bucket being exhausted, it would do so in the\nserver process and block other callers.\n\nIn nostrum 0.8, the existing ratelimiter bucket storage architecture was\nrefactored to be based around the [pluggable caching\nfunctionality](../advanced/pluggable_caching.md), and buckets with no\nremaining calls were adjusted to be slept out on the client-side by having\nthe `GenServer` respond to the client with `{:error, {:retry_after, millis}}`\nand the client trying again and again to schedule its requests. This allowed\nusers to distribute their ratelimit buckets around however they wish, out of\nthe box, nostrum shipped with an ETS and a Mnesia-based ratelimit bucket\nstore.\n\n\n#### Problems we solved\n\nThe approach above still came with a few problems:\n\n- Requests were still being done synchronously in the ratelimiter, and it was\nblocked from anything else whilst running the requests, even though we are\ntheoretically free to start requests for other buckets while one is still\nrunning.\n\n- The ratelimiter itself was half working on its own, but half required the\nexternal storage mechanisms, which made the code hard to follow and required\nregular automatic pruning because the store had no idea when a bucket was no\nlonger relevant on its own.\n\n- Requests would not be pipelined to run as soon as ideally possible.\n\n- The ratelimiter did not inform clients if their request died in-flight.\n\n- If the client disconnected before we returned the response, we had to\nhandle this explicitly via `handle_info`.\n\nThe new state machine-based ratelimiter solves these problems.","ref":"Nostrum.Api.Ratelimiter.html#module-implementation-benefits-drawbacks"},{"type":"function","title":"Nostrum.Api.Ratelimiter.callback_mode/0","doc":"","ref":"Nostrum.Api.Ratelimiter.html#callback_mode/0"},{"type":"function","title":"Nostrum.Api.Ratelimiter.child_spec/1","doc":"","ref":"Nostrum.Api.Ratelimiter.html#child_spec/1"},{"type":"function","title":"Nostrum.Api.Ratelimiter.code_change/4","doc":"","ref":"Nostrum.Api.Ratelimiter.html#code_change/4"},{"type":"function","title":"Nostrum.Api.Ratelimiter.connected/3","doc":"","ref":"Nostrum.Api.Ratelimiter.html#connected/3"},{"type":"function","title":"Nostrum.Api.Ratelimiter.connecting/3","doc":"","ref":"Nostrum.Api.Ratelimiter.html#connecting/3"},{"type":"function","title":"Nostrum.Api.Ratelimiter.disconnected/3","doc":"","ref":"Nostrum.Api.Ratelimiter.html#disconnected/3"},{"type":"function","title":"Nostrum.Api.Ratelimiter.get_endpoint/2","doc":"Retrieves a proper ratelimit endpoint from a given route and url.","ref":"Nostrum.Api.Ratelimiter.html#get_endpoint/2"},{"type":"function","title":"Nostrum.Api.Ratelimiter.global_limit/3","doc":"","ref":"Nostrum.Api.Ratelimiter.html#global_limit/3"},{"type":"function","title":"Nostrum.Api.Ratelimiter.init/1","doc":"","ref":"Nostrum.Api.Ratelimiter.html#init/1"},{"type":"function","title":"Nostrum.Api.Ratelimiter.queue/1","doc":"Queue the given request and wait for the response synchronously.\n\nRatelimits on the endpoint are handled by the ratelimiter. Global ratelimits\nwill cause this to return an error.","ref":"Nostrum.Api.Ratelimiter.html#queue/1"},{"type":"function","title":"Nostrum.Api.Ratelimiter.start_link/1","doc":"Starts the ratelimiter.","ref":"Nostrum.Api.Ratelimiter.html#start_link/1"},{"type":"type","title":"Nostrum.Api.Ratelimiter.bucket/0","doc":"A bucket for endpoints unter the same ratelimit.","ref":"Nostrum.Api.Ratelimiter.html#t:bucket/0"},{"type":"type","title":"Nostrum.Api.Ratelimiter.queued_request/0","doc":"A bucket-specific request waiting to be queued, alongside its client.","ref":"Nostrum.Api.Ratelimiter.html#t:queued_request/0"},{"type":"type","title":"Nostrum.Api.Ratelimiter.remaining/0","doc":"Remaining calls on a route, as provided by the API response.\n\nThe ratelimiter internally counts the remaining calls per route to dispatch\nnew requests as soon as it's capable of doing so, but this is only possible\nif the API already provided us with ratelimit information for an endpoint.\n\nTherefore, if the initial call on an endpoint is made, the special `:initial`\nvalue is specified. This is used by the limit parsing function to set the\nremaining calls if and only if it is the response for the initial call -\notherwise, the value won't represent the truth anymore.","ref":"Nostrum.Api.Ratelimiter.html#t:remaining/0"},{"type":"type","title":"Nostrum.Api.Ratelimiter.request/0","doc":"A request to make in the ratelimiter.","ref":"Nostrum.Api.Ratelimiter.html#t:request/0"},{"type":"type","title":"Nostrum.Api.Ratelimiter.state/0","doc":"The state of the ratelimiter.\n\nWhile this has no public use, it is still documented here to provide help\nwhen tracing the ratelimiter via `:sys.trace/2` or other means.","ref":"Nostrum.Api.Ratelimiter.html#t:state/0"},{"type":"type","title":"Fields - Nostrum.Api.Ratelimiter.state/0","doc":"- `:outstanding`: Outstanding (unqueued) requests per bucket alongside with\nthe remaining calls that may be made on said bucket.\n\n- `:running`: Requests that have been sent off. Used to associate back the\nclient with a request when the response comes in.\n\n- `:inflight`: Requests for which we have started getting a response, but we\nhave not fully received it yet. For responses that have a body, this will\nbuffer their body until we can send it back to the client.\n\n- `:conn`: The `:gun` connection backing the server. Used for making new\nrequests, and updated as the state changes.\n\n- `:remaining_in_window`: How many calls we may still make to the API during\nthis time window. Reset automatically via timeouts.","ref":"Nostrum.Api.Ratelimiter.html#t:state/0-fields"},{"type":"module","title":"Nostrum.Shard.Session","doc":"Manages a single shard's gateway connection.","ref":"Nostrum.Shard.Session.html"},{"type":"module","title":"Purpose - Nostrum.Shard.Session","doc":"Discord's gateway sends us events over websocket. The shard session state\nmachine concerns it self with parsing these events and dispatching them to\nclients as appropriate.\n\n\n>","ref":"Nostrum.Shard.Session.html#module-purpose"},{"type":"module","title":"Internal module {: .info} - Nostrum.Shard.Session","doc":">\n> This module is intended for exclusive usage inside of nostrum, and is\n> documented for completeness and people curious to look behind the covers.","ref":"Nostrum.Shard.Session.html#module-internal-module-info"},{"type":"module","title":"Inner workings - Nostrum.Shard.Session","doc":"The session is implemented via `:gen_statem` and can be in one of the\nfollowing states:\n\n- `disconnected`: when no connection is up at all. On initial connection of\nthe session (e.g. no `seq` field is available), this will block if we need to\nwait a moment to respect the session startup concurrency limits. Afterwards,\nit will transition to `connecting_http`.\n\n- `connecting_http`: We are setting up a HTTP connection to the API. This\nmeans that no connection was available previously at all, and we need to open\nit from scratch. Used for gateway-initiated reconnect requests (\"Cloudflare\nWebsocket proxy restarting\") and on `:gun_down` notifications for the\nconnection in connected state. Once `:gun` notifies us that the connection is\nup, we transition to the `connecting_ws` state.\n\n- `connecting_ws`: We are turning the HTTP connection into a WebSocket\nconnection. If this succeeds, we head into the `connected` state.\n\n- `connected`: The WebSocket connection is up. This state actively deals with\nnew data from the gateway, and takes care of heartbeating. If Discord fails\nto respond to our heartbeats, we close down the full connection and attempt\nto re-establish and resume events.","ref":"Nostrum.Shard.Session.html#module-inner-workings"},{"type":"function","title":"Nostrum.Shard.Session.callback_mode/0","doc":"","ref":"Nostrum.Shard.Session.html#callback_mode/0"},{"type":"function","title":"Nostrum.Shard.Session.child_spec/1","doc":"","ref":"Nostrum.Shard.Session.html#child_spec/1"},{"type":"function","title":"Nostrum.Shard.Session.connected/3","doc":"","ref":"Nostrum.Shard.Session.html#connected/3"},{"type":"function","title":"Nostrum.Shard.Session.connecting_http/3","doc":"","ref":"Nostrum.Shard.Session.html#connecting_http/3"},{"type":"function","title":"Nostrum.Shard.Session.connecting_ws/3","doc":"","ref":"Nostrum.Shard.Session.html#connecting_ws/3"},{"type":"function","title":"Nostrum.Shard.Session.disconnected/3","doc":"","ref":"Nostrum.Shard.Session.html#disconnected/3"},{"type":"function","title":"Nostrum.Shard.Session.get_ws_state/1","doc":"","ref":"Nostrum.Shard.Session.html#get_ws_state/1"},{"type":"function","title":"Nostrum.Shard.Session.init/1","doc":"","ref":"Nostrum.Shard.Session.html#init/1"},{"type":"function","title":"Nostrum.Shard.Session.request_guild_members/3","doc":"","ref":"Nostrum.Shard.Session.html#request_guild_members/3"},{"type":"function","title":"Nostrum.Shard.Session.start_link/2","doc":"","ref":"Nostrum.Shard.Session.html#start_link/2"},{"type":"function","title":"Nostrum.Shard.Session.update_status/5","doc":"","ref":"Nostrum.Shard.Session.html#update_status/5"},{"type":"function","title":"Nostrum.Shard.Session.update_voice_state/5","doc":"","ref":"Nostrum.Shard.Session.html#update_voice_state/5"},{"type":"module","title":"Nostrum.Shard.Supervisor","doc":"Supervises shard processes.","ref":"Nostrum.Shard.Supervisor.html"},{"type":"module","title":"Implementation - Nostrum.Shard.Supervisor","doc":"As events are sent to the shard, the following happens:\n\n1. Shard looks to see what type of event it is, only dispatch events are sent\n to the producer.\n\n2. If the event is a `Dispatch`, the payload is converted to an atom-keyed map.\n This is done because over ETF (which Nostrum uses), map keys are sometimes\n binaries and sometimes strings, making it a real headache. Additionally,\n with atom keys, we can use the `Map.key` notation. This is normally\n considered unsafe but a debug messages will be emitted if a key is unsafely\n converted to an atom. In this way we can ensure that our atom table is not\n growing unbounded.\n\n3. The payload is then written to the cache. To make sure we're not overrunning\n the cache, especially at startup with `request_guild_members` or other heavy\n payloads, this is done in the shard itself.\n\n4. The cache updates itself from the new data. In some cases, such as update or\n delete events, it may send out a second \"old\" object as well, that helps the\n library user to determine what changed.\n\n5. After writing to the cache, the shard `send`s out the event after going\n through the cache to all subscribed processes. In general, the payload will\n often match the payload described by the official Discord API documentation.\n\n6. The shard instructs the websocket client that it's ready to read more data.\n This prevents flooding the shard with messages that it may not be able to\n handle yet, thus growing the message queue and the memory usage.","ref":"Nostrum.Shard.Supervisor.html#module-implementation"},{"type":"function","title":"Nostrum.Shard.Supervisor.child_spec/1","doc":"Returns a specification to start this module under a supervisor.\n\nSee `Supervisor`.","ref":"Nostrum.Shard.Supervisor.html#child_spec/1"},{"type":"function","title":"Nostrum.Shard.Supervisor.start_link/1","doc":"","ref":"Nostrum.Shard.Supervisor.html#start_link/1"},{"type":"function","title":"Nostrum.Shard.Supervisor.update_status/4","doc":"","ref":"Nostrum.Shard.Supervisor.html#update_status/4"},{"type":"function","title":"Nostrum.Shard.Supervisor.update_voice_state/4","doc":"","ref":"Nostrum.Shard.Supervisor.html#update_voice_state/4"},{"type":"module","title":"Nostrum.StateMachineTranslator","doc":"Translate error reports for `:gen_statem` modules in Elixir.\n\n>","ref":"Nostrum.StateMachineTranslator.html"},{"type":"module","title":"Internal module {: .info} - Nostrum.StateMachineTranslator","doc":">\n> This module is intended for exclusive usage inside of nostrum, and is\n> documented for completeness and people curious to look behind the covers.","ref":"Nostrum.StateMachineTranslator.html#module-internal-module-info"},{"type":"module","title":"Reasoning - Nostrum.StateMachineTranslator","doc":"By default, Elixir will ignore these messages altogether, see [this\nElixirForum\npost](https://elixirforum.com/t/why-does-logger-translator-ignore-gen-statem-reports/37418).\nA possible workaround seems to be using the `gen_state_machine` library, but\npulling in a library purely to have error reporting for something built-in to\nOTP seems pretty strange to me.","ref":"Nostrum.StateMachineTranslator.html#module-reasoning"},{"type":"function","title":"Nostrum.StateMachineTranslator.translate/4","doc":"","ref":"Nostrum.StateMachineTranslator.html#translate/4"},{"type":"exception","title":"Nostrum.Error.ApiError","doc":"Represents a failed response from the API.\n\nThis occurs when `:gun` fails, or when the API doesn't respond with `200` or `204`.\nThis should only be raised explicitly when using the banged API methods.","ref":"Nostrum.Error.ApiError.html"},{"type":"type","title":"Nostrum.Error.ApiError.detailed_error/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:detailed_error/0"},{"type":"type","title":"Nostrum.Error.ApiError.discord_status_code/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:discord_status_code/0"},{"type":"type","title":"Nostrum.Error.ApiError.error/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:error/0"},{"type":"type","title":"Nostrum.Error.ApiError.error_list_map/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:error_list_map/0"},{"type":"type","title":"Nostrum.Error.ApiError.errors/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:errors/0"},{"type":"type","title":"Nostrum.Error.ApiError.response/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:response/0"},{"type":"type","title":"Nostrum.Error.ApiError.status_code/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:status_code/0"},{"type":"type","title":"Nostrum.Error.ApiError.t/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:t/0"},{"type":"exception","title":"Nostrum.Error.CacheError","doc":"Represents an error when interacting with the cache.\n\nThis likely occurs because a specified item could not be found in the cache,\nor your were searching for something invalid.\nThis should only occur when using the banged cache methods.","ref":"Nostrum.Error.CacheError.html"},{"type":"exception","title":"Nostrum.Error.VoiceError","doc":"Represents an error when playing sound through voice channels.\n\nThis occurs when attempting to play audio and the file can't be found\nfor the ffmpeg, youtube-dl, or streamlink executables.","ref":"Nostrum.Error.VoiceError.html"},{"type":"extras","title":"Introduction","doc":"# Introduction\n\nnostrum is an Elixir library that can be used to interact with Discord.\n\nTo see documentation about a specific part of the library, please visit one of\nthe following:\n\n* [API](api.html) - Methods to interact with the RESTful API (and some other goodies).\n* [State](state.html) - Caches that keep information from Discord fresh at your disposal.\n* [Events](events.html) - Handling events from Discord as they come in.\n* [Voice](voice.html) - Playing audio through Discord voice channels.","ref":"intro.html"},{"type":"extras","title":"Setup - Introduction","doc":"There are two versions of nostrum, a stable version released on Hex and a dev\nversion on GitHub. The dev version will be more up to date but will likely\nhave more errors.\n\n```elixir\ndef deps do\n [{:nostrum, \"~> 0.8\"}]\n # Or, for bleeding edge changes:\n # [{:nostrum, github: \"Kraigie/nostrum\"}]\nend\n```\n\nNext up, you need to configure nostrum. The most basic configuration is simply\nsetting a token to log in with:\n\n```elixir\nconfig :nostrum,\n token: \"666\" # The token of your bot as a string\n```","ref":"intro.html#setup"},{"type":"extras","title":"Configuration options - Introduction","doc":"Apart from the `token` field mentioned above, the following fields are also supported:\n\n- `num_shards` - the amount of shards to run. Can be one of the following:\n - `:auto`: use the suggested amount of shards as provided by Discord.\n - *`num`*: a number of shards to run. nostrum will warn if this is not the\n recommended amount.\n - `{lowest, highest, total}`: start shards `lowest` to `highest`. `total`\n should contain the total amount of shards that your bot is expected to have.\n Useful for splitting a single bot across multiple servers, but see also [the\n multi-node documentation](../advanced/multi_node.md).\n- `gateway_intents` - a list of atoms representing gateway intents for Nostrum\n to subscribe to from the Discord API. More information can be found in the\n [gateway intents](./gateway_intents.md) documentation page.\n- `request_guild_members` - perform member chunking to retrieve a complete list\n of members for all guilds at startup. Depending on your [cache\n backend](../advanced/pluggable_caching.md), this may increase startup time\n and memory usage by quite a bit. Defaults to `false`.","ref":"intro.html#configuration-options"},{"type":"extras","title":"Voice-specific - Introduction","doc":"- `ffmpeg` - Specifies the path to the `ffmpeg` executable for playing audio.\n Defaults to `\"ffmpeg\"`.\n- `youtubedl` - Specifies the path to the `youtube-dl` executable for playing\n audio with youtube-dl support. Defaults to `\"youtube-dl\"`.\n- `streamlink` - Specifies the path to the `streamlink` executable for playing\n livestream audio with streamlink support. Defaults to `\"streamlink\"`.\n- `audio_timeout` - Milliseconds that input must begin generating audio by\n upon invoking `play`. More information about this option can be found in the\n [voice](./voice.html) documentation page. Defaults to `20_000` (20s).\n- `audio_frames_per_burst` - Number of opus frames to send at a time while\n playing audio. More information about this option can be found in the\n [voice](./voice.html) documentation page. Defaults to `10`.\n- `voice_auto_connect` - This will determine if Nostrum automatically connects\n to voice websockets gateways upon joining voice channels. If set to `false`\n but you still wish to connect to the voice gateway, you can do so manually\n by calling `Nostrum.Voice.connect_to_gateway/1` after joining a voice\n channel. Defaults to `true`.","ref":"intro.html#voice-specific"},{"type":"extras","title":"Development & debugging - Introduction","doc":"- `log_full_events` - This will log the full payload received over the\n websocket. Defaults to `false`.\n- `log_dispatch_events` - This will log dispatch events as they are received\n from the gateway. Defaults to `false`.\n- `fullsweep_after_default` - Sets the `fullsweep_after` flag for processes\n that can have irregularly high memory usage due to Discord payloads. This\n options will dramatically reduce the amount of memory used by some processes\n at the cost of increased CPU usage. This is useful if you're running your\n application under a memory constrained environment. This comes at the cost\n of increased CPU usage. By default, this option will only affect some\n processes. You can set this flag for *all* processes using environment\n variables or by [setting the system flag\n yourself](http://erlang.org/doc/man/erlang.html#system_flag-2). Defaults to\n whatever your system recommends, which is probably `65535`.","ref":"intro.html#development-debugging"},{"type":"extras","title":"Internal options - Introduction","doc":"The following options are only used for testing nostrum itself.\n\n- `dev` - This is added to enable Nostrum to be run completely stand alone for\n development purposes. `true` will cause Nostrum to spawn its own event\n consumers. If you have the dev flag set to true while running Nostrum\n alongside your application some of your events will be consumed. Defaults to\n `false`.","ref":"intro.html#internal-options"},{"type":"extras","title":"Logging - Introduction","doc":"nostrum uses Elixir's standard logger to inform you about regular and irregular\nevents. Normal messages include Discord-requested shard reconnections and the\n`IDENTIFY` and `READY` events.\n\nThe following metadata fields through logger:\n\n - `shard` - Id of the shard on which the event occurred\n - `guild` - Name of the guild on which the voice connection event occurred\n - `channel` - Name of the channel on which the voice connection event occurred\n\nTo enable this metadata, logger can be configured as such:\n```elixir\nconfig :logger, :console,\n metadata: [:shard, :guild, :channel]\n``` \n\nFor more information on how this works, and how to change the logging\nconfiguration for nostrum on its own, please see the [Logger\ndocumentation](https://hexdocs.pm/logger/Logger.html)","ref":"intro.html#logging"},{"type":"extras","title":"Why Elixir? - Introduction","doc":"From the Elixir website -\n\n> Elixir is a dynamic, functional language designed for building scalable and\n> maintainable applications.\n\n> Elixir leverages the Erlang VM, known for running low-latency, distributed\n> and fault-tolerant systems, while also being successfully used in web\n> development and the embedded software domain.\n\n**How does Nostrum leverage these benefits?**\n\n- **Fault tolerance**: nostrum attempts, where reasonable, to allow for\n different parts of the application to fail with minimal harm. Supervisors are\n used heavily to ensure that anything that breaks will be restarted. Nostrum\n attempts to avoid most errors, but if they do occur (*and they will!*) it\n shouldn't be the end of the world.\n\n- **Concurrency** - Concurrency is considered to be a first class citizen in\n Elixir. Through the use of SMP and processes, information should travel\n through the application quickly.\n\n- **Distributed**: nostrum does not currently support full distribution of all\n components out of the box - that would fall out of the scope of the library.\n However, see the [multi-node](../advanced/multi_node.md) document for\n provided functionality.","ref":"intro.html#why-elixir"},{"type":"extras","title":"Example bots - Introduction","doc":"- A simple bot that consumes events from the gateway can be found [at\n `examples/event_consumer.ex`](https://github.com/Kraigie/nostrum/blob/master/examples/event_consumer.ex).\n\n- A more complex and active bot, bolt, can be found [here](https://github.com/jchristgit/bolt).\n\n- An example bot that plays audio through voice channels can be found [at\n `examples/audio_player_example.ex`](https://github.com/Kraigie/nostrum/blob/master/examples/audio_player_example.ex).\n\n\n","ref":"intro.html#example-bots"},{"type":"extras","title":"API","doc":"# API\n\nnostrum includes a complete implementation of the endpoints supported by\nDiscord's API. Method names are copied closely from the documentation to\neliminate any confusion about what a method does, as well as to allow users to\neasily lookup the endpoints in the official API documentation.\n\nFor a full listing of method definitions, please see the `Nostrum.Api` module.","ref":"api.html"},{"type":"extras","title":"Banged (`!`) API methods - API","doc":"A lot of methods have a `banged` version of themselves. This is a common Elixir\nidiom hailing from Elixir's style of failing fast.\n\nBy default, the API method will return a tuple like one of the following:\n\n```elixir\n# Success\n{:ok, msg} = Nostrum.Api.create_message(179679229036724225, \"456\")\n\n# Failure\n{:error, reason} = Nostrum.Api.create_message(123, \"eat my shorts api\")\n```\n\nA banged method, instead of returning an `error` tuple, will throw an error. If\nsuccessful, it will directly return the response with no `:ok` tuple.\n\n```elixir\n# Success\nmsg = Nostrum.Api.create_message!(179679229036724225, \"456\")\n\n# Failure - Throws an error\nNostrum.Api.create_message!(123, \"eat my shorts api\")\n```","ref":"api.html#banged-api-methods"},{"type":"extras","title":"Abstractions - API","doc":"When appropriate, some helpers are defined to make interacting with the API\nsimpler. An example of this is `Nostrum.Api.get_channel_messages/3`. By default\nthis endpoint only allows the retrieval of `100` messages at a time. A general\nuse case will have a user wanting more messages than that, thus nostrum handles\nthe retrieval of any number of messages for the user.\n\nThere are other endpoints that could use grooming like above, feel free to\nsuggest an interface and implementation for these methods.","ref":"api.html#abstractions"},{"type":"extras","title":"Ratelimiting - API","doc":"Ratelimiting is handled internally by nostrum, so long as you use the methods\nsupplied in the `Nostrum.Api` module. This means either calling the methods as\nthey're given or using `Nostrum.Api.request/4` to call an endpoint.\n\nTo ensure that every request is handled properly, no matter if they're called\nasynchronously or not, nostrum funnels all requests through the\n`Nostrum.Api.Ratelimiter` state machine.","ref":"api.html#ratelimiting"},{"type":"extras","title":"REST-only - API","doc":"If you only want to use the REST portion of the provided API, the only process\nneeded is the ratelimiter, which can be manually started by calling\n`Nostrum.Api.Ratelimiter.start_link/1`. \n\nIf you don't want to start nostrum, you can add `runtime: false` to the\ndependency options. If you're using `mix release`, all `runtime: false` deps\nwill be excluded from the build, so you'll also need to add `:nostrum` app to\n`mix.exs` in `:included_applications` application option or in the `releases`\nproject option.\n\n","ref":"api.html#rest-only"},{"type":"extras","title":"Application commands","doc":"# Application commands\n\nDiscord allows you to create commands for your bot that work within the slash\ncommand menu or via the context menu.\n\nUsing nostrum, you can create, receive, and respond to application commands invoked\nby Discord users.","ref":"application_commands.html"},{"type":"extras","title":"Permissions required - Application commands","doc":"Quoting the [official Discord\ndocumentation](https://discord.com/developers/docs/interactions/application-commands#authorizing-your-application):\n\n> In order to make Commands work within a guild, the guild must authorize\n> your application with the `applications.commands` scope. The `bot` scope is not\n> enough.","ref":"application_commands.html#permissions-required"},{"type":"extras","title":"Getting started - Application commands","doc":"Discord differentiates between **global** and **guild-specific** slash\ncommands. Global commands will be distributed across all guilds that your bot\nis in within an hour. Guild-specific commands slash commands will be available\ninstantly, which is why we will use guild-specific commands for testing.\n\nWe will create a command that will allow the user to assign or remove a role of\nchoice. The `guild_id` parameter is the ID of the guild on which the command\nwill be created.\n\nOur command definition looks as follows:\n\n```elixir\ncommand = %{\n name: \"role\",\n description: \"assign or remove a role\",\n options: [\n %{\n # ApplicationCommandType::ROLE\n type: 8,\n name: \"name\",\n description: \"role to assign or remove\",\n required: true\n },\n %{\n # ApplicationCommandType::STRING\n type: 3,\n name: \"action\",\n description: \"whether to assign or remove the role\",\n required: true,\n choices: [\n %{\n name: \"assign\",\n value: \"assign\"\n },\n %{\n name: \"remove\",\n value: \"remove\"\n }\n ]\n }\n ]\n}\n```\n\nTo register this command on the guild, we simply pass it to\n`Nostrum.Api.create_guild_application_command/2`:\n\n```elixir\nNostrum.Api.create_guild_application_command(guild_id, command)\n```\n\nYou can register the command in the ``:READY`` gateway event handler.","ref":"application_commands.html#getting-started"},{"type":"extras","title":"Receiving interactions - Application commands","doc":"Set up a gateway event handler for ``:INTERACTION_CREATE``. On command\ninvocation the interaction payload will look something like the following:\n\n```elixir\n%Nostrum.Struct.Interaction{\n channel_id: 474025345243414539,\n data: %{\n id: 793152718839087135,\n name: \"role\",\n options: [\n %{name: \"name\", value: \"458692275199803406\"},\n %{name: \"action\", value: \"assign\"}\n ]\n },\n # ...\n```\n\nNote that Discord already converted the user-supplied role to a snowflake.\nConvenient!\n\nLet's match on the retrieved event and create two function heads for the\nseparate operation modes:\n\n```elixir\nalias Nostrum.Api\nalias Nostrum.Struct.Interaction\n\ndefp manage_role(%Interaction{data: %{options: [%{value: role_id}, %{value: \"assign\"}]}} = interaction) do\n Api.add_guild_member_role(interaction.guild_id, interaction.member.user_id, role_id)\nend\n\ndefp manage_role(%Interaction{data: %{options: [%{value: role_id}, %{value: \"remove\"}]}} = interaction) do\n Api.remove_guild_member_role(interaction.guild_id, interaction.member.user_id, role_id)\nend\n\ndef handle_event({:INTERACTION_CREATE, %Interaction{data: %{name: \"role\"}} = interaction, _ws_state}) do\n manage_role(interaction)\nend\n```\n\nOkay, we now have our handling code done. This is pretty much the same code\nthat you would use for regular commands.","ref":"application_commands.html#receiving-interactions"},{"type":"extras","title":"Responding to interactions - Application commands","doc":"To respond to interactions, use ``Nostrum.Api.create_interaction_response/2``:\n\n```elixir\ndefp manage_role(%Interaction{data: %{options: [%{value: role_id}, %{value: \"assign\"}]}} = interaction) do\n Api.add_guild_member_role(interaction.guild_id, interaction.member.user_id, role_id)\n response = %{\n type: 4, # ChannelMessageWithSource\n data: %{\n content: \"role assigned\"\n }\n }\n Api.create_interaction_response(interaction, response)\nend\n```\n\nWe have now built a simple command using slash commands, with argument\nconversion delegated to Discords side of things. Further actions on the\ncommand, such as checking permissions, author roles, and more - are left as an\nexercise to the reader.","ref":"application_commands.html#responding-to-interactions"},{"type":"extras","title":"Gateway Intents","doc":"# Gateway Intents\n\nThe Discord API allows you to fine tune the payloads that are received by your bot through gateway intents.\n\nWhen connecting to Discord you can instruct Discord on which events you want to receive (i.e. messages, user presences, etc.).\n\nNostrum allows you to set these intents within your configuration, **by default all non-privileged intents are enabled**.\n\nTo pass intents you should use the following configuration:\n```elixir\nconfig :nostrum,\n token: \"bot_token\",\n gateway_intents: [\n :guilds,\n # other gateway intents\n ]\n```\n\nPossible intents (and the gateway events they correspond to) are:\n\n```\nguilds:\n - GUILD_CREATE\n - GUILD_UPDATE\n - GUILD_DELETE\n - GUILD_ROLE_CREATE\n - GUILD_ROLE_UPDATE\n - GUILD_ROLE_DELETE\n - CHANNEL_CREATE\n - CHANNEL_UPDATE\n - CHANNEL_DELETE\n - CHANNEL_PINS_UPDATE\n\nguild_members*:\n - GUILD_MEMBER_ADD\n - GUILD_MEMBER_UPDATE\n - GUILD_MEMBER_REMOVE\n\nguild_moderation:\n - GUILD_AUDIT_LOG_ENTRY_CREATE\n - GUILD_BAN_ADD\n - GUILD_BAN_REMOVE\n\nguild_emojis:\n - GUILD_EMOJIS_UPDATE\n\nguild_integrations:\n - GUILD_INTEGRATIONS_UPDATE\n\nguild_webhooks:\n - WEBHOOKS_UPDATE\n\nguild_invites:\n - INVITE_CREATE\n - INVITE_DELETE\n\nguild_voice_states:\n - VOICE_STATE_UPDATE\n\nguild_presences*:\n - PRESENCE_UPDATE\n\nguild_messages:\n - MESSAGE_CREATE\n - MESSAGE_UPDATE\n - MESSAGE_DELETE\n - MESSAGE_DELETE_BULK\n\nguild_message_reactions:\n - MESSAGE_REACTION_ADD\n - MESSAGE_REACTION_REMOVE\n - MESSAGE_REACTION_REMOVE_ALL\n - MESSAGE_REACTION_REMOVE_EMOJI\n\nguild_message_typing:\n - TYPING_START\n\ndirect_messages:\n - MESSAGE_CREATE\n - MESSAGE_UPDATE\n - MESSAGE_DELETE\n - CHANNEL_PINS_UPDATE\n\ndirect_message_reactions:\n - MESSAGE_REACTION_ADD\n - MESSAGE_REACTION_REMOVE\n - MESSAGE_REACTION_REMOVE_ALL\n - MESSAGE_REACTION_REMOVE_EMOJI\n\ndirect_message_typing:\n - TYPING_START\n\nmessage_content*:\n - MESSAGE_CONTENT\n\nguild_scheduled_events:\n - GUILD_SCHEDULED_EVENT_CREATE\n - GUILD_SCHEDULED_EVENT_UPDATE\n - GUILD_SCHEDULED_EVENT_DELETE\n - GUILD_SCHEDULED_EVENT_USER_ADD\n - GUILD_SCHEDULED_EVENT_USER_REMOVE\n\nauto_moderation_configuration:\n - AUTO_MODERATION_RULE_CREATE\n - AUTO_MODERATION_RULE_DELETE\n - AUTO_MODERATION_RULE_UPDATE\n\nauto_moderation_execution:\n - AUTO_MODERATION_RULE_EXECUTION\n\nguild_message_polls:\n - MESSAGE_POLL_VOTE_ADD\n - MESSAGE_POLL_VOTE_REMOVE\n\ndirect_message_polls:\n - MESSAGE_POLL_VOTE_ADD\n - MESSAGE_POLL_VOTE_REMOVE\n```\n\nBesides an explicit list of atoms, acceptable configuration values are `:all` and `:nonprivileged`.\n\nNote that intents marked with `*` are **privileged** intents. You must enable these intents by visiting the Discord Developer portal.\n\nOnce your bot passes 100 servers Discord will force you to **verify your bot**. If you require privileged intents you may need to write additional information on your usage of them.\n\nNostrum's default value for `gateway_intents` is `:nonprivileged`, which enables all non-privileged intents.\nThis is equivalent to setting `gateway_intents` to the above list without the **privileged** intents.\nIf you require all intents, including privileged ones, set `gateway_intents` to `:all`.\n\nMore information on gateway intents can be found in the [Discord Developer documentation](https://discord.com/developers/docs/topics/gateway#gateway-intents).","ref":"gateway_intents.html"},{"type":"extras","title":"State","doc":"# State\n\nNostrum keeps track of the state that your bot can see, which is updated based\non events from the WS connection. We differentiate between _caches_, which are\noptional and are used to provide your bot with fresh data, and _state_, which is\nmandatory state that we must track internally.","ref":"state.html"},{"type":"extras","title":"Caches - State","doc":"Caching will by default use Erlang's ETS tables. Abstractions are provided for\ncommon operations. If you feel the caches are missing some abstraction, feel\nfree to suggest it [on GitHub](https://github.com/Kraigie/nostrum/issues).\n\nShould the default ETS-based caching not be enough for you - for instance, you\nwant to integrate to some external caching mechanism or want to distribute your\nbot across multiple nodes, please see the [pluggable\ncaching](../advanced/pluggable_caching.md) documentation.","ref":"state.html#caches"},{"type":"extras","title":"Query list comprehensions - State","doc":"nostrum's built-in functions to query the cache should be sufficient to cover\ncommon use cases. If you need more involved queries, it is recommended to use\nnostrum's [qlc](https://www.erlang.org/doc/man/qlc.html) support.\n\nAs an example, Nosedrum has a function to find a guild member by username and\ndiscriminator. This is internally implemented with the following query:\n\n```erl\nfind_by(RequestedGuildId, Name, Discriminator, MemberCache, UserCache) ->\n qlc:q([Member || {{GuildId, MemberId}, Member} <- MemberCache:query_handle(),\n GuildId =:= RequestedGuildId,\n {UserId, User} <- UserCache:query_handle(),\n MemberId =:= UserId,\n map_get(username, User) =:= Name,\n map_get(discriminator, User) =:= Discriminator]).\n```\n\nBy [implementing a QLC\ntable](https://www.erlang.org/doc/man/qlc.html#implementing_a_qlc_table), all\nread operations from nostrum will be performed over your QLC table\nimplementation alone, and nostrum's dispatcher modules can easily be expanded\nfor more queries in the future. If you've never heard of QLC before, the\n[`beam-lazy` repository](https://github.com/savonarola/beam-lazy) contains a\ngood introduction.\n\nUsing QLC bring a plethora of benefits. Implementation of a QLC table is\nrelatively simple, and gives us compile-time query optimization and compilation\nin native Erlang list comprehension syntax. Furthermore, should you wish to\nperform queries on your caches beyond what nostrum offers out of the box, you\ncan write your queries using the `query_handle/0` functions on our caches,\nwithout having to investigate their exact API.\n\nThere is one caveat to be aware of when writing cache adapters in Elixir that\nbuild on this functionality: While Erlang's QLC can perform intelligent query\noptimization, a lot of it is implemented via a parse transform and thus only\navailable at compile time in Erlang modules. It is therefore recommended to\nwrite your QLC queries in Erlang modules: in Mix projects this can be achieved\neasily via the `src/` directory. Read the [QLC module\ndocumentation](https://www.erlang.org/doc/man/qlc.html) for more details on the\noptimizations done.\n\nThe reason why QLC is being used as opposed to the Elixir-traditional stream API\nis that the stream API does not support a number of features we are using here.\nApart from that, nostrum's previous API (`select` and friends) gave users a\nfalse impression that nostrum was doing an efficient iteration under the hood,\nwhich caused issues for large bots.","ref":"state.html#query-list-comprehensions"},{"type":"extras","title":"Internal state - State","doc":"In addition to the optional caching, nostrum also needs to keep track of\ninternal state so it functions properly. State follows the same pattern as the\npluggable caching functionality described above, but disabling state storage via\n`NoOp` as with caching is not possible.\n\nThe modules under `Nostrum.Store` are used for this functionality.\n\n\n\n","ref":"state.html#internal-state"},{"type":"extras","title":"Event handling","doc":"# Event handling\n\nEvent handling is how your bot application will interact with the information\nsent from Discord over a websocket connection. By defining an event handler for\nan event, when something like a message is created or a channel is deleted, your\napplication can perform an action as a result of that event.\n\nNostrum uses [Erlang's `:pg` module](https://www.erlang.org/doc/man/pg.html) to\ndetermine which consumers are interested in events, via\n`Nostrum.ConsumerGroup`. This allows dynamic subscriptions at runtime, even\nacross nodes. Events are dispatched to group members as they appear fromthe\nDiscord Gateway after ingestion into the cache.\n\nTo see the documentation on handling events of provided consumers, please see\n`Nostrum.Consumer`.\n\n\n","ref":"event_handling.html"},{"type":"extras","title":"Voice","doc":"# Voice","ref":"voice.html"},{"type":"extras","title":"Voice channels - Voice","doc":"Discord voice channels allow audio data to be sent to the voice servers over UDP.\nA bot is able to connect to up to one voice channel per guild. One websocket\nconnection will be opened and maintained for each voice channel the bot joins.\nThe websocket connection should reconnect automatically the same way that the \nmain Discord gateway websocket connections do. For available voice functions and\nusage see the `Nostrum.Voice` module.","ref":"voice.html#voice-channels"},{"type":"extras","title":"FFmpeg - Voice","doc":"Nostrum uses the powerful [ffmpeg](https://ffmpeg.org/) command line utility to\nencode any audio (or video) file for sending to Discord's voice servers.\nBy default Nostrum will look for the executable `ffmpeg` in the system path.\nIf the executable is elsewhere, the path may be configured via\n`config :nostrum, :ffmpeg, \"/path/to/ffmpeg\"`.\nThe function `Nostrum.Voice.play/4` allows sound to played via files, local or \nremote, or via raw data that gets piped to `stdin` of the `ffmpeg` process.\nWhen playing from a url, the url can be a name of a file on the filesystem or a url\nof file on a remote server - [ffmpeg supports a ton of protocols](https://www.ffmpeg.org/ffmpeg-protocols.html),\nthe most common of which are probably `http` or simply reading a file from the filesystem.\nIt is also possible to send raw opus frames, bypassing ffmpeg, if desired.","ref":"voice.html#ffmpeg"},{"type":"extras","title":"youtube-dl - Voice","doc":"With only `ffmpeg` installed, Nostrum supports playing audio/video files or raw, piped\ndata as discussed in the section above. Nostrum also has support for `youtube-dl`, another\npowerful command line utility for downloading audio/video from online video services.\nAlthough the name implies support for Youtube, `youtube-dl` supports downloading from\n[an immense list of sites](https://github.com/ytdl-org/youtube-dl/blob/master/docs/supportedsites.md).\nBy default Nostrum will look for the executable `youtube-dl` in the system path. If the\nexecutable is elsewhere, the path may be configured via `config :nostrum, :youtubedl, \"/path/to/youtube-dl\"`.\nWhen `Nostrum.Voice.play/4` is called with `:ytdl` for the `type` parameter, `youtube-dl` will be\nrun with options `-f bestaudio -q -o -`, which will attempt to download the audio at the given url and pipe it to `ffmpeg`.","ref":"voice.html#youtube-dl"},{"type":"extras","title":"streamlink - Voice","doc":"Nostrum also has support for `streamlink`, yet another powerful command line utility \nfor downloading live streams from online video streaming services.\nBy default Nostrum will look for the executable `streamlink` in the system path. \nIf the executable is elsewhere, the path may be configured via `config :nostrum, :streamlink, \"/path/to/streamlink\"`.\nWhen `Nostrum.Voice.play/4` is called with `:stream` for the `type` parameter, `streamlink` \nwill attempt to download the live stream content and pipe it to `ffmpeg`.\nIt's recommended to use the most up-to-date version of `streamlink` to properly\nplay human-readable URLs from services such as Youtube and Twitch. Version 3.x.x\ncurrently works with both of these services. If the short, human-readable url of the streaming service\ndoesn't work with `streamlink` out of the box, you may have more luck extracting the underlying raw stream url.\nThese are typically long URLs that end in `.m3u8` or `.hls`. If you have `youtube-dl` installed,\nyou can attempt to get this URL by running the following:\n\n```elixir\n{raw_url, 0} = System.cmd(\"youtube-dl\", [\"-f\", \"best\", \"-g\", url])\nraw_url = raw_url |> String.trim()\n```","ref":"voice.html#streamlink"},{"type":"extras","title":"Audio Timeout - Voice","doc":"Upon invoking `Nostrum.Voice.play/4`, the player process has a large configurable initial window\n(`20_000` milliseconds by default) that it must generate audio within before timing out. This is done to allow\nample time for slow networks to download large audio/video files. This configurable timeout only applies to when\n`play` is initially invoked; once audio has begun transmitting, the timeout drops to `500` milliseconds.\nBecause the `ffmpeg` process doesn't close when its input device is `stdin`, which is the case\nwhen `type` is set to `:pipe`, `:ytdl`, or `:stream` the timeout is necessary to promptly detect end of input.\nIf the audio process times out within the initial window, the `Nostrum.Struct.Event.SpeakingUpdate`\nthat is generated will have its `timed_out` field set to `true`. It will be `false` in all other cases.\nIf your use case does not include large, slow downloads and you wish to more quickly be notified\nof timeouts or errors, you may consider setting `audio_timeout` to a lower value.\nHowever, `youtube-dl` typically takes at least 2.5 seconds to begin outputting audio data,\neven on a fast connection.\nIf your use case involves playing large files at a timestamp several hours in like this,\n`play(guild_id, url, :ytdl, start_time: \"2:37:56\")`, you may consider setting the timeout to a higher value,\nas downloading a large youtube video and having `ffmpeg` seek through several hours\nof audio may take 15-20 seconds, even with a fast network connection.","ref":"voice.html#audio-timeout"},{"type":"extras","title":"Audio Frames Per Burst - Voice","doc":"The value `:audio_frames_per_burst` represents the number of consecutive packets to send before resting.\nWhen using `Nostrum.Voice.play/4` to play audio, Nostrum collects a number of opus frames from the \naudio input source before sending them all to Discord as a \"burst\" of ordered frames. \nThis is done to reduce the overhead of process-sleeping and setup.\nFor reference, a single opus frame is 20 milliseconds of audio (at least for the format that Discord uses).\nBy default, the `:audio_frames_per_burst` is set to `10`, equivalent to 200 milliseconds of audio.\n\nUnder normal circumstances, there's no reason to change this value. However, if you attempt to play a very short\npiece of audio that's less than `10` frames (200ms) in length, it will time out (after the configured \n`:audio_timeout` duration has passed) as it waits to collect `10` frames to send. For those cases, configure the\nvalue to *at most* the minimum frame length of the audio you intend to play, or simply `1`. Setting the value to `1`\nmeans that each opus frame from your audio source will be taken individually and be sent in its own \"burst\" with the \nplayer process sleeping between each; you likely won't notice a difference in audio playback quality compared to the \ndefault value of `10` other than that your sub-200ms audio files will play as expected.","ref":"voice.html#audio-frames-per-burst"},{"type":"extras","title":"Voice Events - Voice","doc":"There are a few voice related events that bots can consume with a `Nostrum.Consumer` process:\n - `t:Nostrum.Consumer.voice_state_update/0`\n - `t:Nostrum.Consumer.voice_server_update/0`\n - `t:Nostrum.Consumer.voice_speaking_update/0`\n - `t:Nostrum.Consumer.voice_ready/0`\n - `t:Nostrum.Consumer.voice_incoming_packet/0`\n\nBoth `t:Nostrum.Consumer.voice_state_update/0` and `t:Nostrum.Consumer.voice_server_update/0` \nare sent by the shard gateway session when a bot joins a voice channel. The receipt of both of \nthese events is required for a voice gateway session to begin, and it happens automatically when \njoining a channel. The `t:Nostrum.Consumer.voice_state_update/0` event is also sent every time \nany user joins or leaves a voice channel, and `t:Nostrum.Struct.Guild.voice_states/0` is \nautomatically updated within the guild cache to reflect current state of voice channels.\n\nA use case for listening to both `t:Nostrum.Consumer.voice_state_update/0` and \n`t:Nostrum.Consumer.voice_server_update/0` events would be to outsource voice connections to \nan application outside of Nostrum. This can be done by setting the config option \n`:voice_auto_connect` to `false` and taking the session and token information \nfrom both of the events and passing them to your external voice app. \nOutside of this niche use case, another use case for listening solely to the\n`t:Nostrum.Consumer.voice_state_update/0` event would be to detect when users join or leave \nvoice channels.\n\nThe `t:Nostrum.Consumer.voice_speaking_update/0` event is generated by Nostrum for convenience. It is \nsent every time the bot starts or stops speaking/sending audio. A use case for this event is if \nyou have a queue of URLs to play, listening to the `t:Nostrum.Consumer.voice_speaking_update/0` \nwill let the bot know when the current URL has finished playing and that it should begin playing \nthe next one in the queue. The alternative approach for this use case that is not event-driven \nis to periodically call `Nostrum.Voice.playing?/1` and wait for it to return `false` as the \ntrigger to play the next URL. Note that the third element in the event is of type\n`t:Nostrum.Struct.VoiceWSState.t/0` and not `t:Nostrum.Struct.WSState.t/0`.\n\nThe `t:Nostrum.Consumer.voice_ready/0` event is generated by Nostrum for convenience. It is sent\nwhen the bot is ready to begin sending audio data upon joining a voice channel. From the moment\nthe bot joins a voice channel, Nostrum handles the multi-step handshaking process that is \nrequired before any audio packets can be sent or received. It is a common use case for bots to\nimmediately begin playing audio upon joining a voice channel. Calling `Nostrum.Voice.play/4`\ndirectly after calling `Nostrum.Voice.join_channel/4` will always return an error as several\nnetwork actions must take place before playing audio is possible. Listening for the\n`t:Nostrum.Consumer.voice_ready/0` event can be used by the bot to begin playing audio as soon \nas it is able to. The alternative approach for this use case that is not event-driven is to \nperiodically call `Nostrum.Voice.ready?/1` and wait for it to return `true` as the trigger to\nbegin playing. Another common approach is to define a `try_play` function as follows:\n```elixir\ndef try_play(guild_id, url, type, opts \\\\ []) do\n case Nostrum.Voice.play(guild_id, url, type, opts) do\n {:error, _msg} ->\n Process.sleep(100)\n try_play(guild_id, url, type, opts)\n\n _ ->\n :ok\n end\nend\n```\nNote that the third element in the event is of type `t:Nostrum.Struct.VoiceWSState.t/0` and \nnot `t:Nostrum.Struct.WSState.t/0`.\n\nThe `t:Nostrum.Consumer.voice_incoming_packet/0` event is generated by Nostrum. None will be generated\nby default. You must first be connected to a voice channel, call the `Nostrum.Voice.start_listen_async/1`\nfunction, then have another user in the same voice channel speak. If these conditions are met, an event\nwill be received for each RTP packet the bot receives; 50 packets per 1 second for each user that is\nactively speaking. These events are only useful if you intend to listen to incoming audio and are disabled\nby default. An alternative approach to listening to incoming audio that is not event driven is to call\n`Nostrum.Voice.listen/3`. This function blocks until the specified number of RTP packets is received.\n`Nostrum.Voice.listen/3` has the additional features of removing duplicate RTP packets within the set of\npackets returned per invocation and the option to return the raw RTP packet. In practice these features\nlikely won't be missed when consuming incoming voice packets asynchronously.\nNote that the third element in the event is of type\n`t:Nostrum.Struct.VoiceWSState.t/0` and not `t:Nostrum.Struct.WSState.t/0`.","ref":"voice.html#voice-events"},{"type":"extras","title":"Pluggable caching","doc":"# Pluggable caching\n\nThe default ETS-based caches supplied by nostrum should work for most of your\nneeds, but all of the caches can be exchanged for your own implementations. For\nthis, implement the behaviours exported by the cache modules under\n`Nostrum.Cache`.\n\nUse the `[:nostrum, :caches]` configuration for configuring which cache\nimplementation you want to use. This can only be set at dependency compilation\ntime. A common situation is that you don't want to cache presences in your bot,\nmost likely you don't care about user's status, so you can disable it altogether\nby using the `NoOp` presence cache:\n\n```elixir\nconfig :nostrum,\n caches: %{\n presences: Nostrum.Cache.PresenceCache.NoOp\n }\n```\n\nIn addition to regular caches that associate Discord snowflakes with the proper\n\"full\" object, nostrum also maintains junction table-like mappings that allow\nyou to find the matching object from one cache in another. One example for this\nis `Nostrum.Cache.ChannelGuildMapping`.\n\nNostrum also ships with Mnesia-based caches. **These are only compiled in when\nmnesia is available**: they may not be available on Nerves or when Mnesia was\nnot installed with OTP.","ref":"pluggable_caching.html"},{"type":"extras","title":"Implementations - Pluggable caching","doc":"","ref":"pluggable_caching.html#implementations"},{"type":"extras","title":"ETS caching - Pluggable caching","doc":"Caching based on `:ets` is used by default. No configuration is required. Fast,\nlight on memory, but does not support any form of distribution or secondary\nindexing: queries such as fetching all guild members for a guild by its ID will\nperform a full table scan. For smaller bots, this is perfectly acceptable.","ref":"pluggable_caching.html#ets-caching"},{"type":"extras","title":"Mnesia caching - Pluggable caching","doc":"Mnesia-based caching is mainly suggested for larger bots that require\nfeatures such as cache distribution, fragmentation, secondary indexing and more.\n\nThe caches will attempt to create their tables automatically at startup:\ntherefore, Mnesia must be started ahead of nostrum. Caches expose a function\n`table/0` that can be called to retrieve the table name used by the cache and\nperform schema operations on it, such as adding replicas or fragmenting them.\n\n\n\nAccess to Mnesia is presently done in `sync_transaction` mode for best\nconsistency. If needed, a compile-time configuration option for the cache to\nswitch this can be added.\n\nMnesia-based caching assumes the user is familar with usage and\nmaintenance of Mnesia: the [Mnesia User's\nGuide](https://www.erlang.org/doc/apps/mnesia/users_guide.html) is a good\nstarting point.","ref":"pluggable_caching.html#mnesia-caching"},{"type":"extras","title":"NoOp caching - Pluggable caching","doc":"The NoOp cache adapters are supplied for the case where you do not want to cache\nspecific data from Discord at all.\n\nThese cache adapters presently also don't send out any data they receive either:\nthis means that for caches using the NoOp cache adapters, you won't receive any\ngateway events.","ref":"pluggable_caching.html#noop-caching"},{"type":"extras","title":"Cache invalidation - Pluggable caching","doc":"nostrum does not invalidate cache in any special way: it will maintain it in\nresponse to gateway events (for instance by deleting a guild and its members\nupon leaving it), but won't regularly prune caches or associate expiration times\nwith entries. For volatile (RAM-based) caches this is perfectly fine, however,\nwhen implementing your own cache backend that persists to disk in some way, you\nneed to take care of this yourself.","ref":"pluggable_caching.html#cache-invalidation"},{"type":"extras","title":"Cache performance - Pluggable caching","doc":"nostrum strives to provide the most performant caches on the Discord bot caching\nmarket. If you run into performance issues with caches that you feel are not\nadequately documented as such, please feel free to open an issue.\n\nBenchmarks for caches can be found in the [`benchmarks/`\ndirectory](https://github.com/Kraigie/nostrum/tree/master/benchmarks) of the\nsource code tree. If you want to get a feeling for how the caches perform or\nimplement optimizations, check them out.","ref":"pluggable_caching.html#cache-performance"},{"type":"extras","title":"Multi-node","doc":"# Multi-node\n\nAt the moment, you can run nostrum in highly available mode across multiple\nnodes via OTP's distributed application support, see below. Support for properly\ndistributing nostrum across multiple nodes and using them as one big entity is\nnot supported (yet).\n\nAs a general rule: if you are running distributed Erlang over the internet, make\nsure to secure it with [a solid VPN](https://www.wireguard.com) and / or by\n[using TLS for Erlang\ndistribution](https://www.erlang.org/doc/apps/ssl/ssl_distribution.html).","ref":"multi_node.html"},{"type":"extras","title":"High availability - Multi-node","doc":"Running using OTP's [distributed\napplications](https://www.erlang.org/doc/design_principles/distributed_applications.html)\nallows us to connect multiple nodes together and have your app and nostrum\nrescheduled on another node when things go south. Let's see how we can configure\nit. In this example, we will make use of three nodes, and all of them will be\nrun from your bot's directory. The only difference on their command line is the\n`--sname` / `--name` you specify. We'll use `--sname`s for testing here, for\nproper fault tolerance you will want to use multiple hosts with `--name`. Let's\nassume we name our nodes `joe`, `robert`, and `mike`.","ref":"multi_node.html#high-availability"},{"type":"extras","title":"Bundling nostrum with our app - Multi-node","doc":"We want to colocate nostrum with our app to allow it to move around as our\napplication is moved around. For this, utilize OTP's [included\napplications](https://www.erlang.org/doc/design_principles/included_applications.html)\nfeature to include nostrum into our supervision tree. You also need to\nexplicitly include nostrum's dependencies to ensure they are started, as the\nregular nostrum application startup won't handle it for you. This can be done by\nchanging your application definition in `mix.exs` as follows:\n\n```elixir\n def application do\n [\n mod: {MyBot.Application, []},\n included_applications: [:nostrum],\n # You can see this with `mix app.tree nostrum`\n extra_applications: [:certifi, :gun, :inets, :jason, :kcl, :mime]\n # ...\n ]\n end\n```\n\nYou also need to set `runtime: false` for `:nostrum` itself in your\ndependencies, and any dependencies of your app that depend on `:nostrum`, such\nas command frameworks like `:nosedrum`:\n\n```elixir\n defp deps do\n [\n {:nostrum, \"~> 0.8\", runtime: false},\n # {:nosedrum, \"~> 0.6\", runtime: false},\n ]\n end\n```\n\nYou now need to add nostrum to your applications' children to start it as part\nof your app:\n\n```elixir\n def start(type, args) do\n children = [\n Nostrum.Application,\n # ...\n ]\n end\n```\n\nIf you want to run some logic ahead of starting nostrum, you can naturally also\nput it later into the list.\n\nYou can start your bot now, and it's going to run. If you look at your\nbot's application in `:observer`, you will see that nostrum has now become one\nwith your bot. We call that integration engineering.\n\nNow that our app bundles everything it needs with itself, this means starting\nour app will also starting nostrum, and stopping will also stop nostrum. We need\nthis for step two.","ref":"multi_node.html#bundling-nostrum-with-our-app"},{"type":"extras","title":"Setting up distribution - Multi-node","doc":"The avid reader will probably know that starting with the same `--cookie` and\n`--sname` / `--name` is only step one, the nodes need to connect to each other\nas well.\n\nTo be able to test this in interactive mode we will configure the settings in\nErlang configuration files, for releases you can use your regular\n`config/prod.exs`. We will set up the following:\n\n- Instruct OTP that our app, `:mybot` is a distributed app, and give it the\n hosts to run it on.\n\n- On startup, tell OTP it should wait for the other nodes to become available.\n\nWith the Erlang configuration files, this can be done as follows:\n\n```erl\n% mybot_joe.config\n[{kernel,\n [{distributed, [{mybot, 5000, [joe@HOSTNAME, {mike@HOSTNAME, robert@HOSTNAME}]}]},\n {sync_nodes_mandatory, [mike@HOSTNAME, robert@HOSTNAME]},\n {sync_nodes_timeout, 30000}]}].\n```\n```erl\n% mybot_robert.config\n[{kernel,\n [{distributed, [{mybot, 5000, [joe@HOSTNAME, {mike@HOSTNAME, robert@HOSTNAME}]}]},\n {sync_nodes_mandatory, [joe@HOSTNAME, mike@HOSTNAME]},\n {sync_nodes_timeout, 30000}]}].\n```\n```erl\n% mybot_mike.config\n[{kernel,\n [{distributed, [{mybot, 5000, [joe@HOSTNAME, {mike@HOSTNAME, robert@HOSTNAME}]}]},\n {sync_nodes_mandatory, [joe@HOSTNAME, robert@HOSTNAME]},\n {sync_nodes_timeout, 30000}]}].\n```\n\nNote the only thing that changes is the `sync_node_mandatory` setting, which\ninstructs OTP which hosts to wait for on startup. The other settings must match.\nThese options instructs OTP that our app `:mybot` is distributed and should be\nstarted at `:joe@HOSTNAME` first. If that fails, it moves to `:robert@HOSTNAME`\nor `:mike@HOSTNAME`.\n\nFor details on the options, please see the [kernel reference\nmanual](https://www.erlang.org/doc/man/kernel_app.html).","ref":"multi_node.html#setting-up-distribution"},{"type":"extras","title":"Playtest - Multi-node","doc":"In three distinct windows, run the following:\n\n1. `iex --sname joe --cookie foo --erl-config myapp_joe.config -S mix`\n2. `iex --sname robert --cookie foo --erl-config myapp_robert.config -S mix`\n3. `iex --sname mike --cookie foo --erl-config myapp_mike.config -S mix`\n\nIf you have some other application that breaks on startup now - like monitoring\nexporters that bind to specific ports, or similar things - this is when they\nwill blow up. Decide whether you want to run this on every node indeed or\ninclude it with your app as shown above.\n\nYou now have three instances of the VM running. `:joe@HOSTNAME` runs your bot\nright now. If you stop that node, one of the other two nodes will start running\nyour app. High availability complete.","ref":"multi_node.html#playtest"},{"type":"extras","title":"Being informed about takeover - Multi-node","doc":"Your application's `def start` function takes a `type` argument. In this case,\non the node that now runs your application, that `type` was `{:failover,\n:joe@HOSTNAME}`. If you start `:joe@HOSTNAME` back up, `:joe@HOSTNAME` is\nstarted with `{:takeover, source_node}`, where `source_node` is the node that it\ntook over from.","ref":"multi_node.html#being-informed-about-takeover"},{"type":"extras","title":"Manual takeover - Multi-node","doc":"If you want to move your app around manually, you can use\n`:application.takeover`, for example `:application.takeover(:mybot,\n:permanent)`.","ref":"multi_node.html#manual-takeover"},{"type":"extras","title":"Final thoughts - Multi-node","doc":"At present, nostrum can not perform any state synchronization between nodes, it\nis an effective restart from scratch. For most bots, this type of failover will\nbe sufficient.\n\n\n","ref":"multi_node.html#final-thoughts"},{"type":"extras","title":"Hot code upgrade","doc":"# Hot code upgrade\n\nFor the library users whose Discord bot can afford absolutely no downtime due to\nrestarts, nostrum ships with [`appup`\nfiles](https://www.erlang.org/doc/man/appup.html) via the\n[`castle`](https://github.com/ausimian/castle) library.\n\n\n>","ref":"hot_code_upgrade.html"},{"type":"extras","title":"Maintenance {: .info} - Hot code upgrade","doc":"> \n> The appups are maintained on a best-effort basis. While they are expected to\n> work and be present and documented as such, no guarantee can be made that they\n> will choose the most optimal path to upgrade and downgrade releases.\n> Contributions in this regard are welcome.","ref":"hot_code_upgrade.html#maintenance-info"},{"type":"extras","title":"Usage - Hot code upgrade","doc":"To make use of nostrum's hot code upgrade support, please follow the\ninstructions to install the [`castle`](https://github.com/ausimian/castle)\nlibrary in order to configure your release appropriately. Outside of shipping\nthe appup, nostrum does not provide further functionality to facilitate this.","ref":"hot_code_upgrade.html#usage"},{"type":"extras","title":"nostrum as included application - Hot code upgrade","doc":"When nostrum is run as an included application as documented in [the\nmulti-node support document](./multi_node.md), nostrum's default appup won't\nbe read on generation of the release upgrade file.\n\nPlease see the OTP documentation on [Changing Included\nApplications](https://www.erlang.org/doc/design_principles/appup_cookbook.html#changing-included-applications)\nfor information on how to deal with upgrades in this case.\n\n\n","ref":"hot_code_upgrade.html#nostrum-as-included-application"}],"content_type":"text/markdown","producer":{"name":"ex_doc","version":[48,46,51,50,46,49]}} \ No newline at end of file diff --git a/dist/search_items-D5B4DA13.js b/dist/search_items-D5B4DA13.js deleted file mode 100644 index c0dc67278..000000000 --- a/dist/search_items-D5B4DA13.js +++ /dev/null @@ -1 +0,0 @@ -searchNodes=[{"type":"task","title":"Mix.Tasks.Gh.Docs","doc":"Task that pushes docs to gh-pages branch on Discord.","ref":"Mix.Tasks.Gh.Docs.html"},{"type":"function","title":"Mix.Tasks.Gh.Docs.run/1","doc":"Callback implementation for Mix.Task.run/1 .","ref":"Mix.Tasks.Gh.Docs.html#run/1"},{"type":"module","title":"Nostrum.Api","doc":"Interface for Discord's rest API. By default all methods in this module are ran synchronously. If you wish to have async rest operations I recommend you execute these functions inside of a task. Examples # Async Task t = Task . async fn -> Nostrum.Api . get_channel_messages ( 12345678912345 , :infinity , { } ) end messages = Task . await t # A lot of times we don't care about the return value of the function Task . start fn -> messages = [ "in" , "the" , "end" , "it" , "doesn't" , "even" , "matter" ] Enum . each messages , & Nostrum.Api . create_message! ( 12345678912345 , &1 ) end A note about Strings and Ints Currently, responses from the REST api will have id fields as string . Everything received from the WS connection will have id fields as int . If you're processing a response from the API and trying to access something in the cache based off of an id in the response, you will need to convert it to an int using String.to_integer/1 . I'm open to suggestions for how this should be handled going forward. Example messages = Nostrum.Api . get_pinned_messages! ( 12345678912345 ) authors = Enum . map messages , fn msg -> author_id = String . to_integer ( msg . author . id ) Nostrum.Cache.User . get! ( id : author_id ) end","ref":"Nostrum.Api.html"},{"type":"function","title":"Nostrum.Api.add_guild_member/3","doc":"Puts a user in a guild. This endpoint fires the Nostrum.Consumer.guild_member_add/0 event. It requires the CREATE_INSTANT_INVITE permission. Additionally, it situationally requires the MANAGE_NICKNAMES , MANAGE_ROLES , MUTE_MEMBERS , and DEAFEN_MEMBERS permissions. If successful, returns {:ok, member} or {:ok} if the user was already a member of the guild. Otherwise, returns a Nostrum.Api.error/0 . Options :access_token (string) - the user's oauth2 access token :nick (string) - value to set users nickname to :roles (list of Nostrum.Struct.Guild.Role.id/0 ) - array of role ids the member is assigned :mute (boolean) - if the user is muted :deaf (boolean) - if the user is deafened :access_token is always required. Examples Nostrum.Api . add_guild_member ( 41771983423143937 , 18374719829378473 , access_token : "6qrZcUqja7812RVdnEKjpzOL4CvHBFG" , nick : "nostrum" , roles : [ 431849301 , 913809431 ] )","ref":"Nostrum.Api.html#add_guild_member/3"},{"type":"function","title":"Nostrum.Api.add_guild_member!/3","doc":"Same as add_guild_member/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#add_guild_member!/3"},{"type":"function","title":"Nostrum.Api.add_guild_member_role/4","doc":"Adds a role to a member. Role to add is specified by role_id . User to add role to is specified by guild_id and user_id . An optional reason can be given for the audit log.","ref":"Nostrum.Api.html#add_guild_member_role/4"},{"type":"function","title":"Nostrum.Api.add_pinned_channel_message/2","doc":"Pins a message in a channel. This endpoint requires the 'VIEW_CHANNEL', 'READ_MESSAGE_HISTORY', and 'MANAGE_MESSAGES' permissions. It fires the Nostrum.Consumer.message_update/0 and Nostrum.Consumer.channel_pins_update/0 events. If successful, returns {:ok} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . add_pinned_channel_message ( 43189401384091 , 18743893102394 )","ref":"Nostrum.Api.html#add_pinned_channel_message/2"},{"type":"function","title":"Nostrum.Api.add_pinned_channel_message!/2","doc":"Same as add_pinned_channel_message/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#add_pinned_channel_message!/2"},{"type":"function","title":"Nostrum.Api.add_thread_member/2","doc":"Add a user to a thread, requires the ability to send messages in the thread.","ref":"Nostrum.Api.html#add_thread_member/2"},{"type":"function","title":"Nostrum.Api.batch_edit_application_command_permissions/3","doc":"Edits command permissions for a specific command for your application in a guild. You can only add up to 10 permission overwrites for a command. Parameters application_id : Application ID commands are registered under. If not given, this will be fetched from Me . guild_id : Guild ID to fetch command permissions from. command_id : Command ID to fetch permissions for. permissions : List of partial guild application command permissions with id and permissions . You can add up to 10 overwrites per command. Return value This method returns a guild application command permission object, see all available values on the Discord API docs .","ref":"Nostrum.Api.html#batch_edit_application_command_permissions/3"},{"type":"function","title":"Nostrum.Api.begin_guild_prune/3","doc":"Begins a guild prune to prune members within days . An optional reason can be provided for the guild audit log. This endpoint requires the KICK_MEMBERS permission. It fires multiple Nostrum.Consumer.guild_member_remove/0 events. If successful, returns {:ok, %{pruned: pruned}} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . begin_guild_prune ( 81384788765712384 , 1 ) { :ok , %{ pruned : 0 } }","ref":"Nostrum.Api.html#begin_guild_prune/3"},{"type":"function","title":"Nostrum.Api.begin_guild_prune!/3","doc":"Same as begin_guild_prune/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#begin_guild_prune!/3"},{"type":"function","title":"Nostrum.Api.bulk_delete_messages/3","doc":"Deletes multiple messages from a channel. messages is a list of Nostrum.Struct.Message.id that you wish to delete. When given more than 100 messages, this function will chunk the given message list into blocks of 100 and send them off to the API. It will stop deleting on the first error that occurs. Keep in mind that deleting thousands of messages will take a pretty long time and it may be proper to just delete the channel you want to bulk delete in and recreate it. This method can only delete messages sent within the last two weeks. Filter is an optional parameter that specifies whether messages sent over two weeks ago should be filtered out; defaults to true .","ref":"Nostrum.Api.html#bulk_delete_messages/3"},{"type":"function","title":"Nostrum.Api.bulk_delete_messages!/3","doc":"Same as bulk_delete_messages/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#bulk_delete_messages!/3"},{"type":"function","title":"Nostrum.Api.bulk_overwrite_global_application_commands/2","doc":"Overwrite the existing global application commands. This action will: Create any command that was provided and did not already exist Update any command that was provided and already existed if its configuration changed Delete any command that was not provided but existed on Discord's end Updates will be available in all guilds after 1 hour. Commands that do not already exist will count toward daily application command create limits. Parameters application_id : Application ID for which to overwrite the commands. If not given, this will be fetched from Me . commands : List of command configurations, see the linked API documentation for reference. Return value Updated list of global application commands. See the official reference: https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands","ref":"Nostrum.Api.html#bulk_overwrite_global_application_commands/2"},{"type":"function","title":"Nostrum.Api.bulk_overwrite_guild_application_commands/3","doc":"Overwrite the existing guild application commands on the specified guild. This action will: Create any command that was provided and did not already exist Update any command that was provided and already existed if its configuration changed Delete any command that was not provided but existed on Discord's end Parameters application_id : Application ID for which to overwrite the commands. If not given, this will be fetched from Me . guild_id : Guild on which to overwrite the commands. commands : List of command configurations, see the linked API documentation for reference. Return value Updated list of guild application commands. See the official reference: https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-guild-application-commands","ref":"Nostrum.Api.html#bulk_overwrite_guild_application_commands/3"},{"type":"function","title":"Nostrum.Api.create_channel_invite/3","doc":"Creates an invite for a guild channel. An optional reason can be provided for the audit log. This endpoint requires the CREATE_INSTANT_INVITE permission. If successful, returns {:ok, invite} . Otherwise, returns a Nostrum.Api.error/0 . Options :max_age (integer) - duration of invite in seconds before expiry, or 0 for never. (default: 86400 ) :max_uses (integer) - max number of uses or 0 for unlimited. (default: 0 ) :temporary (boolean) - Whether the invite should grant temporary membership. (default: false ) :unique (boolean) - used when creating unique one time use invites. (default: false ) Examples Nostrum.Api . create_channel_invite ( 41771983423143933 ) { :ok , Nostrum.Struct.Invite { } } Nostrum.Api . create_channel_invite ( 41771983423143933 , max_uses : 20 ) { :ok , % Nostrum.Struct.Invite { } }","ref":"Nostrum.Api.html#create_channel_invite/3"},{"type":"function","title":"Nostrum.Api.create_channel_invite!/3","doc":"Same as create_channel_invite/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#create_channel_invite!/3"},{"type":"function","title":"Nostrum.Api.create_dm/1","doc":"Create a new DM channel with a user. If successful, returns {:ok, dm_channel} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . create_dm ( 150061853001777154 ) { :ok , % Nostrum.Struct.Channel { type : 1 } }","ref":"Nostrum.Api.html#create_dm/1"},{"type":"function","title":"Nostrum.Api.create_dm!/1","doc":"Same as create_dm/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#create_dm!/1"},{"type":"function","title":"Nostrum.Api.create_followup_message/3","doc":"Create a followup message for an interaction. Delegates to execute_webhook/3 , see the function for more details.","ref":"Nostrum.Api.html#create_followup_message/3"},{"type":"function","title":"Nostrum.Api.create_followup_message!/3","doc":"Same as create_followup_message/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#create_followup_message!/3"},{"type":"function","title":"Nostrum.Api.create_global_application_command/2","doc":"Create a new global application command. The new command will be available on all guilds in around an hour. If you want to test commands, use create_guild_application_command/2 instead, as commands will become available instantly there. If an existing command with the same name exists, it will be overwritten. Parameters application_id : Application ID for which to create the command. If not given, this will be fetched from Me . command : Command configuration, see the linked API documentation for reference. Return value The created command. See the official reference: https://discord.com/developers/docs/interactions/application-commands#create-global-application-command Example Nostrum.Api . create_application_command ( %{ name : "edit" , description : "ed, man! man, ed" , options : [ ] } )","ref":"Nostrum.Api.html#create_global_application_command/2"},{"type":"function","title":"Nostrum.Api.create_group_dm/2","doc":"Creates a new group DM channel. If successful, returns {:ok, group_dm_channel} . Otherwise, returns a Nostrum.Api.error/0 . access_tokens are user oauth2 tokens. nicks is a map that maps a user id to a nickname. Examples Nostrum.Api . create_group_dm ( [ "6qrZcUqja7812RVdnEKjpzOL4CvHBFG" ] , %{ 41771983423143937 => "My Nickname" } ) { :ok , % Nostrum.Struct.Channel { type : 3 } }","ref":"Nostrum.Api.html#create_group_dm/2"},{"type":"function","title":"Nostrum.Api.create_group_dm!/2","doc":"Same as create_group_dm/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#create_group_dm!/2"},{"type":"function","title":"Nostrum.Api.create_guild_application_command/3","doc":"Create a guild application command on the specified guild. The new command will be available immediately. Parameters application_id : Application ID for which to create the command. If not given, this will be fetched from Me . guild_id : Guild on which to create the command. command : Command configuration, see the linked API documentation for reference. Return value The created command. See the official reference: https://discord.com/developers/docs/interactions/application-commands#create-guild-application-command","ref":"Nostrum.Api.html#create_guild_application_command/3"},{"type":"function","title":"Nostrum.Api.create_guild_auto_moderation_rule/2","doc":"Create a new auto-moderation rule for a guild. Options :name ( String.t/0 ) - The name of the rule. :event_type ( t:AutoModerationRule.event_type/0 ) - The type of event that triggers the rule. :trigger_type ( t:AutoModerationRule.trigger_type/0 ) - The type of content that triggers the rule. :trigger_metadata ( t:AutoModerationRule.trigger_metadata/0 ) - The metadata associated with the rule trigger. optional, based on the :trigger_type . :actions ( t:AutoModerationRule.actions/0 ) - The actions to take when the rule is triggered. :enabled ( t:AutoModerationRule.enabled/0 ) - Whether the rule is enabled or not. optional, defaults to false . :exempt_roles - ( t:AutoModerationRule.exempt_roles/0 ) - A list of role id's that are exempt from the rule. optional, defaults to [] , maximum of 20. :exempt_channels - ( t:AutoModerationRule.exempt_channels/0 ) - A list of channel id's that are exempt from the rule. optional, defaults to [] , maximum of 50.","ref":"Nostrum.Api.html#create_guild_auto_moderation_rule/2"},{"type":"function","title":"Nostrum.Api.create_guild_ban/4","doc":"Bans a user from a guild. User to delete is specified by guild_id and user_id . An optional reason can be specified for the audit log.","ref":"Nostrum.Api.html#create_guild_ban/4"},{"type":"function","title":"Nostrum.Api.create_guild_channel/2","doc":"Creates a channel for a guild. This endpoint requires the MANAGE_CHANNELS permission. It fires a Nostrum.Consumer.channel_create/0 event. If successful, returns {:ok, channel} . Otherwise, returns a Nostrum.Api.error/0 . Options :name (string) - channel name (2-100 characters) :type (integer) - the type of channel (See Nostrum.Struct.Channel ) :topic (string) - channel topic (0-1024 characters) :bitrate (integer) - the bitrate (in bits) of the voice channel (voice only) :user_limit (integer) - the user limit of the voice channel (voice only) :permission_overwrites (list of Nostrum.Struct.Overwrite.t/0 or equivalent map) - the channel's permission overwrites :parent_id ( Nostrum.Struct.Channel.id/0 ) - id of the parent category for a channel :nsfw (boolean) - if the channel is nsfw :name is always required. Examples Nostrum.Api . create_guild_channel ( 81384788765712384 , name : "elixir-nostrum" , topic : "craig's domain" ) { :ok , % Nostrum.Struct.Channel { guild_id : 81384788765712384 } }","ref":"Nostrum.Api.html#create_guild_channel/2"},{"type":"function","title":"Nostrum.Api.create_guild_channel!/2","doc":"Same as create_guild_channel/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#create_guild_channel!/2"},{"type":"function","title":"Nostrum.Api.create_guild_emoji/3","doc":"Creates a new emoji for the given guild. This endpoint requires the MANAGE_EMOJIS permission. It fires a Nostrum.Consumer.guild_emojis_update/0 event. An optional reason can be provided for the audit log. If successful, returns {:ok, emoji} . Otherwise, returns Nostrum.Api.error/0 . Options :name (string) - name of the emoji :image (base64 data URI) - the 128x128 emoji image. Maximum size of 256kb :roles (list of Nostrum.Snowflake.t/0 ) - roles for which this emoji will be whitelisted (default: []) :name and :image are always required. Examples image = "data:image/png;base64,YXl5IGJieSB1IGx1a2luIDQgc3VtIGZ1az8=" Nostrum.Api . create_guild_emoji ( 43189401384091 , name : "nostrum" , image : image , roles : [ ] )","ref":"Nostrum.Api.html#create_guild_emoji/3"},{"type":"function","title":"Nostrum.Api.create_guild_emoji!/3","doc":"Same as create_guild_emoji/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#create_guild_emoji!/3"},{"type":"function","title":"Nostrum.Api.create_guild_integrations/2","doc":"Creates a new guild integeration. Guild to create integration with is specified by guild_id . options is a map with the following requires keys: type - Integration type. id - Integeration id.","ref":"Nostrum.Api.html#create_guild_integrations/2"},{"type":"function","title":"Nostrum.Api.create_guild_role/3","doc":"Creates a guild role. An optional reason for the audit log can be provided via reason . This endpoint requires the MANAGE_ROLES permission. It fires a Nostrum.Consumer.guild_role_create/0 event. If successful, returns {:ok, role} . Otherwise, returns a Nostrum.Api.error/0 . Options :name (string) - name of the role (default: "new role") :permissions (integer) - bitwise of the enabled/disabled permissions (default: @everyone perms) :color (integer) - RGB color value (default: 0) :hoist (boolean) - whether the role should be displayed separately in the sidebar (default: false) :mentionable (boolean) - whether the role should be mentionable (default: false) :icon (string) - URL role icon (default: nil ) :unicode_emoji (string) - standard unicode character emoji role icon (default: nil ) Examples Nostrum.Api . create_guild_role ( 41771983423143937 , name : "nostrum-club" , hoist : true )","ref":"Nostrum.Api.html#create_guild_role/3"},{"type":"function","title":"Nostrum.Api.create_guild_role!/3","doc":"Same as create_guild_role/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#create_guild_role!/3"},{"type":"function","title":"Nostrum.Api.create_guild_scheduled_event/3","doc":"Creates a new scheduled event for the guild. Options :channel_id - ( Nostrum.Snowflake.t/0 ) optional channel id for the event :entity_metadata - ( Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.t/0 ) metadata for the event :name - (string) required name for the event :privacy_level - (integer) at the time of writing, this must always be 2 for GUILD_ONLY :scheduled_start_time - required time for the event to start as a DateTime or (ISO8601 timestamp)[ DateTime.to_iso8601/3 ] :scheduled_end_time - optional time for the event to end as a DateTime or (ISO8601 timestamp)[ DateTime.to_iso8601/3 ] :description - (string) optional description for the event :entity_type - (integer) an integer representing the type of entity the event is for 1 - STAGE_INSTANCE 2 - VOICE 3 - EXTERNAL See the (official documentation)[ https://discord.com/developers/docs/resources/guild-scheduled-event] for more information. An optional reason can be specified for the audit log.","ref":"Nostrum.Api.html#create_guild_scheduled_event/3"},{"type":"function","title":"Nostrum.Api.create_interaction_response/2","doc":"Same as create_interaction_response/3 , but directly takes the Nostrum.Struct.Interaction.t/0 received from the gateway.","ref":"Nostrum.Api.html#create_interaction_response/2"},{"type":"function","title":"Nostrum.Api.create_interaction_response/3","doc":"Create a response to an interaction received from the gateway. Parameters id : The interaction ID to which the response should be created. token : The interaction token. response : An InteractionResponse object. See the linked documentation. Attachments To include attachments in the response, you can include a :files field in the response. This field expects a list of attachments which can be in either of the following formats: A path to the file to upload. A map with the following fields: :body The file contents. :name The filename of the file. Example response = %{ type : 4 , data : %{ content : "I copy and pasted this code." } } Nostrum.Api . create_interaction_response ( interaction , response ) As an alternative to passing the interaction ID and token, the original Nostrum.Struct.Interaction.t/0 can also be passed directly. See create_interaction_response/2 .","ref":"Nostrum.Api.html#create_interaction_response/3"},{"type":"function","title":"Nostrum.Api.create_interaction_response!/2","doc":"Same as create_interaction_response/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#create_interaction_response!/2"},{"type":"function","title":"Nostrum.Api.create_interaction_response!/3","doc":"","ref":"Nostrum.Api.html#create_interaction_response!/3"},{"type":"function","title":"Nostrum.Api.create_message/2","doc":"Posts a message to a guild text or DM channel. This endpoint requires the VIEW_CHANNEL and SEND_MESSAGES permissions. It may situationally need the SEND_MESSAGES_TTS permission. It fires the Nostrum.Consumer.message_create/0 event. If options is a string, options will be used as the message's content. If successful, returns {:ok, message} . Otherwise, returns a Nostrum.Api.error/0 . Options :content (string) - the message contents (up to 2000 characters) :nonce ( Nostrum.Snowflake.t/0 ) - a nonce that can be used for optimistic message sending :tts (boolean) - true if this is a TTS message :file ( Path.t/0 | map) - the path of the file being sent, or a map with the following keys if sending a binary from memory :name (string) - the name of the file :body (string) - binary you wish to send :files - a list of files where each element is the same format as the :file option. If both :file and :files are specified, :file will be prepended to the :files list. :embeds ( Nostrum.Struct.Embed.t/0 ) - a list of embedded rich content :allowed_mentions ( allowed_mentions/0 ) - see the allowed mentions type documentation :message_reference ( map ) - See "Message references" below :poll ( Nostrum.Struct.Message.Poll.t/0 ) - A poll object to send with the message At least one of the following is required: :content , :file , :embeds , :poll . Message reference You can create a reply to another message on guilds using this option, given that you have the VIEW_MESSAGE_HISTORY permission. To do so, include the message_reference field in your call. The complete structure documentation can be found on the Discord Developer Portal , but simply passing message_id will suffice: def my_command ( msg ) do # Reply to the author - ``msg`` is a ``Nostrum.Struct.Message`` Nostrum.Api . create_message ( msg . channel_id , content : "Hello" , message_reference : %{ message_id : msg . id } ) end Passing a list will merge the settings provided Examples Nostrum.Api . create_message ( 43189401384091 , content : "hello world!" ) Nostrum.Api . create_message ( 43189401384091 , "hello world!" ) import Nostrum.Struct.Embed embed = % Nostrum.Struct.Embed { } |> put_title ( "embed" ) |> put_description ( "new desc" ) Nostrum.Api . create_message ( 43189401384091 , embeds : [ embed ] ) Nostrum.Api . create_message ( 43189401384091 , file : "/path/to/file.txt" ) Nostrum.Api . create_message ( 43189401384091 , content : "hello world!" , embeds : [ embed ] , file : "/path/to/file.txt" ) Nostrum.Api . create_message ( 43189401384091 , content : "Hello @everyone" , allowed_mentions : :none )","ref":"Nostrum.Api.html#create_message/2"},{"type":"function","title":"Nostrum.Api.create_message!/2","doc":"Same as create_message/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#create_message!/2"},{"type":"function","title":"Nostrum.Api.create_reaction/3","doc":"Creates a reaction for a message. This endpoint requires the VIEW_CHANNEL and READ_MESSAGE_HISTORY permissions. Additionally, if nobody else has reacted to the message with the emoji , this endpoint requires the ADD_REACTIONS permission. It fires a Nostrum.Consumer.message_reaction_add/0 event. If successful, returns {:ok} . Otherwise, returns Nostrum.Api.error/0 . Examples # Using a Nostrum.Struct.Emoji. emoji = % Nostrum.Struct.Emoji { id : 43819043108 , name : "foxbot" } Nostrum.Api . create_reaction ( 123123123123 , 321321321321 , emoji ) # Using a base 16 emoji string. Nostrum.Api . create_reaction ( 123123123123 , 321321321321 , " \\x F0 \\x 9F \\x 98 \\x 81" ) For other emoji string examples, see Nostrum.Struct.Emoji.api_name/0 .","ref":"Nostrum.Api.html#create_reaction/3"},{"type":"function","title":"Nostrum.Api.create_reaction!/3","doc":"Same as create_reaction/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#create_reaction!/3"},{"type":"function","title":"Nostrum.Api.create_webhook/3","doc":"Creates a webhook. Parameters channel_id - Id of the channel to send the message to. args - Map with the following required keys: name - Name of the webhook. avatar - Base64 128x128 jpeg image for the default avatar. reason - An optional reason for the guild audit log.","ref":"Nostrum.Api.html#create_webhook/3"},{"type":"function","title":"Nostrum.Api.delete_all_reactions/2","doc":"Deletes all reactions from a message. This endpoint requires the VIEW_CHANNEL , READ_MESSAGE_HISTORY , and MANAGE_MESSAGES permissions. It fires a Nostrum.Consumer.message_reaction_remove_all/0 event. If successful, returns {:ok} . Otherwise, return Nostrum.Api.error/0 .","ref":"Nostrum.Api.html#delete_all_reactions/2"},{"type":"function","title":"Nostrum.Api.delete_all_reactions!/2","doc":"Same as delete_all_reactions/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_all_reactions!/2"},{"type":"function","title":"Nostrum.Api.delete_channel/2","doc":"Deletes a channel. An optional reason can be provided for the guild audit log. If deleting a Nostrum.Struct.Channel.guild_channel/0 , this endpoint requires the MANAGE_CHANNELS permission. It fires a Nostrum.Consumer.channel_delete/0 . If a Nostrum.Struct.Channel.guild_category_channel/0 is deleted, then a Nostrum.Consumer.channel_update/0 event will fire for each channel under the category. If successful, returns {:ok, channel} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . delete_channel ( 421533712753360896 ) { :ok , % Nostrum.Struct.Channel { id : 421533712753360896 } }","ref":"Nostrum.Api.html#delete_channel/2"},{"type":"function","title":"Nostrum.Api.delete_channel!/2","doc":"Same as delete_channel/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_channel!/2"},{"type":"function","title":"Nostrum.Api.delete_channel_permissions/3","doc":"Delete a channel permission for a user or role. Role or user overwrite to delete is specified by channel_id and overwrite_id . An optional reason can be given for the audit log.","ref":"Nostrum.Api.html#delete_channel_permissions/3"},{"type":"function","title":"Nostrum.Api.delete_global_application_command/2","doc":"Delete an existing global application command. Parameters application_id : Application ID for which to create the command. If not given, this will be fetched from Me . command_id : The current snowflake of the command.","ref":"Nostrum.Api.html#delete_global_application_command/2"},{"type":"function","title":"Nostrum.Api.delete_guild/1","doc":"Deletes a guild. This endpoint requires that the current user is the owner of the guild. It fires the Nostrum.Consumer.guild_delete/0 event. If successful, returns {:ok} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . delete_guild ( 81384788765712384 ) { :ok }","ref":"Nostrum.Api.html#delete_guild/1"},{"type":"function","title":"Nostrum.Api.delete_guild!/1","doc":"Same as delete_guild/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_guild!/1"},{"type":"function","title":"Nostrum.Api.delete_guild_application_command/3","doc":"Delete an existing guild application command. Parameters application_id : Application ID for which to create the command. If not given, this will be fetched from Me . guild_id : The guild on which the command exists. command_id : The current snowflake of the command.","ref":"Nostrum.Api.html#delete_guild_application_command/3"},{"type":"function","title":"Nostrum.Api.delete_guild_auto_moderation_rule/2","doc":"Delete an auto-moderation rule for a guild.","ref":"Nostrum.Api.html#delete_guild_auto_moderation_rule/2"},{"type":"function","title":"Nostrum.Api.delete_guild_emoji/3","doc":"Deletes the given emoji. An optional reason can be provided for the audit log. This endpoint requires the MANAGE_EMOJIS permission. It fires a Nostrum.Consumer.guild_emojis_update/0 event. If successful, returns {:ok} . Otherwise, returns Nostrum.Api.error/0 .","ref":"Nostrum.Api.html#delete_guild_emoji/3"},{"type":"function","title":"Nostrum.Api.delete_guild_emoji!/3","doc":"Same as delete_guild_emoji/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_guild_emoji!/3"},{"type":"function","title":"Nostrum.Api.delete_guild_integrations/2","doc":"Deletes a guild integeration. Integration to delete is specified by guild_id and integeration_id .","ref":"Nostrum.Api.html#delete_guild_integrations/2"},{"type":"function","title":"Nostrum.Api.delete_guild_role/3","doc":"Deletes a role from a guild. An optional reason can be specified for the audit log. This endpoint requires the MANAGE_ROLES permission. It fires a Nostrum.Consumer.guild_role_delete/0 event. If successful, returns {:ok} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . delete_guild_role ( 41771983423143937 , 392817238471936 )","ref":"Nostrum.Api.html#delete_guild_role/3"},{"type":"function","title":"Nostrum.Api.delete_guild_role!/3","doc":"Same as delete_guild_role/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_guild_role!/3"},{"type":"function","title":"Nostrum.Api.delete_guild_scheduled_event/2","doc":"Delete a scheduled event for a guild.","ref":"Nostrum.Api.html#delete_guild_scheduled_event/2"},{"type":"function","title":"Nostrum.Api.delete_interaction_followup_message/3","doc":"Delete a followup message for an interaction. Parameters application_id : Application ID for which to create the command. If not given, this will be fetched from Me . token : Interaction token. message_id : Followup message ID.","ref":"Nostrum.Api.html#delete_interaction_followup_message/3"},{"type":"function","title":"Nostrum.Api.delete_interaction_followup_message!/3","doc":"Same as delete_interaction_followup_message/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_interaction_followup_message!/3"},{"type":"function","title":"Nostrum.Api.delete_interaction_response/1","doc":"Same as delete_interaction_response/3 , but directly takes the Nostrum.Struct.Interaction.t/0 received from the gateway.","ref":"Nostrum.Api.html#delete_interaction_response/1"},{"type":"function","title":"Nostrum.Api.delete_interaction_response/2","doc":"Deletes the original interaction response.","ref":"Nostrum.Api.html#delete_interaction_response/2"},{"type":"function","title":"Nostrum.Api.delete_interaction_response!/1","doc":"","ref":"Nostrum.Api.html#delete_interaction_response!/1"},{"type":"function","title":"Nostrum.Api.delete_interaction_response!/2","doc":"Same as delete_interaction_response/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_interaction_response!/2"},{"type":"function","title":"Nostrum.Api.delete_invite/1","doc":"Deletes an invite by its invite_code . This endpoint requires the MANAGE_CHANNELS permission. If successful, returns {:ok, invite} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . delete_invite ( "zsjUsC" )","ref":"Nostrum.Api.html#delete_invite/1"},{"type":"function","title":"Nostrum.Api.delete_invite!/1","doc":"Same as delete_invite/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_invite!/1"},{"type":"function","title":"Nostrum.Api.delete_message/1","doc":"Same as delete_message/2 , but takes a Nostrum.Struct.Message instead of a channel_id and message_id .","ref":"Nostrum.Api.html#delete_message/1"},{"type":"function","title":"Nostrum.Api.delete_message/2","doc":"Deletes a message. This endpoint requires the 'VIEW_CHANNEL' and 'MANAGE_MESSAGES' permission. It fires the MESSAGE_DELETE event. If successful, returns {:ok} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . delete_message ( 43189401384091 , 43189401384091 )","ref":"Nostrum.Api.html#delete_message/2"},{"type":"function","title":"Nostrum.Api.delete_message!/1","doc":"Same as delete_message/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_message!/1"},{"type":"function","title":"Nostrum.Api.delete_message!/2","doc":"Same as delete_message/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_message!/2"},{"type":"function","title":"Nostrum.Api.delete_own_reaction/3","doc":"Deletes a reaction the current user has made for the message. This endpoint requires the VIEW_CHANNEL and READ_MESSAGE_HISTORY permissions. It fires a Nostrum.Consumer.message_reaction_remove/0 event. If successful, returns {:ok} . Otherwise, returns Nostrum.Api.error/0 . See create_reaction/3 for similar examples.","ref":"Nostrum.Api.html#delete_own_reaction/3"},{"type":"function","title":"Nostrum.Api.delete_own_reaction!/3","doc":"Same as delete_own_reaction/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_own_reaction!/3"},{"type":"function","title":"Nostrum.Api.delete_pinned_channel_message/2","doc":"Unpins a message in a channel. This endpoint requires the 'VIEW_CHANNEL', 'READ_MESSAGE_HISTORY', and 'MANAGE_MESSAGES' permissions. It fires the Nostrum.Consumer.message_update/0 and Nostrum.Consumer.channel_pins_update/0 events. Returns {:ok} if successful. error otherwise.","ref":"Nostrum.Api.html#delete_pinned_channel_message/2"},{"type":"function","title":"Nostrum.Api.delete_pinned_channel_message!/2","doc":"Same as delete_pinned_channel_message/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_pinned_channel_message!/2"},{"type":"function","title":"Nostrum.Api.delete_reaction/3","doc":"Deletes all reactions of a given emoji from a message. This endpoint requires the MANAGE_MESSAGES permissions. It fires a Nostrum.Consumer.message_reaction_remove_emoji/0 event. If successful, returns {:ok} . Otherwise, returns Nostrum.Api.error/0 . See create_reaction/3 for similar examples.","ref":"Nostrum.Api.html#delete_reaction/3"},{"type":"function","title":"Nostrum.Api.delete_reaction!/3","doc":"Same as delete_reaction/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_reaction!/3"},{"type":"function","title":"Nostrum.Api.delete_user_reaction/4","doc":"Deletes another user's reaction from a message. This endpoint requires the VIEW_CHANNEL , READ_MESSAGE_HISTORY , and MANAGE_MESSAGES permissions. It fires a Nostrum.Consumer.message_reaction_remove/0 event. If successful, returns {:ok} . Otherwise, returns Nostrum.Api.error/0 . See create_reaction/3 for similar examples.","ref":"Nostrum.Api.html#delete_user_reaction/4"},{"type":"function","title":"Nostrum.Api.delete_user_reaction!/4","doc":"Same as delete_user_reaction/4 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#delete_user_reaction!/4"},{"type":"function","title":"Nostrum.Api.delete_webhook/2","doc":"Deletes a webhook. Parameters webhook_id - Id of webhook to delete. reason - An optional reason for the guild audit log.","ref":"Nostrum.Api.html#delete_webhook/2"},{"type":"function","title":"Nostrum.Api.edit_application_command_permissions/4","doc":"Edits command permissions for a specific command for your application in a guild. You can only add up to 10 permission overwrites for a command. Parameters application_id : Application ID commands are registered under. If not given, this will be fetched from Me . guild_id : Guild ID to fetch command permissions from. command_id : Command ID to fetch permissions for. permissions : List of application command permissions Return value This method returns a guild application command permission object, see all available values on the Discord API docs .","ref":"Nostrum.Api.html#edit_application_command_permissions/4"},{"type":"function","title":"Nostrum.Api.edit_channel_permissions/4","doc":"Edit the permission overwrites for a user or role. Role or user to overwrite is specified by overwrite_id . permission_info is a map with the following keys: type - Required; member if editing a user, role if editing a role. allow - Bitwise value of allowed permissions. deny - Bitwise value of denied permissions. type - member if editing a user, role if editing a role. An optional reason can be provided for the audit log. allow and deny are defaulted to 0 , meaning that even if you don't specify them, they will override their respective former values in an existing overwrite.","ref":"Nostrum.Api.html#edit_channel_permissions/4"},{"type":"function","title":"Nostrum.Api.edit_channel_permissions!/4","doc":"Same as edit_channel_permissions/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#edit_channel_permissions!/4"},{"type":"function","title":"Nostrum.Api.edit_global_application_command/3","doc":"Update an existing global application command. The updated command will be available on all guilds in around an hour. Parameters application_id : Application ID for which to edit the command. If not given, this will be fetched from Me . command_id : The current snowflake of the command. command : Command configuration, see the linked API documentation for reference. Return value The updated command. See the official reference: https://discord.com/developers/docs/interactions/application-commands#edit-global-application-command","ref":"Nostrum.Api.html#edit_global_application_command/3"},{"type":"function","title":"Nostrum.Api.edit_guild_application_command/4","doc":"Update an existing guild application command. The updated command will be available immediately. Parameters application_id : Application ID for which to edit the command. If not given, this will be fetched from Me . guild_id : Guild for which to update the command. command_id : The current snowflake of the command. command : Command configuration, see the linked API documentation for reference. Return value The updated command. See the official reference: https://discord.com/developers/docs/interactions/application-commands#edit-guild-application-command","ref":"Nostrum.Api.html#edit_guild_application_command/4"},{"type":"function","title":"Nostrum.Api.edit_interaction_response/2","doc":"Same as edit_interaction_response/3 , but directly takes the Nostrum.Struct.Interaction.t/0 received from the gateway.","ref":"Nostrum.Api.html#edit_interaction_response/2"},{"type":"function","title":"Nostrum.Api.edit_interaction_response/3","doc":"Edits the original interaction response. Functions the same as edit_webhook_message/3","ref":"Nostrum.Api.html#edit_interaction_response/3"},{"type":"function","title":"Nostrum.Api.edit_interaction_response!/2","doc":"Same as edit_interaction_response/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#edit_interaction_response!/2"},{"type":"function","title":"Nostrum.Api.edit_interaction_response!/3","doc":"Same as edit_interaction_response/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#edit_interaction_response!/3"},{"type":"function","title":"Nostrum.Api.edit_message/2","doc":"Same as edit_message/3 , but takes a Nostrum.Struct.Message instead of a channel_id and message_id .","ref":"Nostrum.Api.html#edit_message/2"},{"type":"function","title":"Nostrum.Api.edit_message/3","doc":"Edits a previously sent message in a channel. This endpoint requires the VIEW_CHANNEL permission. It fires the Nostrum.Consumer.message_update/0 event. If options is a string, options will be used as the message's content. If successful, returns {:ok, message} . Otherwise, returns a Nostrum.Api.error/0 . Options :content (string) - the message contents (up to 2000 characters) :embeds ( Nostrum.Struct.Embed.t/0 ) - a list of embedded rich content :files - a list of files where each element is the same format as the :file option. If both :file and :files are specified, :file will be prepended to the :files list. See create_message/2 for more information. Note that if you edit a message with attachments, all attachments that should be present after edit must be included in your request body. This includes attachments that were sent in the original request. Examples Nostrum.Api . edit_message ( 43189401384091 , 1894013840914098 , content : "hello world!" ) Nostrum.Api . edit_message ( 43189401384091 , 1894013840914098 , "hello world!" ) import Nostrum.Struct.Embed embed = % Nostrum.Struct.Embed { } |> put_title ( "embed" ) |> put_description ( "new desc" ) Nostrum.Api . edit_message ( 43189401384091 , 1894013840914098 , embeds : [ embed ] ) Nostrum.Api . edit_message ( 43189401384091 , 1894013840914098 , content : "hello world!" , embeds : [ embed ] )","ref":"Nostrum.Api.html#edit_message/3"},{"type":"function","title":"Nostrum.Api.edit_message!/2","doc":"Same as edit_message/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#edit_message!/2"},{"type":"function","title":"Nostrum.Api.edit_message!/3","doc":"Same as edit_message/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#edit_message!/3"},{"type":"function","title":"Nostrum.Api.edit_webhook_message/4","doc":"Edits a message previously created by the same webhook, args are the same as execute_webhook/3 , however all fields are optional.","ref":"Nostrum.Api.html#edit_webhook_message/4"},{"type":"function","title":"Nostrum.Api.execute_git_webhook/3","doc":"Executes a git webhook. Parameters webhook_id - Id of the webhook to execute. webhook_token - Token of the webhook to execute.","ref":"Nostrum.Api.html#execute_git_webhook/3"},{"type":"function","title":"Nostrum.Api.execute_slack_webhook/3","doc":"Executes a slack webhook. Parameters webhook_id - Id of the webhook to execute. webhook_token - Token of the webhook to execute.","ref":"Nostrum.Api.html#execute_slack_webhook/3"},{"type":"function","title":"Nostrum.Api.execute_webhook/4","doc":"Executes a webhook. Parameters webhook_id - Id of the webhook to execute. webhook_token - Token of the webhook to execute. args - Map with the following allowed keys: content - Message content. files - List of Files to send. embeds - List of embeds to send. username - Overrides the default name of the webhook. avatar_url - Overrides the default avatar of the webhook. tts - Whether the message should be read over text to speech. flags - Bitwise flags. thread_id - Send a message to the specified thread within the webhook's channel. allowed_mentions - Mentions to allow in the webhook message wait - Whether to return an error or not. Defaults to false . Note : If wait is true , this method will return a Message.t() on success. At least one of content , files or embeds should be supplied in the args parameter.","ref":"Nostrum.Api.html#execute_webhook/4"},{"type":"function","title":"Nostrum.Api.expire_poll/2","doc":"Expire (close voting on) a poll before the scheduled end time. Returns the original message containing the poll.","ref":"Nostrum.Api.html#expire_poll/2"},{"type":"function","title":"Nostrum.Api.expire_poll!/2","doc":"Same as expire_poll/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#expire_poll!/2"},{"type":"function","title":"Nostrum.Api.get_application_command_permissions/3","doc":"Fetches command permissions for a specific command for your application in a guild. Parameters application_id : Application ID commands are registered under. If not given, this will be fetched from Me . guild_id : Guild ID to fetch command permissions from. command_id : Command ID to fetch permissions for. Return value This method returns a single guild application command permission object, see all available values on the Discord API docs .","ref":"Nostrum.Api.html#get_application_command_permissions/3"},{"type":"function","title":"Nostrum.Api.get_application_information/0","doc":"Gets the bot's OAuth2 application info. Example Nostrum.Api . get_application_information { :ok , %{ bot_public : false , bot_require_code_grant : false , description : "Test" , icon : nil , id : "172150183260323840" , name : "Baba O-Riley" , owner : %{ avatar : nil , discriminator : "0042" , id : "172150183260323840" , username : "i own a bot" } , } }","ref":"Nostrum.Api.html#get_application_information/0"},{"type":"function","title":"Nostrum.Api.get_channel/1","doc":"Gets a channel. If successful, returns {:ok, channel} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_channel ( 381889573426429952 ) { :ok , % Nostrum.Struct.Channel { id : 381889573426429952 } }","ref":"Nostrum.Api.html#get_channel/1"},{"type":"function","title":"Nostrum.Api.get_channel!/1","doc":"Same as get_channel/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_channel!/1"},{"type":"function","title":"Nostrum.Api.get_channel_invites/1","doc":"Gets a list of invites for a channel. This endpoint requires the 'VIEW_CHANNEL' and 'MANAGE_CHANNELS' permissions. If successful, returns {:ok, invite} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_channel_invites ( 43189401384091 ) { :ok , [ % Nostrum.Struct.Invite { } | _ ] }","ref":"Nostrum.Api.html#get_channel_invites/1"},{"type":"function","title":"Nostrum.Api.get_channel_invites!/1","doc":"Same as get_channel_invites/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_channel_invites!/1"},{"type":"function","title":"Nostrum.Api.get_channel_message/2","doc":"Retrieves a message from a channel. This endpoint requires the 'VIEW_CHANNEL' and 'READ_MESSAGE_HISTORY' permissions. If successful, returns {:ok, message} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_channel_message ( 43189401384091 , 198238475613443 )","ref":"Nostrum.Api.html#get_channel_message/2"},{"type":"function","title":"Nostrum.Api.get_channel_message!/2","doc":"Same as get_channel_message/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_channel_message!/2"},{"type":"function","title":"Nostrum.Api.get_channel_messages/3","doc":"Retrieves a channel's messages around a locator up to a limit . This endpoint requires the 'VIEW_CHANNEL' permission. If the current user is missing the 'READ_MESSAGE_HISTORY' permission, then this function will return no messages. If successful, returns {:ok, messages} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_channel_messages ( 43189401384091 , 5 , { :before , 130230401384 } )","ref":"Nostrum.Api.html#get_channel_messages/3"},{"type":"function","title":"Nostrum.Api.get_channel_messages!/3","doc":"Same as get_channel_messages/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_channel_messages!/3"},{"type":"function","title":"Nostrum.Api.get_channel_webhooks/1","doc":"Gets a list of webhooks for a channel. Parameters channel_id - Channel to get webhooks for.","ref":"Nostrum.Api.html#get_channel_webhooks/1"},{"type":"function","title":"Nostrum.Api.get_current_user/0","doc":"Gets info on the current user. If nostrum's caching is enabled, it is recommended to use Me.get/0 instead of this function. This is because sending out an API request is much slower than pulling from our cache. If the request is successful, this function returns {:ok, user} , where user is nostrum's Nostrum.Struct.User . Otherwise, returns {:error, reason} .","ref":"Nostrum.Api.html#get_current_user/0"},{"type":"function","title":"Nostrum.Api.get_current_user!/0","doc":"Same as get_current_user/0 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_current_user!/0"},{"type":"function","title":"Nostrum.Api.get_current_user_guilds/1","doc":"Gets a list of guilds the user is currently in. This endpoint requires the guilds OAuth2 scope. If successful, returns {:ok, guilds} . Otherwise, returns a Nostrum.Api.error/0 . Options :before ( Nostrum.Snowflake.t/0 ) - get guilds before this guild ID :after ( Nostrum.Snowflake.t/0 ) - get guilds after this guild ID :limit (integer) - max number of guilds to return (1-100) Examples iex> Nostrum.Api . get_current_user_guilds ( limit : 1 ) { :ok , [ % Nostrum.Struct.Guild { } ] }","ref":"Nostrum.Api.html#get_current_user_guilds/1"},{"type":"function","title":"Nostrum.Api.get_current_user_guilds!/1","doc":"Same as get_current_user_guilds/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_current_user_guilds!/1"},{"type":"function","title":"Nostrum.Api.get_global_application_commands/1","doc":"Fetch all global commands. Parameters application_id : Application ID for which to search commands. If not given, this will be fetched from Me . Return value A list of ApplicationCommand s on success. See the official reference: https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure Example iex> Nostrum.Api . get_global_application_commands { :ok , [ %{ application_id : "455589479713865749" , description : "ed, man! man, ed" , id : "789841753196331029" , name : "edit" } ] }","ref":"Nostrum.Api.html#get_global_application_commands/1"},{"type":"function","title":"Nostrum.Api.get_guild/1","doc":"Gets a guild. If successful, returns {:ok, guild} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_guild ( 81384788765712384 ) { :ok , % Nostrum.Struct.Guild { id : 81384788765712384 } }","ref":"Nostrum.Api.html#get_guild/1"},{"type":"function","title":"Nostrum.Api.get_guild!/1","doc":"Same as get_guild/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_guild!/1"},{"type":"function","title":"Nostrum.Api.get_guild_application_command_permissions/2","doc":"Fetches command permissions for all commands for your application in a guild. Parameters application_id : Application ID commands are registered under. If not given, this will be fetched from Me . guild_id : Guild ID to fetch command permissions from. Return value This method returns a list of guild application command permission objects, see all available values on the Discord API docs .","ref":"Nostrum.Api.html#get_guild_application_command_permissions/2"},{"type":"function","title":"Nostrum.Api.get_guild_application_commands/2","doc":"Fetch all guild application commands for the given guild. Parameters application_id : Application ID for which to fetch commands. If not given, this will be fetched from Me . guild_id : The guild ID for which guild application commands should be requested. Return value A list of ApplicationCommand s on success. See the official reference: https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure","ref":"Nostrum.Api.html#get_guild_application_commands/2"},{"type":"function","title":"Nostrum.Api.get_guild_audit_log/2","doc":"Get the Nostrum.Struct.Guild.AuditLog.t/0 for the given guild_id . Options :user_id ( Nostrum.Struct.User.id/0 ) - filter the log for a user ID :action_type ( integer/0 ) - filter the log by audit log type, see Audit Log Events :before ( t:Nostrum.Struct.Snowflake.t/0 ) - filter the log before a certain entry ID :limit ( pos_integer/0 ) - how many entries are returned (default 50, minimum 1, maximum 100)","ref":"Nostrum.Api.html#get_guild_audit_log/2"},{"type":"function","title":"Nostrum.Api.get_guild_auto_moderation_rule/2","doc":"Get a single auto-moderation rule for a guild.","ref":"Nostrum.Api.html#get_guild_auto_moderation_rule/2"},{"type":"function","title":"Nostrum.Api.get_guild_auto_moderation_rules/1","doc":"Get a list of all auto-moderation rules for a guild.","ref":"Nostrum.Api.html#get_guild_auto_moderation_rules/1"},{"type":"function","title":"Nostrum.Api.get_guild_ban/2","doc":"Gets a ban object for the given user from a guild.","ref":"Nostrum.Api.html#get_guild_ban/2"},{"type":"function","title":"Nostrum.Api.get_guild_bans/1","doc":"Gets a list of users banned from a guild. Guild to get bans for is specified by guild_id .","ref":"Nostrum.Api.html#get_guild_bans/1"},{"type":"function","title":"Nostrum.Api.get_guild_channels/1","doc":"Gets a list of guild channels. If successful, returns {:ok, channels} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_guild_channels ( 81384788765712384 ) { :ok , [ % Nostrum.Struct.Channel { guild_id : 81384788765712384 } | _ ] }","ref":"Nostrum.Api.html#get_guild_channels/1"},{"type":"function","title":"Nostrum.Api.get_guild_channels!/1","doc":"Same as get_guild_channels/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_guild_channels!/1"},{"type":"function","title":"Nostrum.Api.get_guild_emoji/2","doc":"Gets an emoji for the given guild and emoji ids. This endpoint requires the MANAGE_EMOJIS permission. If successful, returns {:ok, emoji} . Otherwise, returns Nostrum.Api.error/0 .","ref":"Nostrum.Api.html#get_guild_emoji/2"},{"type":"function","title":"Nostrum.Api.get_guild_emoji!/2","doc":"Same as get_guild_emoji/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_guild_emoji!/2"},{"type":"function","title":"Nostrum.Api.get_guild_integrations/1","doc":"Gets a list of guild integerations. Guild to get integrations for is specified by guild_id .","ref":"Nostrum.Api.html#get_guild_integrations/1"},{"type":"function","title":"Nostrum.Api.get_guild_invites/1","doc":"Gets a list of invites for a guild. This endpoint requires the MANAGE_GUILD permission. If successful, returns {:ok, invites} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_guild_invites ( 81384788765712384 ) { :ok , [ % Nostrum.Struct.Invite { } | _ ] }","ref":"Nostrum.Api.html#get_guild_invites/1"},{"type":"function","title":"Nostrum.Api.get_guild_invites!/1","doc":"Same as get_guild_invites/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_guild_invites!/1"},{"type":"function","title":"Nostrum.Api.get_guild_member/2","doc":"Gets a guild member. If successful, returns {:ok, member} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_guild_member ( 4019283754613 , 184937267485 )","ref":"Nostrum.Api.html#get_guild_member/2"},{"type":"function","title":"Nostrum.Api.get_guild_member!/2","doc":"Same as get_guild_member/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_guild_member!/2"},{"type":"function","title":"Nostrum.Api.get_guild_prune_count/2","doc":"Gets the number of members that would be removed in a prune given days . This endpoint requires the KICK_MEMBERS permission. If successful, returns {:ok, %{pruned: pruned}} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_guild_prune_count ( 81384788765712384 , 1 ) { :ok , %{ pruned : 0 } }","ref":"Nostrum.Api.html#get_guild_prune_count/2"},{"type":"function","title":"Nostrum.Api.get_guild_prune_count!/2","doc":"Same as get_guild_prune_count/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_guild_prune_count!/2"},{"type":"function","title":"Nostrum.Api.get_guild_roles/1","doc":"Gets a guild's roles. If successful, returns {:ok, roles} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_guild_roles ( 147362948571673 )","ref":"Nostrum.Api.html#get_guild_roles/1"},{"type":"function","title":"Nostrum.Api.get_guild_roles!/1","doc":"Same as get_guild_roles/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_guild_roles!/1"},{"type":"function","title":"Nostrum.Api.get_guild_scheduled_event/2","doc":"Get a scheduled event for a guild.","ref":"Nostrum.Api.html#get_guild_scheduled_event/2"},{"type":"function","title":"Nostrum.Api.get_guild_scheduled_event_users/3","doc":"Get a list of users who have subscribed to an event. Options All are optional, with their default values listed. :limit (integer) maximum number of users to return, defaults to 100 :with_member (boolean) whether to include the member object for each user, defaults to false :before ( Nostrum.Snowflake.t/0 ) return only users before this user id, defaults to nil :after ( Nostrum.Snowflake.t/0 ) return only users after this user id, defaults to nil","ref":"Nostrum.Api.html#get_guild_scheduled_event_users/3"},{"type":"function","title":"Nostrum.Api.get_guild_scheduled_events/1","doc":"Get a list of scheduled events for a guild.","ref":"Nostrum.Api.html#get_guild_scheduled_events/1"},{"type":"function","title":"Nostrum.Api.get_guild_webhooks/1","doc":"Gets a list of webhooks for a guild. Parameters guild_id - Guild to get webhooks for.","ref":"Nostrum.Api.html#get_guild_webhooks/1"},{"type":"function","title":"Nostrum.Api.get_guild_widget/1","doc":"Gets a guild embed.","ref":"Nostrum.Api.html#get_guild_widget/1"},{"type":"function","title":"Nostrum.Api.get_invite/2","doc":"Gets an invite by its invite_code . If successful, returns {:ok, invite} . Otherwise, returns a Nostrum.Api.error/0 . Options :with_counts (boolean) - whether to include member count fields Examples Nostrum.Api . get_invite ( "zsjUsC" ) Nostrum.Api . get_invite ( "zsjUsC" , with_counts : true )","ref":"Nostrum.Api.html#get_invite/2"},{"type":"function","title":"Nostrum.Api.get_invite!/2","doc":"Same as get_invite/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_invite!/2"},{"type":"function","title":"Nostrum.Api.get_original_interaction_response/1","doc":"Retrieves the original message of an interaction.","ref":"Nostrum.Api.html#get_original_interaction_response/1"},{"type":"function","title":"Nostrum.Api.get_pinned_messages/1","doc":"Retrieves all pinned messages from a channel. This endpoint requires the 'VIEW_CHANNEL' and 'READ_MESSAGE_HISTORY' permissions. If successful, returns {:ok, messages} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_pinned_messages ( 43189401384091 )","ref":"Nostrum.Api.html#get_pinned_messages/1"},{"type":"function","title":"Nostrum.Api.get_pinned_messages!/1","doc":"Same as get_pinned_messages/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_pinned_messages!/1"},{"type":"function","title":"Nostrum.Api.get_poll_answer_voters/4","doc":"Get voters for the provided answer on the poll attached to the provided message. If successful, returns {:ok, users} . Otherwise, returns Nostrum.Api.error/0 . The optional params are after , the user ID to query after, absent by default, and limit , the max number of users to return, 1-100, 25 by default. Results are sorted by Discord user snowflake (ID) in ascending order.","ref":"Nostrum.Api.html#get_poll_answer_voters/4"},{"type":"function","title":"Nostrum.Api.get_poll_answer_voters!/4","doc":"Same as get_poll_answer_voters/4 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_poll_answer_voters!/4"},{"type":"function","title":"Nostrum.Api.get_reactions/4","doc":"Gets all users who reacted with an emoji. This endpoint requires the VIEW_CHANNEL and READ_MESSAGE_HISTORY permissions. If successful, returns {:ok, users} . Otherwise, returns Nostrum.Api.error/0 . The optional params are after , the user ID to query after, absent by default, and limit , the max number of users to return, 1-100, 25 by default. See create_reaction/3 for similar examples.","ref":"Nostrum.Api.html#get_reactions/4"},{"type":"function","title":"Nostrum.Api.get_reactions!/4","doc":"Same as get_reactions/4 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_reactions!/4"},{"type":"function","title":"Nostrum.Api.get_thread_member/2","doc":"Returns a thread member object for the specified user if they are a member of the thread","ref":"Nostrum.Api.html#get_thread_member/2"},{"type":"function","title":"Nostrum.Api.get_thread_members/1","doc":"Returns a list of thread members for the specified thread. This endpoint is restricted according to whether the GUILD_MEMBERS privileged intent is enabled.","ref":"Nostrum.Api.html#get_thread_members/1"},{"type":"function","title":"Nostrum.Api.get_token/0","doc":"Returns the token of the bot.","ref":"Nostrum.Api.html#get_token/0"},{"type":"function","title":"Nostrum.Api.get_user/1","doc":"Gets a user by its Nostrum.Struct.User.id/0 . If the request is successful, this function returns {:ok, user} , where user is a Nostrum.Struct.User . Otherwise, returns {:error, reason} .","ref":"Nostrum.Api.html#get_user/1"},{"type":"function","title":"Nostrum.Api.get_user!/1","doc":"Same as get_user/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_user!/1"},{"type":"function","title":"Nostrum.Api.get_user_connections/0","doc":"Gets a list of user connections.","ref":"Nostrum.Api.html#get_user_connections/0"},{"type":"function","title":"Nostrum.Api.get_user_dms/0","doc":"Gets a list of our user's DM channels. If successful, returns {:ok, dm_channels} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . get_user_dms ( ) { :ok , [ % Nostrum.Struct.Channel { type : 1 } | _ ] }","ref":"Nostrum.Api.html#get_user_dms/0"},{"type":"function","title":"Nostrum.Api.get_user_dms!/0","doc":"Same as get_user_dms/0 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#get_user_dms!/0"},{"type":"function","title":"Nostrum.Api.get_voice_region/1","doc":"Gets a list of voice regions for the guild. Guild to get voice regions for is specified by guild_id .","ref":"Nostrum.Api.html#get_voice_region/1"},{"type":"function","title":"Nostrum.Api.get_webhook/1","doc":"Gets a webhook by id. Parameters webhook_id - Id of the webhook to get.","ref":"Nostrum.Api.html#get_webhook/1"},{"type":"function","title":"Nostrum.Api.get_webhook_message/2","doc":"Retrieves the original message of a webhook.","ref":"Nostrum.Api.html#get_webhook_message/2"},{"type":"function","title":"Nostrum.Api.get_webhook_with_token/2","doc":"Gets a webhook by id and token. This method is exactly like get_webhook/1 but does not require authentication. Parameters webhook_id - Id of the webhook to get. webhook_token - Token of the webhook to get.","ref":"Nostrum.Api.html#get_webhook_with_token/2"},{"type":"function","title":"Nostrum.Api.join_thread/1","doc":"Join an existing thread, requires that the thread is not archived.","ref":"Nostrum.Api.html#join_thread/1"},{"type":"function","title":"Nostrum.Api.leave_guild/1","doc":"Leaves a guild. Guild to leave is specified by guild_id .","ref":"Nostrum.Api.html#leave_guild/1"},{"type":"function","title":"Nostrum.Api.leave_thread/1","doc":"Leave a thread, requires that the thread is not archived.","ref":"Nostrum.Api.html#leave_thread/1"},{"type":"function","title":"Nostrum.Api.list_guild_emojis/1","doc":"Gets a list of emojis for a given guild. This endpoint requires the MANAGE_EMOJIS permission. If successful, returns {:ok, emojis} . Otherwise, returns Nostrum.Api.error/0 .","ref":"Nostrum.Api.html#list_guild_emojis/1"},{"type":"function","title":"Nostrum.Api.list_guild_emojis!/1","doc":"Same as list_guild_emojis/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#list_guild_emojis!/1"},{"type":"function","title":"Nostrum.Api.list_guild_members/2","doc":"Gets a list of a guild's members. If successful, returns {:ok, members} . Otherwise, returns a Nostrum.Api.error/0 . Options :limit (integer) - max number of members to return (1-1000) (default: 1) :after ( Nostrum.Struct.User.id/0 ) - the highest user id in the previous page (default: 0) Examples Nostrum.Api . list_guild_members ( 41771983423143937 , limit : 1 )","ref":"Nostrum.Api.html#list_guild_members/2"},{"type":"function","title":"Nostrum.Api.list_guild_members!/2","doc":"Same as list_guild_members/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#list_guild_members!/2"},{"type":"function","title":"Nostrum.Api.list_guild_threads/1","doc":"Return all active threads for the current guild. Response body is a map with the following keys: threads : A list of channel objects. members : A list of ThreadMember objects, one for each returned thread the current user has joined.","ref":"Nostrum.Api.html#list_guild_threads/1"},{"type":"function","title":"Nostrum.Api.list_joined_private_archived_threads/2","doc":"Same as list_public_archived_threads/2 , but only returns private threads that the current user has joined.","ref":"Nostrum.Api.html#list_joined_private_archived_threads/2"},{"type":"function","title":"Nostrum.Api.list_private_archived_threads/2","doc":"Same as list_public_archived_threads/2 , but for private threads instead of public.","ref":"Nostrum.Api.html#list_private_archived_threads/2"},{"type":"function","title":"Nostrum.Api.list_public_archived_threads/2","doc":"Returns a list of archived threads for a given channel. Threads are sorted by the archive_timestamp field, in descending order. Response body Response body is a map with the following keys: threads : A list of channel objects. members : A list of ThreadMember objects, one for each returned thread the current user has joined. has_more : A boolean indicating whether there are more archived threads that can be fetched. Options before : Returns threads before this timestamp, can be either a DateTime or ISO8601 timestamp . limit : Optional maximum number of threads to return.","ref":"Nostrum.Api.html#list_public_archived_threads/2"},{"type":"function","title":"Nostrum.Api.list_voice_regions/0","doc":"Gets a list of voice regions.","ref":"Nostrum.Api.html#list_voice_regions/0"},{"type":"function","title":"Nostrum.Api.modify_channel/3","doc":"Modifies a channel's settings. An optional reason can be given for the guild audit log. If a Nostrum.Struct.Channel.guild_channel/0 is being modified, this endpoint requires the MANAGE_CHANNEL permission. It fires a Nostrum.Consumer.channel_update/0 event. If a Nostrum.Struct.Channel.guild_category_channel/0 is being modified, then this endpoint fires multiple Nostrum.Consumer.channel_update/0 events. If successful, returns {:ok, channel} . Otherwise, returns a Nostrum.Api.error/0 . Options :name (string) - 2-100 character channel name :position (integer) - the position of the channel in the left-hand listing :topic (string) ( Nostrum.Struct.Channel.text_channel/0 only) - 0-1024 character channel topic :nsfw (boolean) ( Nostrum.Struct.Channel.text_channel/0 only) - if the channel is nsfw :bitrate (integer) ( Nostrum.Struct.Channel.voice_channel/0 only) - the bitrate (in bits) of the voice channel; 8000 to 96000 (128000 for VIP servers) :user_limit (integer) ( Nostrum.Struct.Channel.voice_channel/0 only) - the user limit of the voice channel; 0 refers to no limit, 1 to 99 refers to a user limit :permission_overwrites (list of Nostrum.Struct.Overwrite.t/0 or equivalent map) - channel or category-specific permissions :parent_id ( Nostrum.Struct.Channel.id/0 ) ( Nostrum.Struct.Channel.guild_channel/0 only) - id of the new parent category for a channel Examples Nostrum.Api . modify_channel ( 41771983423143933 , name : "elixir-nostrum" , topic : "nostrum discussion" ) { :ok , % Nostrum.Struct.Channel { id : 41771983423143933 , name : "elixir-nostrum" , topic : "nostrum discussion" } } Nostrum.Api . modify_channel ( 41771983423143933 ) { :ok , % Nostrum.Struct.Channel { id : 41771983423143933 } }","ref":"Nostrum.Api.html#modify_channel/3"},{"type":"function","title":"Nostrum.Api.modify_channel!/3","doc":"Same as modify_channel/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#modify_channel!/3"},{"type":"function","title":"Nostrum.Api.modify_current_user/1","doc":"Changes the username or avatar of the current user. Options :username (string) - new username :avatar (string) - the user's avatar as avatar data Examples Nostrum.Api . modify_current_user ( avatar : "data:image/jpeg;base64,YXl5IGJieSB1IGx1a2luIDQgc3VtIGZ1az8=" )","ref":"Nostrum.Api.html#modify_current_user/1"},{"type":"function","title":"Nostrum.Api.modify_current_user!/1","doc":"Same as modify_current_user/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#modify_current_user!/1"},{"type":"function","title":"Nostrum.Api.modify_current_user_nick/2","doc":"Modifies the nickname of the current user in a guild. If successful, returns {:ok, %{nick: nick}} . Otherwise, returns a Nostrum.Api.error/0 . Options :nick (string) - value to set users nickname to Examples Nostrum.Api . modify_current_user_nick ( 41771983423143937 , nick : "Nostrum" ) { :ok , %{ nick : "Nostrum" } }","ref":"Nostrum.Api.html#modify_current_user_nick/2"},{"type":"function","title":"Nostrum.Api.modify_current_user_nick!/2","doc":"Same as modify_current_user_nick/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#modify_current_user_nick!/2"},{"type":"function","title":"Nostrum.Api.modify_guild/3","doc":"Modifies a guild's settings. This endpoint requires the MANAGE_GUILD permission. It fires the Nostrum.Consumer.guild_update/0 event. An optional reason can be provided for the audit log. If successful, returns {:ok, guild} . Otherwise, returns a Nostrum.Api.error/0 . Options :name (string) - guild name :region (string) - guild voice region id :verification_level (integer) - verification level :default_message_notifications (integer) - default message notification level :explicit_content_filter (integer) - explicit content filter level :afk_channel_id ( Nostrum.Snowflake.t/0 ) - id for afk channel :afk_timeout (integer) - afk timeout in seconds :icon (base64 data URI) - 128x128 jpeg image for the guild icon :owner_id ( Nostrum.Snowflake.t/0 ) - user id to transfer guild ownership to (must be owner) :splash (base64 data URI) - 128x128 jpeg image for the guild splash (VIP only) :system_channel_id ( Nostrum.Snowflake.t/0 ) - the id of the channel to which system messages are sent :rules_channel_id ( Nostrum.Snowflake.t/0 ) - the id of the channel that is used for rules in public guilds :public_updates_channel_id ( Nostrum.Snowflake.t/0 ) - the id of the channel where admins and moderators receive notices from Discord in public guilds Examples Nostrum.Api . modify_guild ( 451824027976073216 , name : "Nose Drum" ) { :ok , % Nostrum.Struct.Guild { id : 451824027976073216 , name : "Nose Drum" , ... } }","ref":"Nostrum.Api.html#modify_guild/3"},{"type":"function","title":"Nostrum.Api.modify_guild!/2","doc":"Same as modify_guild/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#modify_guild!/2"},{"type":"function","title":"Nostrum.Api.modify_guild_auto_moderation_rule/3","doc":"Modify an auto-moderation rule for a guild. Takes the same options as create_guild_auto_moderation_rule/2 , however all fields are optional.","ref":"Nostrum.Api.html#modify_guild_auto_moderation_rule/3"},{"type":"function","title":"Nostrum.Api.modify_guild_channel_positions/2","doc":"Reorders a guild's channels. This endpoint requires the MANAGE_CHANNELS permission. It fires multiple Nostrum.Consumer.channel_update/0 events. If successful, returns {:ok, channels} . Otherwise, returns a Nostrum.Api.error/0 . positions is a list of maps that each map a channel id with a position. Examples Nostrum.Api . modify_guild_channel_positions ( 279093381723062272 , [ %{ id : 351500354581692420 , position : 2 } ] ) { :ok }","ref":"Nostrum.Api.html#modify_guild_channel_positions/2"},{"type":"function","title":"Nostrum.Api.modify_guild_channel_positions!/2","doc":"Same as modify_guild_channel_positions/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#modify_guild_channel_positions!/2"},{"type":"function","title":"Nostrum.Api.modify_guild_emoji/4","doc":"Modify the given emoji. This endpoint requires the MANAGE_EMOJIS permission. It fires a Nostrum.Consumer.guild_emojis_update/0 event. An optional reason can be provided for the audit log. If successful, returns {:ok, emoji} . Otherwise, returns Nostrum.Api.error/0 . Options :name (string) - name of the emoji :roles (list of Nostrum.Snowflake.t/0 ) - roles to which this emoji will be whitelisted Examples Nostrum.Api . modify_guild_emoji ( 43189401384091 , 4314301984301 , name : "elixir" , roles : [ ] )","ref":"Nostrum.Api.html#modify_guild_emoji/4"},{"type":"function","title":"Nostrum.Api.modify_guild_emoji!/4","doc":"Same as modify_guild_emoji/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#modify_guild_emoji!/4"},{"type":"function","title":"Nostrum.Api.modify_guild_integrations/3","doc":"Changes the settings and behaviours for a guild integeration. Integration to modify is specified by guild_id and integeration_id . options is a map with the following keys: expire_behavior - Expiry behavior. expire_grace_period - Period where the integration will ignore elapsed subs. enable_emoticons - Whether emoticons should be synced.","ref":"Nostrum.Api.html#modify_guild_integrations/3"},{"type":"function","title":"Nostrum.Api.modify_guild_member/4","doc":"Modifies a guild member's attributes. This endpoint fires the Nostrum.Consumer.guild_member_update/0 event. It situationally requires the MANAGE_NICKNAMES , MANAGE_ROLES , MUTE_MEMBERS , DEAFEN_MEMBERS , and MOVE_MEMBERS permissions. If successful, returns {:ok, member} . Otherwise, returns a Nostrum.Api.error/0 . An optional reason argument can be given for the audit log. Options :nick (string) - value to set users nickname to :roles (list of Nostrum.Snowflake.t/0 ) - array of role ids the member is assigned :mute (boolean) - if the user is muted :deaf (boolean) - if the user is deafened :channel_id ( Nostrum.Snowflake.t/0 ) - id of channel to move user to (if they are connected to voice) :communication_disabled_until ( DateTime.t/0 or nil ) - datetime to disable user communication (timeout) until, or nil to remove timeout. Examples Nostrum.Api . modify_guild_member ( 41771983423143937 , 637162356451 , nick : "Nostrum" ) { :ok , % Nostrum.Struct.Member { } }","ref":"Nostrum.Api.html#modify_guild_member/4"},{"type":"function","title":"Nostrum.Api.modify_guild_member!/4","doc":"Same as modify_guild_member/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#modify_guild_member!/4"},{"type":"function","title":"Nostrum.Api.modify_guild_role/4","doc":"Modifies a guild role. This endpoint requires the MANAGE_ROLES permission. It fires a Nostrum.Consumer.guild_role_update/0 event. An optional reason can be specified for the audit log. If successful, returns {:ok, role} . Otherwise, returns a Nostrum.Api.error/0 . Options :name (string) - name of the role :permissions (integer) - bitwise of the enabled/disabled permissions :color (integer) - RGB color value (default: 0) :hoist (boolean) - whether the role should be displayed separately in the sidebar :mentionable (boolean) - whether the role should be mentionable Examples Nostrum.Api . modify_guild_role ( 41771983423143937 , 392817238471936 , hoist : false , name : "foo-bar" )","ref":"Nostrum.Api.html#modify_guild_role/4"},{"type":"function","title":"Nostrum.Api.modify_guild_role!/4","doc":"Same as modify_guild_role/3 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#modify_guild_role!/4"},{"type":"function","title":"Nostrum.Api.modify_guild_role_positions/3","doc":"Reorders a guild's roles. This endpoint requires the MANAGE_ROLES permission. It fires multiple Nostrum.Consumer.guild_role_update/0 events. If successful, returns {:ok, roles} . Otherwise, returns a Nostrum.Api.error/0 . positions is a list of maps that each map a role id with a position. Examples Nostrum.Api . modify_guild_role_positions ( 41771983423143937 , [ %{ id : 41771983423143936 , position : 2 } ] )","ref":"Nostrum.Api.html#modify_guild_role_positions/3"},{"type":"function","title":"Nostrum.Api.modify_guild_role_positions!/3","doc":"Same as modify_guild_role_positions/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#modify_guild_role_positions!/3"},{"type":"function","title":"Nostrum.Api.modify_guild_scheduled_event/4","doc":"Modify a scheduled event for a guild. Options are the same as for create_guild_scheduled_event/2 except all fields are optional, with the additional optional integer field :status which can be one of: 1 - SCHEDULED 2 - ACTIVE 3 - COMPLETED 4 - CANCELLED Copied from the official documentation: If updating entity_type to EXTERNAL : channel_id is required and must be set to null entity_metadata with a location field must be provided scheduled_end_time must be provided","ref":"Nostrum.Api.html#modify_guild_scheduled_event/4"},{"type":"function","title":"Nostrum.Api.modify_guild_widget/2","doc":"Modifies a guild embed.","ref":"Nostrum.Api.html#modify_guild_widget/2"},{"type":"function","title":"Nostrum.Api.modify_webhook/3","doc":"Modifies a webhook. Parameters webhook_id - Id of the webhook to modify. args - Map with the following optional keys: name - Name of the webhook. avatar - Base64 128x128 jpeg image for the default avatar. reason - An optional reason for the guild audit log.","ref":"Nostrum.Api.html#modify_webhook/3"},{"type":"function","title":"Nostrum.Api.modify_webhook_with_token/4","doc":"Modifies a webhook with a token. This method is exactly like modify_webhook/1 but does not require authentication. Parameters webhook_id - Id of the webhook to modify. webhook_token - Token of the webhook to get. args - Map with the following optional keys: name - Name of the webhook. avatar - Base64 128x128 jpeg image for the default avatar. reason - An optional reason for the guild audit log.","ref":"Nostrum.Api.html#modify_webhook_with_token/4"},{"type":"function","title":"Nostrum.Api.remove_guild_ban/3","doc":"Removes a ban for a user. User to unban is specified by guild_id and user_id . An optional reason can be specified for the audit log.","ref":"Nostrum.Api.html#remove_guild_ban/3"},{"type":"function","title":"Nostrum.Api.remove_guild_member/3","doc":"Removes a member from a guild. This event requires the KICK_MEMBERS permission. It fires a Nostrum.Consumer.guild_member_remove/0 event. An optional reason can be provided for the audit log with reason . If successful, returns {:ok} . Otherwise, returns a Nostrum.Api.error/0 . Examples Nostrum.Api . remove_guild_member ( 1453827904102291 , 18739485766253 ) { :ok }","ref":"Nostrum.Api.html#remove_guild_member/3"},{"type":"function","title":"Nostrum.Api.remove_guild_member!/3","doc":"Same as remove_guild_member/2 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#remove_guild_member!/3"},{"type":"function","title":"Nostrum.Api.remove_guild_member_role/4","doc":"Removes a role from a member. Role to remove is specified by role_id . User to remove role from is specified by guild_id and user_id . An optional reason can be given for the audit log.","ref":"Nostrum.Api.html#remove_guild_member_role/4"},{"type":"function","title":"Nostrum.Api.remove_thread_member/2","doc":"Removes another user from a thread, requires that the thread is not archived. Also requires the MANAGE_THREADS permission, or the creator of the thread if the thread is private.","ref":"Nostrum.Api.html#remove_thread_member/2"},{"type":"function","title":"Nostrum.Api.request/1","doc":"","ref":"Nostrum.Api.html#request/1"},{"type":"function","title":"Nostrum.Api.request/4","doc":"","ref":"Nostrum.Api.html#request/4"},{"type":"function","title":"Nostrum.Api.request_multipart/4","doc":"","ref":"Nostrum.Api.html#request_multipart/4"},{"type":"function","title":"Nostrum.Api.start_thread/3","doc":"Create a thread on a channel without an associated message. If successful, returns {:ok, Channel} . Otherwise returns a Nostrum.Api.error/0 . An optional reason argument can be given for the audit log. Options name : Name of the thread, max 100 characters. type : Type of thread, can be either 11 ( GUILD_PUBLIC_THREAD ) or 12 ( GUILD_PRIVATE_THREAD ). auto_archive_duration : Duration in minutes to auto-archive the thread after it has been inactive, can be set to 60, 1440, 4320, or 10080. invitable : whether non-moderators can add other non-moderators to a thread; only available when creating a private thread defaults to false . rate_limit_per_user : Rate limit per user in seconds, can be set to any value in 0..21600 .","ref":"Nostrum.Api.html#start_thread/3"},{"type":"function","title":"Nostrum.Api.start_thread_in_forum_channel/3","doc":"Create a new thread in a forum channel. If successful, returns {:ok, Channel} . Otherwise returns a Nostrum.Api.error/0 . An optional reason argument can be given for the audit log. Options name : Name of the thread, max 100 characters. auto_archive_duration : Duration in minutes to auto-archive the thread after it has been inactive, can be set to 60, 1440, 4320, or 10080. rate_limit_per_user : Rate limit per user in seconds, can be set to any value in 0..21600 . applied_tags : An array of tag ids to apply to the thread. message : The first message in the created thread. Thread Message Options content : The content of the message. embeds : A list of embeds. allowed_mentions : Allowed mentions object. components : A list of components. sticker_ids : A list of sticker ids. :files - a list of files where each element is the same format as the :file option. If both :file and :files are specified, :file will be prepended to the :files list. At least one of content , embeds , sticker_ids , or files must be specified.","ref":"Nostrum.Api.html#start_thread_in_forum_channel/3"},{"type":"function","title":"Nostrum.Api.start_thread_with_message/4","doc":"Create a thread on a channel message. The thread_id will be the same as the id of the message, as such no message can have more than one thread. If successful, returns {:ok, Channel} . Otherwise returns a Nostrum.Api.error/0 . An optional reason argument can be given for the audit log. Options name : Name of the thread, max 100 characters. auto_archive_duration : Duration in minutes to auto-archive the thread after it has been inactive, can be set to 60, 1440, 4320, or 10080. rate_limit_per_user : Rate limit per user in seconds, can be set to any value in 0..21600 .","ref":"Nostrum.Api.html#start_thread_with_message/4"},{"type":"function","title":"Nostrum.Api.start_typing/1","doc":"Triggers the typing indicator. Triggers the typing indicator in the channel specified by channel_id . The typing indicator lasts for about 8 seconds and then automatically stops. Returns {:ok} if successful. error otherwise.","ref":"Nostrum.Api.html#start_typing/1"},{"type":"function","title":"Nostrum.Api.start_typing!/1","doc":"Same as start_typing/1 , but raises Nostrum.Error.ApiError in case of failure.","ref":"Nostrum.Api.html#start_typing!/1"},{"type":"function","title":"Nostrum.Api.sync_guild_integrations/2","doc":"Syncs a guild integration. Integration to sync is specified by guild_id and integeration_id .","ref":"Nostrum.Api.html#sync_guild_integrations/2"},{"type":"function","title":"Nostrum.Api.update_shard_status/5","doc":"Updates the status of the bot for a certain shard. Parameters pid - Pid of the shard. status - Status of the bot. game - The 'playing' text of the bot. Empty will clear. type - The type of status to show. 0 (Playing) | 1 (Streaming) | 2 (Listening) | 3 (Watching) stream - URL of twitch.tv stream","ref":"Nostrum.Api.html#update_shard_status/5"},{"type":"function","title":"Nostrum.Api.update_status/4","doc":"Updates the status of the bot for all shards. See update_shard_status/5 for usage.","ref":"Nostrum.Api.html#update_status/4"},{"type":"function","title":"Nostrum.Api.update_voice_state/4","doc":"Joins, moves, or disconnects the bot from a voice channel. The correct shard to send the update to will be inferred from the guild_id . If a corresponding guild_id is not found a cache error will be raised. To disconnect from a channel, channel_id should be set to nil .","ref":"Nostrum.Api.html#update_voice_state/4"},{"type":"type","title":"Nostrum.Api.allowed_mention/0","doc":"Represents which mentions to allow in a message. This can be sent on its own or in a list to allow multiple types of mentions in a message, see allowed_mentions/0 for details.","ref":"Nostrum.Api.html#t:allowed_mention/0"},{"type":"type","title":"Nostrum.Api.allowed_mentions/0","doc":"Represents mentions to allow in a message. With this option you can control when content from a message should trigger a ping. Consider using this option when you are going to display user generated content. Allowed values :all (default) - Ping everything as usual :none - Nobody will be pinged :everyone - Allows to ping @here and @everyone :users - Allows to ping users :roles - Allows to ping roles {:users, list} - Allows to ping list of users. Can contain up to 100 ids of users. {:roles, list} - Allows to ping list of roles. Can contain up to 100 ids of roles. list - a list containing the values above.","ref":"Nostrum.Api.html#t:allowed_mentions/0"},{"type":"type","title":"Nostrum.Api.emoji/0","doc":"Represents an emoji for interacting with reaction endpoints.","ref":"Nostrum.Api.html#t:emoji/0"},{"type":"type","title":"Nostrum.Api.error/0","doc":"Represents a failed response from the API. This occurs when :gun fails, or when the API doesn't respond with 200 or 204 .","ref":"Nostrum.Api.html#t:error/0"},{"type":"type","title":"Nostrum.Api.limit/0","doc":"Represents a limit used to retrieve messages. Integer number of messages, or :infinity to retrieve all messages.","ref":"Nostrum.Api.html#t:limit/0"},{"type":"type","title":"Nostrum.Api.locator/0","doc":"Represents a tuple used to locate messages. The first element of the tuple is an atom. The second element will be a message_id as an integer. The tuple can also be empty to search from the most recent message in the channel","ref":"Nostrum.Api.html#t:locator/0"},{"type":"type","title":"Nostrum.Api.matrix/0","doc":"","ref":"Nostrum.Api.html#t:matrix/0"},{"type":"type","title":"Nostrum.Api.options/0","doc":"Represents optional parameters for Api functions. Each function has documentation regarding what parameters it supports or needs.","ref":"Nostrum.Api.html#t:options/0"},{"type":"type","title":"Nostrum.Api.status/0","doc":"Represents different statuses the bot can have. :dnd - Red circle. :idle - Yellow circle. :online - Green circle. :invisible - The bot will appear offline.","ref":"Nostrum.Api.html#t:status/0"},{"type":"type","title":"Nostrum.Api.thread_with_message_params/0","doc":"","ref":"Nostrum.Api.html#t:thread_with_message_params/0"},{"type":"type","title":"Nostrum.Api.thread_without_message_params/0","doc":"","ref":"Nostrum.Api.html#t:thread_without_message_params/0"},{"type":"behaviour","title":"Nostrum.Consumer","doc":"Consumer process for gateway event handling. Consuming gateway events Events are first ingested by nostrum's cache. Afterwards, they are sent to any subscribed consumers via Nostrum.ConsumerGroup . By default, nostrum will start a process for each event. This gives us free parallelism and isolation. You therefore do not need to start more than one consumer in your supervision tree. If you want to override this behaviour, implement the handle_info/2 function in your consumer. For reference, this is the default implementation: def handle_info ( { :event , event } , state ) do Task . start_link ( fn -> __MODULE__ . handle_event ( event ) end ) { :noreply , state } end Running multiple consumers Every process that is in a Nostrum.ConsumerGroup receives every event : it is therefore not recommended to create multiple consumers if a single one could accomplish the job. Example consumer An example consumer could look as follows: # Sourced from examples/event_consumer.ex defmodule ExampleSupervisor do use Supervisor def start_link ( args ) do Supervisor . start_link ( __MODULE__ , args , name : __MODULE__ ) end @impl true def init ( _init_arg ) do children = [ ExampleConsumer ] Supervisor . init ( children , strategy : :one_for_one ) end end defmodule ExampleConsumer do use Nostrum.Consumer alias Nostrum.Api def handle_event ( { :MESSAGE_CREATE , msg , _ws_state } ) do case msg . content do "!sleep" -> Api . create_message ( msg . channel_id , "Going to sleep..." ) # This won't stop other events from being handled. Process . sleep ( 3000 ) "!ping" -> Api . create_message ( msg . channel_id , "pyongyang!" ) "!raise" -> # This won't crash the entire Consumer. raise "No problems here!" _ -> :ignore end end # Default event handler, if you don't include this, your consumer WILL crash if # you don't have a method definition for each event type. def handle_event ( _event ) do :noop end end use Nostrum.Consumer Using Nostrum.Consumer will: use GenServer (as the consumer is built on GenServer ) set the behaviour to Nostrum.Consumer define child_spec/1 , start_link/1 and init/1 for the GenServer to automatically join the Nostrum.ConsumerGroup on boot define handle_info/2 to automatically dispatch any events to your handle_event/1 via a Task inject a default handle_event/1 clause to ignore any unhandled events.","ref":"Nostrum.Consumer.html"},{"type":"callback","title":"Nostrum.Consumer.handle_event/1","doc":"Callback used to handle events. Event event is a tuple describing the event. The tuple will include information in the following format: { event_name , { event_payload ( s ) } , WSState . t } For example, a message create will look like this { :MESSAGE_CREATE , Nostrum.Struct.Message . t , WSState . t } In some cases there will be multiple payloads when something is updated, so as to include the new and the old versions. In the event of there being two payloads, the old payload will always be first, followed by the new payload. { :USER_UPDATE , { old_user :: Nostrum.Struct.User . t , new_user :: Nostrum.Struct.User . t } , WSState . t ( ) } For a full listing of events, please see Nostrum.Consumer.event/0 .","ref":"Nostrum.Consumer.html#c:handle_event/1"},{"type":"type","title":"Nostrum.Consumer.auto_moderation_rule_create/0","doc":"","ref":"Nostrum.Consumer.html#t:auto_moderation_rule_create/0"},{"type":"type","title":"Nostrum.Consumer.auto_moderation_rule_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:auto_moderation_rule_delete/0"},{"type":"type","title":"Nostrum.Consumer.auto_moderation_rule_execute/0","doc":"","ref":"Nostrum.Consumer.html#t:auto_moderation_rule_execute/0"},{"type":"type","title":"Nostrum.Consumer.auto_moderation_rule_update/0","doc":"","ref":"Nostrum.Consumer.html#t:auto_moderation_rule_update/0"},{"type":"type","title":"Nostrum.Consumer.channel_create/0","doc":"Dispatched when a channel is created. Starting from API and Gateway V8 , this will never be sent for a DM.","ref":"Nostrum.Consumer.html#t:channel_create/0"},{"type":"type","title":"Nostrum.Consumer.channel_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:channel_delete/0"},{"type":"type","title":"Nostrum.Consumer.channel_pins_ack/0","doc":"","ref":"Nostrum.Consumer.html#t:channel_pins_ack/0"},{"type":"type","title":"Nostrum.Consumer.channel_pins_update/0","doc":"","ref":"Nostrum.Consumer.html#t:channel_pins_update/0"},{"type":"type","title":"Nostrum.Consumer.channel_update/0","doc":"Dispatched when a channel is updated. old_channel will be nil when the pre-update channel could not be fetched from the cache.","ref":"Nostrum.Consumer.html#t:channel_update/0"},{"type":"type","title":"Nostrum.Consumer.event/0","doc":"","ref":"Nostrum.Consumer.html#t:event/0"},{"type":"type","title":"Nostrum.Consumer.guild_audit_log_entry_create/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_audit_log_entry_create/0"},{"type":"type","title":"Nostrum.Consumer.guild_available/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_available/0"},{"type":"type","title":"Nostrum.Consumer.guild_ban_add/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_ban_add/0"},{"type":"type","title":"Nostrum.Consumer.guild_ban_remove/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_ban_remove/0"},{"type":"type","title":"Nostrum.Consumer.guild_create/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_create/0"},{"type":"type","title":"Nostrum.Consumer.guild_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_delete/0"},{"type":"type","title":"Nostrum.Consumer.guild_emojis_update/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_emojis_update/0"},{"type":"type","title":"Nostrum.Consumer.guild_integrations_update/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_integrations_update/0"},{"type":"type","title":"Nostrum.Consumer.guild_member_add/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_member_add/0"},{"type":"type","title":"Nostrum.Consumer.guild_member_remove/0","doc":"Dispatched when somebody leaves a guild. In case the guild member intent is enabled but not the guild intent, nostrum may not cache the actual guild, and thus be unable to provide full information about members leaving guilds. In that case, this event receives the guild ID and a partial member object with the leaving user as provided by Discord, but no information about the user's state on the guild.","ref":"Nostrum.Consumer.html#t:guild_member_remove/0"},{"type":"type","title":"Nostrum.Consumer.guild_member_update/0","doc":"Dispatched when a guild member is updated. old_member will be nil when the pre-update member could not be fetched from the cache.","ref":"Nostrum.Consumer.html#t:guild_member_update/0"},{"type":"type","title":"Nostrum.Consumer.guild_members_chunk/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_members_chunk/0"},{"type":"type","title":"Nostrum.Consumer.guild_role_create/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_role_create/0"},{"type":"type","title":"Nostrum.Consumer.guild_role_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_role_delete/0"},{"type":"type","title":"Nostrum.Consumer.guild_role_update/0","doc":"Dispatched when a role on a guild is updated. old_role will be nil when the pre-update role could not be fetched from the cache.","ref":"Nostrum.Consumer.html#t:guild_role_update/0"},{"type":"type","title":"Nostrum.Consumer.guild_scheduled_event_create/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_scheduled_event_create/0"},{"type":"type","title":"Nostrum.Consumer.guild_scheduled_event_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_scheduled_event_delete/0"},{"type":"type","title":"Nostrum.Consumer.guild_scheduled_event_update/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_scheduled_event_update/0"},{"type":"type","title":"Nostrum.Consumer.guild_scheduled_event_user_add/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_scheduled_event_user_add/0"},{"type":"type","title":"Nostrum.Consumer.guild_scheduled_event_user_remove/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_scheduled_event_user_remove/0"},{"type":"type","title":"Nostrum.Consumer.guild_unavailable/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_unavailable/0"},{"type":"type","title":"Nostrum.Consumer.guild_update/0","doc":"","ref":"Nostrum.Consumer.html#t:guild_update/0"},{"type":"type","title":"Nostrum.Consumer.integration_create/0","doc":"","ref":"Nostrum.Consumer.html#t:integration_create/0"},{"type":"type","title":"Nostrum.Consumer.integration_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:integration_delete/0"},{"type":"type","title":"Nostrum.Consumer.integration_update/0","doc":"Different from guild_integrations_update/0 in that more than only the guild_id is provided","ref":"Nostrum.Consumer.html#t:integration_update/0"},{"type":"type","title":"Nostrum.Consumer.interaction_create/0","doc":"","ref":"Nostrum.Consumer.html#t:interaction_create/0"},{"type":"type","title":"Nostrum.Consumer.message_ack/0","doc":"","ref":"Nostrum.Consumer.html#t:message_ack/0"},{"type":"type","title":"Nostrum.Consumer.message_create/0","doc":"","ref":"Nostrum.Consumer.html#t:message_create/0"},{"type":"type","title":"Nostrum.Consumer.message_delete/0","doc":"","ref":"Nostrum.Consumer.html#t:message_delete/0"},{"type":"type","title":"Nostrum.Consumer.message_delete_bulk/0","doc":"","ref":"Nostrum.Consumer.html#t:message_delete_bulk/0"},{"type":"type","title":"Nostrum.Consumer.message_poll_vote_add/0","doc":"Dispatched when a user adds a vote to a poll.","ref":"Nostrum.Consumer.html#t:message_poll_vote_add/0"},{"type":"type","title":"Nostrum.Consumer.message_poll_vote_remove/0","doc":"Dispatched when a user removes a vote from a poll.","ref":"Nostrum.Consumer.html#t:message_poll_vote_remove/0"},{"type":"type","title":"Nostrum.Consumer.message_reaction_add/0","doc":"","ref":"Nostrum.Consumer.html#t:message_reaction_add/0"},{"type":"type","title":"Nostrum.Consumer.message_reaction_remove/0","doc":"","ref":"Nostrum.Consumer.html#t:message_reaction_remove/0"},{"type":"type","title":"Nostrum.Consumer.message_reaction_remove_all/0","doc":"","ref":"Nostrum.Consumer.html#t:message_reaction_remove_all/0"},{"type":"type","title":"Nostrum.Consumer.message_reaction_remove_emoji/0","doc":"","ref":"Nostrum.Consumer.html#t:message_reaction_remove_emoji/0"},{"type":"type","title":"Nostrum.Consumer.message_update/0","doc":"","ref":"Nostrum.Consumer.html#t:message_update/0"},{"type":"type","title":"Nostrum.Consumer.presence_update/0","doc":"Dispatched when a user's presence is updated. old_presence will be nil when the pre-update presence could not be fetched from the cache.","ref":"Nostrum.Consumer.html#t:presence_update/0"},{"type":"type","title":"Nostrum.Consumer.ready/0","doc":"","ref":"Nostrum.Consumer.html#t:ready/0"},{"type":"type","title":"Nostrum.Consumer.resumed/0","doc":"","ref":"Nostrum.Consumer.html#t:resumed/0"},{"type":"type","title":"Nostrum.Consumer.thread_create/0","doc":"Dispatched when a thread is created or when added to a private thread","ref":"Nostrum.Consumer.html#t:thread_create/0"},{"type":"type","title":"Nostrum.Consumer.thread_delete/0","doc":"Dispatched when a thread is deleted, if the thread was cached, contains the original thread, otherwise contains :noop","ref":"Nostrum.Consumer.html#t:thread_delete/0"},{"type":"type","title":"Nostrum.Consumer.thread_list_sync/0","doc":"Dispatched when gaining access to a channel","ref":"Nostrum.Consumer.html#t:thread_list_sync/0"},{"type":"type","title":"Nostrum.Consumer.thread_member_update/0","doc":"Dispatched when a ThreadMember for the current user is updated","ref":"Nostrum.Consumer.html#t:thread_member_update/0"},{"type":"type","title":"Nostrum.Consumer.thread_members_update/0","doc":"Dispatched when member(s) are added or removed from a thread","ref":"Nostrum.Consumer.html#t:thread_members_update/0"},{"type":"type","title":"Nostrum.Consumer.thread_update/0","doc":"","ref":"Nostrum.Consumer.html#t:thread_update/0"},{"type":"type","title":"Nostrum.Consumer.typing_start/0","doc":"","ref":"Nostrum.Consumer.html#t:typing_start/0"},{"type":"type","title":"Nostrum.Consumer.user_settings_update/0","doc":"","ref":"Nostrum.Consumer.html#t:user_settings_update/0"},{"type":"type","title":"Nostrum.Consumer.user_update/0","doc":"Dispatched when a user is updated. old_user will be nil when the pre-update user could not be fetched from the cache.","ref":"Nostrum.Consumer.html#t:user_update/0"},{"type":"type","title":"Nostrum.Consumer.voice_incoming_packet/0","doc":"Dispatched when async listening is enabled and another user is actively speaking The second tuple element is an Nostrum.Voice.rtp_opus/0 , which is a tuple with RTP header information and an opus packet. While someone is actively talking, you can expect about 50 events per second per speaking user. Note that the third tuple element is of type Nostrum.Struct.VoiceWSState.t/0 instead of Nostrum.Struct.WSState.t/0 . That struct contains a Nostrum.Struct.VoiceWSState.ssrc_map/0 that can determine the speaking user based on the SSRC.","ref":"Nostrum.Consumer.html#t:voice_incoming_packet/0"},{"type":"type","title":"Nostrum.Consumer.voice_ready/0","doc":"Dispatched when the bot is ready to begin sending audio after joining a voice channel Note that the third tuple element is of type Nostrum.Struct.VoiceWSState.t/0 instead of Nostrum.Struct.WSState.t/0 .","ref":"Nostrum.Consumer.html#t:voice_ready/0"},{"type":"type","title":"Nostrum.Consumer.voice_server_update/0","doc":"","ref":"Nostrum.Consumer.html#t:voice_server_update/0"},{"type":"type","title":"Nostrum.Consumer.voice_speaking_update/0","doc":"Dispatched when the bot starts or stops speaking Note that the third tuple element is of type Nostrum.Struct.VoiceWSState.t/0 instead of Nostrum.Struct.WSState.t/0 .","ref":"Nostrum.Consumer.html#t:voice_speaking_update/0"},{"type":"type","title":"Nostrum.Consumer.voice_state_update/0","doc":"","ref":"Nostrum.Consumer.html#t:voice_state_update/0"},{"type":"type","title":"Nostrum.Consumer.webhooks_update/0","doc":"","ref":"Nostrum.Consumer.html#t:webhooks_update/0"},{"type":"module","title":"Nostrum.ConsumerGroup","doc":"Registers consumers and handles event dispatch.","ref":"Nostrum.ConsumerGroup.html"},{"type":"function","title":"Nostrum.ConsumerGroup.child_spec/1","doc":"","ref":"Nostrum.ConsumerGroup.html#child_spec/1"},{"type":"function","title":"Nostrum.ConsumerGroup.demonitor/1","doc":"Stop monitoring the given reference.","ref":"Nostrum.ConsumerGroup.html#demonitor/1"},{"type":"function","title":"Nostrum.ConsumerGroup.dispatch/1","doc":"Dispatch the given event(s) to all consumers. This is called by nostrum internally, you likely won't need to call this manually.","ref":"Nostrum.ConsumerGroup.html#dispatch/1"},{"type":"function","title":"Nostrum.ConsumerGroup.join/0","doc":"Equivalent to ConsumerGroup.join(self()) . See join/1 .","ref":"Nostrum.ConsumerGroup.html#join/0"},{"type":"function","title":"Nostrum.ConsumerGroup.join/1","doc":"Join the given process to the consumers. If no process is given, joins the current process to the consumers. This can be used for subscribing to gateway events and awaiting them inline. After the process has joined, it will receive any events sent by nostrum's gateway dispatch. These events are sent as messages {:event, t:Consumer.Event.t/0} . The given pid is automatically unsubscribed when it terminates. Note that there is currently no filtering done. If the gateway sends a lot of messages and the event subscriber does not terminate swiftly, its message queue will keep growing. Example The following example illustrates how to use this to implement inline event awaiting: defmodule MyBot.Command alias Nostrum.Api alias Nostrum.ConsumerGroup alias Nostrum.Struct.Message alias Nostrum.Struct.User def command ( % Message { author : % User { id : author_id } } ) do Api . create_message! ( msg , "Reply 'y' in 5 seconds to confirm ordering a large burger menu." ) ConsumerGroup . join ( ) receive do { :event , { :MESSAGE_CREATE , % Message { author : % User { id : author_id } , content : "y" } , _ } } -> Api . create_message! ( msg , "The large burger menu is coming." ) after 5_000 -> Api . create_message! ( msg , "Too slow!" ) end end end","ref":"Nostrum.ConsumerGroup.html#join/1"},{"type":"function","title":"Nostrum.ConsumerGroup.monitor/0","doc":"Monitor the consumer group for changes. Return the initial state of the group on first call. Further updates are delivered as messages to the calling process, see :pg.monitor/2 for details. The returned reference/0 must be saved for later calls to demonitor/1 .","ref":"Nostrum.ConsumerGroup.html#monitor/0"},{"type":"function","title":"Nostrum.ConsumerGroup.start_link/1","doc":"","ref":"Nostrum.ConsumerGroup.html#start_link/1"},{"type":"module","title":"Nostrum.Permission","doc":"Functions that work on permissions. Some functions return a list of permissions. You can use enumerable functions to work with permissions: alias Nostrum.Cache.GuildCache alias Nostrum.Struct.Guild.Member guild = GuildCache . get! ( 279093381723062272 ) member = Map . get ( guild . members , 177888205536886784 ) member_perms = Member . guild_permissions ( member , guild ) if :administrator in member_perms do IO . puts ( "This user has the administrator permission." ) end","ref":"Nostrum.Permission.html"},{"type":"function","title":"Nostrum.Permission.all/0","doc":"Returns a list of all permissions.","ref":"Nostrum.Permission.html#all/0"},{"type":"function","title":"Nostrum.Permission.from_bit/1","doc":"Converts the given bit to a permission. This function returns :error if bit does not map to a permission. Examples iex> Nostrum.Permission . from_bit ( 0x04000000 ) { :ok , :change_nickname } iex> Nostrum.Permission . from_bit ( 0 ) :error","ref":"Nostrum.Permission.html#from_bit/1"},{"type":"function","title":"Nostrum.Permission.from_bit!/1","doc":"Same as from_bit/1 , but raises ArgumentError in case of failure. Examples iex> Nostrum.Permission . from_bit! ( 0x04000000 ) :change_nickname iex> Nostrum.Permission . from_bit! ( 0 ) ** (ArgumentError) expected a valid bit, got: `0`","ref":"Nostrum.Permission.html#from_bit!/1"},{"type":"function","title":"Nostrum.Permission.from_bitset/1","doc":"Converts the given bitset to a list of permissions. If invalid bits are given they will be omitted from the results. Examples iex> Nostrum.Permission . from_bitset ( 0x08000002 ) [ :manage_nicknames , :kick_members ] iex> Nostrum.Permission . from_bitset ( 0x4000000000000 ) [ ]","ref":"Nostrum.Permission.html#from_bitset/1"},{"type":"macro","title":"Nostrum.Permission.is_permission/1","doc":"Returns true if term is a permission; otherwise returns false . Examples iex> Nostrum.Permission . is_permission ( :administrator ) true iex> Nostrum.Permission . is_permission ( :not_a_permission ) false","ref":"Nostrum.Permission.html#is_permission/1"},{"type":"function","title":"Nostrum.Permission.to_bit/1","doc":"Converts the given permission to a bit. Examples iex> Nostrum.Permission . to_bit ( :administrator ) 8","ref":"Nostrum.Permission.html#to_bit/1"},{"type":"function","title":"Nostrum.Permission.to_bitset/1","doc":"Converts the given enumerable of permissions to a bitset. Examples iex> Nostrum.Permission . to_bitset ( [ :administrator , :create_instant_invite ] ) 9","ref":"Nostrum.Permission.html#to_bitset/1"},{"type":"type","title":"Nostrum.Permission.bit/0","doc":"Represents a single permission as a bitvalue.","ref":"Nostrum.Permission.html#t:bit/0"},{"type":"type","title":"Nostrum.Permission.bitset/0","doc":"Represents a set of permissions as a bitvalue.","ref":"Nostrum.Permission.html#t:bitset/0"},{"type":"type","title":"Nostrum.Permission.general_permission/0","doc":"","ref":"Nostrum.Permission.html#t:general_permission/0"},{"type":"type","title":"Nostrum.Permission.t/0","doc":"","ref":"Nostrum.Permission.html#t:t/0"},{"type":"type","title":"Nostrum.Permission.text_permission/0","doc":"","ref":"Nostrum.Permission.html#t:text_permission/0"},{"type":"type","title":"Nostrum.Permission.voice_permission/0","doc":"","ref":"Nostrum.Permission.html#t:voice_permission/0"},{"type":"module","title":"Nostrum.Voice","doc":"Interface for playing and listening to audio through Discord's voice channels. Using Discord Voice Channels To play sound in Discord with Nostrum, you'll need ffmpeg to be installed. If you don't have the executable ffmpeg in the path, the absolute path may be configured through config keys :nostrum, :ffmpeg . If you don't want to use ffmpeg, read on to the next section. A bot may be connected to at most one voice channel per guild. For this reason, most of the functions in this module take a guild id, and the resulting action will be performed in the given guild's voice channel that the bot is connected to. The primary Discord gateway responsible for all text based communication relies on one websocket connection per shard, where small bots typically only have one shard. The Discord voice gateways work by establishing a websocket connection per guild/channel. After some handshaking on this connection, audio data can be sent over UDP/RTP. Behind the scenes the voice websocket connections are implemented nearly the same way the main shard websocket connections are, and require no developer intervention. In addition to playing audio, listening to incoming audio is supported through the functions listen/3 and start_listen_async/1 . Voice Without FFmpeg If you wish to BYOE (Bring Your Own Encoder), there are a few options. Use :raw as type for play/4 Provide the complete list of opus frames as the input Use :raw_s as type for play/4 Provide a stateful enumerable of opus frames as input (think GenServer wrapped in Stream.unfold/2 ) Use lower level functions to send opus frames at your leisure Send packets on your own time using send_frames/2","ref":"Nostrum.Voice.html"},{"type":"function","title":"Nostrum.Voice.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Voice.html#child_spec/1"},{"type":"function","title":"Nostrum.Voice.connect_to_gateway/1","doc":"Low-level. Manually connect to voice websockets gateway. This function should only be called if config option :voice_auto_connect is set to false . By default Nostrum will automatically create a voice gateway when joining a channel.","ref":"Nostrum.Voice.html#connect_to_gateway/1"},{"type":"function","title":"Nostrum.Voice.create_ogg_bitstream/1","doc":"Create a complete Ogg logical bitstream from a list of Opus packets. This function takes a list of opus packets and returns a list of Ogg encapsulated Opus pages for a single Ogg logical bitstream. It is highly recommended to learn about the Ogg container format to understand how to use the data. To get started, assuming you have a list of evenly temporally spaced and consecutive opus packets from a single source that you want written to a file, you can run the following: bitstream = opus_packets |> create_ogg_bitstream ( ) |> :binary . list_to_bin ( ) File . write! ( "my_recording.ogg" , bitstream ) When creating a logical bitstream, ensure that the packets are all from a single SSRC. When listening in a channel with multiple speakers, you should be storing the received packets in unique buckets for each SSRC so that the multiple audio sources don't become jumbled. A single logical bitstream should represent audio data from a single speaker. An Ogg physical bitstream (e.g. a file) may be composed of multiple interleaved Ogg logical bitstreams as each logical bitstream and its constituent pages contain a unique and randomly generated bitstream serial number, but this is a story for another time. Assuming you have a list of rtp_opus/0 packets that are not separated by ssrc, you may do the following: jumbled_packets |> Stream . filter ( fn { { _seq , _time , ssrc } , _opus } -> ssrc == particular_ssrc end ) |> Enum . map ( fn { { _seq , _time , _ssrc } , opus } -> opus end ) |> create_ogg_bitstream ( )","ref":"Nostrum.Voice.html#create_ogg_bitstream/1"},{"type":"function","title":"Nostrum.Voice.extract_opus_packet/1","doc":"Extract the opus packet from the RTP packet received from Discord. Incoming voice RTP packets contain a fixed length RTP header and an optional RTP header extension, which must be stripped to retrieve the underlying opus packet.","ref":"Nostrum.Voice.html#extract_opus_packet/1"},{"type":"function","title":"Nostrum.Voice.get_channel_id/1","doc":"Gets the id of the voice channel that the bot is connected to. Parameters guild_id - ID of guild that the resultant channel belongs to. Returns the channel_id for the channel the bot is connected to, otherwise nil . Examples iex> Nostrum.Voice . join_channel ( 123456789 , 420691337 ) iex> Nostrum.Voice . get_channel ( 123456789 ) 420691337 iex> Nostrum.Voice . leave_channel ( 123456789 ) iex> Nostrum.Voice . get_channel ( 123456789 ) nil","ref":"Nostrum.Voice.html#get_channel_id/1"},{"type":"function","title":"Nostrum.Voice.get_current_url/1","doc":"Gets the current URL being played. If play/4 was invoked with type :url , :ytdl , or :stream , this function will return the URL given as input last time it was called. If play/4 was invoked with type :pipe , :raw , or :raw_s , this will return nil as the input is raw audio data, not be a readable URL string.","ref":"Nostrum.Voice.html#get_current_url/1"},{"type":"function","title":"Nostrum.Voice.get_ssrc_map/1","doc":"Gets a map of RTP SSRC to user id. Within a voice channel, an SSRC (synchronization source) will uniquely map to a user id of a user who is speaking. If listening to incoming voice packets asynchronously, this function will not be needed as the Nostrum.Struct.VoiceWSState.ssrc_map/0 will be available with every event. If listening with listen/3 , this function may be used. It is recommended to cache the result of this function and only call it again when you encounter an SSRC that is not present in the cached result. This is to reduce excess load on the voice websocket and voice state processes.","ref":"Nostrum.Voice.html#get_ssrc_map/1"},{"type":"function","title":"Nostrum.Voice.join_channel/5","doc":"Joins or moves the bot to a voice channel. This function calls Nostrum.Api.update_voice_state/4 . The fifth argument persist defaults to true . When true, if calling join_channel/5 while already in a different channel in the same guild, the audio source will be persisted in the new channel. If the audio is actively playing at the time of changing channels, it will resume playing automatically upon joining. If there is an active audio source that has been paused before changing channels, the audio will be able to be resumed manually if resume/1 is called. If persist is set to false, the audio source will be destroyed before changing channels. The same effect is achieved by calling stop/1 or leave_channel/1 before join_channel/5","ref":"Nostrum.Voice.html#join_channel/5"},{"type":"function","title":"Nostrum.Voice.leave_channel/1","doc":"Leaves the voice channel of the given guild id. This function is equivalent to calling Nostrum.Api.update_voice_state(guild_id, nil) .","ref":"Nostrum.Voice.html#leave_channel/1"},{"type":"function","title":"Nostrum.Voice.listen/3","doc":"Listen for incoming voice RTP packets. Parameters guild_id - ID of guild that the bot is listening to. num_packets - Number of packets to wait for. raw_rtp - Whether to return raw RTP packets. Defaults to false . Returns a list of tuples of type rtp_opus/0 . The inner tuple contains fields from the RTP header and can be matched against to retrieve information about the packet such as the SSRC, which identifies the source. Note that RTP timestamps are completely unrelated to Unix timestamps. If raw_rtp is set to true , a list of raw RTP packets is returned instead. To extract an opus packet from an RTP packet, see extract_opus_packet/1 . This function will block until the specified number of packets is received.","ref":"Nostrum.Voice.html#listen/3"},{"type":"function","title":"Nostrum.Voice.pad_opus/1","doc":"Pad discontinuous chunks of opus audio with silence. This function takes a list of rtp_opus/0 , which is a tuple containing RTP bits and opus audio data. It returns a list of opus audio packets. The reason the input has to be in the rtp_opus/0 tuple format returned by listen/3 and async listen events is that the RTP packet header contains info on the relative timestamps of incoming packets; the opus packets themselves don't contain information relating to timing. The Discord client will continue to internally increment the t:rtp_timestamp() when the user is not speaking such that the duration of pauses can be determined from the RTP packets. Bots will typically not behave this way, so if you call this function on audio produced by a bot it is very likely that no silence will be inserted. The use case of this function is as follows: Consider a user speaks for two seconds, pauses for ten seconds, then speaks for another two seconds. During the pause, no RTP packets will be received, so if you create a bitstream from it, the resulting audio will be both two-second speaking segments consecutively without the long pause in the middle. If you wish to preserve the timing of the speaking and include the pause, calling this function will interleave the appropriate amount of opus silence packets to maintain temporal fidelity. Note that the Discord client currently sends about 10 silence packets (200 ms) each time it detects end of speech, so creating a bitstream without first padding your audio with this function will maintain short silences between speech segments. This function should only be called on a collection of RTP packets from a single SSRC","ref":"Nostrum.Voice.html#pad_opus/1"},{"type":"function","title":"Nostrum.Voice.pause/1","doc":"Pauses the current sound being played in a voice channel. The bot must be connected to a voice channel in the guild specified. Parameters guild_id - ID of guild whose voice channel the sound will be paused in. Returns {:error, reason} if unable to pause or no sound is playing, else :ok . This function is similar to stop/1 , except that the sound may be resumed after being paused. Examples iex> Nostrum.Voice . join_channel ( 123456789 , 420691337 ) iex> Nostrum.Voice . play ( 123456789 , "~/files/twelve_hour_loop_of_waterfall_sounds.mp3" ) iex> Nostrum.Voice . pause ( 123456789 )","ref":"Nostrum.Voice.html#pause/1"},{"type":"function","title":"Nostrum.Voice.play/4","doc":"Plays sound in the voice channel the bot is in. The bot must be connected to a voice channel in the guild specified. Parameters guild_id - ID of guild whose voice channel the sound will be played in. input - Audio to be played, play_input/0 . Input type determined by type parameter. type - Type of input, play_type/0 (defaults to :url ). :url Input will be any url that ffmpeg can read . :pipe Input will be data that is piped to stdin of ffmpeg . :ytdl Input will be url for youtube-dl , which gets automatically piped to ffmpeg . :stream Input will be livestream url for streamlink , which gets automatically piped to ffmpeg . :raw Input will be an enumerable of raw opus packets. This bypasses ffmpeg and all options. :raw_s Same as :raw but input must be stateful, i.e. calling Enum.take/2 on input is not idempotent. options - See options section below. Returns {:error, reason} if unable to play or a sound is playing, else :ok . Options :start_pos (string) - The start position of the audio to be played. Defaults to beginning. :duration (string) - The duration to of the audio to be played . Defaults to entire duration. :realtime (boolean) - Make ffmpeg process the input in realtime instead of as fast as possible. Defaults to true. :volume (number) - The output volume of the audio. Default volume is 1.0. :filter (string) - Filter(s) to be applied to the audio. No filters applied by default. The values of :start_pos and :duration can be any time duration that ffmpeg can read . The :filter can be used multiple times in a single call (see examples). The values of :filter can be any audio filters that ffmpeg can read . Filters will be applied in order and can be as complex as you want. The world is your oyster! Note that using the :volume option is shortcut for the "volume" filter, and will be added to the end of the filter chain, acting as a master volume. Volume values between 0.0 and 1.0 act as standard operating range where 0 is off and 1 is max. Values greater than 1.0 will add saturation and distortion to the audio. Negative values act the same as their position but reverse the polarity of the waveform. Having all the ffmpeg audio filters available is extremely powerful so it may be worth learning some of them for your use cases. If you use any filters to increase the playback speed of your audio, it's recommended to set the :realtime option to false because realtime processing is relative to the original playback speed. Examples iex> Nostrum.Voice . join_channel ( 123456789 , 420691337 ) iex> Nostrum.Voice . play ( 123456789 , "~/music/FavoriteSong.mp3" , :url ) iex> Nostrum.Voice . play ( 123456789 , "~/music/NotFavoriteButStillGoodSong.mp3" , :url , volume : 0.5 ) iex> Nostrum.Voice . play ( 123456789 , "~/music/ThisWillBeHeavilyDistorted.mp3" , :url , volume : 1000 ) iex> Nostrum.Voice . join_channel ( 123456789 , 420691337 ) iex> raw_data = File . read! ( "~/music/sound_effect.wav" ) iex> Nostrum.Voice . play ( 123456789 , raw_data , :pipe ) iex> Nostrum.Voice . join_channel ( 123456789 , 420691337 ) iex> Nostrum.Voice . play ( 123456789 , "https://www.youtube.com/watch?v=b4RJ-QGOtw4" , :ytdl , ...> realtime : true , start_pos : "0:17" , duration : "30" ) iex> Nostrum.Voice . play ( 123456789 , "https://www.youtube.com/watch?v=0ngcL_5ekXo" , :ytdl , ...> filter : "lowpass=f=1200" , filter : "highpass=f=300" , filter : "asetrate=44100*0.5" ) iex> Nostrum.Voice . join_channel ( 123456789 , 420691337 ) iex> Nostrum.Voice . play ( 123456789 , "https://www.twitch.tv/pestily" , :stream ) iex> Nostrum.Voice . play ( 123456789 , "https://youtu.be/LN4r-K8ZP5Q" , :stream )","ref":"Nostrum.Voice.html#play/4"},{"type":"function","title":"Nostrum.Voice.playing?/1","doc":"Checks if the bot is playing sound in a voice channel. Parameters guild_id - ID of guild to check if audio being played. Returns true if the bot is currently being played in a voice channel, otherwise false . Examples iex> Nostrum.Voice . join_channel ( 123456789 , 420691337 ) iex> Nostrum.Voice . play ( 123456789 , "https://a-real-site.biz/RickRoll.m4a" ) iex> Nostrum.Voice . playing? ( 123456789 ) true iex> Nostrum.Voice . pause ( 123456789 ) iex> Nostrum.Voice . playing? ( 123456789 ) false","ref":"Nostrum.Voice.html#playing?/1"},{"type":"function","title":"Nostrum.Voice.ready?/1","doc":"Checks if the connection is up and ready to play audio. Parameters guild_id - ID of guild to check if voice connection is up. Returns true if the bot is connected to a voice channel, otherwise false . This function does not check if audio is already playing. For that, use playing?/1 . Examples iex> Nostrum.Voice . join_channel ( 123456789 , 420691337 ) iex> Nostrum.Voice . ready? ( 123456789 ) true iex> Nostrum.Voice . leave_channel ( 123456789 ) iex> Nostrum.Voice . ready? ( 123456789 ) false","ref":"Nostrum.Voice.html#ready?/1"},{"type":"function","title":"Nostrum.Voice.resume/1","doc":"Resumes playing the current paused sound in a voice channel. The bot must be connected to a voice channel in the guild specified. Parameters guild_id - ID of guild whose voice channel the sound will be resumed in. Returns {:error, reason} if unable to resume or no sound has been paused, otherwise returns :ok . This function is used to resume a sound that had previously been paused. Examples iex> Nostrum.Voice . join_channel ( 123456789 , 420691337 ) iex> Nostrum.Voice . play ( 123456789 , "~/stuff/Toto - Africa (Bass Boosted)" ) iex> Nostrum.Voice . pause ( 123456789 ) iex> Nostrum.Voice . resume ( 123456789 )","ref":"Nostrum.Voice.html#resume/1"},{"type":"function","title":"Nostrum.Voice.send_frames/2","doc":"Low-level. Send pre-encoded audio packets directly. Speaking should be set to true via Nostrum.Voice.set_is_speaking/2 before sending frames. Opus frames will be encrypted and prefixed with the appropriate RTP header and sent immediately. The length of frames depends on how often you wish to send a sequence of frames. A single frame contains 20ms of audio. Sending more than 50 frames (1 second of audio) in a single function call may result in inconsistent playback rates. Nostrum.Voice.playing?/1 will not return accurate values when using send_frames/2 instead of Nostrum.Voice.play/4","ref":"Nostrum.Voice.html#send_frames/2"},{"type":"function","title":"Nostrum.Voice.set_is_speaking/2","doc":"Low-level. Set speaking flag in voice channel. This function does not need to be called unless you are sending audio frames directly using Nostrum.Voice.send_frames/2 .","ref":"Nostrum.Voice.html#set_is_speaking/2"},{"type":"function","title":"Nostrum.Voice.start_listen_async/1","doc":"Start asynchronously receiving events for incoming RTP packets for an active voice session. This is an alternative to the blocking listen/3 . Events will be generated asynchronously when a user is speaking. See Nostrum.Consumer.voice_incoming_packet/0 for more info.","ref":"Nostrum.Voice.html#start_listen_async/1"},{"type":"function","title":"Nostrum.Voice.stop/1","doc":"Stops the current sound being played in a voice channel. The bot must be connected to a voice channel in the guild specified. Parameters guild_id - ID of guild whose voice channel the sound will be stopped in. Returns {:error, reason} if unable to stop or no sound is playing, else :ok . If a sound has finished playing, this function does not need to be called to start playing another sound. Examples iex> Nostrum.Voice . join_channel ( 123456789 , 420691337 ) iex> Nostrum.Voice . play ( 123456789 , "http://brandthill.com/files/weird_dubstep_noises.mp3" ) iex> Nostrum.Voice . stop ( 123456789 )","ref":"Nostrum.Voice.html#stop/1"},{"type":"function","title":"Nostrum.Voice.stop_listen_async/1","doc":"Stop asynchronously receiving events for incoming RTP packets for an active voice session.","ref":"Nostrum.Voice.html#stop_listen_async/1"},{"type":"type","title":"Nostrum.Voice.opus_packet/0","doc":"Opus packet","ref":"Nostrum.Voice.html#t:opus_packet/0"},{"type":"type","title":"Nostrum.Voice.play_input/0","doc":"The play input The input given to play/4 , either a compatible URL or binary audio data. See play/4 for more information.","ref":"Nostrum.Voice.html#t:play_input/0"},{"type":"type","title":"Nostrum.Voice.play_type/0","doc":"The type of play input The type given to play/4 determines how the input parameter is interpreted. See play/4 for more information.","ref":"Nostrum.Voice.html#t:play_type/0"},{"type":"type","title":"Nostrum.Voice.rtp_opus/0","doc":"Tuple with RTP header elements and opus packet","ref":"Nostrum.Voice.html#t:rtp_opus/0"},{"type":"type","title":"Nostrum.Voice.rtp_sequence/0","doc":"RTP sequence","ref":"Nostrum.Voice.html#t:rtp_sequence/0"},{"type":"type","title":"Nostrum.Voice.rtp_ssrc/0","doc":"RTP SSRC","ref":"Nostrum.Voice.html#t:rtp_ssrc/0"},{"type":"type","title":"Nostrum.Voice.rtp_timestamp/0","doc":"RTP timestamp","ref":"Nostrum.Voice.html#t:rtp_timestamp/0"},{"type":"module","title":"Nostrum.Cache.CacheSupervisor","doc":"Supervises caches for nostrum structures. See the documentation for the relevant submodules for details: Nostrum.Cache.ChannelCache Nostrum.Cache.GuildCache Nostrum.Cache.Me Nostrum.Cache.PresenceCache Nostrum.Cache.UserCache","ref":"Nostrum.Cache.CacheSupervisor.html"},{"type":"function","title":"Nostrum.Cache.CacheSupervisor.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.CacheSupervisor.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.CacheSupervisor.init/1","doc":"Callback implementation for Supervisor.init/1 .","ref":"Nostrum.Cache.CacheSupervisor.html#init/1"},{"type":"function","title":"Nostrum.Cache.CacheSupervisor.start_link/1","doc":"","ref":"Nostrum.Cache.CacheSupervisor.html#start_link/1"},{"type":"behaviour","title":"Nostrum.Cache.ChannelCache","doc":"Cache behaviour & dispatcher for direct message channels. You can call the functions provided by this module independent of which cache is configured, and it will dispatch to the configured cache implementation. The user-facing functions for reading the cache can be found in the "Reading the cache" section. By default, Elixir.Nostrum.Cache.ChannelCache.ETS will be used for caching channels. You can override this in the :caches option of the :nostrum application by setting the :channels field to a different module implementing the Nostrum.Cache.ChannelCache behaviour. Any module below Nostrum.Cache.ChannelCache can be used as a cache. Writing your own channel cache As with the other caches, the channel cache API consists of three parts: Functions called by nostrum, such as create/1 or update/1 . These do not create any objects in the Discord API , they are purely created to update the cached data from data that Discord sends us. If you want to create objects on Discord, use the functions exposed by Nostrum.Api instead. the QLC query handle for read operations, query_handle/0 , and the child_spec/1 callback for starting the cache under a supervisor. You need to implement all of them for nostrum to work with your custom cache. The "upstream data" wording in this module references the fact that the data that the channel cache (and other caches) retrieves represents the raw data we receive from the upstream connection, no attempt is made by nostrum to sanitize the data before it enters the cache. Caching implementations need to cast the data to the resulting type themselves. A possible future improvement would be moving the data casting into this module before the backing cache implementation is called.","ref":"Nostrum.Cache.ChannelCache.html"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.ChannelCache.html#c:child_spec/1"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.create/1","doc":"Create a channel in the cache.","ref":"Nostrum.Cache.ChannelCache.html#c:create/1"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.delete/1","doc":"Delete a channel from the cache. Return the old channel if it was cached, or nil otherwise.","ref":"Nostrum.Cache.ChannelCache.html#c:delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.get/1","doc":"Look up a channel in the cache, by message or ID. An optional second argument can be passed to select the cache to read from.","ref":"Nostrum.Cache.ChannelCache.html#get/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.get/2","doc":"","ref":"Nostrum.Cache.ChannelCache.html#get/2"},{"type":"function","title":"Nostrum.Cache.ChannelCache.get!/1","doc":"Same as get/1 , but raises Nostrum.Error.CacheError in case of failure.","ref":"Nostrum.Cache.ChannelCache.html#get!/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.get!/2","doc":"","ref":"Nostrum.Cache.ChannelCache.html#get!/2"},{"type":"function","title":"Nostrum.Cache.ChannelCache.query_handle/0","doc":"Return the QLC handle of the configured cache.","ref":"Nostrum.Cache.ChannelCache.html#query_handle/0"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.query_handle/0","doc":"Return a QLC query handle for cache read operations. The Erlang manual on Implementing a QLC Table contains examples for implementation. To prevent full table scans, accept match specifications in your TraverseFun and implement a LookupFun as documented. The query handle must return items in the form {channel_id, channel} , where: channel_id is a Nostrum.Struct.Channel.id/0 , and channel is a Nostrum.Struct.Channel.t/0 If your cache needs some form of setup or teardown for QLC queries (such as opening connections), see wrap_qlc/1 .","ref":"Nostrum.Cache.ChannelCache.html#c:query_handle/0"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.update/1","doc":"Update a channel from upstream data. Return the original channel before the update, and the updated channel.","ref":"Nostrum.Cache.ChannelCache.html#c:update/1"},{"type":"callback","title":"Nostrum.Cache.ChannelCache.wrap_qlc/1","doc":"A function that should wrap any :qlc operations. If you implement a cache that is backed by a database and want to perform cleanup and teardown actions such as opening and closing connections, managing transactions and so on, you want to implement this function. nostrum will then effectively call wrap_qlc(fn -> :qlc.e(...) end) . If your cache does not need any wrapping, you can omit this.","ref":"Nostrum.Cache.ChannelCache.html#c:wrap_qlc/1"},{"type":"type","title":"Nostrum.Cache.ChannelCache.reason/0","doc":"Specifies the reason for why a lookup operation has failed.","ref":"Nostrum.Cache.ChannelCache.html#t:reason/0"},{"type":"behaviour","title":"Nostrum.Cache.ChannelGuildMapping","doc":"Cache behaviour & dispatcher for mapping channel IDs to their respective guilds. Purpose While retrieving the channels on a specific guild is trivial as they are stored on the guild, retrieving the guild a given channel belongs to is not possible with the regular data mode of channels. This module allows to retrieve guilds associated with a channel via get/1 . Configuration By default, nostrum will use Elixir.Nostrum.Cache.ChannelGuildMapping.ETS to store the mapping. To override this, set the [:caches, :channel_guild_mapping] setting on nostrum's application configuration: config :nostrum , caches : %{ channel_guild_mapping : MyBot.Nostrum.Cache.ChannelGuildMapping } This setting must be set at compile time.","ref":"Nostrum.Cache.ChannelGuildMapping.html"},{"type":"callback","title":"Nostrum.Cache.ChannelGuildMapping.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.ChannelGuildMapping.html#c:child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.create/2","doc":"See Nostrum.Cache.ChannelGuildMapping.ETS.create/2 .","ref":"Nostrum.Cache.ChannelGuildMapping.html#create/2"},{"type":"callback","title":"Nostrum.Cache.ChannelGuildMapping.create/2","doc":"Create a mapping of the given channel to the given guild.","ref":"Nostrum.Cache.ChannelGuildMapping.html#c:create/2"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.delete/1","doc":"See Nostrum.Cache.ChannelGuildMapping.ETS.delete/1 .","ref":"Nostrum.Cache.ChannelGuildMapping.html#delete/1"},{"type":"callback","title":"Nostrum.Cache.ChannelGuildMapping.delete/1","doc":"Remove any mapping associated with the given channel.","ref":"Nostrum.Cache.ChannelGuildMapping.html#c:delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.get/1","doc":"See Nostrum.Cache.ChannelGuildMapping.ETS.get/1 .","ref":"Nostrum.Cache.ChannelGuildMapping.html#get/1"},{"type":"callback","title":"Nostrum.Cache.ChannelGuildMapping.get/1","doc":"Retrieve the guild ID for the given channel ID, if present.","ref":"Nostrum.Cache.ChannelGuildMapping.html#c:get/1"},{"type":"behaviour","title":"Nostrum.Cache.GuildCache","doc":"Cache behaviour & dispatcher for guilds. You can call the functions provided by this module independent of which cache is configured, and it will dispatch to the configured cache implementation. By default, Elixir.Nostrum.Cache.GuildCache.ETS will be used for caching guilds. You can override this in the :caches option of the :nostrum application by setting the :guilds field to a different module implementing the Nostrum.Cache.GuildCache behaviour. Any module below Nostrum.Cache.GuildCache can be used as a cache. Writing your own guild cache As with the other caches, the guild cache API consists of two parts: The functions that nostrum calls, such as create/1 or update/1 . These do not create any objects in the Discord API , they are purely created to update the cached data from data that Discord sends us. If you want to create objects on Discord, use the functions exposed by Nostrum.Api instead. the QLC query handle for read operations, query_handle/0 , and the child_spec/1 callback for starting the cache under a supervisor. You need to implement all of them for nostrum to work with your custom cache. The "upstream data" wording in this module references the fact that the data that the guild cache (and other caches) retrieves represents the raw data we receive from the upstream connection, no attempt is made by nostrum to sanitize the data before it enters the cache. Caching implementations need to cast the data to the resulting type themselves. A possible future improvement would be moving the data casting into this module before the backing cache implementation is called.","ref":"Nostrum.Cache.GuildCache.html"},{"type":"callback","title":"Nostrum.Cache.GuildCache.channel_create/2","doc":"Create a channel for the guild from upstream data. Return the adapted Nostrum.Struct.Channel.t/0 structure.","ref":"Nostrum.Cache.GuildCache.html#c:channel_create/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.channel_delete/2","doc":"Delete the given channel from the guild. If the channel was cached, return the original channel. Return :noop otherwise.","ref":"Nostrum.Cache.GuildCache.html#c:channel_delete/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.channel_update/2","doc":"Update the given channel on the given guild from upstream data. Return the original channel before the update if known, and the updated channel.","ref":"Nostrum.Cache.GuildCache.html#c:channel_update/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.GuildCache.html#c:child_spec/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.create/1","doc":"Create a guild in the cache.","ref":"Nostrum.Cache.GuildCache.html#c:create/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.delete/1","doc":"Delete a guild from the cache. Return the old guild if it was cached, or nil otherwise.","ref":"Nostrum.Cache.GuildCache.html#c:delete/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.emoji_update/2","doc":"Update the emoji list of the given guild from upstream data. Discord sends us the complete emoji list on an update, which is passed here. Return the old list of emojis before the update, and the updated list of emojis.","ref":"Nostrum.Cache.GuildCache.html#c:emoji_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.fold/3","doc":"Fold (reduce) over all guilds in the cache. Parameters acc : The initial accumulator. Also returned if no guilds are cached. fun : Called for every guild in the result. Takes a pair in the form {guild, acc} , and must return the updated accumulator. cache (optional): The cache to use. nostrum will use the cache configured at compile time by default.","ref":"Nostrum.Cache.GuildCache.html#fold/3"},{"type":"function","title":"Nostrum.Cache.GuildCache.get/2","doc":"Retrieves a single Nostrum.Struct.Guild from the cache via its id . Returns {:error, :not_found} if no result was found.","ref":"Nostrum.Cache.GuildCache.html#get/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.get!/1","doc":"Same as get/1 , but raises Nostrum.Error.CacheError in case of failure.","ref":"Nostrum.Cache.GuildCache.html#get!/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.member_count_down/1","doc":"Decrement the member count for this guild by one.","ref":"Nostrum.Cache.GuildCache.html#c:member_count_down/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.member_count_up/1","doc":"Increment the member count for this guild by one.","ref":"Nostrum.Cache.GuildCache.html#c:member_count_up/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.query_handle/0","doc":"Return the QLC handle of the configured cache.","ref":"Nostrum.Cache.GuildCache.html#query_handle/0"},{"type":"callback","title":"Nostrum.Cache.GuildCache.query_handle/0","doc":"Return a QLC query handle for cache read operations. This is used by nostrum to provide any read operations on the cache. Write operations still need to be implemented separately. The Erlang manual on Implementing a QLC Table contains examples for implementation. To prevent full table scans, accept match specifications in your TraverseFun and implement a LookupFun as documented. The query handle must return items in the form {guild_id, guild} , where: guild_id is a Nostrum.Struct.Guild.id/0 , and guild is a Nostrum.Struct.Guild.t/0 . If your cache needs some form of setup or teardown for QLC queries (such as opening connections), see wrap_qlc/1 .","ref":"Nostrum.Cache.GuildCache.html#c:query_handle/0"},{"type":"callback","title":"Nostrum.Cache.GuildCache.role_create/2","doc":"Create a role on the given guild from upstream data. Return the casted role.","ref":"Nostrum.Cache.GuildCache.html#c:role_create/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.role_delete/2","doc":"Delete the given role on the given guild. Return the guild and the old role if it was cached, or :noop otherwise.","ref":"Nostrum.Cache.GuildCache.html#c:role_delete/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.role_update/2","doc":"Update a role on the given guild from upstream data. Return the old role before the update and the updated role.","ref":"Nostrum.Cache.GuildCache.html#c:role_update/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.update/1","doc":"Update a guild from upstream data. Return the original guild before the update (if it was cached) and the updated guild.","ref":"Nostrum.Cache.GuildCache.html#c:update/1"},{"type":"callback","title":"Nostrum.Cache.GuildCache.voice_state_update/2","doc":"Update the voice state of the given guild from upstream data. Note that it is recommended to drop the :member / "member" keys of the supplied upstream data, as these would otherwise duplicate the data that is being kept in the guild cache already. Return the guild ID and the updated voice states of the guild.","ref":"Nostrum.Cache.GuildCache.html#c:voice_state_update/2"},{"type":"callback","title":"Nostrum.Cache.GuildCache.wrap_qlc/1","doc":"A function that should wrap any :qlc operations. If you implement a cache that is backed by a database and want to perform cleanup and teardown actions such as opening and closing connections, managing transactions and so on, you want to implement this function. nostrum will then effectively call wrap_qlc(fn -> :qlc.e(...) end) . If your cache does not need any wrapping, you can omit this.","ref":"Nostrum.Cache.GuildCache.html#c:wrap_qlc/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.wrap_qlc/2","doc":"Call wrap_qlc/1 on the given cache, if implemented. If no cache is given, calls out to the default cache.","ref":"Nostrum.Cache.GuildCache.html#wrap_qlc/2"},{"type":"module","title":"Nostrum.Cache.Me","doc":"Simple cache that stores information for the current user.","ref":"Nostrum.Cache.Me.html"},{"type":"function","title":"Nostrum.Cache.Me.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.Me.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.Me.get/0","doc":"Returns the current user's state.","ref":"Nostrum.Cache.Me.html#get/0"},{"type":"function","title":"Nostrum.Cache.Me.start_link/1","doc":"","ref":"Nostrum.Cache.Me.html#start_link/1"},{"type":"behaviour","title":"Nostrum.Cache.MemberCache","doc":"Cache behaviour & dispatcher for guild members. You can call the functions provided by this module independent of which cache is configured, and it will dispatch to the configured cache implementation. By default, Elixir.Nostrum.Cache.MemberCache.ETS will be used for caching members. You can override this in the :caches option of the :nostrum application by setting the :members field to a different module implementing the behaviour defined by this module. The user-facing functions of this module can be called with a custom cache as the final argument. This is mainly useful if you want to test the cache: by default, nostrum will use Elixir.Nostrum.Cache.MemberCache.ETS.","ref":"Nostrum.Cache.MemberCache.html"},{"type":"callback","title":"Nostrum.Cache.MemberCache.bulk_create/2","doc":"Bulk create multiple members in the cache from upstream data. Return value is unused, as we currently do not dispatch a gateway for this.","ref":"Nostrum.Cache.MemberCache.html#c:bulk_create/2"},{"type":"callback","title":"Nostrum.Cache.MemberCache.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.MemberCache.html#c:child_spec/1"},{"type":"callback","title":"Nostrum.Cache.MemberCache.create/2","doc":"Add the member for the given guild from upstream data. Return the casted member structure.","ref":"Nostrum.Cache.MemberCache.html#c:create/2"},{"type":"callback","title":"Nostrum.Cache.MemberCache.delete/2","doc":"Remove the given user for the given guild. Return the guild ID and old member if the member was cached. Otherwise, return :noop .","ref":"Nostrum.Cache.MemberCache.html#c:delete/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.fold/4","doc":"Fold (reduce) over members for the given guild ID. Parameters acc : The initial accumulator. Also returned if no guild members were found. guild_id : The guild for which to reduce members. fun : Called for every element in the result. Takes a pair in the form {member, acc) , and must return the updated accumulator. Return value Returns the resulting accumulator via fun . Returns acc unchanged if no results were found.","ref":"Nostrum.Cache.MemberCache.html#fold/4"},{"type":"function","title":"Nostrum.Cache.MemberCache.fold_by_user/4","doc":"Reduce over all members cached for the given user ID. The members will be returned alongside their guild ID as a pair in the format {guild_id, member} .","ref":"Nostrum.Cache.MemberCache.html#fold_by_user/4"},{"type":"function","title":"Nostrum.Cache.MemberCache.fold_with_users/4","doc":"Calls fun on each member and its user on the given guild ID, with the given accumulator. Parameters acc ( term() ): The initial accumulator. Also returned if no guild members were found. guild_id ( Nostrum.Struct.Guild.id/0 ): The guild for which to reduce members. fun ( function() ): Called for every element in the result. Takes a pair in the form {{member, user}, acc) , and must return the updated accumulator. Return value Returns the resulting accumulator via fun . Returns acc unchanged if no results were found. If the user for a guild member is not found, the member and user won't be present in the result. Barring a bug in nostrum's caching, this should never happen in practice.","ref":"Nostrum.Cache.MemberCache.html#fold_with_users/4"},{"type":"function","title":"Nostrum.Cache.MemberCache.get/3","doc":"Get a single member on the given guild ID.","ref":"Nostrum.Cache.MemberCache.html#get/3"},{"type":"function","title":"Nostrum.Cache.MemberCache.get_with_user/3","doc":"Return a member together with its user via the user cache.","ref":"Nostrum.Cache.MemberCache.html#get_with_user/3"},{"type":"function","title":"Nostrum.Cache.MemberCache.query_handle/0","doc":"Return the QLC handle of the configured cache.","ref":"Nostrum.Cache.MemberCache.html#query_handle/0"},{"type":"callback","title":"Nostrum.Cache.MemberCache.query_handle/0","doc":"Return a QLC query handle for cache read operations. This is used by nostrum to provide any read operations on the cache. Write operations still need to be implemented separately. The Erlang manual on Implementing a QLC Table contains examples for implementation. To prevent full table scans, accept match specifications in your TraverseFun and implement a LookupFun as documented. The query handle must return items in the form {guild_id, user_id, member} , where: guild_id is a Nostrum.Struct.Guild.id/0 , user_id is a Nostrum.Struct.User.id/0 , and member is a Nostrum.Struct.Guild.Member.t/0 . If your cache needs some form of setup or teardown for QLC queries (such as opening connections), see wrap_qlc/1 .","ref":"Nostrum.Cache.MemberCache.html#c:query_handle/0"},{"type":"callback","title":"Nostrum.Cache.MemberCache.update/2","doc":"Update the given member for the given guild from upstream data. Return the guild ID that was updated, the old cached member (if the member was known to the cache), and the updated member. Note regarding intents Even if the required intents to receive GUILD_MEMBER_UPDATE events are disabled to a point where we do not receive guild creation events, it is still possible to receive the event for our own user. An example of this can be found in issue #293 . Note that the issue predates the modern nostrum caching infrastructure.","ref":"Nostrum.Cache.MemberCache.html#c:update/2"},{"type":"callback","title":"Nostrum.Cache.MemberCache.wrap_qlc/1","doc":"A function that should wrap any :qlc operations. If you implement a cache that is backed by a database and want to perform cleanup and teardown actions such as opening and closing connections, managing transactions and so on, you want to implement this function. nostrum will then effectively call wrap_qlc(fn -> :qlc.e(...) end) . If your cache does not need any wrapping, you can omit this.","ref":"Nostrum.Cache.MemberCache.html#c:wrap_qlc/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.wrap_qlc/2","doc":"Call wrap_qlc/1 on the given cache, if implemented. If no cache is given, calls out to the default cache.","ref":"Nostrum.Cache.MemberCache.html#wrap_qlc/2"},{"type":"behaviour","title":"Nostrum.Cache.PresenceCache","doc":"Cache behaviour & dispatcher for Discord presences. By default, Elixir.Nostrum.Cache.PresenceCache.ETS will be use for caching presences. You can override this in the :caches option of the nostrum application by setting the :presences fields to a different module implementing the Nostrum.Cache.PresenceCache behaviour. Any module below Nostrum.Cache.PresenceCache implements this behaviour and can be used as a cache. Writing your own presence cache As with the other caches, the presence cache API consists of two parts: The functions that nostrum calls, such as create/1 or update/1 . These do not create any objects in the Discord API , they are purely created to update the cached data from data that Discord sends us. If you want to create objects on Discord, use the functions exposed by Nostrum.Api instead. the QLC query handle for read operations, query_handle/0 , and the child_spec/1 callback for starting the cache under a supervisor. You need to implement both of them for nostrum to work with your custom cache.","ref":"Nostrum.Cache.PresenceCache.html"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.bulk_create/2","doc":"Bulk create multiple presences for the given guild in the cache.","ref":"Nostrum.Cache.PresenceCache.html#c:bulk_create/2"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.PresenceCache.html#c:child_spec/1"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.create/1","doc":"Create a presence in the cache.","ref":"Nostrum.Cache.PresenceCache.html#c:create/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.get/3","doc":"Retrieves a presence for a user from the cache by guild and id. If successful, returns {:ok, presence} . Otherwise returns {:error, reason} . Example case Nostrum.Cache.PresenceCache . get ( 111133335555 , 222244446666 ) do { :ok , presence } -> "They're \#{ presence . status } " { :error , _reason } -> "They're dead Jim" end","ref":"Nostrum.Cache.PresenceCache.html#get/3"},{"type":"function","title":"Nostrum.Cache.PresenceCache.get!/3","doc":"Same as get/1 , but raise Nostrum.Error.CacheError in case of a failure.","ref":"Nostrum.Cache.PresenceCache.html#get!/3"},{"type":"function","title":"Nostrum.Cache.PresenceCache.query_handle/0","doc":"Return the QLC handle of the configured cache.","ref":"Nostrum.Cache.PresenceCache.html#query_handle/0"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.query_handle/0","doc":"Return a QLC query handle for cache read operations. This is used by nostrum to provide any read operations on the cache. Write operations still need to be implemented separately. The Erlang manual on Implementing a QLC Table contains examples for implementation. To prevent full table scans, accept match specifications in your TraverseFun and implement a LookupFun as documented. The query handle must return items in the form {{guild_id, user_id}, presence} , where: guild_id is a Nostrum.Struct.Guild.id/0 , and user_id is a Nostrum.Struct.User.id/0 , and presence is a presence/0 . If your cache needs some form of setup or teardown for QLC queries (such as opening connections), see wrap_qlc/1 .","ref":"Nostrum.Cache.PresenceCache.html#c:query_handle/0"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.update/1","doc":"Update the given presence in the cache from upstream data. Return value Return the guild ID along with the old presence (if it was cached, otherwise nil ) and the updated presence structure. If the :activities or :status fields of the presence did not change, return :noop .","ref":"Nostrum.Cache.PresenceCache.html#c:update/1"},{"type":"callback","title":"Nostrum.Cache.PresenceCache.wrap_qlc/1","doc":"A function that should wrap any :qlc operations. If you implement a cache that is backed by a database and want to perform cleanup and teardown actions such as opening and closing connections, managing transactions and so on, you want to implement this function. nostrum will then effectively call wrap_qlc(fn -> :qlc.e(...) end) . If your cache does not need any wrapping, you can omit this.","ref":"Nostrum.Cache.PresenceCache.html#c:wrap_qlc/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.wrap_qlc/2","doc":"Call wrap_qlc/1 on the given cache, if implemented. If no cache is given, calls out to the default cache.","ref":"Nostrum.Cache.PresenceCache.html#wrap_qlc/2"},{"type":"opaque","title":"Nostrum.Cache.PresenceCache.presence/0","doc":"Represents a presence as received from Discord. See Presence Update .","ref":"Nostrum.Cache.PresenceCache.html#t:presence/0"},{"type":"behaviour","title":"Nostrum.Cache.UserCache","doc":"Cache behaviour & dispatcher for users. You can call the functions provided by this module independent of which cache is configured, and it will dispatch to the configured cache implementation. By default, Elixir.Nostrum.Cache.UserCache.ETS will be used for caching users. You can override this in the :caches option of the :nostrum application by setting the :users field to a different module implementing the behaviour defined by this module. See the documentation for the Nostrum.Cache.GuildCache module for more details.","ref":"Nostrum.Cache.UserCache.html"},{"type":"callback","title":"Nostrum.Cache.UserCache.bulk_create/1","doc":"Bulk add multiple users to the cache at once. Returns :ok .","ref":"Nostrum.Cache.UserCache.html#c:bulk_create/1"},{"type":"callback","title":"Nostrum.Cache.UserCache.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Cache.UserCache.html#c:child_spec/1"},{"type":"callback","title":"Nostrum.Cache.UserCache.create/1","doc":"Add a new user to the cache based on the Discord Gateway payload. Returns a Nostrum.Struct.User.t/0 struct representing the created user.","ref":"Nostrum.Cache.UserCache.html#c:create/1"},{"type":"callback","title":"Nostrum.Cache.UserCache.delete/1","doc":"Delete a user by ID. Returns the deleted user if present in the cache, or :noop if the user was not cached.","ref":"Nostrum.Cache.UserCache.html#c:delete/1"},{"type":"function","title":"Nostrum.Cache.UserCache.get/2","doc":"Retrieves a user from the cache by id. This function can be called with the cache to use as an optional argument. By default, the cache configured at compile time is used. Example case Nostrum.Cache.UserCache . get ( 1111222233334444 ) do { :ok , user } -> "We found " <> user . username { :error , _reason } -> "No es bueno" end","ref":"Nostrum.Cache.UserCache.html#get/2"},{"type":"function","title":"Nostrum.Cache.UserCache.get!/1","doc":"Same as get/1 , but raises Nostrum.Error.CacheError in case of a failure.","ref":"Nostrum.Cache.UserCache.html#get!/1"},{"type":"function","title":"Nostrum.Cache.UserCache.query_handle/0","doc":"Call query_handle/0 on the configured cache.","ref":"Nostrum.Cache.UserCache.html#query_handle/0"},{"type":"callback","title":"Nostrum.Cache.UserCache.query_handle/0","doc":"Return a query handle for usage with :qlc . This is used by nostrum to provide automatic joins between the member and the user cache, and may be used for other functions in the future. The Erlang manual on Implementing a QLC Table contains examples for implementation. The query handle must return items in the form {user_id, user} , where user_id is a Nostrum.Struct.User.id/0 and user is a Nostrum.Struct.User.t/0 .","ref":"Nostrum.Cache.UserCache.html#c:query_handle/0"},{"type":"callback","title":"Nostrum.Cache.UserCache.update/1","doc":"Update a user in the cache based on payload sent via the Gateway. Returns :noop if the user has not been updated in the cache, or {old_user, new_user} is the user has been written to the cache.","ref":"Nostrum.Cache.UserCache.html#c:update/1"},{"type":"callback","title":"Nostrum.Cache.UserCache.wrap_qlc/1","doc":"A function that should wrap any :qlc operations. If you implement a cache that is backed by a database and want to perform cleanup and teardown actions such as opening and closing connections, managing transactions and so on, you want to implement this function. Nostrum will then effectively call wrap_qlc(fn -> :qlc.e(...) end) . If your cache does not need any wrapping, you can omit this.","ref":"Nostrum.Cache.UserCache.html#c:wrap_qlc/1"},{"type":"function","title":"Nostrum.Cache.UserCache.wrap_qlc/2","doc":"Call wrap_qlc/1 on the given cache, if implemented. If no cache is given, calls out to the default cache.","ref":"Nostrum.Cache.UserCache.html#wrap_qlc/2"},{"type":"module","title":"Nostrum.Struct.ApplicationCommand","doc":"Typespecs for creating Application Commands Official reference: https://discord.com/developers/docs/interactions/application-commands","ref":"Nostrum.Struct.ApplicationCommand.html"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.application_command_edit_map/0","doc":"When editing an existing application command, only the following fields may be updated, missing fields will remain unchanged.","ref":"Nostrum.Struct.ApplicationCommand.html#t:application_command_edit_map/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.application_command_map/0","doc":"This defines the map for creating an application command. :default_permission is for if the command is enabled for all users by default For more information see the official documentation","ref":"Nostrum.Struct.ApplicationCommand.html#t:application_command_map/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.application_command_permission_type/0","doc":"1 for ROLE 2 for USER 3 for CHANNEL You can use one of the Nostrum.Constants.ApplicationCommandPermissionType methods.","ref":"Nostrum.Struct.ApplicationCommand.html#t:application_command_permission_type/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.application_command_permissions/0","doc":"For editing the permissions for an application command :id is the id of the role or user :type is the type of the id, either role or user :allow is whether the role or user should be allowed to use the command","ref":"Nostrum.Struct.ApplicationCommand.html#t:application_command_permissions/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_choice/0","doc":"If you specify choices for a command those become the only valid options for the user to select from.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_choice/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_description/0","doc":"The description of the command, subcommand, or command_option. For CHAT_INPUT commands, it must be between 1 and 100 characters in length. For USER and MESSAGE commands it must be an empty string.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_description/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_name/0","doc":"The name of the command, subcommand, or command_option. It must be between 1 and 32 characters in length and match the following regex: ^[w-]{1,32}$ . Only USER and MESSAGE commands may include uppercase letters and spaces.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_name/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_option/0","doc":"This defines a command's parameters. Only valid for CHAT_INPUT commands. Notes required parameters on a command must precede optional ones for subcommands and subcommand groups, :options are its parameters :options and :choices are mutually exclusive :autocomplete must not be set to true if :choices is present if :type is 7 then :channel_types can be a list of allowed channel types","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_option/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_option_type/0","doc":"Indicates what type of argument the command expects. 1 for SUB_COMMAND 2 for SUB_COMMAND_GROUP 3 for ​STRING 4 for ​INTEGER Note : due to API limitations they can only be between -2^53 and 2^53 5 for BOOLEAN 6 for USER 7 for CHANNEL 8 for ROLE 9 for MENTIONABLE Note : Includes users and roles 10 for NUMBER Note : This has the same limitations as ​INTEGER You may use one of the Nostrum.Constants.ApplicationCommandOptionType methods.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_option_type/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommand.command_type/0","doc":"The type of application command you wish to create 1 for CHAT_INPUT , regular slash commands (default) 2 for USER , right-click menu commands on a specific user 3 for MESSAGE , right-click menu commands on a specific message You may use one of the Nostrum.Constants.ApplicationCommandType methods.","ref":"Nostrum.Struct.ApplicationCommand.html#t:command_type/0"},{"type":"module","title":"Nostrum.Struct.ApplicationCommandInteractionData","doc":"Struct for interaction data.","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.component_type/0","doc":"For components, the type of the component","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:component_type/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.components/0","doc":"For Modal Sumbit interactions, this will contain the values the user submitted.","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:components/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.custom_id/0","doc":"For components, the custom_id of the component","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:custom_id/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.id/0","doc":"ID of the invoked command","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.interaction_type/0","doc":"The type of application command invoked. Official reference: https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:interaction_type/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.name/0","doc":"Name of the invoked command","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.options/0","doc":"Parameters and values supplied by the user, if applicable","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:options/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.resolved/0","doc":"Converted users & roles & channels","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:resolved/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.select_values/0","doc":"For select menu components, this will be a list of the values the user selected.","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:select_values/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.t/0","doc":"Command interaction data for slash commands. Used as part of Nostrum.Struct.Interaction.t/0 . Official reference: https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionData.target_id/0","doc":"ID of the user or message targeted by a context menu command","ref":"Nostrum.Struct.ApplicationCommandInteractionData.html#t:target_id/0"},{"type":"module","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption","doc":"Struct for command invocation arguments.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.focused/0","doc":"Whether this parameter is focused for autocomplete interactions.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:focused/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.name/0","doc":"Parameter name","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.options/0","doc":"Parameter options for subcommands. Mutually exclusive with value .","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:options/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.t/0","doc":"Command interaction data struct","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.type/0","doc":"The application command option type. See https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type for more details. You can use one of the Nostrum.Constants.ApplicationCommandOptionType methods.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption.value/0","doc":"Parameter value. The type of this depends on the type/0 : For type/0 of 3 , this will be a String.t/0 . For type/0 of 4 , this will be a integer/0 . For type/0 of 5 , this will be a boolean/0 . For type/0 of 6 , this will be a Nostrum.Struct.User.id/0 . The corresponding guild member and user can be looked up in Nostrum.Struct.ApplicationCommandInteractionData.resolved/0 . For type/0 of 7 , this will be a Nostrum.Struct.Channel.id/0 . The corresponding channel can be looked up in Nostrum.Struct.ApplicationCommandInteractionData.resolved/0 . For type/0 of 8 , this will be a Nostrum.Struct.Guild.Role.id/0 . The corresponding role can be looked up in Nostrum.Struct.ApplicationCommandInteractionData.resolved/0 . For type/0 of 9 , this will be a Nostrum.Struct.User.id/0 or Nostrum.Struct.Guild.Role.id/0 . The corresponding user or role can be looked up in Nostrum.Struct.ApplicationCommandInteractionData.resolved/0 . For type/0 of 10 , this will be a number/0 . Mutually exclusive with options . If options is not nil , this will be nil .","ref":"Nostrum.Struct.ApplicationCommandInteractionDataOption.html#t:value/0"},{"type":"module","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved","doc":"Converted interaction payload.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.attachments/0","doc":"Attachments sent along with the interaction.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:attachments/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.channels/0","doc":"IDs and corresponding partial channels. The channels in this map only have the following keys set: id name type permissions","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:channels/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.members/0","doc":"IDs and corresponding partial members. These members are missing values on the following fields: user deaf mute The corresponding user data can be looked up in users . For members that are part of this map, data for the corresponding user will always be included.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:members/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.messages/0","doc":"The IDs and corresponding messages.","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:messages/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.roles/0","doc":"IDs and corresponding roles","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:roles/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.t/0","doc":"Resolved interaction data","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.users/0","doc":"IDs and corresponding users","ref":"Nostrum.Struct.ApplicationCommandInteractionDataResolved.html#t:users/0"},{"type":"module","title":"Nostrum.Struct.AutoModerationRule","doc":"Struct representing an auto-moderation rule.","ref":"Nostrum.Struct.AutoModerationRule.html"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.actions/0","doc":"A list of Actions which will be performed when the rule is triggered.","ref":"Nostrum.Struct.AutoModerationRule.html#t:actions/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.creator_id/0","doc":"The id of the user who created the rule","ref":"Nostrum.Struct.AutoModerationRule.html#t:creator_id/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.enabled/0","doc":"If the rule is enabled or not.","ref":"Nostrum.Struct.AutoModerationRule.html#t:enabled/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.event_type/0","doc":"Indicates in what event context a rule should be checked value type description ---- ---- ----------- 1 MESSAGE_SEND when a member sends or edits a message in a guild","ref":"Nostrum.Struct.AutoModerationRule.html#t:event_type/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.exempt_channels/0","doc":"A list of channels that are exempt from the rule","ref":"Nostrum.Struct.AutoModerationRule.html#t:exempt_channels/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.exempt_roles/0","doc":"A list of roles that are exempt from the rule.","ref":"Nostrum.Struct.AutoModerationRule.html#t:exempt_roles/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.guild_id/0","doc":"The id of the guild the rule belongs to","ref":"Nostrum.Struct.AutoModerationRule.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.id/0","doc":"The id of the auto-moderation rule","ref":"Nostrum.Struct.AutoModerationRule.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.name/0","doc":"The name of the rule","ref":"Nostrum.Struct.AutoModerationRule.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.preset_values/0","doc":"Values which represent the different presets defined by Discord value type description ---- ---- ----------- 1 PROFANITY Words which may be considered profane 2 HARMFUL_LINK Words that refer to sexually explicit behavior or activity 3 SLURS Personal insults or words that may be considered hate speech","ref":"Nostrum.Struct.AutoModerationRule.html#t:preset_values/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.t/0","doc":"","ref":"Nostrum.Struct.AutoModerationRule.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.trigger_metadata/0","doc":"Additional data used to determine if the rule should triggered. The trigger_type/0 field will determine which of the following fields are present. key associated trigger_type ---- ----------- keywords ​KEYWORD preset KEYWORD_PRESET","ref":"Nostrum.Struct.AutoModerationRule.html#t:trigger_metadata/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.trigger_type/0","doc":"Characters the type of content which triggered the rule value type max per guild description ---- ---- ----- ----------- 1 ​KEYWORD 3 check if content contains words from a user defined list of keywords 2 HARMFUL_LINK 1 check if the content contains any harmful links 3 SPAM 1 check if the content represents generic spam 4 KEYWORD_PRESET 1 check if the content contains a list of discord defined keywords note: HARMFUL_LINK and SPAM are not yet offically released at the time of this writing.","ref":"Nostrum.Struct.AutoModerationRule.html#t:trigger_type/0"},{"type":"module","title":"Nostrum.Struct.AutoModerationRule.Action","doc":"Defines an action to be taken when a rule is triggered.","ref":"Nostrum.Struct.AutoModerationRule.Action.html"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.Action.action_type/0","doc":"The type of action to be taken. value action description ---- ---- ----------- 1 BLOCK_MESSAGE Blocks the message from being created 2 SEND_ALERT_MESSAGE Logs the content of the message in the specified channel 3 TIMEOUT timeout a user for a specified duration","ref":"Nostrum.Struct.AutoModerationRule.Action.html#t:action_type/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.Action.metadata/0","doc":"","ref":"Nostrum.Struct.AutoModerationRule.Action.html#t:metadata/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.Action.t/0","doc":"","ref":"Nostrum.Struct.AutoModerationRule.Action.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.AutoModerationRule.ActionMetadata","doc":"Struct representing any additional data used when an action is taken.","ref":"Nostrum.Struct.AutoModerationRule.ActionMetadata.html"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.ActionMetadata.send_alert_message_metadata/0","doc":"The id of the channel to send an alert message to.","ref":"Nostrum.Struct.AutoModerationRule.ActionMetadata.html#t:send_alert_message_metadata/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.ActionMetadata.t/0","doc":"The type of metadata present depends on the action type. value type ---- ---- channel_id SEND_ALERT_MESSAGE duration_seconds TIMEOUT","ref":"Nostrum.Struct.AutoModerationRule.ActionMetadata.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.ActionMetadata.timeout_metadata/0","doc":"The number of seconds to timeout the user for, has a maximum of 2419200 seconds (4 weeks).","ref":"Nostrum.Struct.AutoModerationRule.ActionMetadata.html#t:timeout_metadata/0"},{"type":"module","title":"Nostrum.Struct.AutoModerationRule.TriggerMetadata","doc":"Struct representing the metadata of a trigger.","ref":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.html"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.keyword_metadata/0","doc":"Contains the list of keywords to that will trigger the rule.","ref":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.html#t:keyword_metadata/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.preset_value_metadata/0","doc":"A list of Values which represent the different presets defined by Discord value type description ---- ---- ----------- 1 PROFANITY Words which may be considered profane 2 HARMFUL_LINK Words that refer to sexually explicit behavior or activity 3 SLURS Personal insults or words that may be considered hate speech","ref":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.html#t:preset_value_metadata/0"},{"type":"type","title":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.t/0","doc":"Additional data used to determine if the rule should triggered. The Nostrum.Struct.AutoModerationRule.trigger_type/0 of the parent struct determine which of the following fields are not nil . key associated trigger_type ---- ----------- keywords ​KEYWORD preset KEYWORD_PRESET","ref":"Nostrum.Struct.AutoModerationRule.TriggerMetadata.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Channel","doc":"Struct and helper functions for working with channels. Channel Struct The channel struct is used by Nostrum to represent a Discord Channel Object . More information can be found on the Discord API Channel Documentation . The struct can have one of several forms depending on the type of channel. You can read more about the individual channel types below . A typical channel would appear as: % Nostrum.Struct.Channel { guild_id : 766435015768539156 , id : 827333533688397865 , name : "announcements" , nsfw : false , permission_overwrites : [ ] , position : 1 , type : 5 , } The channel struct implements String.Chars protocol through the mention/1 function. This example uses our channel from the previous code block. channel |> to_string ( ) "<#766435015768539156>" Channel Cache The ChannelCache module provides functionality for you to retrieve information about any channel that your application can see. It provides two functions: get/1 and get!/1 . Example Nostrum.Cache.ChannelCache . get! ( 827333533688397865 ) % Nostrum.Struct.Channel { application_id : nil , bitrate : nil , guild_id : 766435015768539156 , icon : nil , id : 827333533688397865 , last_message_id : nil , last_pin_timestamp : nil , name : "announcements" , nsfw : false , owner_id : nil , parent_id : nil , permission_overwrites : [ % Nostrum.Struct.Overwrite { allow : 0 , deny : 2048 , id : 766435015768539156 , type : :role } ] , position : 1 , recipients : nil , topic : nil , type : 5 , user_limit : nil } More details of the cache can be found at Nostrum.Cache.ChannelCache . Helper Functions This module contains two functions for assisting with channel structs. mention/1 to convert the channel into a mention as a string, and link/1 to convert the channel into a hyperlink as a string. Further details and examples are detailed in the Functions section of this module. Api Functions The Nostrum Api contains numerous functions related to channels. Notable functions relating to channels are shown below. Nostrum.Api.create_guild_channel/2 Nostrum.Api.get_channel/1 Nostrum.Api.modify_channel/3 Nostrum.Api.delete_channel/2 Nostrum.Api.add_pinned_channel_message/2 Nostrum.Api.create_channel_invite/3 Nostrum.Api.get_guild_channels/1 Nostrum.Api.modify_guild_channel_positions/2 Note: This is not an exhaustive list, for full details please see the Nostrum.Api module documentation. Channel Types Channels take the shape of various types depending on their use and not all fields are always used. The currently implemented channel types are detailed below. The type of channel is determined by the :type field. This diagram represents the regular channel types 0 , 2 , 5 and 13 . The currently implemented channel types are: Channel Type 0 GUILD_TEXT A text channel within a server 1 DM A direct message between users 2 GUILD_VOICE A voice channel within a server 3 GROUP_DM A direct message between multiple users 4 GUILD_CATEGORY A category that contains up to 50 channels 5 GUILD_NEWS A channel that users can follow and crosspost 6 GUILD_STORE A channel to sell games on Discord 10 GUILD_NEWS_THREAD A temporary sub-channel within a news channel 11 GUILD_PUBLIC_THREAD A temporary sub-channel within a text channel 12 GUILD_PRIVATE_THREAD A temporary private sub-channel within a text channel 13 GUILD_STAGE_VOICE A voice channel for hosting events with an audience 15 GUILD_FORUM _A channel that can only contain threads You can use one of the Nostrum.Constants.ChannelType methods. More information about Discord Channel Types can be found on the Discord API Channel Type Documentation .","ref":"Nostrum.Struct.Channel.html"},{"type":"function","title":"Nostrum.Struct.Channel.mention/1","doc":"Convert a channel into a mention. Handles the conversion of a Nostrum.Struct.Channel into the required format to mention the channel within a message. Mentioning the channel will provide a clickable link to take the user to the channel. Parameters channel: Nostrum.Struct.Channel.t/0 Examples Nostrum.Cache.ChannelCache . get ( 381889573426429952 ) |> Nostrum.Struct.Channel . mention ( ) "<#381889573426429952>"","ref":"Nostrum.Struct.Channel.html#mention/1"},{"type":"type","title":"Nostrum.Struct.Channel.application_id/0","doc":"The id of the application that created a group direct message or thread. This applies to bot created channels.","ref":"Nostrum.Struct.Channel.html#t:application_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.applied_tags/0","doc":"","ref":"Nostrum.Struct.Channel.html#t:applied_tags/0"},{"type":"type","title":"Nostrum.Struct.Channel.archive_timestamp/0","doc":"When the thread was archived.","ref":"Nostrum.Struct.Channel.html#t:archive_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Channel.archived/0","doc":"The threads archived status.","ref":"Nostrum.Struct.Channel.html#t:archived/0"},{"type":"type","title":"Nostrum.Struct.Channel.auto_archive_duration/0","doc":"Archive duration for the thread in minutes. 60, 1 hour 1440, 24 hours 4320, 3 days 10080, 7 days","ref":"Nostrum.Struct.Channel.html#t:auto_archive_duration/0"},{"type":"type","title":"Nostrum.Struct.Channel.bitrate/0","doc":"The bitate of the voice channel.","ref":"Nostrum.Struct.Channel.html#t:bitrate/0"},{"type":"type","title":"Nostrum.Struct.Channel.channel_mention/0","doc":"A partial channel object representing a channel mention. More information about the Discord Channel Mention Object can be found at the Discord API Channel Mention Object Documentation .","ref":"Nostrum.Struct.Channel.html#t:channel_mention/0"},{"type":"type","title":"Nostrum.Struct.Channel.default_auto_archive_duration/0","doc":"Default duration for newly created threads in minutes. 60, 1 hour 1440, 24 hours 4320, 3 days 10080, 7 days","ref":"Nostrum.Struct.Channel.html#t:default_auto_archive_duration/0"},{"type":"type","title":"Nostrum.Struct.Channel.default_reaction_emoji/0","doc":"An object that specifies the emoji to use as the default way to react to a forum post. :emoji_id and :emoji_name are mutually exclusive","ref":"Nostrum.Struct.Channel.html#t:default_reaction_emoji/0"},{"type":"type","title":"Nostrum.Struct.Channel.default_thread_rate_limit_per_user/0","doc":"The :rate_limit_per_user which will be applied to threads created in the channel, in seconds.","ref":"Nostrum.Struct.Channel.html#t:default_thread_rate_limit_per_user/0"},{"type":"type","title":"Nostrum.Struct.Channel.dm_channel/0","doc":"Type 1 partial channel object representing a direct message.","ref":"Nostrum.Struct.Channel.html#t:dm_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.flags/0","doc":"User thread settings, currently only used for notifications.","ref":"Nostrum.Struct.Channel.html#t:flags/0"},{"type":"type","title":"Nostrum.Struct.Channel.forum_tag/0","doc":"A map representing a tag for use in forum channels. :moderated indicates whether the tag can only be added or removed by moderators. :emoji_id and :emoji_name are mutually exclusive and indicate the emoji used to represent the tag.","ref":"Nostrum.Struct.Channel.html#t:forum_tag/0"},{"type":"type","title":"Nostrum.Struct.Channel.group_dm_channel/0","doc":"Type 3 partial channel object representing a group direct message.","ref":"Nostrum.Struct.Channel.html#t:group_dm_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_category_channel/0","doc":"Type 4 partial channel object representing a channel category. Note: Other channels parent_id field refers to this type of object.","ref":"Nostrum.Struct.Channel.html#t:guild_category_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_channel/0","doc":"Guild channel types","ref":"Nostrum.Struct.Channel.html#t:guild_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_forum_channel/0","doc":"Type 15 a guild forum channel.","ref":"Nostrum.Struct.Channel.html#t:guild_forum_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_id/0","doc":"The id of the guild the channel is located in.","ref":"Nostrum.Struct.Channel.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_news_channel/0","doc":"Type 5 partial channel object representing a news channel.","ref":"Nostrum.Struct.Channel.html#t:guild_news_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_news_thread_channel/0","doc":"Type 10 partial channel object representing a news thread.","ref":"Nostrum.Struct.Channel.html#t:guild_news_thread_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_private_thread_channel/0","doc":"Type 12 partial channel object representing a private thread.","ref":"Nostrum.Struct.Channel.html#t:guild_private_thread_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_public_thread_channel/0","doc":"Type 11 partial channel object representing a standard thread.","ref":"Nostrum.Struct.Channel.html#t:guild_public_thread_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_stage_voice_channel/0","doc":"Type 13 channel object representing a stage channel.","ref":"Nostrum.Struct.Channel.html#t:guild_stage_voice_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_store_channel/0","doc":"Type 6 partial channel object representing a store channel.","ref":"Nostrum.Struct.Channel.html#t:guild_store_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_text_channel/0","doc":"Type 0 partial channel object representing a text channel within a guild.","ref":"Nostrum.Struct.Channel.html#t:guild_text_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.guild_voice_channel/0","doc":"Type 2 partial channel object representing an audio channel within a guild.","ref":"Nostrum.Struct.Channel.html#t:guild_voice_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.icon/0","doc":"The hash of the channels icon.","ref":"Nostrum.Struct.Channel.html#t:icon/0"},{"type":"type","title":"Nostrum.Struct.Channel.id/0","doc":"The id of the channel object.","ref":"Nostrum.Struct.Channel.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Channel.join_timestamp/0","doc":"When the user joined the thread.","ref":"Nostrum.Struct.Channel.html#t:join_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Channel.last_message_id/0","doc":"The id of the last message sent in the channel. For GUILD_FORUM channels, this is the last thread created in the channel.","ref":"Nostrum.Struct.Channel.html#t:last_message_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.last_pin_timestamp/0","doc":"Timestamp for the last pinned message.","ref":"Nostrum.Struct.Channel.html#t:last_pin_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Channel.locked/0","doc":"The threads locked status.","ref":"Nostrum.Struct.Channel.html#t:locked/0"},{"type":"type","title":"Nostrum.Struct.Channel.member/0","doc":"Present when the bot joins a thread. Note: This is omitted on threads that the bot can immediately access on :GUILD_CREATE events received.","ref":"Nostrum.Struct.Channel.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Channel.member_count/0","doc":"Approximate count of members in a thread, capped at 50.","ref":"Nostrum.Struct.Channel.html#t:member_count/0"},{"type":"type","title":"Nostrum.Struct.Channel.message_count/0","doc":"Approximate count of messages in a thread, capped at 50.","ref":"Nostrum.Struct.Channel.html#t:message_count/0"},{"type":"type","title":"Nostrum.Struct.Channel.name/0","doc":"The name of the channel.","ref":"Nostrum.Struct.Channel.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Channel.newly_created/0","doc":"Included only in the THREAD_CREATE event.","ref":"Nostrum.Struct.Channel.html#t:newly_created/0"},{"type":"type","title":"Nostrum.Struct.Channel.nsfw/0","doc":"Whether the NSFW setting is enabled for this channel.","ref":"Nostrum.Struct.Channel.html#t:nsfw/0"},{"type":"type","title":"Nostrum.Struct.Channel.owner_id/0","doc":"The id of the user of a group direct message or thread. This applies to user created channels.","ref":"Nostrum.Struct.Channel.html#t:owner_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.parent_id/0","doc":"The id of the parent channel that this channel is located under. For threads, that is the channel that contains the thread. For regular channels, it is the category that the channel is located under.","ref":"Nostrum.Struct.Channel.html#t:parent_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.permission_overwrites/0","doc":"A list of permission overwrites applied to the channel.","ref":"Nostrum.Struct.Channel.html#t:permission_overwrites/0"},{"type":"type","title":"Nostrum.Struct.Channel.permissions/0","doc":"Computed permissions of the invoking user. Permissions for the invoking user in the channel, including overwrites, only included when part of the resolved data received on a slash command interaction","ref":"Nostrum.Struct.Channel.html#t:permissions/0"},{"type":"type","title":"Nostrum.Struct.Channel.position/0","doc":"The position of the channel in the sidebar of the guild.","ref":"Nostrum.Struct.Channel.html#t:position/0"},{"type":"type","title":"Nostrum.Struct.Channel.rate_limit_per_user/0","doc":"The users rate limit. Amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages or manage_channel, are unaffected","ref":"Nostrum.Struct.Channel.html#t:rate_limit_per_user/0"},{"type":"type","title":"Nostrum.Struct.Channel.recipients/0","doc":"A list of users in a group DM.","ref":"Nostrum.Struct.Channel.html#t:recipients/0"},{"type":"type","title":"Nostrum.Struct.Channel.rtc_region/0","doc":"Region id for the channel. More information about region ids can be found on the Discord API Voice Region Object Documentation .","ref":"Nostrum.Struct.Channel.html#t:rtc_region/0"},{"type":"type","title":"Nostrum.Struct.Channel.t/0","doc":"All valid channel types.","ref":"Nostrum.Struct.Channel.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Channel.text_channel/0","doc":"All valid text channels.","ref":"Nostrum.Struct.Channel.html#t:text_channel/0"},{"type":"type","title":"Nostrum.Struct.Channel.thread_metadata/0","doc":"Thread-specific fields not needed by other channels.","ref":"Nostrum.Struct.Channel.html#t:thread_metadata/0"},{"type":"type","title":"Nostrum.Struct.Channel.topic/0","doc":"The topic of the channel.","ref":"Nostrum.Struct.Channel.html#t:topic/0"},{"type":"type","title":"Nostrum.Struct.Channel.type/0","doc":"The type of channel. More information about Discord Channel Types can be found under the types on the Discord API Channel Type Documentation .","ref":"Nostrum.Struct.Channel.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Channel.user_id/0","doc":"User id of the threads creator.","ref":"Nostrum.Struct.Channel.html#t:user_id/0"},{"type":"type","title":"Nostrum.Struct.Channel.user_limit/0","doc":"The user limit of a voice channel.","ref":"Nostrum.Struct.Channel.html#t:user_limit/0"},{"type":"type","title":"Nostrum.Struct.Channel.video_quality_mode/0","doc":"The video quality mode of the channel. More information about video quality modes can be found on the Discord API Video Quality Mode Documentation .","ref":"Nostrum.Struct.Channel.html#t:video_quality_mode/0"},{"type":"type","title":"Nostrum.Struct.Channel.voice_channel/0","doc":"A Nostrum.Struct.Channel that represents a voice channel","ref":"Nostrum.Struct.Channel.html#t:voice_channel/0"},{"type":"behaviour","title":"Nostrum.Struct.Component","doc":"Components are a framework for adding interactive elements to the messages your app or bot sends. They're accessible, customizable, and easy to use. There are several different types of components; this documentation will outline the basics of this new framework and each example. Components have been broken out into individual modules for easy distinction between them and to separate helper functions and individual type checking between component types - especially as more components are added by Discord. Each of the components are provided all of the valid types through this module to avoid repetition and allow new components to be added quicker and easier. Action Row An Action Row is a non-interactive container component for other types of components. It has a type: 1 and a sub-array of components of other types. You can have up to 5 Action Rows per message An Action Row cannot contain another Action Row An Action Row containing buttons cannot also contain a select menu Buttons Buttons are interactive components that render on messages. They have a type: 2 , They can be clicked by users. Buttons in Nostrum are further separated into two types, detailed below. Only the Interaction Button will fire a Nostrum.Struct.Interaction when pressed. Buttons must exist inside an Action Row An Action Row can contain up to 5 buttons An Action Row containing buttons cannot also contain a select menu For more information check out the Discord API Button Styles for more information. Link Buttons Link buttons do not send an interaction to your app when clicked Link buttons must have a url , and cannot have a custom_id Link buttons will always use style: 5 Link style: 5 Interaction Buttons ( Non-link Buttons ) Discord calls these buttons "Non-link Buttons" due to the fact that they do not contain a url. However it would be more accurate to call them an "Interaction Button" as they do fire an interaction when clicked which is far more useful for your applications interactivity. As such they are referred to as "Interaction Button" throughout the rest of this module. Interaction buttons must have a custom_id , and cannot have a url Can have one of the below :style applied. Primary style: 1 Secondary style: 2 Success style: 3 Danger style: 4 🐼 Emoji Buttons Note: The discord documentation and marketing material in relation to buttons indicates that there are three kinds of buttons: 🐼 Emoji Buttons , Link Buttons & Non-Link Buttons . When in fact all buttons can contain an emoji. Because of this reason 🐼 Emoji Buttons are not included as a separate type. Emojis will be instead handled by the two included ( superior ) button types. The field requirements are already becoming convoluted especially considering everything so far is all still a "Component". Using the sub types and helper functions will ensure all of the rules are followed when creating components. Select Menu Select menus are another interactive component that renders on messages. On desktop, clicking on a select menu opens a dropdown-style UI; on mobile, tapping a select menu opens up a half-sheet with the options. Select menus support single-select and multi-select behavior, meaning you can prompt a user to choose just one item from a list, or multiple. When a user finishes making their choice by clicking out of the dropdown or closing the half-sheet, your app will receive an interaction. Select menus must be sent inside an Action Row An Action Row can contain only one select menu An Action Row containing a select menu cannot also contain buttons Text Input Text inputs are an interactive component that render on modals. They can be used to collect short-form or long-form text. Text inputs must be sent inside an Action Row An Action Row can contain only one text input An Action Row containing a text input cannot also contain buttons or a select menu Can be used to collect short-form or long-form text. For short-form text, use style: 1 For long-form text, use style: 2 Text inputs are only allowed to be sent as part of an Interaction response that opens a MODAL.","ref":"Nostrum.Struct.Component.html"},{"type":"callback","title":"Nostrum.Struct.Component.new/1","doc":"Create a component from the given keyword list of options Note: While using this function directly, you are not guaranteed to produce a valid component and it is the responsibility of the user to ensure they are passing a valid combination of component attributes. eg. if you pass a button component both a custom_id , and a url , the component is invalid as only one of these fields is allowed.","ref":"Nostrum.Struct.Component.html#c:new/1"},{"type":"function","title":"Nostrum.Struct.Component.to_struct/1","doc":"","ref":"Nostrum.Struct.Component.html#to_struct/1"},{"type":"callback","title":"Nostrum.Struct.Component.update/2","doc":"Updates a component with the parameters provided. Note: While using this function directly, you are not guaranteed to produce a valid component and it is the responsibility of the user to ensure they are passing a valid combination of component attributes. eg. if you pass a button component both a custom_id , and a url , the component is invalid as only one of these fields is allowed.","ref":"Nostrum.Struct.Component.html#c:update/2"},{"type":"type","title":"Nostrum.Struct.Component.components/0","doc":"A list of components to place inside an action row. Due to constraints of action rows, this can either be a list of up to five buttons, a single select menu, or a single text input. Valid for Action Row .","ref":"Nostrum.Struct.Component.html#t:components/0"},{"type":"type","title":"Nostrum.Struct.Component.custom_id/0","doc":"Used to identify the command when the interaction is sent to you from the user. Valid for Interaction Buttons , Select Menus , and Text Input .","ref":"Nostrum.Struct.Component.html#t:custom_id/0"},{"type":"type","title":"Nostrum.Struct.Component.disabled/0","doc":"Indicates if the component is disabled or not. Valid for Buttons & Select Menus .","ref":"Nostrum.Struct.Component.html#t:disabled/0"},{"type":"type","title":"Nostrum.Struct.Component.emoji/0","doc":"A partial emoji to display on the object. Valid for Buttons","ref":"Nostrum.Struct.Component.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Component.label/0","doc":"A string that appears on the button, max 80 characters. Valid for Buttons","ref":"Nostrum.Struct.Component.html#t:label/0"},{"type":"type","title":"Nostrum.Struct.Component.max_length/0","doc":"The maximum length of the text input. Minimum value 1, max 4000. Valid for Text Input .","ref":"Nostrum.Struct.Component.html#t:max_length/0"},{"type":"type","title":"Nostrum.Struct.Component.max_values/0","doc":"The maximum number of permitted selections. Minimum value 0, max 25. Valid for Select Menus .","ref":"Nostrum.Struct.Component.html#t:max_values/0"},{"type":"type","title":"Nostrum.Struct.Component.min_length/0","doc":"The minimum length of the text input. Minimum value 0, max 4000. Valid for Text Input .","ref":"Nostrum.Struct.Component.html#t:min_length/0"},{"type":"type","title":"Nostrum.Struct.Component.min_values/0","doc":"The minimum number of permitted selections. Minimum value 0, max 25. Valid for Select Menus .","ref":"Nostrum.Struct.Component.html#t:min_values/0"},{"type":"type","title":"Nostrum.Struct.Component.options/0","doc":"A list of options for select menus, max 25. Valid for Select Menus .","ref":"Nostrum.Struct.Component.html#t:options/0"},{"type":"type","title":"Nostrum.Struct.Component.placeholder/0","doc":"Placeholder text if nothing is selected, max 100 characters Valid for Select Menus and Text Input .","ref":"Nostrum.Struct.Component.html#t:placeholder/0"},{"type":"type","title":"Nostrum.Struct.Component.required/0","doc":"Indicates if the text input is required. Valid for Text Input .","ref":"Nostrum.Struct.Component.html#t:required/0"},{"type":"type","title":"Nostrum.Struct.Component.style/0","doc":"Indicates the style. You can use one of the Nostrum.Constants.ButtonStyle methods. Valid for Valid for Interaction Buttons and Text Input .","ref":"Nostrum.Struct.Component.html#t:style/0"},{"type":"type","title":"Nostrum.Struct.Component.t/0","doc":"The currently valid component types.","ref":"Nostrum.Struct.Component.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Component.type/0","doc":"The type of component. Valid for All Types. Component Types 1 Action Row 2 Button 3 SelectMenu 4 TextInput You can use one of the Nostrum.Constants.ComponentType methods. Check out the Discord API Message Component Types for more information.","ref":"Nostrum.Struct.Component.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Component.url/0","doc":"A url for link buttons. Valid for: Buttons","ref":"Nostrum.Struct.Component.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Component.value/0","doc":"A pre-filled value for the text input, max 4000 characters. Valid for Text Input .","ref":"Nostrum.Struct.Component.html#t:value/0"},{"type":"module","title":"Nostrum.Struct.Component.ActionRow","doc":"Action Rows.","ref":"Nostrum.Struct.Component.ActionRow.html"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.action_row/1","doc":"Create an empty action row. Options can be passed as a keyword list. The only supported option is a list of inner components","ref":"Nostrum.Struct.Component.ActionRow.html#action_row/1"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.append/2","doc":"Appends a button to the action row. Returns the action row unchanged if there are already 5 buttons or if the action row contains a select menu or text input.","ref":"Nostrum.Struct.Component.ActionRow.html#append/2"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.append_lazy/2","doc":"Lazily appends a button to the action row. If there are already 5 buttons, the first one will be dropped.","ref":"Nostrum.Struct.Component.ActionRow.html#append_lazy/2"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.flatten/1","doc":"","ref":"Nostrum.Struct.Component.ActionRow.html#flatten/1"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.put/2","doc":"Puts the given component into the action row, any existing components are discarded.","ref":"Nostrum.Struct.Component.ActionRow.html#put/2"},{"type":"function","title":"Nostrum.Struct.Component.ActionRow.put_new/2","doc":"Puts the components into the action row unless a list of inner components already exists.","ref":"Nostrum.Struct.Component.ActionRow.html#put_new/2"},{"type":"type","title":"Nostrum.Struct.Component.ActionRow.t/0","doc":"","ref":"Nostrum.Struct.Component.ActionRow.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Component.Button","doc":"Helpers for dealing with Button Components","ref":"Nostrum.Struct.Component.Button.html"},{"type":"function","title":"Nostrum.Struct.Component.Button.button/1","doc":"Create a button. This function provides direct access to the new/1 callback. Note: While using this function directly you are not guaranteed to return a valid button, providing a valid combination of options becomes the responsibility of the reader. It is instead recommended to use the helper functions provided below.","ref":"Nostrum.Struct.Component.Button.html#button/1"},{"type":"function","title":"Nostrum.Struct.Component.Button.disable/2","doc":"Disables the button when disabled is true. Enables it otherwise.","ref":"Nostrum.Struct.Component.Button.html#disable/2"},{"type":"function","title":"Nostrum.Struct.Component.Button.flatten/1","doc":"","ref":"Nostrum.Struct.Component.Button.html#flatten/1"},{"type":"function","title":"Nostrum.Struct.Component.Button.interaction_button/3","doc":"Create an interaction button. Read more about interaction buttons in the Nostrum.Struct.Component documentation.","ref":"Nostrum.Struct.Component.Button.html#interaction_button/3"},{"type":"function","title":"Nostrum.Struct.Component.Button.link_button/3","doc":"Create a link button. Read more about link buttons in the Nostrum.Struct.Component documentation.","ref":"Nostrum.Struct.Component.Button.html#link_button/3"},{"type":"function","title":"Nostrum.Struct.Component.Button.put_style/2","doc":"Changes the style of the button.","ref":"Nostrum.Struct.Component.Button.html#put_style/2"},{"type":"function","title":"Nostrum.Struct.Component.Button.toggle/1","doc":"Toggle the buttons disabled state.","ref":"Nostrum.Struct.Component.Button.html#toggle/1"},{"type":"type","title":"Nostrum.Struct.Component.Button.interaction_button/0","doc":"","ref":"Nostrum.Struct.Component.Button.html#t:interaction_button/0"},{"type":"type","title":"Nostrum.Struct.Component.Button.link_button/0","doc":"","ref":"Nostrum.Struct.Component.Button.html#t:link_button/0"},{"type":"type","title":"Nostrum.Struct.Component.Button.opt/0","doc":"","ref":"Nostrum.Struct.Component.Button.html#t:opt/0"},{"type":"type","title":"Nostrum.Struct.Component.Button.opts/0","doc":"","ref":"Nostrum.Struct.Component.Button.html#t:opts/0"},{"type":"type","title":"Nostrum.Struct.Component.Button.t/0","doc":"","ref":"Nostrum.Struct.Component.Button.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Component.Option","doc":"Component Options","ref":"Nostrum.Struct.Component.Option.html"},{"type":"type","title":"Nostrum.Struct.Component.Option.default/0","doc":"If this option is selected by default.","ref":"Nostrum.Struct.Component.Option.html#t:default/0"},{"type":"type","title":"Nostrum.Struct.Component.Option.description/0","doc":"An optional description of the option. Max length is 100 characters.","ref":"Nostrum.Struct.Component.Option.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Component.Option.emoji/0","doc":"","ref":"Nostrum.Struct.Component.Option.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Component.Option.label/0","doc":"The user-facing name of the option.","ref":"Nostrum.Struct.Component.Option.html#t:label/0"},{"type":"type","title":"Nostrum.Struct.Component.Option.t/0","doc":"","ref":"Nostrum.Struct.Component.Option.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Component.Option.value/0","doc":"The developer defined value of the option.","ref":"Nostrum.Struct.Component.Option.html#t:value/0"},{"type":"module","title":"Nostrum.Struct.Component.SelectMenu","doc":"Select Menu","ref":"Nostrum.Struct.Component.SelectMenu.html"},{"type":"function","title":"Nostrum.Struct.Component.SelectMenu.flatten/1","doc":"","ref":"Nostrum.Struct.Component.SelectMenu.html#flatten/1"},{"type":"function","title":"Nostrum.Struct.Component.SelectMenu.select_menu/2","doc":"Creates a select menu that can be used inside an action row. Options can be passed as a keyword list. Parameters custom_id - lower case string, used for matching against when your application receives an interaction. Options disabled - If the select should be disabled options - A list of options for the select menu, see Nostrum.Struct.Component.Option placeholder - Value to be shown before anything is selected min_values - minimum number of values the user must select, between 0 and 25, default is 1 max_values - maximum number of values the user must select, between 0 and 25, default is 1","ref":"Nostrum.Struct.Component.SelectMenu.html#select_menu/2"},{"type":"type","title":"Nostrum.Struct.Component.SelectMenu.opt/0","doc":"","ref":"Nostrum.Struct.Component.SelectMenu.html#t:opt/0"},{"type":"type","title":"Nostrum.Struct.Component.SelectMenu.opts/0","doc":"","ref":"Nostrum.Struct.Component.SelectMenu.html#t:opts/0"},{"type":"type","title":"Nostrum.Struct.Component.SelectMenu.t/0","doc":"","ref":"Nostrum.Struct.Component.SelectMenu.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Component.TextInput","doc":"Text Input.","ref":"Nostrum.Struct.Component.TextInput.html"},{"type":"function","title":"Nostrum.Struct.Component.TextInput.flatten/1","doc":"","ref":"Nostrum.Struct.Component.TextInput.html#flatten/1"},{"type":"function","title":"Nostrum.Struct.Component.TextInput.put_style/2","doc":"","ref":"Nostrum.Struct.Component.TextInput.html#put_style/2"},{"type":"function","title":"Nostrum.Struct.Component.TextInput.text_input/3","doc":"Create a text input component.","ref":"Nostrum.Struct.Component.TextInput.html#text_input/3"},{"type":"type","title":"Nostrum.Struct.Component.TextInput.opt/0","doc":"","ref":"Nostrum.Struct.Component.TextInput.html#t:opt/0"},{"type":"type","title":"Nostrum.Struct.Component.TextInput.opts/0","doc":"","ref":"Nostrum.Struct.Component.TextInput.html#t:opts/0"},{"type":"type","title":"Nostrum.Struct.Component.TextInput.t/0","doc":"","ref":"Nostrum.Struct.Component.TextInput.html#t:t/0"},{"type":"behaviour","title":"Nostrum.Struct.Embed","doc":"Functions that work on Discord embeds. Building Embeds Nostrum.Struct.Embed s can be built using this module's builder functions or standard Map syntax: iex> import Nostrum.Struct.Embed ...> embed = ...> % Nostrum.Struct.Embed { } ...> |> put_title ( "craig" ) ...> |> put_description ( "nostrum" ) ...> |> put_url ( "https://google.com/" ) ...> |> put_timestamp ( "2016-05-05T21:04:13.203Z" ) ...> |> put_color ( 431_948 ) ...> |> put_field ( "Field 1" , "Test" ) ...> |> put_field ( "Field 2" , "More test" , true ) ...> embed % Nostrum.Struct.Embed { title : "craig" , description : "nostrum" , url : "https://google.com/" , timestamp : "2016-05-05T21:04:13.203Z" , color : 431_948 , fields : [ % Nostrum.Struct.Embed.Field { name : "Field 1" , value : "Test" } , % Nostrum.Struct.Embed.Field { name : "Field 2" , value : "More test" , inline : true } ] } Using structs You can also create Nostrum.Struct.Embed s from structs, by using the Nostrum.Struct.Embed module. Here's how the example above could be build using structs defmodule MyApp.MyStruct do use Nostrum.Struct.Embed defstruct [ ] def title ( _ ) , do : "craig" def description ( _ ) , do : "nostrum" def url ( _ ) , do : "https://google.com/" def timestamp ( _ ) , do : "2016-05-05T21:04:13.203Z" def color ( _ ) , do : 431_948 def fields ( _ ) do [ % Nostrum.Struct.Embed.Field { name : "Field 1" , value : "Test" } , % Nostrum.Struct.Embed.Field { name : "Field 2" , value : "More test" , inline : true } ] end end iex> Nostrum.Struct.Embed . from ( % MyApp.MyStruct { } ) % Nostrum.Struct.Embed { title : "craig" , description : "nostrum" , url : "https://google.com/" , timestamp : "2016-05-05T21:04:13.203Z" , color : 431_948 , fields : [ % Nostrum.Struct.Embed.Field { name : "Field 1" , value : "Test" } , % Nostrum.Struct.Embed.Field { name : "Field 2" , value : "More test" , inline : true } ] } See this modules callbacks for a list of all the functions that can be implemented. The implementation of these callbacks is optional. Not implemented functions will simply be ignored.","ref":"Nostrum.Struct.Embed.html"},{"type":"callback","title":"Nostrum.Struct.Embed.author/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:author/1"},{"type":"callback","title":"Nostrum.Struct.Embed.color/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:color/1"},{"type":"callback","title":"Nostrum.Struct.Embed.description/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:description/1"},{"type":"callback","title":"Nostrum.Struct.Embed.fields/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:fields/1"},{"type":"callback","title":"Nostrum.Struct.Embed.footer/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:footer/1"},{"type":"function","title":"Nostrum.Struct.Embed.from/1","doc":"Create an embed from a struct that implements the Nostrum.Struct.Embed behaviour","ref":"Nostrum.Struct.Embed.html#from/1"},{"type":"callback","title":"Nostrum.Struct.Embed.image/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:image/1"},{"type":"function","title":"Nostrum.Struct.Embed.put_author/4","doc":"Puts a Nostrum.Struct.Embed.Author under :author in embed . Examples iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_author ( embed , "skippi" , "https://github.com/skippi" , nil ) % Nostrum.Struct.Embed { author : % Nostrum.Struct.Embed.Author { name : "skippi" , url : "https://github.com/skippi" , icon_url : nil } }","ref":"Nostrum.Struct.Embed.html#put_author/4"},{"type":"function","title":"Nostrum.Struct.Embed.put_color/2","doc":"Puts the given value under :color in embed . Examples iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_color ( embed , 431948 ) % Nostrum.Struct.Embed { color : 431948 }","ref":"Nostrum.Struct.Embed.html#put_color/2"},{"type":"function","title":"Nostrum.Struct.Embed.put_description/2","doc":"Puts the given value under :description in embed . Examples iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_description ( embed , "An elixir library for the discord API." ) % Nostrum.Struct.Embed { description : "An elixir library for the discord API." }","ref":"Nostrum.Struct.Embed.html#put_description/2"},{"type":"function","title":"Nostrum.Struct.Embed.put_field/4","doc":"Adds a Nostrum.Struct.Embed.Field under :fields in embed . Examples iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_field ( embed , "First User" , "b1nzy" ) % Nostrum.Struct.Embed { fields : [ % Nostrum.Struct.Embed.Field { name : "First User" , value : "b1nzy" } ] } iex> embed = % Nostrum.Struct.Embed { ...> fields : [ ...> % Nostrum.Struct.Embed.Field { name : "First User" , value : "b1nzy" } ...> ] ...> } ...> Nostrum.Struct.Embed . put_field ( embed , "Second User" , "Danny" ) % Nostrum.Struct.Embed { fields : [ % Nostrum.Struct.Embed.Field { name : "First User" , value : "b1nzy" } , % Nostrum.Struct.Embed.Field { name : "Second User" , value : "Danny" } ] }","ref":"Nostrum.Struct.Embed.html#put_field/4"},{"type":"function","title":"Nostrum.Struct.Embed.put_footer/3","doc":"Puts a Nostrum.Struct.Embed.Footer under :footer in embed . Examples iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_footer ( embed , "Discord API" , nil ) % Nostrum.Struct.Embed { footer : % Nostrum.Struct.Embed.Footer { text : "Discord API" , icon_url : nil } } iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_footer ( embed , "nostrum footer" , "https://discord.com/assets/53ef346458017da2062aca5c7955946b.svg" ) % Nostrum.Struct.Embed { footer : % Nostrum.Struct.Embed.Footer { text : "nostrum footer" , icon_url : "https://discord.com/assets/53ef346458017da2062aca5c7955946b.svg" } }","ref":"Nostrum.Struct.Embed.html#put_footer/3"},{"type":"function","title":"Nostrum.Struct.Embed.put_image/2","doc":"Puts a Nostrum.Struct.Embed.Image under :image in embed . Examples iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_image ( embed , "https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg" ) % Nostrum.Struct.Embed { image : % Nostrum.Struct.Embed.Image { url : "https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg" } }","ref":"Nostrum.Struct.Embed.html#put_image/2"},{"type":"function","title":"Nostrum.Struct.Embed.put_thumbnail/2","doc":"Puts a Nostrum.Struct.Embed.Thumbnail under :thumbnail in embed . Examples iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_thumbnail ( embed , "https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg" ) % Nostrum.Struct.Embed { thumbnail : % Nostrum.Struct.Embed.Thumbnail { url : "https://discord.com/assets/af92e60c16b7019f34a467383b31490a.svg" } }","ref":"Nostrum.Struct.Embed.html#put_thumbnail/2"},{"type":"function","title":"Nostrum.Struct.Embed.put_timestamp/2","doc":"Puts the given value under :timestamp in embed . Examples iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_timestamp ( embed , "2018-04-21T17:33:51.893000Z" ) % Nostrum.Struct.Embed { timestamp : "2018-04-21T17:33:51.893000Z" }","ref":"Nostrum.Struct.Embed.html#put_timestamp/2"},{"type":"function","title":"Nostrum.Struct.Embed.put_title/2","doc":"Puts the given value under :title in embed . Examples iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_title ( embed , "nostrum" ) % Nostrum.Struct.Embed { title : "nostrum" }","ref":"Nostrum.Struct.Embed.html#put_title/2"},{"type":"function","title":"Nostrum.Struct.Embed.put_url/2","doc":"Puts the given value under :url in embed . Examples iex> embed = % Nostrum.Struct.Embed { } ...> Nostrum.Struct.Embed . put_url ( embed , "https://github.com/Kraigie/nostrum" ) % Nostrum.Struct.Embed { url : "https://github.com/Kraigie/nostrum" }","ref":"Nostrum.Struct.Embed.html#put_url/2"},{"type":"callback","title":"Nostrum.Struct.Embed.thumbnail/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:thumbnail/1"},{"type":"callback","title":"Nostrum.Struct.Embed.timestamp/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:timestamp/1"},{"type":"callback","title":"Nostrum.Struct.Embed.title/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:title/1"},{"type":"callback","title":"Nostrum.Struct.Embed.url/1","doc":"","ref":"Nostrum.Struct.Embed.html#c:url/1"},{"type":"type","title":"Nostrum.Struct.Embed.author/0","doc":"Author information","ref":"Nostrum.Struct.Embed.html#t:author/0"},{"type":"type","title":"Nostrum.Struct.Embed.color/0","doc":"Color code of the embed","ref":"Nostrum.Struct.Embed.html#t:color/0"},{"type":"type","title":"Nostrum.Struct.Embed.description/0","doc":"Description of the embed","ref":"Nostrum.Struct.Embed.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Embed.fields/0","doc":"Fields information","ref":"Nostrum.Struct.Embed.html#t:fields/0"},{"type":"type","title":"Nostrum.Struct.Embed.footer/0","doc":"Footer information","ref":"Nostrum.Struct.Embed.html#t:footer/0"},{"type":"type","title":"Nostrum.Struct.Embed.image/0","doc":"Image information","ref":"Nostrum.Struct.Embed.html#t:image/0"},{"type":"type","title":"Nostrum.Struct.Embed.provider/0","doc":"Provider information","ref":"Nostrum.Struct.Embed.html#t:provider/0"},{"type":"type","title":"Nostrum.Struct.Embed.t/0","doc":"","ref":"Nostrum.Struct.Embed.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.thumbnail/0","doc":"Thumbnail information","ref":"Nostrum.Struct.Embed.html#t:thumbnail/0"},{"type":"type","title":"Nostrum.Struct.Embed.timestamp/0","doc":"Timestamp of embed content","ref":"Nostrum.Struct.Embed.html#t:timestamp/0"},{"type":"type","title":"Nostrum.Struct.Embed.title/0","doc":"Title of the embed","ref":"Nostrum.Struct.Embed.html#t:title/0"},{"type":"type","title":"Nostrum.Struct.Embed.type/0","doc":"Type of the embed","ref":"Nostrum.Struct.Embed.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Embed.url/0","doc":"Url of the embed","ref":"Nostrum.Struct.Embed.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Embed.video/0","doc":"Video information","ref":"Nostrum.Struct.Embed.html#t:video/0"},{"type":"module","title":"Nostrum.Struct.Embed.Author","doc":"Struct representing a Discord embed author.","ref":"Nostrum.Struct.Embed.Author.html"},{"type":"type","title":"Nostrum.Struct.Embed.Author.icon_url/0","doc":"URL of the author icon","ref":"Nostrum.Struct.Embed.Author.html#t:icon_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Author.name/0","doc":"Name of the author","ref":"Nostrum.Struct.Embed.Author.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Embed.Author.proxy_icon_url/0","doc":"Proxied URL of author icon","ref":"Nostrum.Struct.Embed.Author.html#t:proxy_icon_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Author.t/0","doc":"","ref":"Nostrum.Struct.Embed.Author.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Author.url/0","doc":"URL of the author","ref":"Nostrum.Struct.Embed.Author.html#t:url/0"},{"type":"module","title":"Nostrum.Struct.Embed.Field","doc":"Struct representing a Discord embed field.","ref":"Nostrum.Struct.Embed.Field.html"},{"type":"type","title":"Nostrum.Struct.Embed.Field.inline/0","doc":"Whether the field should display as inline","ref":"Nostrum.Struct.Embed.Field.html#t:inline/0"},{"type":"type","title":"Nostrum.Struct.Embed.Field.name/0","doc":"Name of the field","ref":"Nostrum.Struct.Embed.Field.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Embed.Field.t/0","doc":"","ref":"Nostrum.Struct.Embed.Field.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Field.value/0","doc":"Value of the field","ref":"Nostrum.Struct.Embed.Field.html#t:value/0"},{"type":"module","title":"Nostrum.Struct.Embed.Footer","doc":"Struct representing a Discord embed footer.","ref":"Nostrum.Struct.Embed.Footer.html"},{"type":"type","title":"Nostrum.Struct.Embed.Footer.icon_url/0","doc":"URL of footer icon","ref":"Nostrum.Struct.Embed.Footer.html#t:icon_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Footer.proxy_icon_url/0","doc":"Proxied URL of footer icon","ref":"Nostrum.Struct.Embed.Footer.html#t:proxy_icon_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Footer.t/0","doc":"","ref":"Nostrum.Struct.Embed.Footer.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Footer.text/0","doc":"Footer text","ref":"Nostrum.Struct.Embed.Footer.html#t:text/0"},{"type":"module","title":"Nostrum.Struct.Embed.Image","doc":"Struct representing a Discord embed image.","ref":"Nostrum.Struct.Embed.Image.html"},{"type":"type","title":"Nostrum.Struct.Embed.Image.height/0","doc":"Height of the image","ref":"Nostrum.Struct.Embed.Image.html#t:height/0"},{"type":"type","title":"Nostrum.Struct.Embed.Image.proxy_url/0","doc":"URL of image icon","ref":"Nostrum.Struct.Embed.Image.html#t:proxy_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Image.t/0","doc":"","ref":"Nostrum.Struct.Embed.Image.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Image.url/0","doc":"Image text","ref":"Nostrum.Struct.Embed.Image.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Image.width/0","doc":"Width of the image","ref":"Nostrum.Struct.Embed.Image.html#t:width/0"},{"type":"module","title":"Nostrum.Struct.Embed.Provider","doc":"Struct representing a Discord embed provider.","ref":"Nostrum.Struct.Embed.Provider.html"},{"type":"type","title":"Nostrum.Struct.Embed.Provider.name/0","doc":"Name of the provider","ref":"Nostrum.Struct.Embed.Provider.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Embed.Provider.t/0","doc":"","ref":"Nostrum.Struct.Embed.Provider.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Provider.url/0","doc":"URL of provider","ref":"Nostrum.Struct.Embed.Provider.html#t:url/0"},{"type":"module","title":"Nostrum.Struct.Embed.Thumbnail","doc":"Struct representing a Discord embed thumbnail.","ref":"Nostrum.Struct.Embed.Thumbnail.html"},{"type":"type","title":"Nostrum.Struct.Embed.Thumbnail.height/0","doc":"Height of the thumbnail","ref":"Nostrum.Struct.Embed.Thumbnail.html#t:height/0"},{"type":"type","title":"Nostrum.Struct.Embed.Thumbnail.proxy_url/0","doc":"URL of thumbnail icon","ref":"Nostrum.Struct.Embed.Thumbnail.html#t:proxy_url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Thumbnail.t/0","doc":"","ref":"Nostrum.Struct.Embed.Thumbnail.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Thumbnail.url/0","doc":"Source URL of the thumbnail","ref":"Nostrum.Struct.Embed.Thumbnail.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Thumbnail.width/0","doc":"Width of the thumbnail","ref":"Nostrum.Struct.Embed.Thumbnail.html#t:width/0"},{"type":"module","title":"Nostrum.Struct.Embed.Video","doc":"Struct representing a Discord embed video.","ref":"Nostrum.Struct.Embed.Video.html"},{"type":"type","title":"Nostrum.Struct.Embed.Video.height/0","doc":"Height of the video","ref":"Nostrum.Struct.Embed.Video.html#t:height/0"},{"type":"type","title":"Nostrum.Struct.Embed.Video.t/0","doc":"","ref":"Nostrum.Struct.Embed.Video.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Embed.Video.url/0","doc":"Source URL of the video","ref":"Nostrum.Struct.Embed.Video.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Embed.Video.width/0","doc":"Width of the video","ref":"Nostrum.Struct.Embed.Video.html#t:width/0"},{"type":"module","title":"Nostrum.Struct.Emoji","doc":"Struct representing a Discord emoji. Mentioning Emojis in Messages A Nostrum.Struct.Emoji can be mentioned in message content using the String.Chars protocol or mention/1 . emoji = % Nostrum.Struct.Emoji { id : 437093487582642177 , name : "foxbot" } Nostrum.Api . create_message! ( 184046599834435585 , " \#{ emoji } " ) % Nostrum.Struct.Message { content : "<:foxbot:437093487582642177>" } emoji = % Nostrum.Struct.Emoji { id : 436885297037312001 , name : "tealixir" } Nostrum.Api . create_message! ( 280085880452939778 , " \#{ Nostrum.Struct.Emoji . mention ( emoji ) } " ) % Nostrum.Struct.Message { content : "<:tealixir:436885297037312001>" } Using Emojis in the Api A Nostrum.Struct.Emoji can be used in Nostrum.Api by using its api name or the struct itself. emoji = % Nostrum.Struct.Emoji { id : 436885297037312001 , name : "tealixir" } Nostrum.Api . create_reaction ( 381889573426429952 , 436247584349356032 , Nostrum.Struct.Emoji . api_name ( emoji ) ) { :ok } emoji = % Nostrum.Struct.Emoji { id : 436189601820966923 , name : "elixir" } Nostrum.Api . create_reaction ( 381889573426429952 , 436247584349356032 , emoji ) { :ok } See Nostrum.Struct.Emoji.api_name/0 for more information.","ref":"Nostrum.Struct.Emoji.html"},{"type":"function","title":"Nostrum.Struct.Emoji.api_name/1","doc":"Formats an emoji struct into its Nostrum.Struct.Emoji.api_name/0 . Examples iex> emoji = % Nostrum.Struct.Emoji { name : "Γ¡É" } ...> Nostrum.Struct.Emoji . api_name ( emoji ) "Γ¡É" iex> emoji = % Nostrum.Struct.Emoji { id : 437093487582642177 , name : "foxbot" } ...> Nostrum.Struct.Emoji . api_name ( emoji ) "foxbot:437093487582642177"","ref":"Nostrum.Struct.Emoji.html#api_name/1"},{"type":"function","title":"Nostrum.Struct.Emoji.image_url/1","doc":"Returns the url of a custom emoji's image. If the emoji is not a custom one, returns nil . Examples iex> emoji = % Nostrum.Struct.Emoji { id : 450225070569291776 } iex> Nostrum.Struct.Emoji . image_url ( emoji ) "https://cdn.discordapp.com/emojis/450225070569291776.png" iex> emoji = % Nostrum.Struct.Emoji { id : 406140226998894614 , animated : true } iex> Nostrum.Struct.Emoji . image_url ( emoji ) "https://cdn.discordapp.com/emojis/406140226998894614.gif" iex> emoji = % Nostrum.Struct.Emoji { id : nil , name : "Γ¡É" } iex> Nostrum.Struct.Emoji . image_url ( emoji ) nil","ref":"Nostrum.Struct.Emoji.html#image_url/1"},{"type":"function","title":"Nostrum.Struct.Emoji.mention/1","doc":"Formats an Nostrum.Struct.Emoji into a mention. Examples iex> emoji = % Nostrum.Struct.Emoji { name : "≡ƒæì" } ...> Nostrum.Struct.Emoji . mention ( emoji ) "≡ƒæì" iex> emoji = % Nostrum.Struct.Emoji { id : 436885297037312001 , name : "tealixir" } ...> Nostrum.Struct.Emoji . mention ( emoji ) "<:tealixir:436885297037312001>" iex> emoji = % Nostrum.Struct.Emoji { id : 437016804309860372 , name : "blobseizure" , animated : true } ...> Nostrum.Struct.Emoji . mention ( emoji ) "<a:blobseizure:437016804309860372>"","ref":"Nostrum.Struct.Emoji.html#mention/1"},{"type":"type","title":"Nostrum.Struct.Emoji.animated/0","doc":"Whether this emoji is animated","ref":"Nostrum.Struct.Emoji.html#t:animated/0"},{"type":"type","title":"Nostrum.Struct.Emoji.api_name/0","doc":"Emoji string to be used with the Discord API. Some API endpoints take an emoji . If it is a custom emoji, it must be structured as "id:name" . If it is an unicode emoji, it can be structured as any of the following: "name" A base 16 unicode emoji string. api_name/1 is a convenience function that returns a Nostrum.Struct.Emoji 's api name. Examples # Custom Emojis "nostrum:431890438091489" # Unicode Emojis "≡ƒæì" " \\x F0 \\x 9F \\x 98 \\x 81" " \\u2b50 "","ref":"Nostrum.Struct.Emoji.html#t:api_name/0"},{"type":"type","title":"Nostrum.Struct.Emoji.id/0","doc":"Id of the emoji","ref":"Nostrum.Struct.Emoji.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Emoji.managed/0","doc":"Whether this emoji is managed","ref":"Nostrum.Struct.Emoji.html#t:managed/0"},{"type":"type","title":"Nostrum.Struct.Emoji.name/0","doc":"Name of the emoji","ref":"Nostrum.Struct.Emoji.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Emoji.require_colons/0","doc":"Whether this emoji must be wrapped in colons","ref":"Nostrum.Struct.Emoji.html#t:require_colons/0"},{"type":"type","title":"Nostrum.Struct.Emoji.roles/0","doc":"Roles this emoji is whitelisted to","ref":"Nostrum.Struct.Emoji.html#t:roles/0"},{"type":"type","title":"Nostrum.Struct.Emoji.t/0","doc":"","ref":"Nostrum.Struct.Emoji.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Emoji.user/0","doc":"User that created this emoji","ref":"Nostrum.Struct.Emoji.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Guild","doc":"Struct representing a Discord guild.","ref":"Nostrum.Struct.Guild.html"},{"type":"function","title":"Nostrum.Struct.Guild.icon_url/2","doc":"Returns the URL of a guild's icon, or nil if there is no icon. Supported image formats are PNG, JPEG, and WebP. Examples iex> guild = % Nostrum.Struct.Guild { icon : "86e39f7ae3307e811784e2ffd11a7310" , ...> id : 41771983423143937 } iex> Nostrum.Struct.Guild . icon_url ( guild ) "https://cdn.discordapp.com/icons/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.webp" iex> Nostrum.Struct.Guild . icon_url ( guild , "png" ) "https://cdn.discordapp.com/icons/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.png" iex> guild = % Nostrum.Struct.Guild { icon : nil } iex> Nostrum.Struct.Guild . icon_url ( guild ) nil","ref":"Nostrum.Struct.Guild.html#icon_url/2"},{"type":"function","title":"Nostrum.Struct.Guild.splash_url/2","doc":"Returns the URL of a guild's splash, or nil if there is no splash. Supported image formats are PNG, JPEG, and WebP. Examples iex> guild = % Nostrum.Struct.Guild { splash : "86e39f7ae3307e811784e2ffd11a7310" , ...> id : 41771983423143937 } iex> Nostrum.Struct.Guild . splash_url ( guild ) "https://cdn.discordapp.com/splashes/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.webp" iex> Nostrum.Struct.Guild . splash_url ( guild , "png" ) "https://cdn.discordapp.com/splashes/41771983423143937/86e39f7ae3307e811784e2ffd11a7310.png" iex> guild = % Nostrum.Struct.Guild { splash : nil } iex> Nostrum.Struct.Guild . splash_url ( guild ) nil","ref":"Nostrum.Struct.Guild.html#splash_url/2"},{"type":"type","title":"Nostrum.Struct.Guild.afk_channel_id/0","doc":"The id of the guild's afk channel","ref":"Nostrum.Struct.Guild.html#t:afk_channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.afk_timeout/0","doc":"The time someone must be afk before being moved","ref":"Nostrum.Struct.Guild.html#t:afk_timeout/0"},{"type":"type","title":"Nostrum.Struct.Guild.application_id/0","doc":"Application id of the guild creator if it is bot created.","ref":"Nostrum.Struct.Guild.html#t:application_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.available_guild/0","doc":"A Nostrum.Struct.Guild that is fully available.","ref":"Nostrum.Struct.Guild.html#t:available_guild/0"},{"type":"type","title":"Nostrum.Struct.Guild.channels/0","doc":"List of channels","ref":"Nostrum.Struct.Guild.html#t:channels/0"},{"type":"type","title":"Nostrum.Struct.Guild.default_message_notifications/0","doc":"Default message notifications level.","ref":"Nostrum.Struct.Guild.html#t:default_message_notifications/0"},{"type":"type","title":"Nostrum.Struct.Guild.emojis/0","doc":"List of emojis","ref":"Nostrum.Struct.Guild.html#t:emojis/0"},{"type":"type","title":"Nostrum.Struct.Guild.explicit_content_filter/0","doc":"Explicit content filter level.","ref":"Nostrum.Struct.Guild.html#t:explicit_content_filter/0"},{"type":"type","title":"Nostrum.Struct.Guild.features/0","doc":"List of guild features","ref":"Nostrum.Struct.Guild.html#t:features/0"},{"type":"type","title":"Nostrum.Struct.Guild.guild_scheduled_events/0","doc":"List of scheduled events","ref":"Nostrum.Struct.Guild.html#t:guild_scheduled_events/0"},{"type":"type","title":"Nostrum.Struct.Guild.icon/0","doc":"The hash of the guild's icon","ref":"Nostrum.Struct.Guild.html#t:icon/0"},{"type":"type","title":"Nostrum.Struct.Guild.id/0","doc":"The guild's id","ref":"Nostrum.Struct.Guild.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.joined_at/0","doc":"Date the bot user joined the guild","ref":"Nostrum.Struct.Guild.html#t:joined_at/0"},{"type":"type","title":"Nostrum.Struct.Guild.large/0","doc":"Whether the guild is considered 'large'","ref":"Nostrum.Struct.Guild.html#t:large/0"},{"type":"type","title":"Nostrum.Struct.Guild.member_count/0","doc":"Total number of members in the guild","ref":"Nostrum.Struct.Guild.html#t:member_count/0"},{"type":"type","title":"Nostrum.Struct.Guild.mfa_level/0","doc":"Required MFA level of the guild","ref":"Nostrum.Struct.Guild.html#t:mfa_level/0"},{"type":"type","title":"Nostrum.Struct.Guild.name/0","doc":"The name of the guild.","ref":"Nostrum.Struct.Guild.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.owner_id/0","doc":"The id of the guild owner","ref":"Nostrum.Struct.Guild.html#t:owner_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.public_updates_channel_id/0","doc":"The id of the channel where admins and moderators receive notices from Discord. This is only available to guilds that contain PUBLIC in features/0 .","ref":"Nostrum.Struct.Guild.html#t:public_updates_channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.region/0","doc":"The id of the voice region","ref":"Nostrum.Struct.Guild.html#t:region/0"},{"type":"type","title":"Nostrum.Struct.Guild.rest_guild/0","doc":"A Nostrum.Struct.Guild that is sent on guild-specific rest endpoints.","ref":"Nostrum.Struct.Guild.html#t:rest_guild/0"},{"type":"type","title":"Nostrum.Struct.Guild.roles/0","doc":"List of roles","ref":"Nostrum.Struct.Guild.html#t:roles/0"},{"type":"type","title":"Nostrum.Struct.Guild.rules_channel_id/0","doc":"The id of the channel that is used for rules. This is only available to guilds that contain PUBLIC in features/0 .","ref":"Nostrum.Struct.Guild.html#t:rules_channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.splash/0","doc":"The hash of the guild's splash","ref":"Nostrum.Struct.Guild.html#t:splash/0"},{"type":"type","title":"Nostrum.Struct.Guild.system_channel_id/0","doc":"The id of the channel to which system messages are sent.","ref":"Nostrum.Struct.Guild.html#t:system_channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.t/0","doc":"","ref":"Nostrum.Struct.Guild.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.threads/0","doc":"All active threads in the guild that the current user has permission to view","ref":"Nostrum.Struct.Guild.html#t:threads/0"},{"type":"type","title":"Nostrum.Struct.Guild.unavailable/0","doc":"Whether the guild is available","ref":"Nostrum.Struct.Guild.html#t:unavailable/0"},{"type":"type","title":"Nostrum.Struct.Guild.unavailable_guild/0","doc":"A Nostrum.Struct.Guild that is unavailable.","ref":"Nostrum.Struct.Guild.html#t:unavailable_guild/0"},{"type":"type","title":"Nostrum.Struct.Guild.user_guild/0","doc":"A Nostrum.Struct.Guild that is sent on user-specific rest endpoints.","ref":"Nostrum.Struct.Guild.html#t:user_guild/0"},{"type":"type","title":"Nostrum.Struct.Guild.vanity_url_code/0","doc":"Guild invite vanity URL","ref":"Nostrum.Struct.Guild.html#t:vanity_url_code/0"},{"type":"type","title":"Nostrum.Struct.Guild.verification_level/0","doc":"The level of verification","ref":"Nostrum.Struct.Guild.html#t:verification_level/0"},{"type":"type","title":"Nostrum.Struct.Guild.voice_states/0","doc":"List of voice states as maps","ref":"Nostrum.Struct.Guild.html#t:voice_states/0"},{"type":"type","title":"Nostrum.Struct.Guild.widget_channel_id/0","doc":"The channel id for the server widget.","ref":"Nostrum.Struct.Guild.html#t:widget_channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.widget_enabled/0","doc":"Whether or not the server widget is enabled.","ref":"Nostrum.Struct.Guild.html#t:widget_enabled/0"},{"type":"module","title":"Nostrum.Struct.Guild.AuditLog","doc":"Represents a guild's audit log.","ref":"Nostrum.Struct.Guild.AuditLog.html"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLog.entries/0","doc":"Entries of this guild's audit log","ref":"Nostrum.Struct.Guild.AuditLog.html#t:entries/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLog.t/0","doc":"","ref":"Nostrum.Struct.Guild.AuditLog.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLog.users/0","doc":"Users found in the audit log","ref":"Nostrum.Struct.Guild.AuditLog.html#t:users/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLog.webhooks/0","doc":"Webhooks found in the audit log","ref":"Nostrum.Struct.Guild.AuditLog.html#t:webhooks/0"},{"type":"module","title":"Nostrum.Struct.Guild.AuditLogEntry","doc":"Represents a single entry in the guild's audit log.","ref":"Nostrum.Struct.Guild.AuditLogEntry.html"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.action_type/0","doc":"An audit log event identifier. See Audit log events","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:action_type/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.changes/0","doc":"Individual changes of this audit log entry. Change keys are documented here","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:changes/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.id/0","doc":"The ID of this entry","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.options/0","doc":"Optional audit entry info","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:options/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.reason/0","doc":"The reason for this change, if applicable","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:reason/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.t/0","doc":"","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.target_id/0","doc":"The ID of the affected entity","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:target_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.AuditLogEntry.user_id/0","doc":"The user who made the changes","ref":"Nostrum.Struct.Guild.AuditLogEntry.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Guild.Ban","doc":"Represents a guild ban.","ref":"Nostrum.Struct.Guild.Ban.html"},{"type":"type","title":"Nostrum.Struct.Guild.Ban.reason/0","doc":"The reason for the ban","ref":"Nostrum.Struct.Guild.Ban.html#t:reason/0"},{"type":"type","title":"Nostrum.Struct.Guild.Ban.t/0","doc":"","ref":"Nostrum.Struct.Guild.Ban.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.Ban.user/0","doc":"The banned user","ref":"Nostrum.Struct.Guild.Ban.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Guild.Integration","doc":"Struct representing a Discord guild integration. The struct defined here only has the fields provided for Discord Bot integrations available. If you use Nostrum in a non-bot application, feel free to open an issue to add it. References https://discord.com/developers/docs/resources/guild#integration-object","ref":"Nostrum.Struct.Guild.Integration.html"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.account/0","doc":"The integration account.","ref":"Nostrum.Struct.Guild.Integration.html#t:account/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.application/0","doc":"The bot/OAuth2 application for discord integrations","ref":"Nostrum.Struct.Guild.Integration.html#t:application/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.enabled/0","doc":"Whether this integration is enabled","ref":"Nostrum.Struct.Guild.Integration.html#t:enabled/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.guild_id/0","doc":"The id of the guild this integration is for. Only included when the Integration is sent via the gateway.","ref":"Nostrum.Struct.Guild.Integration.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.id/0","doc":"Snowflake ID of the integration","ref":"Nostrum.Struct.Guild.Integration.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.name/0","doc":"Name of the integration","ref":"Nostrum.Struct.Guild.Integration.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.t/0","doc":"Represents a Guild integration","ref":"Nostrum.Struct.Guild.Integration.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.type/0","doc":"Integration type (Twitch, YouTube or Discord)","ref":"Nostrum.Struct.Guild.Integration.html#t:type/0"},{"type":"module","title":"Nostrum.Struct.Guild.Integration.Account","doc":"Struct representing a Discord guild's integration account.","ref":"Nostrum.Struct.Guild.Integration.Account.html"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Account.id/0","doc":"The id of the account","ref":"Nostrum.Struct.Guild.Integration.Account.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Account.name/0","doc":"The name of the account","ref":"Nostrum.Struct.Guild.Integration.Account.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Account.t/0","doc":"","ref":"Nostrum.Struct.Guild.Integration.Account.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Guild.Integration.Application","doc":"Struct representing a Discord Guild Integration Application.","ref":"Nostrum.Struct.Guild.Integration.Application.html"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.bot/0","doc":"The bot associated with the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:bot/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.description/0","doc":"The description of the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.icon/0","doc":"The icon hash of the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:icon/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.id/0","doc":"The id of the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.name/0","doc":"The name of the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.summary/0","doc":"The summary of the application.","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:summary/0"},{"type":"type","title":"Nostrum.Struct.Guild.Integration.Application.t/0","doc":"","ref":"Nostrum.Struct.Guild.Integration.Application.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Guild.Member","doc":"Struct representing a Discord guild member. A Nostrum.Struct.Guild.Member stores a Nostrum.Struct.User 's properties pertaining to a specific Nostrum.Struct.Guild . Mentioning Members in Messages A Nostrum.Struct.Guild.Member can be mentioned in message content using the String.Chars protocol or mention/1 . member = % Nostrum.Struct.Guild.Member { user_id : 120571255635181568 } Nostrum.Api . create_message! ( 184046599834435585 , " \#{ member } " ) % Nostrum.Struct.Message { content : "<@120571255635181568>" } member = % Nostrum.Struct.Guild.Member { user_id : 89918932789497856 } Nostrum.Api . create_message! ( 280085880452939778 , " \#{ Nostrum.Struct.Guild.Member . mention ( member ) } " ) % Nostrum.Struct.Message { content : "<@89918932789497856>" }","ref":"Nostrum.Struct.Guild.Member.html"},{"type":"function","title":"Nostrum.Struct.Guild.Member.guild_channel_permissions/3","doc":"Returns a member's permissions in a guild channel, based on its Nostrum.Struct.Overwrite s. Examples guild = Nostrum.Cache.GuildCache . get! ( 279093381723062272 ) member = Map . get ( guild . members , 177888205536886784 ) channel_id = 381889573426429952 Nostrum.Struct.Guild.Member . guild_channel_permissions ( member , guild , channel_id ) #=> [:manage_messages]","ref":"Nostrum.Struct.Guild.Member.html#guild_channel_permissions/3"},{"type":"function","title":"Nostrum.Struct.Guild.Member.guild_permissions/2","doc":"Returns a member's guild permissions. Examples guild = Nostrum.Cache.GuildCache . get! ( 279093381723062272 ) member = Map . get ( guild . members , 177888205536886784 ) Nostrum.Struct.Guild.Member . guild_permissions ( member , guild ) #=> [:administrator]","ref":"Nostrum.Struct.Guild.Member.html#guild_permissions/2"},{"type":"function","title":"Nostrum.Struct.Guild.Member.mention/1","doc":"Formats a Nostrum.Struct.Guild.Member into a mention. Examples iex> member = % Nostrum.Struct.Guild.Member { user_id : 177888205536886784 } ...> Nostrum.Struct.Guild.Member . mention ( member ) "<@177888205536886784>"","ref":"Nostrum.Struct.Guild.Member.html#mention/1"},{"type":"function","title":"Nostrum.Struct.Guild.Member.top_role/2","doc":"Return the topmost role of the given member on the given guild. The topmost role is determined via t:Nostrum.Struct.Guild.Role.position . Parameters member : The member whose top role to return. guild : The guild which the member belongs to. Return value The topmost role of the member on the given guild, if the member has roles assigned. Otherwise, nil is returned.","ref":"Nostrum.Struct.Guild.Member.html#top_role/2"},{"type":"type","title":"Nostrum.Struct.Guild.Member.communication_disabled_until/0","doc":"Current timeout status of the member. If member is currently timed out this will be a DateTime.t/0 of the unmute time, it will be nil or a date in the past if the member is not currently timed out.","ref":"Nostrum.Struct.Guild.Member.html#t:communication_disabled_until/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.deaf/0","doc":"Whether the member is deafened. If you dont request offline guild members this field will be nil for any members that come online.","ref":"Nostrum.Struct.Guild.Member.html#t:deaf/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.joined_at/0","doc":"Date the member joined the guild, as a unix timestamp. If you dont request offline guild members this field will be nil for any members that come online.","ref":"Nostrum.Struct.Guild.Member.html#t:joined_at/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.mute/0","doc":"Whether the member is muted. If you dont request offline guild members this field will be nil for any members that come online.","ref":"Nostrum.Struct.Guild.Member.html#t:mute/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.nick/0","doc":"The nickname of the member","ref":"Nostrum.Struct.Guild.Member.html#t:nick/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.premium_since/0","doc":"Current guild booster status of the member. If member is currently boosting a guild this will be a DateTime.t/0 since the start of the boosting, it will be nil if the member is not currently boosting the guild.","ref":"Nostrum.Struct.Guild.Member.html#t:premium_since/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.roles/0","doc":"A list of role ids","ref":"Nostrum.Struct.Guild.Member.html#t:roles/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.t/0","doc":"","ref":"Nostrum.Struct.Guild.Member.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.Member.user_id/0","doc":"The user ID. This field can be nil if the Member struct came as a partial Member object included in a message received from a guild channel. To retrieve the user object, use Nostrum.Cache.UserCache .","ref":"Nostrum.Struct.Guild.Member.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Guild.Role","doc":"Struct representing a Discord role. Mentioning Roles in Messages A Nostrum.Struct.Guild.Role can be mentioned in message content using the String.Chars protocol or mention/1 . role = % Nostrum.Struct.Guild.Role { id : 431886897539973131 } Nostrum.Api . create_message! ( 184046599834435585 , " \#{ role } " ) % Nostrum.Struct.Message { } role = % Nostrum.Struct.Guild.Role { id : 431884023535632398 } Nostrum.Api . create_message! ( 280085880452939778 , " \#{ Nostrum.Struct.Guild.Role . mention ( role ) } " ) % Nostrum.Struct.Message { }","ref":"Nostrum.Struct.Guild.Role.html"},{"type":"function","title":"Nostrum.Struct.Guild.Role.mention/1","doc":"Formats an Nostrum.Struct.Role into a mention. Examples iex> role = % Nostrum.Struct.Guild.Role { id : 431886639627763722 } ...> Nostrum.Struct.Guild.Role . mention ( role ) "<@&431886639627763722>"","ref":"Nostrum.Struct.Guild.Role.html#mention/1"},{"type":"type","title":"Nostrum.Struct.Guild.Role.color/0","doc":"The hexadecimal color code","ref":"Nostrum.Struct.Guild.Role.html#t:color/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.hoist/0","doc":"Whether the role is pinned in the user listing","ref":"Nostrum.Struct.Guild.Role.html#t:hoist/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.icon/0","doc":"The hash of the role icon","ref":"Nostrum.Struct.Guild.Role.html#t:icon/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.id/0","doc":"The id of the role","ref":"Nostrum.Struct.Guild.Role.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.managed/0","doc":"Whether the role is managed by an integration","ref":"Nostrum.Struct.Guild.Role.html#t:managed/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.mentionable/0","doc":"Whether the role is mentionable","ref":"Nostrum.Struct.Guild.Role.html#t:mentionable/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.name/0","doc":"The name of the role","ref":"Nostrum.Struct.Guild.Role.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.permissions/0","doc":"The permission bit set","ref":"Nostrum.Struct.Guild.Role.html#t:permissions/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.position/0","doc":"The position of the role","ref":"Nostrum.Struct.Guild.Role.html#t:position/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.t/0","doc":"","ref":"Nostrum.Struct.Guild.Role.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.Role.unicode_emoji/0","doc":"The standard unicode character emoji icon for the role","ref":"Nostrum.Struct.Guild.Role.html#t:unicode_emoji/0"},{"type":"module","title":"Nostrum.Struct.Guild.ScheduledEvent","doc":"Struct representing a scheduled event in a guild.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html"},{"type":"function","title":"Nostrum.Struct.Guild.ScheduledEvent.to_struct/1","doc":"","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#to_struct/1"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.channel_id/0","doc":"The id of the channel the scheduled event is in. Will be nil if entity_type is EXTERNAL","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.creator/0","doc":"The user who created the scheduled event. Only present when retrieving the event from the API. note: This will be nil for events created before October 25th, 2021.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:creator/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.creator_id/0","doc":"The id of the user who created the scheduled event. note: This will be nil only for events created before October 25th, 2021.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:creator_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.description/0","doc":"The description of the scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.entity_id/0","doc":"the id of an entity associated with a guild scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:entity_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.entity_metadata/0","doc":"Holds additional metadata associated with a scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:entity_metadata/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.entity_type/0","doc":"The type of entity the scheduled event is for. 1 - STAGE_INSTANCE 2 - VOICE 3 - EXTERNAL","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:entity_type/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.guild_id/0","doc":"The id of the guild the scheduled event is in.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.id/0","doc":"The id of the scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.name/0","doc":"The name of the scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.privacy_level/0","doc":"The privacy level of the scheduled event. At the time of writing, this is always 2 for GUILD_ONLY","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:privacy_level/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.scheduled_end_time/0","doc":"The time the scheduled event ends as an ISO8601 timestamp. Only required if entity_type is EXTERNAL","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:scheduled_end_time/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.scheduled_start_time/0","doc":"The time the scheduled event starts.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:scheduled_start_time/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.status/0","doc":"The status of the scheduled event. 1 - SCHEDULED 2 - ACTIVE 3 - COMPLETED 4 - CANCELLED note: Once status is set to Completed or Cancelled it can no longer be updated.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:status/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.t/0","doc":"","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.user_count/0","doc":"The number of users who have subscribed to the scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.html#t:user_count/0"},{"type":"module","title":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata","doc":"Struct representing any additional metadata associated with a Guild Event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.html"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.location/0","doc":"The location of the event, 1-100 characters. Required for events with entity_type of EXTERNAL .","ref":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.html#t:location/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.t/0","doc":"","ref":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Guild.ScheduledEvent.User","doc":"Struct representing a user in a guild's scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html"},{"type":"function","title":"Nostrum.Struct.Guild.ScheduledEvent.User.to_struct/1","doc":"","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html#to_struct/1"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.User.event_id/0","doc":"The ID of the guild scheduled event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html#t:event_id/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.User.member/0","doc":"The guild member for the event","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.User.t/0","doc":"","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.ScheduledEvent.User.user/0","doc":"The user which is subscribed to the event.","ref":"Nostrum.Struct.Guild.ScheduledEvent.User.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Guild.UnavailableGuild","doc":"Struct representing an unavailable Discord guild.","ref":"Nostrum.Struct.Guild.UnavailableGuild.html"},{"type":"function","title":"Nostrum.Struct.Guild.UnavailableGuild.to_struct/1","doc":"","ref":"Nostrum.Struct.Guild.UnavailableGuild.html#to_struct/1"},{"type":"type","title":"Nostrum.Struct.Guild.UnavailableGuild.id/0","doc":"The guild's id","ref":"Nostrum.Struct.Guild.UnavailableGuild.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Guild.UnavailableGuild.t/0","doc":"","ref":"Nostrum.Struct.Guild.UnavailableGuild.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Guild.UnavailableGuild.unavailable/0","doc":"Whether the guild is available","ref":"Nostrum.Struct.Guild.UnavailableGuild.html#t:unavailable/0"},{"type":"module","title":"Nostrum.Struct.Interaction","doc":"Application command and Component invocation struct.","ref":"Nostrum.Struct.Interaction.html"},{"type":"type","title":"Nostrum.Struct.Interaction.application_id/0","doc":"ID of the application that this interaction is for Will be nil if the interaction was part of a message struct.","ref":"Nostrum.Struct.Interaction.html#t:application_id/0"},{"type":"type","title":"Nostrum.Struct.Interaction.channel/0","doc":"PartialChannel object for the channel where the command was invoked At the time of writing, only the fields :type and :id are guaranteed to be present.","ref":"Nostrum.Struct.Interaction.html#t:channel/0"},{"type":"type","title":"Nostrum.Struct.Interaction.channel_id/0","doc":"ID of the channel where the command was invoked","ref":"Nostrum.Struct.Interaction.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Interaction.data/0","doc":"Invocation data. Only present for ApplicationCommand and MessageComponent interactions, that is, type=2 or type=3 .","ref":"Nostrum.Struct.Interaction.html#t:data/0"},{"type":"type","title":"Nostrum.Struct.Interaction.guild_id/0","doc":"ID of the guild where the command was invoked","ref":"Nostrum.Struct.Interaction.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Interaction.guild_locale/0","doc":"The guild's preferred locale, if invoked in a guild.","ref":"Nostrum.Struct.Interaction.html#t:guild_locale/0"},{"type":"type","title":"Nostrum.Struct.Interaction.id/0","doc":"Interaction identifier","ref":"Nostrum.Struct.Interaction.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Interaction.locale/0","doc":"The selected langauge of the invoking user. Available on all interaction types except for PING","ref":"Nostrum.Struct.Interaction.html#t:locale/0"},{"type":"type","title":"Nostrum.Struct.Interaction.member/0","doc":"Member information about the invoker, if invoked on a guild","ref":"Nostrum.Struct.Interaction.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Interaction.message/0","doc":"For components, the message they were attached to","ref":"Nostrum.Struct.Interaction.html#t:message/0"},{"type":"type","title":"Nostrum.Struct.Interaction.t/0","doc":"A command invocation for Application Commands or Components. Official reference: https://discord.com/developers/docs/interactions/application-commands","ref":"Nostrum.Struct.Interaction.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Interaction.token/0","doc":"Continuation token for responses Will be nil if this interaction is part of a message struct.","ref":"Nostrum.Struct.Interaction.html#t:token/0"},{"type":"type","title":"Nostrum.Struct.Interaction.type/0","doc":"Interaction kind. 1 for Ping 2 for ApplicationCommand 3 for MessageComponent 4 for ApplicationCommandAutocomplete 5 for ModalSubmit","ref":"Nostrum.Struct.Interaction.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Interaction.user/0","doc":"User object for the invoking user, will be a copy of member.user if invoked in a guild","ref":"Nostrum.Struct.Interaction.html#t:user/0"},{"type":"type","title":"Nostrum.Struct.Interaction.version/0","doc":"Version identifier, always 1 Will be nil if this interaction is part of a message struct.","ref":"Nostrum.Struct.Interaction.html#t:version/0"},{"type":"module","title":"Nostrum.Struct.Invite","doc":"Struct representing a Discord invite.","ref":"Nostrum.Struct.Invite.html"},{"type":"type","title":"Nostrum.Struct.Invite.approximate_member_count/0","doc":"Approximate total member count of the guild this invite is for.","ref":"Nostrum.Struct.Invite.html#t:approximate_member_count/0"},{"type":"type","title":"Nostrum.Struct.Invite.approximate_presence_count/0","doc":"Approximate online member count of the guild this invite is for.","ref":"Nostrum.Struct.Invite.html#t:approximate_presence_count/0"},{"type":"type","title":"Nostrum.Struct.Invite.channel/0","doc":"The channel this invite is for.","ref":"Nostrum.Struct.Invite.html#t:channel/0"},{"type":"type","title":"Nostrum.Struct.Invite.code/0","doc":"The invite code (unique ID).","ref":"Nostrum.Struct.Invite.html#t:code/0"},{"type":"type","title":"Nostrum.Struct.Invite.created_at/0","doc":"When this invite was created.","ref":"Nostrum.Struct.Invite.html#t:created_at/0"},{"type":"type","title":"Nostrum.Struct.Invite.detailed_invite/0","doc":"An invite with metadata.","ref":"Nostrum.Struct.Invite.html#t:detailed_invite/0"},{"type":"type","title":"Nostrum.Struct.Invite.guild/0","doc":"Partially populated guild struct of the guild this invite is for.","ref":"Nostrum.Struct.Invite.html#t:guild/0"},{"type":"type","title":"Nostrum.Struct.Invite.inviter/0","doc":"The user who created this invite.","ref":"Nostrum.Struct.Invite.html#t:inviter/0"},{"type":"type","title":"Nostrum.Struct.Invite.max_age/0","doc":"Duration (in seconds) after which the invite expires.","ref":"Nostrum.Struct.Invite.html#t:max_age/0"},{"type":"type","title":"Nostrum.Struct.Invite.max_uses/0","doc":"Max number of times this invite can be used.","ref":"Nostrum.Struct.Invite.html#t:max_uses/0"},{"type":"type","title":"Nostrum.Struct.Invite.simple_invite/0","doc":"An invite without metadata.","ref":"Nostrum.Struct.Invite.html#t:simple_invite/0"},{"type":"type","title":"Nostrum.Struct.Invite.t/0","doc":"","ref":"Nostrum.Struct.Invite.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Invite.target_user/0","doc":"Partially populated user struct of the target user for this invite.","ref":"Nostrum.Struct.Invite.html#t:target_user/0"},{"type":"type","title":"Nostrum.Struct.Invite.target_user_type/0","doc":"The type of user target for this invite.","ref":"Nostrum.Struct.Invite.html#t:target_user_type/0"},{"type":"type","title":"Nostrum.Struct.Invite.temporary/0","doc":"Whether this invite only grants temporary membership.","ref":"Nostrum.Struct.Invite.html#t:temporary/0"},{"type":"type","title":"Nostrum.Struct.Invite.uses/0","doc":"Number of times this invite has been used.","ref":"Nostrum.Struct.Invite.html#t:uses/0"},{"type":"module","title":"Nostrum.Struct.Message","doc":"A Nostrum.Struct.Message represents a message. More information can be found on the Discord API Message Object Documentation .","ref":"Nostrum.Struct.Message.html"},{"type":"function","title":"Nostrum.Struct.Message.to_url/1","doc":"Takes the message and produces a URL that, when clicked from the user client, will jump them to that message, assuming they have access to the message and the message is valid.","ref":"Nostrum.Struct.Message.html#to_url/1"},{"type":"type","title":"Nostrum.Struct.Message.activity/0","doc":"The activity of the message. Sent with Rich Presence-related chat embeds","ref":"Nostrum.Struct.Message.html#t:activity/0"},{"type":"type","title":"Nostrum.Struct.Message.application/0","doc":"The application of the message. Sent with Rich Presence-related chat embeds","ref":"Nostrum.Struct.Message.html#t:application/0"},{"type":"type","title":"Nostrum.Struct.Message.application_id/0","doc":"if the message is a response to an interaction, this is the ID of the interaction's application","ref":"Nostrum.Struct.Message.html#t:application_id/0"},{"type":"type","title":"Nostrum.Struct.Message.attachments/0","doc":"List of attached files in the message","ref":"Nostrum.Struct.Message.html#t:attachments/0"},{"type":"type","title":"Nostrum.Struct.Message.author/0","doc":"The user struct of the author","ref":"Nostrum.Struct.Message.html#t:author/0"},{"type":"type","title":"Nostrum.Struct.Message.channel_id/0","doc":"The id of the channel","ref":"Nostrum.Struct.Message.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Message.components/0","doc":"List of Message Components","ref":"Nostrum.Struct.Message.html#t:components/0"},{"type":"type","title":"Nostrum.Struct.Message.content/0","doc":"The content of the message","ref":"Nostrum.Struct.Message.html#t:content/0"},{"type":"type","title":"Nostrum.Struct.Message.edited_timestamp/0","doc":"When the message was edited","ref":"Nostrum.Struct.Message.html#t:edited_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Message.embeds/0","doc":"List of embedded content in the message","ref":"Nostrum.Struct.Message.html#t:embeds/0"},{"type":"type","title":"Nostrum.Struct.Message.guild_id/0","doc":"The id of the guild","ref":"Nostrum.Struct.Message.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Message.id/0","doc":"The id of the message","ref":"Nostrum.Struct.Message.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Message.interaction/0","doc":"Message interaction object","ref":"Nostrum.Struct.Message.html#t:interaction/0"},{"type":"type","title":"Nostrum.Struct.Message.member/0","doc":"Partial Guild Member object received with the Message Create event if message came from a guild channel","ref":"Nostrum.Struct.Message.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Message.mention_channels/0","doc":"List of channels mentioned in the message Discord API Channel Mention Object Documentation","ref":"Nostrum.Struct.Message.html#t:mention_channels/0"},{"type":"type","title":"Nostrum.Struct.Message.mention_everyone/0","doc":"Whether this message mentions everyone","ref":"Nostrum.Struct.Message.html#t:mention_everyone/0"},{"type":"type","title":"Nostrum.Struct.Message.mention_roles/0","doc":"List of roles ids mentioned in the message","ref":"Nostrum.Struct.Message.html#t:mention_roles/0"},{"type":"type","title":"Nostrum.Struct.Message.mentions/0","doc":"List of users mentioned in the message","ref":"Nostrum.Struct.Message.html#t:mentions/0"},{"type":"type","title":"Nostrum.Struct.Message.message_reference/0","doc":"Reference data sent with crossposted messages and replies. For THREAD_STARTER_MESSAGE messages, this field points to the message that the thread was started from.","ref":"Nostrum.Struct.Message.html#t:message_reference/0"},{"type":"type","title":"Nostrum.Struct.Message.nonce/0","doc":"Validates if a message was sent","ref":"Nostrum.Struct.Message.html#t:nonce/0"},{"type":"type","title":"Nostrum.Struct.Message.pinned/0","doc":"Whether this message is pinned","ref":"Nostrum.Struct.Message.html#t:pinned/0"},{"type":"type","title":"Nostrum.Struct.Message.poll/0","doc":"The poll object attached to the message","ref":"Nostrum.Struct.Message.html#t:poll/0"},{"type":"type","title":"Nostrum.Struct.Message.reactions/0","doc":"Reactions to the message.","ref":"Nostrum.Struct.Message.html#t:reactions/0"},{"type":"type","title":"Nostrum.Struct.Message.referenced_message/0","doc":"The message associated with the :message_reference This field is only returned for messages with a type: 19 (Reply). If the message is a reply but the :referenced_message field is not present, the backend did not attempt to fetch the message that was being replied to,so its state is unknown. If the field exists but is nil , the referenced message was deleted.","ref":"Nostrum.Struct.Message.html#t:referenced_message/0"},{"type":"type","title":"Nostrum.Struct.Message.sticker_items/0","doc":"Array of Message Sticker Item Objects","ref":"Nostrum.Struct.Message.html#t:sticker_items/0"},{"type":"type","title":"Nostrum.Struct.Message.t/0","doc":"","ref":"Nostrum.Struct.Message.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.thread/0","doc":"The thread that was started from this message, includes a thread member object","ref":"Nostrum.Struct.Message.html#t:thread/0"},{"type":"type","title":"Nostrum.Struct.Message.timestamp/0","doc":"When the message was sent","ref":"Nostrum.Struct.Message.html#t:timestamp/0"},{"type":"type","title":"Nostrum.Struct.Message.tts/0","doc":"Whether this was a TTS message","ref":"Nostrum.Struct.Message.html#t:tts/0"},{"type":"type","title":"Nostrum.Struct.Message.type/0","doc":"Discord API Message Object Type Documentation 0 - DEFAULT 1 - RECIPIENT_ADD 2 - RECIPIENT_REMOVE 3 - CALL 4 - CHANNEL_NAME_CHANGE 5 - CHANNEL_ICON_CHANGE 6 - CHANNEL_PINNED_MESSAGE 7 - GUILD_MEMBER_JOIN 8 - USER_PREMIUM_GUILD_SUBSCRIPTION 9 - USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1 10 - USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2 11 - USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3 12 - CHANNEL_FOLLOW_ADD 14 - GUILD_DISCOVERY_DISQUALIFIED 15 - GUILD_DISCOVERY_REQUALIFIED 16 - GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING 17 - GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING 18 - THREAD_CREATED 19 - REPLY 20 - APPLICATION_COMMAND 21 - THREAD_STARTER_MESSAGE 22 - GUILD_INVITE_REMINDER","ref":"Nostrum.Struct.Message.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Message.webhook_id/0","doc":"If the message is generated by a webhook, this is the webhook's id","ref":"Nostrum.Struct.Message.html#t:webhook_id/0"},{"type":"module","title":"Nostrum.Struct.Message.Activity","doc":"Struct representing a Discord message activity.","ref":"Nostrum.Struct.Message.Activity.html"},{"type":"type","title":"Nostrum.Struct.Message.Activity.party_id/0","doc":"The party id from a rich presence event .","ref":"Nostrum.Struct.Message.Activity.html#t:party_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Activity.t/0","doc":"","ref":"Nostrum.Struct.Message.Activity.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.Activity.type/0","doc":"Type of message activity .","ref":"Nostrum.Struct.Message.Activity.html#t:type/0"},{"type":"module","title":"Nostrum.Struct.Message.Application","doc":"Struct representing a Discord message application.","ref":"Nostrum.Struct.Message.Application.html"},{"type":"type","title":"Nostrum.Struct.Message.Application.cover_image/0","doc":"Id of the embed's image asset","ref":"Nostrum.Struct.Message.Application.html#t:cover_image/0"},{"type":"type","title":"Nostrum.Struct.Message.Application.description/0","doc":"Application's description","ref":"Nostrum.Struct.Message.Application.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Message.Application.icon/0","doc":"Id of the application's icon","ref":"Nostrum.Struct.Message.Application.html#t:icon/0"},{"type":"type","title":"Nostrum.Struct.Message.Application.id/0","doc":"Id of the application","ref":"Nostrum.Struct.Message.Application.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Message.Application.name/0","doc":"Name of the application","ref":"Nostrum.Struct.Message.Application.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Message.Application.t/0","doc":"","ref":"Nostrum.Struct.Message.Application.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Attachment","doc":"Struct representing a Discord message attachment.","ref":"Nostrum.Struct.Message.Attachment.html"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.filename/0","doc":"Name of attached file","ref":"Nostrum.Struct.Message.Attachment.html#t:filename/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.height/0","doc":"Height of the file (if image)","ref":"Nostrum.Struct.Message.Attachment.html#t:height/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.id/0","doc":"Attachment id","ref":"Nostrum.Struct.Message.Attachment.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.proxy_url/0","doc":"Proxy url of the file","ref":"Nostrum.Struct.Message.Attachment.html#t:proxy_url/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.size/0","doc":"Size of the file in bytes","ref":"Nostrum.Struct.Message.Attachment.html#t:size/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.t/0","doc":"","ref":"Nostrum.Struct.Message.Attachment.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.url/0","doc":"Source url of the file","ref":"Nostrum.Struct.Message.Attachment.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Message.Attachment.width/0","doc":"Width of the file (if image)","ref":"Nostrum.Struct.Message.Attachment.html#t:width/0"},{"type":"module","title":"Nostrum.Struct.Message.Component","doc":"A component attached to a message. Note that the fields present depend on the type/0 of the component object. See the Discord API Component Object Documentation for more information.","ref":"Nostrum.Struct.Message.Component.html"},{"type":"type","title":"Nostrum.Struct.Message.Component.components/0","doc":"Child components for action rows. Only present for action rows.","ref":"Nostrum.Struct.Message.Component.html#t:components/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.custom_id/0","doc":"A developer-defined identifier for the component. Maximum of 100 characters. Only present for buttons and select menus.","ref":"Nostrum.Struct.Message.Component.html#t:custom_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.disabled/0","doc":"Whether the component is disabled. Only present for buttons and select menus.","ref":"Nostrum.Struct.Message.Component.html#t:disabled/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.emoji/0","doc":"Partial emoji of the button. Only present for buttons. The following fields are set: name id animated","ref":"Nostrum.Struct.Message.Component.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.label/0","doc":"Text that appears on the button, or above the text input. Maximum of 80 characters. Only present for buttons and text input.","ref":"Nostrum.Struct.Message.Component.html#t:label/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.max_length/0","doc":"Maximum length of the input text. Defaults to 1 . Maximum of 4000 . Only present for text inputs.","ref":"Nostrum.Struct.Message.Component.html#t:max_length/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.max_values/0","doc":"Maximum number of items that must be chosen. Defaults to 1 . Maximum of 25 . Only present for select menus.","ref":"Nostrum.Struct.Message.Component.html#t:max_values/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.min_length/0","doc":"Minimum length of the input text. Defaults to 0 . Maximum of 4000 . Only present for text inputs.","ref":"Nostrum.Struct.Message.Component.html#t:min_length/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.min_values/0","doc":"Minimum number of items that must be chosen. Defaults to 1 . Minimum of 0 . Maximum of 25 . Only present for select menus.","ref":"Nostrum.Struct.Message.Component.html#t:min_values/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.options/0","doc":"Choices of the select menu. Maximum of 25 options. Only present for select menus. References See Discord Developer Portal: Select Option Structure .","ref":"Nostrum.Struct.Message.Component.html#t:options/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.placeholder/0","doc":"Custom placeholder text if nothing is selected. Maximum of 100 characters. Only present for select menus and text inputs.","ref":"Nostrum.Struct.Message.Component.html#t:placeholder/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.required/0","doc":"Whether the component is required to be filled, defaults to false . Only present for text inputs.","ref":"Nostrum.Struct.Message.Component.html#t:required/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.style/0","doc":"An integer representing the style of the button or text input. Only present for buttons and text input. Values (Button) 1 : Primary - blurple, custom_id required. 2 : Secondary - grey, custom_id required. 3 : Success - green, custom_id required. 4 : Danger - red, custom_id required. 5 : Link - grey, url required, navigates to the URL. Values (Text Input) 1 : Short - A single line text input. 2 : Paragraph - A multi-line text input. References See Discord Developer Portal: Button Styles .","ref":"Nostrum.Struct.Message.Component.html#t:style/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.t/0","doc":"Represents a message component.","ref":"Nostrum.Struct.Message.Component.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.type/0","doc":"Component type. This field is always set. Values 1 : Action Row - A container for other components. 2 : Button - A button object. 3 : Select Menu - A select menu for picking from choices. 4 : Text Input - A text input field. References See Discord Developer Portal: Component Types .","ref":"Nostrum.Struct.Message.Component.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.url/0","doc":"URL for link-style buttons. Only present for buttons.","ref":"Nostrum.Struct.Message.Component.html#t:url/0"},{"type":"type","title":"Nostrum.Struct.Message.Component.value/0","doc":"The current value of the component. When creating a new component, this will be its pre-filled value if present. Only present for text inputs.","ref":"Nostrum.Struct.Message.Component.html#t:value/0"},{"type":"module","title":"Nostrum.Struct.Message.Poll","doc":"Struct representing a poll in a Discord chat. There are various helper methods on this structure to create new poll, see create_poll/2 and put_answer/2 & put_answer/3 for code samples.","ref":"Nostrum.Struct.Message.Poll.html"},{"type":"function","title":"Nostrum.Struct.Message.Poll.create_poll/2","doc":"Create a new poll struct. Use Nostrum.Api.create_message to send it once you've populated it. Accepts a question_text parameter which is the string to use as the poll title. Keyword arguments: duration : duration (in hours) the poll should be open for allow_multiselect : whether users should be able to select multiple answers You can also pass an answers key with answers, though put_answer/2 and put_answer/3 are advised. Examples poll = Poll . create_poll ( "Do you enjoy pineapple on pizza?" , duration : 2 , allow_multiselect : false ) |> Poll . put_answer ( "Yes!" , default_emoji : " \\u2705 " ) # check mark emoji |> Poll . put_answer ( "No!" , default_emoji : " \\u274C " ) # cross emoji Api . create_message ( channel_id , poll : poll )","ref":"Nostrum.Struct.Message.Poll.html#create_poll/2"},{"type":"function","title":"Nostrum.Struct.Message.Poll.put_answer/2","doc":"Add an answer to the provided poll. See create_poll/2 for a code sample of this function. Takes a required "answer" text field, as well as either of the optional arguments: custom_emoji : An integer representing the snowflake of an emoji to display with the option default_emoji : A default platform emoji represented as a unicode character","ref":"Nostrum.Struct.Message.Poll.html#put_answer/2"},{"type":"function","title":"Nostrum.Struct.Message.Poll.put_answer/3","doc":"","ref":"Nostrum.Struct.Message.Poll.html#put_answer/3"},{"type":"type","title":"Nostrum.Struct.Message.Poll.allow_multiselect/0","doc":"Whether the poll allows selection of multiple answers","ref":"Nostrum.Struct.Message.Poll.html#t:allow_multiselect/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.answers/0","doc":"List of potential answers for the poll","ref":"Nostrum.Struct.Message.Poll.html#t:answers/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.duration/0","doc":"Duration of poll in hours","ref":"Nostrum.Struct.Message.Poll.html#t:duration/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.expiry/0","doc":"Expiry time of the poll","ref":"Nostrum.Struct.Message.Poll.html#t:expiry/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.layout_type/0","doc":"Layout type for the poll, currently only 1 ( DEFAULT ) is supported here. If set to nil , the value will default to 1 at the Discord API.","ref":"Nostrum.Struct.Message.Poll.html#t:layout_type/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.question/0","doc":"Question for the poll","ref":"Nostrum.Struct.Message.Poll.html#t:question/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.results/0","doc":"Result counts of a poll that has been voted on. This field is only present for poll objects received over the gateway or Discord API. As mentioned in the Nostrum.Struct.Message.Poll.Results documentation, if an answer has not been voted on it will not be in this object.","ref":"Nostrum.Struct.Message.Poll.html#t:results/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.t/0","doc":"","ref":"Nostrum.Struct.Message.Poll.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Poll.Answer","doc":"A struct representing a poll answer.","ref":"Nostrum.Struct.Message.Poll.Answer.html"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Answer.answer_id/0","doc":"ID of the answer, this is only sent from the gateway, you do not need to send this to the gateway.","ref":"Nostrum.Struct.Message.Poll.Answer.html#t:answer_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Answer.poll_media/0","doc":"Object representing how the answer is displayed visually, with the text and optional emojis.","ref":"Nostrum.Struct.Message.Poll.Answer.html#t:poll_media/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Answer.t/0","doc":"","ref":"Nostrum.Struct.Message.Poll.Answer.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Poll.MediaObject","doc":"A struct representing a media item of a poll (e.g. a question or answer)","ref":"Nostrum.Struct.Message.Poll.MediaObject.html"},{"type":"type","title":"Nostrum.Struct.Message.Poll.MediaObject.emoji/0","doc":"A partial emoji (only supported for answers). For a custom emoji, only the id field needs to be sent, for a default emoji, only the name field needs to be sent (with the Unicode emoji).","ref":"Nostrum.Struct.Message.Poll.MediaObject.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.MediaObject.t/0","doc":"","ref":"Nostrum.Struct.Message.Poll.MediaObject.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.MediaObject.text/0","doc":"Text of the poll media object, either the question or answer text.","ref":"Nostrum.Struct.Message.Poll.MediaObject.html#t:text/0"},{"type":"module","title":"Nostrum.Struct.Message.Poll.Results","doc":"A struct representing the results of a poll.","ref":"Nostrum.Struct.Message.Poll.Results.html"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Results.answer_counts/0","doc":"A list of objects representing the counts for each of the potential answers in the poll. The id property of each item corresponds to the answer_id of the poll answers. If an option is not present in this list, then there were no votes for that answer.","ref":"Nostrum.Struct.Message.Poll.Results.html#t:answer_counts/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Results.is_finalized/0","doc":"A flag on whether the poll has finished counting. If this is set to true, the counts are guaranteed to be accurate from Discord.","ref":"Nostrum.Struct.Message.Poll.Results.html#t:is_finalized/0"},{"type":"type","title":"Nostrum.Struct.Message.Poll.Results.t/0","doc":"","ref":"Nostrum.Struct.Message.Poll.Results.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Reaction","doc":"Struct representing a Discord message reaction.","ref":"Nostrum.Struct.Message.Reaction.html"},{"type":"type","title":"Nostrum.Struct.Message.Reaction.count/0","doc":"Times this emoji has been used to react","ref":"Nostrum.Struct.Message.Reaction.html#t:count/0"},{"type":"type","title":"Nostrum.Struct.Message.Reaction.emoji/0","doc":"Emoji information","ref":"Nostrum.Struct.Message.Reaction.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Message.Reaction.me/0","doc":"Whether the current user is the one who reacted","ref":"Nostrum.Struct.Message.Reaction.html#t:me/0"},{"type":"type","title":"Nostrum.Struct.Message.Reaction.t/0","doc":"","ref":"Nostrum.Struct.Message.Reaction.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Reference","doc":"Struct representing a discord message reference.","ref":"Nostrum.Struct.Message.Reference.html"},{"type":"type","title":"Nostrum.Struct.Message.Reference.channel_id/0","doc":"Id of the originating message's channel","ref":"Nostrum.Struct.Message.Reference.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Reference.guild_id/0","doc":"Id of the originating message's guild","ref":"Nostrum.Struct.Message.Reference.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Reference.message_id/0","doc":"Id of the originating message","ref":"Nostrum.Struct.Message.Reference.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Reference.t/0","doc":"","ref":"Nostrum.Struct.Message.Reference.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Message.Sticker","doc":"A Nostrum.Struct.Message.Sticker represents a sticker that can be sent inside a Nostrum.Struct.Message . More information can be found on the Discord API Sticker Object Documentation.","ref":"Nostrum.Struct.Message.Sticker.html"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.available/0","doc":"Whether this guild sticker can be used, may be false due to loss of Server Boosts","ref":"Nostrum.Struct.Message.Sticker.html#t:available/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.description/0","doc":"Description of the sticker","ref":"Nostrum.Struct.Message.Sticker.html#t:description/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.format_type/0","doc":"Discord API Sticker Object Format Type Documentation 1 - PNG 2 - APNG 3 - LOTTIE","ref":"Nostrum.Struct.Message.Sticker.html#t:format_type/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.guild_id/0","doc":"Id of the guild that owns this sticker","ref":"Nostrum.Struct.Message.Sticker.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.id/0","doc":"Id of the sticker","ref":"Nostrum.Struct.Message.Sticker.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.name/0","doc":"Name of the sticker","ref":"Nostrum.Struct.Message.Sticker.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.pack_id/0","doc":"Id of the pack the sticker is from","ref":"Nostrum.Struct.Message.Sticker.html#t:pack_id/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.sort_value/0","doc":"The sticker's sort order within its pack","ref":"Nostrum.Struct.Message.Sticker.html#t:sort_value/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.t/0","doc":"","ref":"Nostrum.Struct.Message.Sticker.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.tags/0","doc":"Discord name of a unicode emoji representing the sticker's expression. for standard stickers, a comma-separated list of related expressions.","ref":"Nostrum.Struct.Message.Sticker.html#t:tags/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.type/0","doc":"Discord API Sticker Object Type Documentation 1 - STANDARD an official sticker in a pack, part of Nitro or in a removed purchasable pack 2 - GUILD a sticker uploaded to a Boosted guild for the guild's members","ref":"Nostrum.Struct.Message.Sticker.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Message.Sticker.user/0","doc":"User that uploaded the guild sticker","ref":"Nostrum.Struct.Message.Sticker.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Overwrite","doc":"Struct representing a Discord overwrite.","ref":"Nostrum.Struct.Overwrite.html"},{"type":"type","title":"Nostrum.Struct.Overwrite.allow/0","doc":"Permission bit set","ref":"Nostrum.Struct.Overwrite.html#t:allow/0"},{"type":"type","title":"Nostrum.Struct.Overwrite.deny/0","doc":"Permission bit set","ref":"Nostrum.Struct.Overwrite.html#t:deny/0"},{"type":"type","title":"Nostrum.Struct.Overwrite.id/0","doc":"Role or User id","ref":"Nostrum.Struct.Overwrite.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Overwrite.t/0","doc":"","ref":"Nostrum.Struct.Overwrite.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Overwrite.type/0","doc":"Either 0 (role) or 1 (member)","ref":"Nostrum.Struct.Overwrite.html#t:type/0"},{"type":"module","title":"Nostrum.Struct.ThreadMember","doc":"Struct representing a thread member object","ref":"Nostrum.Struct.ThreadMember.html"},{"type":"type","title":"Nostrum.Struct.ThreadMember.flags/0","doc":"Any user-thread settings","ref":"Nostrum.Struct.ThreadMember.html#t:flags/0"},{"type":"type","title":"Nostrum.Struct.ThreadMember.guild_id/0","doc":"The id of the guild the thread is in. Only present within THREAD_MEMBER_UPDATE events","ref":"Nostrum.Struct.ThreadMember.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.ThreadMember.id/0","doc":"The id of the thread, omitted within GUILD_CREATE events","ref":"Nostrum.Struct.ThreadMember.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.ThreadMember.join_timestamp/0","doc":"The timestamp of when the user last joined the thread","ref":"Nostrum.Struct.ThreadMember.html#t:join_timestamp/0"},{"type":"type","title":"Nostrum.Struct.ThreadMember.t/0","doc":"","ref":"Nostrum.Struct.ThreadMember.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.ThreadMember.user_id/0","doc":"The id of the user, omitted within GUILD_CREATE events","ref":"Nostrum.Struct.ThreadMember.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.User","doc":"Struct representing a Discord user. Mentioning Users in Messages A Nostrum.Struct.User can be mentioned in message content using the String.Chars protocol or mention/1 . user = % Nostrum.Struct.User { id : 120571255635181568 } Nostrum.Api . create_message! ( 184046599834435585 , " \#{ user } " ) % Nostrum.Struct.Message { content : "<@120571255635181568>" } user = % Nostrum.Struct.User { id : 89918932789497856 } Nostrum.Api . create_message! ( 280085880452939778 , " \#{ Nostrum.Struct.User . mention ( user ) } " ) % Nostrum.Struct.Message { content : "<@89918932789497856>" } User vs. Member A user contains only general information about that user such as a username and an avatar . A member has everything that a user has, but also additional information on a per guild basis. This includes things like a nickname and a list of roles .","ref":"Nostrum.Struct.User.html"},{"type":"function","title":"Nostrum.Struct.User.avatar_url/2","doc":"Returns the URL of a user's display avatar. If :avatar is nil , the default avatar url is returned. Supported image formats are PNG, JPEG, WebP, and GIF. Examples iex> user = % Nostrum.Struct.User { avatar : "8342729096ea3675442027381ff50dfe" , ...> id : 80351110224678912 } iex> Nostrum.Struct.User . avatar_url ( user ) "https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.webp" iex> Nostrum.Struct.User . avatar_url ( user , "png" ) "https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.png" iex> user = % Nostrum.Struct.User { avatar : nil , ...> id : 80351110224678912 , ...> discriminator : "0" } iex> Nostrum.Struct.User . avatar_url ( user ) "https://cdn.discordapp.com/embed/avatars/5.png" iex> user = % Nostrum.Struct.User { avatar : nil , ...> discriminator : "1337" } iex> Nostrum.Struct.User . avatar_url ( user ) "https://cdn.discordapp.com/embed/avatars/2.png"","ref":"Nostrum.Struct.User.html#avatar_url/2"},{"type":"function","title":"Nostrum.Struct.User.full_name/1","doc":"Returns a user's :global_name if present, otherwise returns their :username and :discriminator separated by a hashtag. Examples iex> user = % Nostrum.Struct.User { global_name : "TheRealJason" , ...> username : "therealjason" , ...> discriminator : "0" } iex> Nostrum.Struct.User . full_name ( user ) "TheRealJason" iex> user = % Nostrum.Struct.User { username : "b1nzy" , ...> discriminator : "0852" } iex> Nostrum.Struct.User . full_name ( user ) "b1nzy#0852"","ref":"Nostrum.Struct.User.html#full_name/1"},{"type":"function","title":"Nostrum.Struct.User.mention/1","doc":"Formats an Nostrum.Struct.User into a mention. Examples iex> user = % Nostrum.Struct.User { id : 177888205536886784 } ...> Nostrum.Struct.User . mention ( user ) "<@177888205536886784>"","ref":"Nostrum.Struct.User.html#mention/1"},{"type":"type","title":"Nostrum.Struct.User.avatar/0","doc":"User's avatar hash","ref":"Nostrum.Struct.User.html#t:avatar/0"},{"type":"type","title":"Nostrum.Struct.User.bot/0","doc":"Whether the user is a bot","ref":"Nostrum.Struct.User.html#t:bot/0"},{"type":"type","title":"Nostrum.Struct.User.discriminator/0","doc":"The user's 4--digit discord-tag","ref":"Nostrum.Struct.User.html#t:discriminator/0"},{"type":"type","title":"Nostrum.Struct.User.email/0","doc":"The user's email","ref":"Nostrum.Struct.User.html#t:email/0"},{"type":"type","title":"Nostrum.Struct.User.global_name/0","doc":"The user's display name, if it is set","ref":"Nostrum.Struct.User.html#t:global_name/0"},{"type":"type","title":"Nostrum.Struct.User.id/0","doc":"The user's id","ref":"Nostrum.Struct.User.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.User.mfa_enabled/0","doc":"Whether the user has two factor enabled","ref":"Nostrum.Struct.User.html#t:mfa_enabled/0"},{"type":"type","title":"Nostrum.Struct.User.public_flags/0","doc":"The user's public flags","ref":"Nostrum.Struct.User.html#t:public_flags/0"},{"type":"type","title":"Nostrum.Struct.User.t/0","doc":"","ref":"Nostrum.Struct.User.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.User.username/0","doc":"The user's username","ref":"Nostrum.Struct.User.html#t:username/0"},{"type":"type","title":"Nostrum.Struct.User.verified/0","doc":"Whether the email on the account has been verified","ref":"Nostrum.Struct.User.html#t:verified/0"},{"type":"module","title":"Nostrum.Struct.User.Connection","doc":"Struct representing a Discord User's connections","ref":"Nostrum.Struct.User.Connection.html"},{"type":"module","title":"Nostrum.Struct.User.Flags","doc":"Struct representing the flags a user account can have","ref":"Nostrum.Struct.User.Flags.html"},{"type":"function","title":"Nostrum.Struct.User.Flags.from_integer/1","doc":"Constructs a flag struct based on an integer from the Discord API (either public_flags or flags). Examples iex> Nostrum.Struct.User.Flags . from_integer ( 131842 ) % Nostrum.Struct.User.Flags { bug_hunter_level_1 : false , bug_hunter_level_2 : false , early_supporter : true , hypesquad_balance : true , hypesquad_bravery : false , hypesquad_brilliance : false , hypesquad_events : false , partner : true , staff : false , system : false , team_user : false , verified_bot : false , verified_developer : true }","ref":"Nostrum.Struct.User.Flags.html#from_integer/1"},{"type":"function","title":"Nostrum.Struct.User.Flags.to_integer/1","doc":"Convert a flag struct to an integer value. Examples iex> my_flags = % Nostrum.Struct.User.Flags { ...> bug_hunter_level_1 : false , ...> bug_hunter_level_2 : false , ...> early_supporter : true , ...> hypesquad_balance : true , ...> hypesquad_bravery : false , ...> hypesquad_brilliance : false , ...> hypesquad_events : false , ...> partner : true , ...> staff : false , ...> system : false , ...> team_user : false , ...> verified_bot : false , ...> verified_developer : true ...> } iex> Nostrum.Struct.User.Flags . to_integer ( my_flags ) 131842","ref":"Nostrum.Struct.User.Flags.html#to_integer/1"},{"type":"type","title":"Nostrum.Struct.User.Flags.bug_hunter_level_1/0","doc":"Bug Hunter (Level 1)","ref":"Nostrum.Struct.User.Flags.html#t:bug_hunter_level_1/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.bug_hunter_level_2/0","doc":"Bug Hunter (Level 2)","ref":"Nostrum.Struct.User.Flags.html#t:bug_hunter_level_2/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.early_supporter/0","doc":"Early Supporter","ref":"Nostrum.Struct.User.Flags.html#t:early_supporter/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.flags/0","doc":"","ref":"Nostrum.Struct.User.Flags.html#t:flags/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.hypesquad_balance/0","doc":"HypeSquad Balance","ref":"Nostrum.Struct.User.Flags.html#t:hypesquad_balance/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.hypesquad_bravery/0","doc":"HypeSquad Bravery","ref":"Nostrum.Struct.User.Flags.html#t:hypesquad_bravery/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.hypesquad_brilliance/0","doc":"HypeSquad Brilliance","ref":"Nostrum.Struct.User.Flags.html#t:hypesquad_brilliance/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.hypesquad_events/0","doc":"HypeSquad Events","ref":"Nostrum.Struct.User.Flags.html#t:hypesquad_events/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.partner/0","doc":"Discord Partner","ref":"Nostrum.Struct.User.Flags.html#t:partner/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.staff/0","doc":"Discord Employee","ref":"Nostrum.Struct.User.Flags.html#t:staff/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.system/0","doc":"System user","ref":"Nostrum.Struct.User.Flags.html#t:system/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.t/0","doc":"","ref":"Nostrum.Struct.User.Flags.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.team_user/0","doc":"Team User","ref":"Nostrum.Struct.User.Flags.html#t:team_user/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.verified_bot/0","doc":"Verified bot","ref":"Nostrum.Struct.User.Flags.html#t:verified_bot/0"},{"type":"type","title":"Nostrum.Struct.User.Flags.verified_developer/0","doc":"Verified developer","ref":"Nostrum.Struct.User.Flags.html#t:verified_developer/0"},{"type":"module","title":"Nostrum.Struct.VoiceRegion","doc":"Struct representing a Discord voice region.","ref":"Nostrum.Struct.VoiceRegion.html"},{"type":"type","title":"Nostrum.Struct.VoiceRegion.t/0","doc":"","ref":"Nostrum.Struct.VoiceRegion.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.VoiceWSState","doc":"Struct representing the current Voice WS state.","ref":"Nostrum.Struct.VoiceWSState.html"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.channel_id/0","doc":"The channel id that this voice websocket state applies to","ref":"Nostrum.Struct.VoiceWSState.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.conn/0","doc":"PID of the :gun worker connected to the websocket","ref":"Nostrum.Struct.VoiceWSState.html#t:conn/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.conn_pid/0","doc":"PID of the connection process","ref":"Nostrum.Struct.VoiceWSState.html#t:conn_pid/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.gateway/0","doc":"Gateway URL","ref":"Nostrum.Struct.VoiceWSState.html#t:gateway/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.guild_id/0","doc":"The guild id that this voice websocket state applies to","ref":"Nostrum.Struct.VoiceWSState.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.heartbeat_ack/0","doc":"Whether or not the last heartbeat sent was ACK'd","ref":"Nostrum.Struct.VoiceWSState.html#t:heartbeat_ack/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.heartbeat_interval/0","doc":"Interval at which heartbeats are sent","ref":"Nostrum.Struct.VoiceWSState.html#t:heartbeat_interval/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.heartbeat_ref/0","doc":"Time ref for the heartbeat","ref":"Nostrum.Struct.VoiceWSState.html#t:heartbeat_ref/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.identified/0","doc":"Whether the session has been identified","ref":"Nostrum.Struct.VoiceWSState.html#t:identified/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.last_heartbeat_ack/0","doc":"The time the last heartbeat was acknowledged, will be nil if a heartbeat hasn't been ACK'd yet","ref":"Nostrum.Struct.VoiceWSState.html#t:last_heartbeat_ack/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.last_heartbeat_send/0","doc":"The time the last heartbeat was sent, if a heartbeat hasn't been sent it will be the time the websocket process was started","ref":"Nostrum.Struct.VoiceWSState.html#t:last_heartbeat_send/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.secret_key/0","doc":"The secret key for audio encryption","ref":"Nostrum.Struct.VoiceWSState.html#t:secret_key/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.session/0","doc":"The session id","ref":"Nostrum.Struct.VoiceWSState.html#t:session/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.ssrc_map/0","doc":"A mapping of RTP SSRC (synchronization source) to user id This map can be used to identify the user who generated the incoming audio data when an RTP packet is received.","ref":"Nostrum.Struct.VoiceWSState.html#t:ssrc_map/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.stream/0","doc":"Stream reference for :gun","ref":"Nostrum.Struct.VoiceWSState.html#t:stream/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.t/0","doc":"","ref":"Nostrum.Struct.VoiceWSState.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.VoiceWSState.token/0","doc":"The session token","ref":"Nostrum.Struct.VoiceWSState.html#t:token/0"},{"type":"module","title":"Nostrum.Struct.WSState","doc":"Struct representing the current WS state.","ref":"Nostrum.Struct.WSState.html"},{"type":"type","title":"Nostrum.Struct.WSState.conn/0","doc":"PID of the :gun worker connected to the websocket","ref":"Nostrum.Struct.WSState.html#t:conn/0"},{"type":"type","title":"Nostrum.Struct.WSState.conn_pid/0","doc":"PID of the connection process","ref":"Nostrum.Struct.WSState.html#t:conn_pid/0"},{"type":"type","title":"Nostrum.Struct.WSState.gateway/0","doc":"Gateway URL","ref":"Nostrum.Struct.WSState.html#t:gateway/0"},{"type":"type","title":"Nostrum.Struct.WSState.heartbeat_ack/0","doc":"Whether or not the last hearbeat sent was ACK'd","ref":"Nostrum.Struct.WSState.html#t:heartbeat_ack/0"},{"type":"type","title":"Nostrum.Struct.WSState.heartbeat_interval/0","doc":"Interval at which heartbeats are sent","ref":"Nostrum.Struct.WSState.html#t:heartbeat_interval/0"},{"type":"type","title":"Nostrum.Struct.WSState.last_heartbeat_ack/0","doc":"The time the last heartbeat was acknowledged, will be nil if a heartbeat hasn't been ACK'd yet","ref":"Nostrum.Struct.WSState.html#t:last_heartbeat_ack/0"},{"type":"type","title":"Nostrum.Struct.WSState.last_heartbeat_send/0","doc":"The time the last heartbeat was sent, if a heartbeat hasn't been sent it will be the time the websocket process was started","ref":"Nostrum.Struct.WSState.html#t:last_heartbeat_send/0"},{"type":"type","title":"Nostrum.Struct.WSState.resume_gateway/0","doc":"Gateway URL to use for resuming.","ref":"Nostrum.Struct.WSState.html#t:resume_gateway/0"},{"type":"type","title":"Nostrum.Struct.WSState.seq/0","doc":"The sequence number of the last event","ref":"Nostrum.Struct.WSState.html#t:seq/0"},{"type":"type","title":"Nostrum.Struct.WSState.session/0","doc":"The session id","ref":"Nostrum.Struct.WSState.html#t:session/0"},{"type":"type","title":"Nostrum.Struct.WSState.shard_num/0","doc":"The shard number","ref":"Nostrum.Struct.WSState.html#t:shard_num/0"},{"type":"type","title":"Nostrum.Struct.WSState.stream/0","doc":"Stream reference for :gun","ref":"Nostrum.Struct.WSState.html#t:stream/0"},{"type":"type","title":"Nostrum.Struct.WSState.t/0","doc":"","ref":"Nostrum.Struct.WSState.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.WSState.total_shards/0","doc":"The highest shard number for this bot. This may not be started locally, it is just used by nostrum to inform the gateway which events we are interested in.","ref":"Nostrum.Struct.WSState.html#t:total_shards/0"},{"type":"type","title":"Nostrum.Struct.WSState.zlib_ctx/0","doc":"Reference to the current zlib context","ref":"Nostrum.Struct.WSState.html#t:zlib_ctx/0"},{"type":"module","title":"Nostrum.Struct.Webhook","doc":"Struct representing a Discord webhook.","ref":"Nostrum.Struct.Webhook.html"},{"type":"type","title":"Nostrum.Struct.Webhook.avatar/0","doc":"Default avatar of the webhook","ref":"Nostrum.Struct.Webhook.html#t:avatar/0"},{"type":"type","title":"Nostrum.Struct.Webhook.channel_id/0","doc":"Channel the webhook is for","ref":"Nostrum.Struct.Webhook.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Webhook.guild_id/0","doc":"Guild the webhook is for","ref":"Nostrum.Struct.Webhook.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Webhook.id/0","doc":"Id of the webhook","ref":"Nostrum.Struct.Webhook.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Webhook.name/0","doc":"Default name of the webhook","ref":"Nostrum.Struct.Webhook.html#t:name/0"},{"type":"type","title":"Nostrum.Struct.Webhook.t/0","doc":"","ref":"Nostrum.Struct.Webhook.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Webhook.token/0","doc":"Secure token of the webhook","ref":"Nostrum.Struct.Webhook.html#t:token/0"},{"type":"type","title":"Nostrum.Struct.Webhook.user/0","doc":"User who created the webhook","ref":"Nostrum.Struct.Webhook.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Event.AutoModerationRuleExecute","doc":"Sent when an auto-moderation rule executes. (e.g. message is blocked).","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.action/0","doc":"The action that was executed","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:action/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.alert_system_message_id/0","doc":"The id of any system message that was generated as a result of the action note: will not exist if the event does not correspond to an action that generates a system message","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:alert_system_message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.channel_id/0","doc":"The id of the channel in which the content was posted note: this field may not exist if the content was blocked from being created","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.content/0","doc":"The content of the message which triggered the rule","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:content/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.guild_id/0","doc":"The id of the guild in which the action was executed","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.matched_content/0","doc":"The substring which matched the content","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:matched_content/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.matched_keyword/0","doc":"The keyword that was matched in the content","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:matched_keyword/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.message_id/0","doc":"The id of the message which was posted note: this field will not exist if the content was blocked from being created","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.rule_id/0","doc":"The id of the rule that was executed","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:rule_id/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.rule_trigger_type/0","doc":"The type of the rule that was executed","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:rule_trigger_type/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.t/0","doc":"","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.AutoModerationRuleExecute.user_id/0","doc":"The id of the user which generated the content which triggered the rule","ref":"Nostrum.Struct.Event.AutoModerationRuleExecute.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.ChannelPinsUpdate","doc":"Represents an update to channel pins.","ref":"Nostrum.Struct.Event.ChannelPinsUpdate.html"},{"type":"type","title":"Nostrum.Struct.Event.ChannelPinsUpdate.channel_id/0","doc":"The ID of the channel","ref":"Nostrum.Struct.Event.ChannelPinsUpdate.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.ChannelPinsUpdate.guild_id/0","doc":"The ID of the guild, if the pin update was on a guild","ref":"Nostrum.Struct.Event.ChannelPinsUpdate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.ChannelPinsUpdate.last_pin_timestamp/0","doc":"The time at which the most recent pinned message was pinned","ref":"Nostrum.Struct.Event.ChannelPinsUpdate.html#t:last_pin_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Event.ChannelPinsUpdate.t/0","doc":"Event sent when a message is pinned or unpinned in a text channel","ref":"Nostrum.Struct.Event.ChannelPinsUpdate.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildBanAdd","doc":"Sent when a user is banned from a guild","ref":"Nostrum.Struct.Event.GuildBanAdd.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanAdd.guild_id/0","doc":"ID of the guild","ref":"Nostrum.Struct.Event.GuildBanAdd.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanAdd.t/0","doc":"Event sent when a user is banned from a guild","ref":"Nostrum.Struct.Event.GuildBanAdd.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanAdd.user/0","doc":"Banned user","ref":"Nostrum.Struct.Event.GuildBanAdd.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildBanRemove","doc":"Sent when a user is unbanned from a guild","ref":"Nostrum.Struct.Event.GuildBanRemove.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanRemove.guild_id/0","doc":"ID of the guild","ref":"Nostrum.Struct.Event.GuildBanRemove.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanRemove.t/0","doc":"Event sent when a user is unbanned from a guild","ref":"Nostrum.Struct.Event.GuildBanRemove.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildBanRemove.user/0","doc":"Unbanned user","ref":"Nostrum.Struct.Event.GuildBanRemove.html#t:user/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildIntegrationDelete","doc":"Event fired when a guild integration is deleted.","ref":"Nostrum.Struct.Event.GuildIntegrationDelete.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationDelete.application_id/0","doc":"id of the bot/OAuth2 application for this discord integration","ref":"Nostrum.Struct.Event.GuildIntegrationDelete.html#t:application_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationDelete.guild_id/0","doc":"The id of the guild the integration is in.","ref":"Nostrum.Struct.Event.GuildIntegrationDelete.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationDelete.id/0","doc":"The id of the deleted integration.","ref":"Nostrum.Struct.Event.GuildIntegrationDelete.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationDelete.t/0","doc":"","ref":"Nostrum.Struct.Event.GuildIntegrationDelete.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildIntegrationsUpdate","doc":"Sent when a guild integration is updated","ref":"Nostrum.Struct.Event.GuildIntegrationsUpdate.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationsUpdate.guild_id/0","doc":"ID of the guild whose integrations were updated","ref":"Nostrum.Struct.Event.GuildIntegrationsUpdate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildIntegrationsUpdate.t/0","doc":"Event sent when a guild integration is updated","ref":"Nostrum.Struct.Event.GuildIntegrationsUpdate.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd","doc":"Struct representing a guild scheduled event user add event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.guild_id/0","doc":"The id of the guild the event is scheduled for.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.guild_scheduled_event_id/0","doc":"The id of the scheduled event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.html#t:guild_scheduled_event_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.t/0","doc":"","ref":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.user_id/0","doc":"The id of the user that subscribed to the scheduled event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserAdd.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove","doc":"Struct representing a guild scheduled event user remove event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.html"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.guild_id/0","doc":"The id of the guild the event is scheduled for.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.guild_scheduled_event_id/0","doc":"The id of the scheduled event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.html#t:guild_scheduled_event_id/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.t/0","doc":"","ref":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.user_id/0","doc":"The id of the user that unsubscribed to the scheduled event.","ref":"Nostrum.Struct.Event.GuildScheduledEventUserRemove.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.InviteCreate","doc":"Struct representing an Invite Create event","ref":"Nostrum.Struct.Event.InviteCreate.html"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.channel_id/0","doc":"Channel id of the channel this invite is for.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.code/0","doc":"The unique invite code.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:code/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.created_at/0","doc":"The time at which the invite was created.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:created_at/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.guild_id/0","doc":"Guild id of the guild this invite is for.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.inviter/0","doc":"The user that created the invite.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:inviter/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.max_age/0","doc":"Duration (in seconds) after which the invite expires.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:max_age/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.max_uses/0","doc":"Max number of times this invite can be used.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:max_uses/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.t/0","doc":"","ref":"Nostrum.Struct.Event.InviteCreate.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.target_user/0","doc":"Partially populated user struct of the target user for this invite.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:target_user/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.target_user_type/0","doc":"The type of user target for this invite.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:target_user_type/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.temporary/0","doc":"Whether this invite only grants temporary membership.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:temporary/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteCreate.uses/0","doc":"Number of times this invite has been used.","ref":"Nostrum.Struct.Event.InviteCreate.html#t:uses/0"},{"type":"module","title":"Nostrum.Struct.Event.InviteDelete","doc":"Struct representing an Invite Delete event","ref":"Nostrum.Struct.Event.InviteDelete.html"},{"type":"type","title":"Nostrum.Struct.Event.InviteDelete.channel_id/0","doc":"Channel id of the channel this invite is for.","ref":"Nostrum.Struct.Event.InviteDelete.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteDelete.code/0","doc":"The unique invite code.","ref":"Nostrum.Struct.Event.InviteDelete.html#t:code/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteDelete.guild_id/0","doc":"Guild id of the guild this invite is for.","ref":"Nostrum.Struct.Event.InviteDelete.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.InviteDelete.t/0","doc":"","ref":"Nostrum.Struct.Event.InviteDelete.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageDelete","doc":"Struct representing a Message Delete event","ref":"Nostrum.Struct.Event.MessageDelete.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageDelete.channel_id/0","doc":"Channel id of the deleted message","ref":"Nostrum.Struct.Event.MessageDelete.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDelete.guild_id/0","doc":"Guild id of the deleted message nil if a non-guild message was deleted.","ref":"Nostrum.Struct.Event.MessageDelete.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDelete.id/0","doc":"Id of the deleted message","ref":"Nostrum.Struct.Event.MessageDelete.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDelete.t/0","doc":"","ref":"Nostrum.Struct.Event.MessageDelete.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageDeleteBulk","doc":"Struct representing a Message Delete Bulk event","ref":"Nostrum.Struct.Event.MessageDeleteBulk.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageDeleteBulk.channel_id/0","doc":"Channel id of the deleted message","ref":"Nostrum.Struct.Event.MessageDeleteBulk.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDeleteBulk.guild_id/0","doc":"Guild id of the deleted message nil if a non-guild message was deleted.","ref":"Nostrum.Struct.Event.MessageDeleteBulk.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDeleteBulk.ids/0","doc":"Ids of the deleted messages","ref":"Nostrum.Struct.Event.MessageDeleteBulk.html#t:ids/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageDeleteBulk.t/0","doc":"","ref":"Nostrum.Struct.Event.MessageDeleteBulk.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageReactionAdd","doc":"Sent when a user adds a reaction to a message","ref":"Nostrum.Struct.Event.MessageReactionAdd.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.channel_id/0","doc":"Channel in which the reaction was added","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.emoji/0","doc":"The (partial) emoji used to react","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.guild_id/0","doc":"Guild ID in which the reaction was added, if applicable","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.member/0","doc":"The member who reacted, if this happened on a guild","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.message_id/0","doc":"Message to which the reaction was added","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.t/0","doc":"Event sent when a user adds a reaction to a message","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionAdd.user_id/0","doc":"ID of the user who added the reaction","ref":"Nostrum.Struct.Event.MessageReactionAdd.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageReactionRemove","doc":"Sent when a user removes a reaction from a message","ref":"Nostrum.Struct.Event.MessageReactionRemove.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.channel_id/0","doc":"ID of the channel in which the reaction was created","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.emoji/0","doc":"Partial emoji object that was removed","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.guild_id/0","doc":"ID of the guild on which the message lives, if applicable","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.message_id/0","doc":"ID of the message to which the reaction was attached","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.t/0","doc":"Event sent when a user removes a reaction from a message","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemove.user_id/0","doc":"Author of the reaction","ref":"Nostrum.Struct.Event.MessageReactionRemove.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageReactionRemoveAll","doc":"Sent when a user explicitly removes all reactions from a message","ref":"Nostrum.Struct.Event.MessageReactionRemoveAll.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveAll.channel_id/0","doc":"ID of the channel in which the message resides.","ref":"Nostrum.Struct.Event.MessageReactionRemoveAll.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveAll.guild_id/0","doc":"ID of the guild for the message, if applicable.","ref":"Nostrum.Struct.Event.MessageReactionRemoveAll.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveAll.message_id/0","doc":"ID of the message from which all reactions were removed.","ref":"Nostrum.Struct.Event.MessageReactionRemoveAll.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveAll.t/0","doc":"Event sent when a user explicitly removes all reactions from a message","ref":"Nostrum.Struct.Event.MessageReactionRemoveAll.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji","doc":"Sent when a bot removes all instances of a given emoji from the reactions of a message","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.channel_id/0","doc":"Channel in which the message resides.","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.emoji/0","doc":"The (partial) emoji that was removed.","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html#t:emoji/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.guild_id/0","doc":"Guild on which the message resides, if applicable.","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.message_id/0","doc":"Message from which the emoji was removed.","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.t/0","doc":"Event sent when a bot removes all instances of a given emoji from the reactions of a message","ref":"Nostrum.Struct.Event.MessageReactionRemoveEmoji.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.PartialApplication","doc":"Sent on READY","ref":"Nostrum.Struct.Event.PartialApplication.html"},{"type":"type","title":"Nostrum.Struct.Event.PartialApplication.flags/0","doc":"Public flags of the application. See https://discord.com/developers/docs/resources/application#application-object-application-flags","ref":"Nostrum.Struct.Event.PartialApplication.html#t:flags/0"},{"type":"type","title":"Nostrum.Struct.Event.PartialApplication.id/0","doc":"ID of the application","ref":"Nostrum.Struct.Event.PartialApplication.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Event.PartialApplication.t/0","doc":"Event sent as part of the READY payload.","ref":"Nostrum.Struct.Event.PartialApplication.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.PollVoteChange","doc":"Represents an addition or removal of a vote from a Discord poll. For polls where multiple answers were selected, one of these events will be fired for each vote.","ref":"Nostrum.Struct.Event.PollVoteChange.html"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.answer_id/0","doc":"ID corresponding to the answer_id in the Nostrum.Struct.Message.Poll.answers/0 list","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:answer_id/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.channel_id/0","doc":"ID of the channel the vote took place in","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.guild_id/0","doc":"ID of the guild the poll is in (unless it is a private channel)","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.message_id/0","doc":"ID of the message the poll was attached to","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:message_id/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.t/0","doc":"Event representing a addition or removal of a vote from a poll","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.type/0","doc":"Whether the vote was an addition or removal for a vote of the option","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:type/0"},{"type":"type","title":"Nostrum.Struct.Event.PollVoteChange.user_id/0","doc":"ID of the user that has voted","ref":"Nostrum.Struct.Event.PollVoteChange.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.Ready","doc":"Sent after initial handshake with the gateway","ref":"Nostrum.Struct.Event.Ready.html"},{"type":"type","title":"Nostrum.Struct.Event.Ready.application/0","doc":"Partial application object with id and flags","ref":"Nostrum.Struct.Event.Ready.html#t:application/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.guilds/0","doc":"The guilds that the bot user is in","ref":"Nostrum.Struct.Event.Ready.html#t:guilds/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.session_id/0","doc":"Used for resuming connections. If you are wondering whether you need to use this, you probably don't. Nostrum handles reconnections for you.","ref":"Nostrum.Struct.Event.Ready.html#t:session_id/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.shard/0","doc":"A pair of two integers {shard_id, num_shards} . For more information, see https://discord.com/developers/docs/topics/gateway#sharding .","ref":"Nostrum.Struct.Event.Ready.html#t:shard/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.t/0","doc":"Event sent after initial handshake with the gateway","ref":"Nostrum.Struct.Event.Ready.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.user/0","doc":"Information about the bot user","ref":"Nostrum.Struct.Event.Ready.html#t:user/0"},{"type":"type","title":"Nostrum.Struct.Event.Ready.v/0","doc":"Gateway version. See https://discord.com/developers/docs/topics/gateway#gateways-gateway-versions","ref":"Nostrum.Struct.Event.Ready.html#t:v/0"},{"type":"module","title":"Nostrum.Struct.Event.SpeakingUpdate","doc":"Struct representing a Nostrum-generated Speaking Update event Nostrum will generate this event when the bot starts or stops playing audio.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.channel_id/0","doc":"Id of the channel this speaking update is occurring in.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.current_url/0","doc":"Current URL being played if a readable format.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:current_url/0"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.guild_id/0","doc":"Id of the guild this speaking update is occurring in.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.speaking/0","doc":"Boolean representing if bot has started or stopped speaking.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:speaking/0"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.t/0","doc":"","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.SpeakingUpdate.timed_out/0","doc":"Boolean representing if speaking update was caused by an audio timeout.","ref":"Nostrum.Struct.Event.SpeakingUpdate.html#t:timed_out/0"},{"type":"module","title":"Nostrum.Struct.Event.ThreadListSync","doc":"Struct representing a Thread List Sync event. This event is sent when the user gains access to a channel.","ref":"Nostrum.Struct.Event.ThreadListSync.html"},{"type":"type","title":"Nostrum.Struct.Event.ThreadListSync.channel_ids/0","doc":"The parent channel ids whose threads are being synced. If omitted, all threads were synced for the entire guild.","ref":"Nostrum.Struct.Event.ThreadListSync.html#t:channel_ids/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadListSync.guid_id/0","doc":"The id of the guild.","ref":"Nostrum.Struct.Event.ThreadListSync.html#t:guid_id/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadListSync.members/0","doc":"All thread member objects from the synced threads for the current user, indicating which threads the user has been added to.","ref":"Nostrum.Struct.Event.ThreadListSync.html#t:members/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadListSync.t/0","doc":"","ref":"Nostrum.Struct.Event.ThreadListSync.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadListSync.threads/0","doc":"All active threads in the given channels that the user can access.","ref":"Nostrum.Struct.Event.ThreadListSync.html#t:threads/0"},{"type":"module","title":"Nostrum.Struct.Event.ThreadMembersUpdate","doc":"Struct representing a thread members update event. This event is sent whenever a user is added or removed from a thread. If the current user does not have the GUILD_MEMBERS intent, this event will only be sent when the current user is added to or removed from a thread.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.added_members/0","doc":"The members that were added to the thread.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:added_members/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.guild_id/0","doc":"The id of the guild the thread is in.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.id/0","doc":"The id of the thread.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:id/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.member_count/0","doc":"The approximate number of members in the thread. This number is capped at 50, though there can be more members in the thread.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:member_count/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.removed_member_ids/0","doc":"The ids of the members that were removed from the thread.","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:removed_member_ids/0"},{"type":"type","title":"Nostrum.Struct.Event.ThreadMembersUpdate.t/0","doc":"","ref":"Nostrum.Struct.Event.ThreadMembersUpdate.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.TypingStart","doc":"Sent when a user starts typing in a channel","ref":"Nostrum.Struct.Event.TypingStart.html"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.channel_id/0","doc":"Channel in which the user started typing","ref":"Nostrum.Struct.Event.TypingStart.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.guild_id/0","doc":"ID of the guild where the user started typing, if applicable","ref":"Nostrum.Struct.Event.TypingStart.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.member/0","doc":"The member who started typing if this happened in a guild","ref":"Nostrum.Struct.Event.TypingStart.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.t/0","doc":"Event sent when a user starts typing in a channel","ref":"Nostrum.Struct.Event.TypingStart.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.timestamp/0","doc":"When the user started typing","ref":"Nostrum.Struct.Event.TypingStart.html#t:timestamp/0"},{"type":"type","title":"Nostrum.Struct.Event.TypingStart.user_id/0","doc":"ID of the user who started typing","ref":"Nostrum.Struct.Event.TypingStart.html#t:user_id/0"},{"type":"module","title":"Nostrum.Struct.Event.VoiceReady","doc":"Struct representing a Nostrum-generated Voice Ready event Nostrum will generate this event when the bot joins a voice channel and is ready to play audio. Listening to this event may be used for bots that begin playing audio directly after joining a voice channel as an alternative to waiting until Nostrum.Voice.ready?/1 returns true .","ref":"Nostrum.Struct.Event.VoiceReady.html"},{"type":"type","title":"Nostrum.Struct.Event.VoiceReady.channel_id/0","doc":"Id of the channel that voice is ready in.","ref":"Nostrum.Struct.Event.VoiceReady.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceReady.guild_id/0","doc":"Id of the guild that voice is ready in.","ref":"Nostrum.Struct.Event.VoiceReady.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceReady.t/0","doc":"","ref":"Nostrum.Struct.Event.VoiceReady.html#t:t/0"},{"type":"module","title":"Nostrum.Struct.Event.VoiceServerUpdate","doc":"Sent when a guild's voice server is updated","ref":"Nostrum.Struct.Event.VoiceServerUpdate.html"},{"type":"type","title":"Nostrum.Struct.Event.VoiceServerUpdate.endpoint/0","doc":"The voice server host","ref":"Nostrum.Struct.Event.VoiceServerUpdate.html#t:endpoint/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceServerUpdate.guild_id/0","doc":"Guild this voice server update is for","ref":"Nostrum.Struct.Event.VoiceServerUpdate.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceServerUpdate.t/0","doc":"Event sent when a guild's voice server is updated","ref":"Nostrum.Struct.Event.VoiceServerUpdate.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceServerUpdate.token/0","doc":"Voice connection token","ref":"Nostrum.Struct.Event.VoiceServerUpdate.html#t:token/0"},{"type":"module","title":"Nostrum.Struct.Event.VoiceState","doc":"Represents a user's voice connection status","ref":"Nostrum.Struct.Event.VoiceState.html"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.channel_id/0","doc":"Channel ID this voice state is for","ref":"Nostrum.Struct.Event.VoiceState.html#t:channel_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.deaf/0","doc":"Whether this user is deafened by the server","ref":"Nostrum.Struct.Event.VoiceState.html#t:deaf/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.guild_id/0","doc":"Guild ID this voice state is for, if applicable","ref":"Nostrum.Struct.Event.VoiceState.html#t:guild_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.member/0","doc":"Guild member this voice state is for, if applicable","ref":"Nostrum.Struct.Event.VoiceState.html#t:member/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.mute/0","doc":"Whether this user is muteened by the server","ref":"Nostrum.Struct.Event.VoiceState.html#t:mute/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.request_to_speak_timestamp/0","doc":"Time at which the user requested to speak, if applicable","ref":"Nostrum.Struct.Event.VoiceState.html#t:request_to_speak_timestamp/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.self_deaf/0","doc":"Whether this user is locally deafened","ref":"Nostrum.Struct.Event.VoiceState.html#t:self_deaf/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.self_mute/0","doc":"Whether this user is locally muted","ref":"Nostrum.Struct.Event.VoiceState.html#t:self_mute/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.self_stream/0","doc":"Whether the user is streaming using "Go Live"","ref":"Nostrum.Struct.Event.VoiceState.html#t:self_stream/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.self_video/0","doc":"Whether this user's camera is enabled","ref":"Nostrum.Struct.Event.VoiceState.html#t:self_video/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.session_id/0","doc":"Session ID for this voice state","ref":"Nostrum.Struct.Event.VoiceState.html#t:session_id/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.suppress/0","doc":"Whether this user is muted by the current user","ref":"Nostrum.Struct.Event.VoiceState.html#t:suppress/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.t/0","doc":"Event sent when a user's voice status is updated","ref":"Nostrum.Struct.Event.VoiceState.html#t:t/0"},{"type":"type","title":"Nostrum.Struct.Event.VoiceState.user_id/0","doc":"User this voice state is for","ref":"Nostrum.Struct.Event.VoiceState.html#t:user_id/0"},{"type":"module","title":"Nostrum.Constants.ApplicationCommandOptionType","doc":"Defines available types used for defining application command option types for passed options For more info please refer to https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type","ref":"Nostrum.Constants.ApplicationCommandOptionType.html"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.attachment/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#attachment/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.boolean/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#boolean/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.channel/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#channel/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.integer/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#integer/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.mentionable/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#mentionable/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.number/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#number/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.role/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#role/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.string/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#string/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.sub_command/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#sub_command/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.sub_command_group/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#sub_command_group/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandOptionType.user/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandOptionType.html#user/0"},{"type":"module","title":"Nostrum.Constants.ApplicationCommandPermissionType","doc":"Defines available types for application command permissions For more info please refer to https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type","ref":"Nostrum.Constants.ApplicationCommandPermissionType.html"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandPermissionType.channel/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandPermissionType.html#channel/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandPermissionType.role/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandPermissionType.html#role/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandPermissionType.user/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandPermissionType.html#user/0"},{"type":"module","title":"Nostrum.Constants.ApplicationCommandType","doc":"Defines available types used for selecting application command types For more info please refer to https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types","ref":"Nostrum.Constants.ApplicationCommandType.html"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandType.chat_input/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandType.html#chat_input/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandType.message/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandType.html#message/0"},{"type":"function","title":"Nostrum.Constants.ApplicationCommandType.user/0","doc":"","ref":"Nostrum.Constants.ApplicationCommandType.html#user/0"},{"type":"module","title":"Nostrum.Constants.ButtonStyle","doc":"Defines available styles for button message components For more info please refer to https://discord.com/developers/docs/interactions/message-components#button-object-button-styles","ref":"Nostrum.Constants.ButtonStyle.html"},{"type":"function","title":"Nostrum.Constants.ButtonStyle.danger/0","doc":"","ref":"Nostrum.Constants.ButtonStyle.html#danger/0"},{"type":"function","title":"Nostrum.Constants.ButtonStyle.link/0","doc":"","ref":"Nostrum.Constants.ButtonStyle.html#link/0"},{"type":"function","title":"Nostrum.Constants.ButtonStyle.primary/0","doc":"","ref":"Nostrum.Constants.ButtonStyle.html#primary/0"},{"type":"function","title":"Nostrum.Constants.ButtonStyle.secondary/0","doc":"","ref":"Nostrum.Constants.ButtonStyle.html#secondary/0"},{"type":"function","title":"Nostrum.Constants.ButtonStyle.success/0","doc":"","ref":"Nostrum.Constants.ButtonStyle.html#success/0"},{"type":"module","title":"Nostrum.Constants.ChannelType","doc":"Defines available types for channels For more info please refer to https://discord.com/developers/docs/resources/channel#channel-object-channel-types","ref":"Nostrum.Constants.ChannelType.html"},{"type":"function","title":"Nostrum.Constants.ChannelType.announcement_thread/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#announcement_thread/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.dm/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#dm/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.group_db/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#group_db/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_announcement/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_announcement/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_category/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_category/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_directory/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_directory/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_forum/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_forum/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_text/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_text/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.guild_voice/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#guild_voice/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.private_thread/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#private_thread/0"},{"type":"function","title":"Nostrum.Constants.ChannelType.public_thread/0","doc":"","ref":"Nostrum.Constants.ChannelType.html#public_thread/0"},{"type":"module","title":"Nostrum.Constants.ComponentType","doc":"Defines available types for message components For more info please refer to https://discord.com/developers/docs/interactions/message-components#component-object-component-types","ref":"Nostrum.Constants.ComponentType.html"},{"type":"function","title":"Nostrum.Constants.ComponentType.action_row/0","doc":"Container for other components","ref":"Nostrum.Constants.ComponentType.html#action_row/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.button/0","doc":"Button object","ref":"Nostrum.Constants.ComponentType.html#button/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.channel_select/0","doc":"Select menu for channels","ref":"Nostrum.Constants.ComponentType.html#channel_select/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.mentionable_select/0","doc":"Select menu for mentionables (users and roles)","ref":"Nostrum.Constants.ComponentType.html#mentionable_select/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.role_select/0","doc":"Select menu for roles","ref":"Nostrum.Constants.ComponentType.html#role_select/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.string_select/0","doc":"Select menu for picking from defined text options","ref":"Nostrum.Constants.ComponentType.html#string_select/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.text_input/0","doc":"Text input object","ref":"Nostrum.Constants.ComponentType.html#text_input/0"},{"type":"function","title":"Nostrum.Constants.ComponentType.user_select/0","doc":"Select menu for users","ref":"Nostrum.Constants.ComponentType.html#user_select/0"},{"type":"module","title":"Nostrum.Constants.InteractionCallbackType","doc":"Defines available types for interaction callbacks For more info please refer to https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type","ref":"Nostrum.Constants.InteractionCallbackType.html"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.application_command_autocomplete_result/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#application_command_autocomplete_result/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.channel_message_with_source/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#channel_message_with_source/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.deferred_channel_message_with_source/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#deferred_channel_message_with_source/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.deferred_update_message/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#deferred_update_message/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.modal/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#modal/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.pong/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#pong/0"},{"type":"function","title":"Nostrum.Constants.InteractionCallbackType.update_message/0","doc":"","ref":"Nostrum.Constants.InteractionCallbackType.html#update_message/0"},{"type":"module","title":"Nostrum.Constants.InteractionType","doc":"Defines available types for interactions For more info please refer to https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type","ref":"Nostrum.Constants.InteractionType.html"},{"type":"function","title":"Nostrum.Constants.InteractionType.application_command/0","doc":"","ref":"Nostrum.Constants.InteractionType.html#application_command/0"},{"type":"function","title":"Nostrum.Constants.InteractionType.application_command_autocomplete/0","doc":"","ref":"Nostrum.Constants.InteractionType.html#application_command_autocomplete/0"},{"type":"function","title":"Nostrum.Constants.InteractionType.message_component/0","doc":"","ref":"Nostrum.Constants.InteractionType.html#message_component/0"},{"type":"function","title":"Nostrum.Constants.InteractionType.modal_submit/0","doc":"","ref":"Nostrum.Constants.InteractionType.html#modal_submit/0"},{"type":"function","title":"Nostrum.Constants.InteractionType.ping/0","doc":"","ref":"Nostrum.Constants.InteractionType.html#ping/0"},{"type":"module","title":"Nostrum.Constants.TextInputStyle","doc":"Defines available styles for modal text inputs For more info please refer to https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-styles","ref":"Nostrum.Constants.TextInputStyle.html"},{"type":"function","title":"Nostrum.Constants.TextInputStyle.paragraph/0","doc":"","ref":"Nostrum.Constants.TextInputStyle.html#paragraph/0"},{"type":"function","title":"Nostrum.Constants.TextInputStyle.short/0","doc":"","ref":"Nostrum.Constants.TextInputStyle.html#short/0"},{"type":"module","title":"Nostrum.Constants.WebhookType","doc":"Defines available types for channels For more info please refer to https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types","ref":"Nostrum.Constants.WebhookType.html"},{"type":"function","title":"Nostrum.Constants.WebhookType.application/0","doc":"","ref":"Nostrum.Constants.WebhookType.html#application/0"},{"type":"function","title":"Nostrum.Constants.WebhookType.channel_follower/0","doc":"","ref":"Nostrum.Constants.WebhookType.html#channel_follower/0"},{"type":"function","title":"Nostrum.Constants.WebhookType.incoming/0","doc":"","ref":"Nostrum.Constants.WebhookType.html#incoming/0"},{"type":"module","title":"Nostrum.Snowflake","doc":"Functions that work on Snowflakes.","ref":"Nostrum.Snowflake.html"},{"type":"function","title":"Nostrum.Snowflake.cast/1","doc":"Attempts to convert a term into a snowflake. Examples iex> Nostrum.Snowflake . cast ( 200317799350927360 ) { :ok , 200317799350927360 } iex> Nostrum.Snowflake . cast ( "200317799350927360" ) { :ok , 200317799350927360 } iex> Nostrum.Snowflake . cast ( nil ) { :ok , nil } iex> Nostrum.Snowflake . cast ( true ) :error iex> Nostrum.Snowflake . cast ( - 1 ) :error","ref":"Nostrum.Snowflake.html#cast/1"},{"type":"function","title":"Nostrum.Snowflake.cast!/1","doc":"Same as cast/1 , except it raises an ArgumentError on failure.","ref":"Nostrum.Snowflake.html#cast!/1"},{"type":"function","title":"Nostrum.Snowflake.creation_time/1","doc":"Returns the creation time of the snowflake. Examples iex> Nostrum.Snowflake . creation_time ( 177888205536886784 ) ~U[2016-05-05 21:04:13.203Z]","ref":"Nostrum.Snowflake.html#creation_time/1"},{"type":"function","title":"Nostrum.Snowflake.dump/1","doc":"Convert a snowflake into its external representation. Examples iex> Nostrum.Snowflake . dump ( 109112383011581952 ) "109112383011581952"","ref":"Nostrum.Snowflake.html#dump/1"},{"type":"function","title":"Nostrum.Snowflake.from_datetime/1","doc":"Converts the given datetime into a snowflake. If datetime occurred before the discord epoch, the function will return :error . The converted snowflake's last 22 bits will be zeroed out due to missing data. Examples iex> { :ok , dt , _ } = DateTime . from_iso8601 ( "2016-05-05T21:04:13.203Z" ) iex> Nostrum.Snowflake . from_datetime ( dt ) { :ok , 177888205536755712 } iex> { :ok , dt , _ } = DateTime . from_iso8601 ( "1998-12-25T00:00:00.000Z" ) iex> Nostrum.Snowflake . from_datetime ( dt ) :error","ref":"Nostrum.Snowflake.html#from_datetime/1"},{"type":"function","title":"Nostrum.Snowflake.from_datetime!/1","doc":"Same as from_datetime/1 , except it raises an ArgumentError on failure.","ref":"Nostrum.Snowflake.html#from_datetime!/1"},{"type":"macro","title":"Nostrum.Snowflake.is_snowflake/1","doc":"Returns true if term is a snowflake; otherwise returns false . Examples iex> Nostrum.Snowflake . is_snowflake ( 89918932789497856 ) true iex> Nostrum.Snowflake . is_snowflake ( - 1 ) false iex> Nostrum.Snowflake . is_snowflake ( 0xFFFFFFFFFFFFFFFF + 1 ) false iex> Nostrum.Snowflake . is_snowflake ( "117789813427535878" ) false","ref":"Nostrum.Snowflake.html#is_snowflake/1"},{"type":"type","title":"Nostrum.Snowflake.external_snowflake/0","doc":"The type that represents snowflakes in JSON. In JSON, Snowflakes are typically represented as strings due to some languages not being able to represent such a large number.","ref":"Nostrum.Snowflake.html#t:external_snowflake/0"},{"type":"type","title":"Nostrum.Snowflake.t/0","doc":"The snowflake type. Snowflakes are 64-bit unsigned integers used to represent discord object ids.","ref":"Nostrum.Snowflake.html#t:t/0"},{"type":"module","title":"Nostrum.Token","doc":"A helper module for verifying the Discord bot token. The token can be generated in the "Bot" tab of your Application the Discord Developer Portal and can be configured in your config file. config :nostrum , token : "666" # The token of your bot as a string","ref":"Nostrum.Token.html"},{"type":"function","title":"Nostrum.Token.check_token!/0","doc":"Checks if the Discord bot token has the correct format. We check if the token is a binary followed by splitting it into 3 parts separated by a dot "." . The first part is the Base64 encoded user_id which we decode and parse into as integer. The second part is an encoded timestamp, and the last part an arbitrary cryptographic signature. Raises on failure. Examples iex> token = "OTY4NTU2MzQ4MzkwMzkxODU5.G49NjP.pD8PLpKp-Xx8sr-8m1DCxSPTJZdcpcJZOExc1c" iex> Nostrum.Token . check_token! ( token ) :ok iex> token = "ODY4MDcxODUzMDMyMzU3OTc4.YPqU6Q.jNJcq1daGG3otexX3c1LcxCpgpQ" iex> Nostrum.Token . check_token! ( token ) :ok","ref":"Nostrum.Token.html#check_token!/0"},{"type":"function","title":"Nostrum.Token.check_token!/1","doc":"","ref":"Nostrum.Token.html#check_token!/1"},{"type":"module","title":"Nostrum.Util","doc":"Utility functions","ref":"Nostrum.Util.html"},{"type":"function","title":"Nostrum.Util.enum_to_struct/2","doc":"","ref":"Nostrum.Util.html#enum_to_struct/2"},{"type":"function","title":"Nostrum.Util.gateway/0","doc":"Returns the gateway url and shard count for current websocket connections. If by chance no gateway connection has been made, will fetch the url to use and store it for future use.","ref":"Nostrum.Util.html#gateway/0"},{"type":"function","title":"Nostrum.Util.get_all_shard_latencies/0","doc":"Gets the latencies of all shard connections. Calls get_shard_latency/1 on all shards and returns a map whose keys are shard nums and whose values are latencies in milliseconds.","ref":"Nostrum.Util.html#get_all_shard_latencies/0"},{"type":"function","title":"Nostrum.Util.get_shard_latency/1","doc":"Gets the latency of the shard connection from a Nostrum.Struct.WSState.t() struct. Returns the latency in milliseconds as an integer, returning nil if unknown.","ref":"Nostrum.Util.html#get_shard_latency/1"},{"type":"function","title":"Nostrum.Util.maybe_to_atom/1","doc":"Attempts to convert a string to an atom. Binary token s that consist of digits are assumed to be snowflakes, and will be parsed as such. If atom does not currently exist, will warn that we're doing an unsafe conversion.","ref":"Nostrum.Util.html#maybe_to_atom/1"},{"type":"function","title":"Nostrum.Util.maybe_to_datetime/1","doc":"Converts possibly nil ISO8601 timestamp to a DateTime","ref":"Nostrum.Util.html#maybe_to_datetime/1"},{"type":"function","title":"Nostrum.Util.maybe_to_unixtime/1","doc":"Converts possibly nil ISO8601 timestamp to unix time.","ref":"Nostrum.Util.html#maybe_to_unixtime/1"},{"type":"function","title":"Nostrum.Util.now/0","doc":"Returns the number of milliseconds since unix epoch.","ref":"Nostrum.Util.html#now/0"},{"type":"function","title":"Nostrum.Util.now_iso/0","doc":"Returns the current date as an ISO formatted string.","ref":"Nostrum.Util.html#now_iso/0"},{"type":"function","title":"Nostrum.Util.num_shards/0","doc":"Returns the total amount of shards as per the configuration. Return value If you specified your shards as :auto , the return value will be the recommended number of shards as given by the gateway. If you explicitly specified your shard numbers as an integer, it will be the given number. If you specified your shards in the form {lowest, highest, total} to start a specific range of the total shards you want to start, this will be the total value. Should Discord not supply us with any shard information, this will return 1 . Note that this is not the number of currently active shards, but the number of shards specified in your config.","ref":"Nostrum.Util.html#num_shards/0"},{"type":"function","title":"Nostrum.Util.safe_atom_map/1","doc":"Converts a map into an atom-keyed map. Given a map with variable type keys, returns the same map with all keys as atoms . To support maps keyed with integers (such as in Discord's interaction data), binaries that appear to be integers will be parsed as such. This function will attempt to convert keys to an existing atom, and if that fails will default to creating a new atom while displaying a warning. The idea here is that we should be able to see if any results from Discord are giving variable keys. Since we will define all types of objects returned by Discord, the amount of new atoms created SHOULD be 0. 👀","ref":"Nostrum.Util.html#safe_atom_map/1"},{"type":"function","title":"Nostrum.Util.unused_atoms/0","doc":"Since we're being sacrilegious and converting strings to atoms from the WS, there will be some atoms that we see that aren't defined in any Discord structs. This method mainly serves as a means to define those atoms once so the user isn't warned about them in the Nostrum.Util.maybe_to_atom/1 function when they are in fact harmless. The function is public to prevent it from being optimized out at compile time.","ref":"Nostrum.Util.html#unused_atoms/0"},{"type":"function","title":"Nostrum.Util.usec_now/0","doc":"Returns the number of microseconds since unix epoch.","ref":"Nostrum.Util.html#usec_now/0"},{"type":"behaviour","title":"Nostrum.Store.GuildShardMapping","doc":"Behaviour & dispatcher for storing guild to shard mappings. Purpose When nostrum needs to run API calls over the gateway and multiple shards are used, it needs to determine which shard process will run the request. This module stores a mapping of guild IDs to their respective shard numbers. It is unlikely you need to use this module directly yourself. Configuration By default, nostrum will use Elixir.Nostrum.Store.GuildShardMapping.ETS to store the mapping. To override this, set the [:stores, :guild_shard_mapping] setting on nostrum's application configuration: config :nostrum , stores : %{ guild_shard_mapping : MyBot.Nostrum.Store.GuildShardMapping } This setting must be set at compile time.","ref":"Nostrum.Store.GuildShardMapping.html"},{"type":"callback","title":"Nostrum.Store.GuildShardMapping.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Store.GuildShardMapping.html#c:child_spec/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.create/2","doc":"See Nostrum.Store.GuildShardMapping.ETS.create/2 .","ref":"Nostrum.Store.GuildShardMapping.html#create/2"},{"type":"callback","title":"Nostrum.Store.GuildShardMapping.create/2","doc":"Create a new mapping for the given guild ID to the given shard ID.","ref":"Nostrum.Store.GuildShardMapping.html#c:create/2"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.delete/1","doc":"See Nostrum.Store.GuildShardMapping.ETS.delete/1 .","ref":"Nostrum.Store.GuildShardMapping.html#delete/1"},{"type":"callback","title":"Nostrum.Store.GuildShardMapping.delete/1","doc":"Delete any stored mapping for the given guild ID.","ref":"Nostrum.Store.GuildShardMapping.html#c:delete/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.get/1","doc":"See Nostrum.Store.GuildShardMapping.ETS.get/1 .","ref":"Nostrum.Store.GuildShardMapping.html#get/1"},{"type":"callback","title":"Nostrum.Store.GuildShardMapping.get/1","doc":"Retrieve the shard number for the given guild ID. Returns nil if no associated shard number was found.","ref":"Nostrum.Store.GuildShardMapping.html#c:get/1"},{"type":"module","title":"Nostrum.Store.Supervisor","doc":"Supervises processes managing nostrum's internal state. Please see the following modules for more details: Nostrum.Store.GuildShardMapping Nostrum.Store.UnavailableGuild","ref":"Nostrum.Store.Supervisor.html"},{"type":"function","title":"Nostrum.Store.Supervisor.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Store.Supervisor.html#child_spec/1"},{"type":"function","title":"Nostrum.Store.Supervisor.init/1","doc":"Callback implementation for Supervisor.init/1 .","ref":"Nostrum.Store.Supervisor.html#init/1"},{"type":"function","title":"Nostrum.Store.Supervisor.start_link/1","doc":"","ref":"Nostrum.Store.Supervisor.html#start_link/1"},{"type":"behaviour","title":"Nostrum.Store.UnavailableGuild","doc":"Behaviour & dispatcher for storing unavailable guilds. Purpose The GUILD_CREATE gateway event on its own provides no means to determine whether the guild we receive is a guild that the bot joined, or a guild that has just become available over the gateway. To work around this, this store keeps track of unavailable guilds we received to determine whether a guild sent over this event is unavailable or new. It is therefore unlikely this module needs to be used outside of nostrum. Configuration By default, nostrum will use Elixir.Nostrum.Store.UnavailableGuild.ETS to store unavailable guilds. To override this, set the [:stores, :unavailable_guilds] setting on nostrum's application configuration: config :nostrum , stores : %{ unavailable_guilds : MyBot.Nostrum.Store.UnavailableGuild } This setting must be set at compile time. Implementation If implementing your own unavailable guild store, in addition to the callbacks of this module, you must also provide the function child_spec/1 . The recommended approach is to spawn a Supervisor to manage your store.","ref":"Nostrum.Store.UnavailableGuild.html"},{"type":"callback","title":"Nostrum.Store.UnavailableGuild.child_spec/1","doc":"Retrieve the child specification for starting this mapping under a supervisor.","ref":"Nostrum.Store.UnavailableGuild.html#c:child_spec/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.create/1","doc":"See Nostrum.Store.UnavailableGuild.ETS.create/1 .","ref":"Nostrum.Store.UnavailableGuild.html#create/1"},{"type":"callback","title":"Nostrum.Store.UnavailableGuild.create/1","doc":"Mark the given guild as unavailable.","ref":"Nostrum.Store.UnavailableGuild.html#c:create/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.is?/1","doc":"See Nostrum.Store.UnavailableGuild.ETS.is?/1 .","ref":"Nostrum.Store.UnavailableGuild.html#is?/1"},{"type":"callback","title":"Nostrum.Store.UnavailableGuild.is?/1","doc":"Return whether the guild is unavailable.","ref":"Nostrum.Store.UnavailableGuild.html#c:is?/1"},{"type":"module","title":"Nostrum.Cache.ChannelCache.ETS","doc":"An ETS-based cache for channels outside of guilds. The supervisor defined by this module will set up the ETS table associated with it. If you need to get the table reference for the table used by this module, please use the table/0 function. Note that users should not call the functions not related to this specific implementation of the cache directly. Instead, call the functions of Nostrum.Cache.ChannelCache directly, which will dispatch to the configured cache.","ref":"Nostrum.Cache.ChannelCache.ETS.html"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.ChannelCache.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.create/1","doc":"Converts and creates the given map as a channel in the cache.","ref":"Nostrum.Cache.ChannelCache.ETS.html#create/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.delete/1","doc":"Delete the channel from the cache by ID.","ref":"Nostrum.Cache.ChannelCache.ETS.html#delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.init/1","doc":"Set up the cache's ETS table.","ref":"Nostrum.Cache.ChannelCache.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.query_handle/0","doc":"Retrieve a query handle for usage with QLC.","ref":"Nostrum.Cache.ChannelCache.ETS.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelCache.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.table/0","doc":"Retrieve the ETS table reference used for the cache.","ref":"Nostrum.Cache.ChannelCache.ETS.html#table/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.ETS.update/1","doc":"Update the given channel in the cache.","ref":"Nostrum.Cache.ChannelCache.ETS.html#update/1"},{"type":"module","title":"Nostrum.Cache.ChannelCache.Mnesia","doc":"An Mnesia-based cache for channels outside of guilds. Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information. To retrieve the table name used by this cache, use table/0 .","ref":"Nostrum.Cache.ChannelCache.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#clear/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.create/1","doc":"Creates the given channel in the cache.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#create/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.delete/1","doc":"Delete the channel from the cache by ID.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.init/1","doc":"Set up the cache's Mnesia table.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.query_handle/0","doc":"Retrieve a QLC query handle for the channel cache.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.table/0","doc":"Retrieve the table name used by the cache.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#teardown/0"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.update/1","doc":"Update the given channel in the cache.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#update/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.Mnesia.wrap_qlc/1","doc":"Wrap QLC operations in a transaction.","ref":"Nostrum.Cache.ChannelCache.Mnesia.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.ChannelCache.NoOp","doc":"A NoOp implementation for the ChannelCache This cache does nothing, enable it if you dont need to cache channels","ref":"Nostrum.Cache.ChannelCache.NoOp.html"},{"type":"function","title":"Nostrum.Cache.ChannelCache.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.ChannelCache.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelCache.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelCache.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Cache.ChannelGuildMapping.ETS","doc":"Maps channels to guilds via :ets . Please use the function table/0 for retrieving a reference to the table used by nostrum.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.create/2","doc":"Create a mapping of the given channel to the given guild.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#create/2"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.delete/1","doc":"Remove any mapping associated with the given channel.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.get/1","doc":"Retrieve the guild ID for the given channel ID, if present.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#get/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.init/1","doc":"Set up the ETS table.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.ETS.table/0","doc":"Retrieve the table used by this module.","ref":"Nostrum.Cache.ChannelGuildMapping.ETS.html#table/0"},{"type":"module","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia","doc":"An Mnesia-based mapping between channel and guild IDs. Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information. To retrieve the table name used by this cache, use table/0 .","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.create/2","doc":"Create a mapping of the given channel to the given guild.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#create/2"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.delete/1","doc":"Remove any mapping associated with the given channel.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#delete/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.get/1","doc":"Retrieve the guild ID for the given channel ID, if present.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#get/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.init/1","doc":"Set up the ETS table.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.table/0","doc":"Retrieve the table used by this module.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.ChannelGuildMapping.Mnesia.html#teardown/0"},{"type":"module","title":"Nostrum.Cache.ChannelGuildMapping.NoOp","doc":"NoOp implementation for the Channel Guild map","ref":"Nostrum.Cache.ChannelGuildMapping.NoOp.html"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.ChannelGuildMapping.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.ChannelGuildMapping.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.ChannelGuildMapping.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Cache.GuildCache.ETS","doc":"An ETS-based cache for guilds. The supervisor defined by this module will set up the ETS table associated with it. The default table name under which guilds are cached is nostrum_guilds . In addition to the cache behaviour implementations provided by this module, you can also call regular ETS table methods on it, such as :ets.info . Note that users should not call the functions not related to this specific implementation of the cache directly. Instead, call the functions of Nostrum.Cache.GuildCache directly, which will dispatch to the configured cache.","ref":"Nostrum.Cache.GuildCache.ETS.html"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.channel_create/2","doc":"Create the given channel for the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#channel_create/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.channel_delete/2","doc":"Delete the channel from the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#channel_delete/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.channel_update/2","doc":"Update the channel on the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#channel_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.GuildCache.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.create/1","doc":"Create the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#create/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.delete/1","doc":"Delete the given guild from the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#delete/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.emoji_update/2","doc":"Update the emoji list for the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#emoji_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.init/1","doc":"Set up the cache's ETS table.","ref":"Nostrum.Cache.GuildCache.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.member_count_down/1","doc":"Decrement the guild member count by one.","ref":"Nostrum.Cache.GuildCache.ETS.html#member_count_down/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.member_count_up/1","doc":"Increment the guild member count by one.","ref":"Nostrum.Cache.GuildCache.ETS.html#member_count_up/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.query_handle/0","doc":"Get a QLC query handle for the guild cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.role_create/2","doc":"Create the given role in the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#role_create/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.role_delete/2","doc":"Delete the given role from the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#role_delete/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.role_update/2","doc":"Update the given role in the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#role_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.GuildCache.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.tabname/0","doc":"Retrieve the ETS table name used for the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#tabname/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.update/1","doc":"Update the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#update/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.ETS.voice_state_update/2","doc":"Update guild voice states with the given voice state in the cache.","ref":"Nostrum.Cache.GuildCache.ETS.html#voice_state_update/2"},{"type":"module","title":"Nostrum.Cache.GuildCache.Mnesia","doc":"An Mnesia-based cache for guilds. Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information. To retrieve the table name used by this cache, use table/0 .","ref":"Nostrum.Cache.GuildCache.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.channel_create/2","doc":"Create the given channel for the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#channel_create/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.channel_delete/2","doc":"Delete the channel from the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#channel_delete/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.channel_update/2","doc":"Update the channel on the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#channel_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.GuildCache.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#clear/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.create/1","doc":"Create a guild from upstream data.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#create/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.delete/1","doc":"Remove the given guild from the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#delete/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.emoji_update/2","doc":"Update the emoji list for the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#emoji_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.init/1","doc":"Set up the cache's Mnesia table.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.member_count_down/1","doc":"Decrement the guild member count by one.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#member_count_down/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.member_count_up/1","doc":"Increment the guild member count by one.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#member_count_up/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.query_handle/0","doc":"Get a QLC handle for the guild cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.role_create/2","doc":"Create the given role in the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#role_create/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.role_delete/2","doc":"Delete the given role from the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#role_delete/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.role_update/2","doc":"Update the given role in the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#role_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.table/0","doc":"Retrieve the Mnesia table name used for the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#teardown/0"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.update/1","doc":"Update the given guild in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#update/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.voice_state_update/2","doc":"Update guild voice states with the given voice state in the cache.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#voice_state_update/2"},{"type":"function","title":"Nostrum.Cache.GuildCache.Mnesia.wrap_qlc/1","doc":"Wrap QLC operations in a transaction.","ref":"Nostrum.Cache.GuildCache.Mnesia.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.GuildCache.NoOp","doc":"A cache module that does nothing. Useful for bots that don't need to cache guilds.","ref":"Nostrum.Cache.GuildCache.NoOp.html"},{"type":"function","title":"Nostrum.Cache.GuildCache.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.GuildCache.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.NoOp.init/1","doc":"Start up the cache supervisor.","ref":"Nostrum.Cache.GuildCache.NoOp.html#init/1"},{"type":"function","title":"Nostrum.Cache.GuildCache.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.GuildCache.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Cache.MemberCache.ETS","doc":"An ETS-based cache for members. If you need to get the table reference for the table used by this module, please use the table/0 function.","ref":"Nostrum.Cache.MemberCache.ETS.html"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.bulk_create/2","doc":"Bulk create a chunk of members for the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#bulk_create/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.MemberCache.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#clear/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.create/2","doc":"Add the given member to the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#create/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.delete/2","doc":"Remove the given member from the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#delete/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.init/1","doc":"Set up the cache's ETS table.","ref":"Nostrum.Cache.MemberCache.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.query_handle/0","doc":"Get a QLC query handle for the member cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.MemberCache.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.table/0","doc":"Retrieve the ETS table reference used for the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#table/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.update/2","doc":"Update the given member for the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.ETS.html#update/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.ETS.wrap_qlc/1","doc":"Wrap QLC operations. Safety Any QLC operations are surrounded by :ets.safe_fixtable . It is therefore recommended to finish your read quickly.","ref":"Nostrum.Cache.MemberCache.ETS.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.MemberCache.Mnesia","doc":"An Mnesia-based cache for guild members. Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information. To retrieve the table name used by this cache, use table/0 .","ref":"Nostrum.Cache.MemberCache.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.bulk_create/2","doc":"Bulk create a chunk of members for the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#bulk_create/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.MemberCache.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#clear/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.create/2","doc":"Add the given member to the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#create/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.delete/2","doc":"Remove the given member from the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#delete/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.init/1","doc":"Set up the cache's Mnesia table.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.query_handle/0","doc":"Get a QLC query handle for the member cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.table/0","doc":"Retrieve the Mnesia table name used for the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#teardown/0"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.update/2","doc":"Update the given member for the given guild in the cache.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#update/2"},{"type":"function","title":"Nostrum.Cache.MemberCache.Mnesia.wrap_qlc/1","doc":"Wrap QLC operations in a transaction.","ref":"Nostrum.Cache.MemberCache.Mnesia.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.MemberCache.NoOp","doc":"A NoOp implementation for the MemberCache This cache does nothing, enable it if you dont need to cache members","ref":"Nostrum.Cache.MemberCache.NoOp.html"},{"type":"function","title":"Nostrum.Cache.MemberCache.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.MemberCache.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.MemberCache.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.MemberCache.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Cache.PresenceCache.ETS","doc":"ETS-based cache for user presences. If you need to get the table reference for the table used by this module, please use the table/0 function.","ref":"Nostrum.Cache.PresenceCache.ETS.html"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.bulk_create/2","doc":"Bulk create multiple presences in the cache.","ref":"Nostrum.Cache.PresenceCache.ETS.html#bulk_create/2"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.PresenceCache.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.create/1","doc":"Add the given presence data to the cache.","ref":"Nostrum.Cache.PresenceCache.ETS.html#create/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.init/1","doc":"Set up the cache's ETS table.","ref":"Nostrum.Cache.PresenceCache.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.query_handle/0","doc":"Retrieve a query handle for QLC queries.","ref":"Nostrum.Cache.PresenceCache.ETS.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.PresenceCache.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.table/0","doc":"Retrieve the ETS table reference used for the cache.","ref":"Nostrum.Cache.PresenceCache.ETS.html#table/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.ETS.update/1","doc":"Update the given presence data in the cache.","ref":"Nostrum.Cache.PresenceCache.ETS.html#update/1"},{"type":"module","title":"Nostrum.Cache.PresenceCache.Mnesia","doc":"An Mnesia-based cache for presences. Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information. To retrieve the table name used by this cache, use table/0 .","ref":"Nostrum.Cache.PresenceCache.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.bulk_create/2","doc":"Bulk create a chunk of presences for the given guild in the cache.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#bulk_create/2"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#clear/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.create/1","doc":"Add the given presence to the cache.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#create/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.init/1","doc":"Set up the cache's Mnesia table.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.query_handle/0","doc":"Retrieve a query handle for the table.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.table/0","doc":"Retrieve the table name used by the cache.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#teardown/0"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.update/1","doc":"Update the given presence in the cache.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#update/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.Mnesia.wrap_qlc/1","doc":"Wrap QLC operations in a transaction.","ref":"Nostrum.Cache.PresenceCache.Mnesia.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.PresenceCache.NoOp","doc":"A cache module that does not cache anything. Useful for bots that do not need presence caching.","ref":"Nostrum.Cache.PresenceCache.NoOp.html"},{"type":"function","title":"Nostrum.Cache.PresenceCache.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.PresenceCache.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.NoOp.init/1","doc":"Start up the cache supervisor.","ref":"Nostrum.Cache.PresenceCache.NoOp.html#init/1"},{"type":"function","title":"Nostrum.Cache.PresenceCache.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.PresenceCache.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Cache.UserCache.ETS","doc":"An ETS-based cache for users. If you need to get the table reference for the table used by this module, please use the table/0 function.","ref":"Nostrum.Cache.UserCache.ETS.html"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.bulk_create/1","doc":"Bulk create a list of users from upstream data.","ref":"Nostrum.Cache.UserCache.ETS.html#bulk_create/1"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.UserCache.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.create/1","doc":"Create a user from upstream data.","ref":"Nostrum.Cache.UserCache.ETS.html#create/1"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.init/1","doc":"Set up the ETS table.","ref":"Nostrum.Cache.UserCache.ETS.html#init/1"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.query_handle/0","doc":"Get a QLC query handle for the user cache.","ref":"Nostrum.Cache.UserCache.ETS.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.UserCache.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.table/0","doc":"Retrieve the ETS table reference used for the cache.","ref":"Nostrum.Cache.UserCache.ETS.html#table/0"},{"type":"function","title":"Nostrum.Cache.UserCache.ETS.update/1","doc":"Update a user from upstream data.","ref":"Nostrum.Cache.UserCache.ETS.html#update/1"},{"type":"module","title":"Nostrum.Cache.UserCache.Mnesia","doc":"An Mnesia-based cache for users. Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information. To retrieve the table name used by this cache, use table/0 .","ref":"Nostrum.Cache.UserCache.Mnesia.html"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.bulk_create/1","doc":"Bulk create a chunk of users in the cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#bulk_create/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.UserCache.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.clear/0","doc":"Clear any objects in the cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#clear/0"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.create/1","doc":"Create a user from upstream data.","ref":"Nostrum.Cache.UserCache.Mnesia.html#create/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.delete/1","doc":"Remove the given user from cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#delete/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.init/1","doc":"Set up the cache's Mnesia table.","ref":"Nostrum.Cache.UserCache.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.query_handle/0","doc":"Get a QLC query handle for the user cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#query_handle/0"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.UserCache.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.table/0","doc":"Retrieve the Mnesia table name used for the cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.teardown/0","doc":"Drop the table used for caching.","ref":"Nostrum.Cache.UserCache.Mnesia.html#teardown/0"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.update/1","doc":"Update the given member for the given guild in the cache.","ref":"Nostrum.Cache.UserCache.Mnesia.html#update/1"},{"type":"function","title":"Nostrum.Cache.UserCache.Mnesia.wrap_qlc/1","doc":"Wrap QLC operations in a transaction.","ref":"Nostrum.Cache.UserCache.Mnesia.html#wrap_qlc/1"},{"type":"module","title":"Nostrum.Cache.UserCache.NoOp","doc":"A NoOp implementation for the UserCache This cache does nothing, enable it if you dont need to cache users","ref":"Nostrum.Cache.UserCache.NoOp.html"},{"type":"function","title":"Nostrum.Cache.UserCache.NoOp.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Cache.UserCache.NoOp.html#child_spec/1"},{"type":"function","title":"Nostrum.Cache.UserCache.NoOp.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Cache.UserCache.NoOp.html#start_link/1"},{"type":"module","title":"Nostrum.Store.GuildShardMapping.ETS","doc":"Maintains a mapping of guild IDs to their shard numbers using :ets . If programmatic access to the ETS table is needed, please use the table/0 function. Please do not use this module directly, apart from special functions such as table/0 . Use Nostrum.Store.GuildShardMapping to call the configured mapping instead.","ref":"Nostrum.Store.GuildShardMapping.ETS.html"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Store.GuildShardMapping.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.create/2","doc":"Create a new mapping for the given guild ID to the given shard ID.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#create/2"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.delete/1","doc":"Delete any stored mapping for the given guild ID.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#delete/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.get/1","doc":"Get the shard number for the given guild ID.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#get/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.init/1","doc":"Set up the store's ETS table.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#init/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.ETS.table/0","doc":"Retrieve the ETS table reference used for the store.","ref":"Nostrum.Store.GuildShardMapping.ETS.html#table/0"},{"type":"module","title":"Nostrum.Store.GuildShardMapping.Mnesia","doc":"Maintains a mapping of guild IDs to their shard numbers using Mnesia. Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information. To retrieve the table name used by this cache, use table/0 .","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.create/2","doc":"Create a new mapping for the given guild ID to the given shard ID.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#create/2"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.delete/1","doc":"Delete any stored mapping for the given guild ID.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#delete/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.get/1","doc":"Get the shard number for the given guild ID.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#get/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.init/1","doc":"Set up the store's Mnesia table.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.table/0","doc":"Retrieve the Mnesia table name used for the store.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Store.GuildShardMapping.Mnesia.teardown/0","doc":"Drop the table used for the store.","ref":"Nostrum.Store.GuildShardMapping.Mnesia.html#teardown/0"},{"type":"module","title":"Nostrum.Store.UnavailableGuild.ETS","doc":"Stores guilds that are currently unavailable using :ets . If programmatic access to the ETS table is needed, please use the table/0 function. Please do not use this module directly, apart from special functions such as tabname/0 . Use Nostrum.Store.UnavailableGuild to call the configured mapping instead.","ref":"Nostrum.Store.UnavailableGuild.ETS.html"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Store.UnavailableGuild.ETS.html#child_spec/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.create/1","doc":"Create the given guild as an unavailable guild.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#create/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.init/1","doc":"Set up the store's ETS table.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#init/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.is?/1","doc":"Return whether the given guild is unavailable.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#is?/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#start_link/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.ETS.table/0","doc":"Retrieve the ETS table reference used for the store.","ref":"Nostrum.Store.UnavailableGuild.ETS.html#table/0"},{"type":"module","title":"Nostrum.Store.UnavailableGuild.Mnesia","doc":"Keeps track of unavailable guilds. Please note that this module is only compiled if Mnesia is available on your system. See the Mnesia section of the State documentation for more information. To retrieve the table name used by this cache, use table/0 .","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#child_spec/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.create/1","doc":"Create the given guild as an unavailable guild.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#create/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.init/1","doc":"Set up the store's Mnesia table.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#init/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.is?/1","doc":"Return whether the given guild is unavailable.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#is?/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.start_link/1","doc":"Start the supervisor.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#start_link/1"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.table/0","doc":"Retrieve the Mnesia table name used for the store.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#table/0"},{"type":"function","title":"Nostrum.Store.UnavailableGuild.Mnesia.teardown/0","doc":"Drop the table used for the store.","ref":"Nostrum.Store.UnavailableGuild.Mnesia.html#teardown/0"},{"type":"module","title":"Nostrum.Api.Ratelimiter","doc":"Handles REST calls to the Discord API while respecting ratelimits. Purpose Discord's API returns information about ratelimits that we must respect. This module performs serialization of these requests through a single process, thus preventing concurrency issues from arising if two processes make a remote API call at the same time. Internal module This module is intended for exclusive usage inside of nostrum, and is documented for completeness and people curious to look behind the covers. Asynchronous requests The ratelimiter is fully asynchronous internally. In theory, it also supports queueing requests in an asynchronous manner. However, support for this is currently not implemented in Nostrum.Api . If you want to make one or multiple asynchronous requests manually, you can use the following pattern: req = :gen_statem . send_request ( Nostrum.Api.Ratelimiter , { :queue , request } ) # ... response = :gen_statem . receive_response ( req , timeout ) where request is a map describing the request to run - see Nostrum.Api for more information. You can also send multiple requests at the same time and wait for their response: see :gen_statem.reqids_add/3 and :gen_statem.wait_response/3 for more information. Multi-node If a single global process is desired to handle all ratelimiting, the ratelimiter can theoretically be adjusted to start registered via :global . In practice, it may be more beneficial to have a local ratelimiter process on each node and either using the local one for any API calls, or using a consistent hash mechanism to distribute API requests around the cluster as needed. Do note that the API enforces a global user ratelimit across all requests . With a single process, the ratelimiter can track this without hitting 429s at all, with multiple ratelimiters, the built-in requeue functionality may or may not help. Inner workings When a client process wants to perform some request on the Discord API, it sends a request to the :gen_statem behind this module to ask it to :queue the incoming request. Connection setup If the state machine is not connected to the HTTP endpoint, it will transition to the :connecting state and try to open the connection. If this succeeds, it transitions to the :connected state. Queueing requests The state machine associates a :queue.queue/1 of queued_request/0 to each individual bucket, together with an internal count of remaining calls. When queueing requests, the following cases occur: If there are no remaining calls in the bot's global ratelimit bucket or there are no remaining calls in the bucket, the request is put into the bucket's queue. If there is an :initial running request to the bucket, the request is put into the bucket's queue. If there are more than 0 remaining calls on both the request-specific bucket and the global bucket, the request is started right away. This allows nostrum to dispatch multiple requests to the same endpoint as soon as possible as long as calls remain. If no ratelimit information is known for the bucket and remaining calls on the global bucket, the request is sent out as the "pioneer" request that will retrieve how many calls we have for this bucket ( :initial , see above). If none of the above is true, a new queue is created and the pending rqeuest marked as the :initial request. It will be run as soon as the bot's global limit limit expires. The request starting function, :next , will start new requests from the queue as long as more calls are possible in the timeframe. Any requests are then started asynchronously. Bookkeeping is set up to associate the resulting :gun.stream_ref/0 with the original client along with its request and the ratelimiter bucket. Results from the HTTP connection are delivered non-blocking: simple responses with purely status codes and no body (code 204 ) will be sent in a single message, other requests will be sent to us incrementally. To finally deliver the full response body to the client with the final package, an internal buffer of the body is kept. A possible future optimization could be having a way for :gun to only send the ratelimiter state machine the initial :gun_response and forward any item of the body directly to the client. When the headers for a request have been received, the ratelimiter parses the ratelimit information and starts off an internal timer expiring when the ratelimits expire. It will also reschedule calls with the :next internal event for as many remaining calls as it knows about. Once the timer expires for the current bucket, two cases can happen: The queue has items: Schedule all items and repeat this later. The queue is empty: Delete the queue and remaining calls from the outstanding buckets. In practice, this means that we never store more information than we need, and removes the previous regular bucket sweeping functionality that the ratelimit buckets required. Global ratelimits (note this is a distinct ratelimit from the bot's "global", per-user ratelimit) are handled with the special global_limit state. This state is entered for exactly the the X-Ratelimit-Reset-After time provided in the global ratelimit response. This state does nothing apart from postponing any events it receives and returning to the previous state ( :connected ) once the global timeout is gone. Requests that failed because of the global ratelimit are requeued after returning back into the regular state: a warning is logged to inform you of this. Failure modes HTTP connection death If the HTTP connection dies, the ratelimiter will inform each affected client by replying with {:error, {:connection_died, reason}} , where reason is the reason as provided by the :gun_down event. It will then transition to :disconnected state. If no requests were running at time the connection was shut down - for instance, because we simply reached the maximum idle time on the HTTP/2 connection - we will simply move on. Upstream errors The ratelimiter works by queueing requests aggressively as soon as it has ratelimit information to do so. If no ratelimit information is available, for instance, because Discord returned us a 502 status code, the ratelimiter will not automatically kick the queue to start further running requests. Other internal issues Any other internal problems that are not handled appropriately in the ratelimiter will crash it, effectively resulting in the complete loss of any queued requests. Implementation benefits & drawbacks A history of ratelimiting First, it is important to give a short history of nostrum's ratelimiting: pre 0.8 , nostrum used to use a GenServer that would call out to ETS tables to look up ratelimiting buckets for requests. If it needed to sleep before issuing a request due to the bucket being exhausted, it would do so in the server process and block other callers. In nostrum 0.8, the existing ratelimiter bucket storage architecture was refactored to be based around the pluggable caching functionality , and buckets with no remaining calls were adjusted to be slept out on the client-side by having the GenServer respond to the client with {:error, {:retry_after, millis}} and the client trying again and again to schedule its requests. This allowed users to distribute their ratelimit buckets around however they wish, out of the box, nostrum shipped with an ETS and a Mnesia-based ratelimit bucket store. Problems we solved The approach above still came with a few problems: Requests were still being done synchronously in the ratelimiter, and it was blocked from anything else whilst running the requests, even though we are theoretically free to start requests for other buckets while one is still running. The ratelimiter itself was half working on its own, but half required the external storage mechanisms, which made the code hard to follow and required regular automatic pruning because the store had no idea when a bucket was no longer relevant on its own. Requests would not be pipelined to run as soon as ideally possible. The ratelimiter did not inform clients if their request died in-flight. If the client disconnected before we returned the response, we had to handle this explicitly via handle_info . The new state machine-based ratelimiter solves these problems.","ref":"Nostrum.Api.Ratelimiter.html"},{"type":"function","title":"Nostrum.Api.Ratelimiter.callback_mode/0","doc":"Callback implementation for :gen_statem.callback_mode/0 .","ref":"Nostrum.Api.Ratelimiter.html#callback_mode/0"},{"type":"function","title":"Nostrum.Api.Ratelimiter.child_spec/1","doc":"","ref":"Nostrum.Api.Ratelimiter.html#child_spec/1"},{"type":"function","title":"Nostrum.Api.Ratelimiter.code_change/4","doc":"Callback implementation for :gen_statem.code_change/4 .","ref":"Nostrum.Api.Ratelimiter.html#code_change/4"},{"type":"function","title":"Nostrum.Api.Ratelimiter.connected/3","doc":"","ref":"Nostrum.Api.Ratelimiter.html#connected/3"},{"type":"function","title":"Nostrum.Api.Ratelimiter.connecting/3","doc":"","ref":"Nostrum.Api.Ratelimiter.html#connecting/3"},{"type":"function","title":"Nostrum.Api.Ratelimiter.disconnected/3","doc":"","ref":"Nostrum.Api.Ratelimiter.html#disconnected/3"},{"type":"function","title":"Nostrum.Api.Ratelimiter.get_endpoint/2","doc":"Retrieves a proper ratelimit endpoint from a given route and url.","ref":"Nostrum.Api.Ratelimiter.html#get_endpoint/2"},{"type":"function","title":"Nostrum.Api.Ratelimiter.global_limit/3","doc":"","ref":"Nostrum.Api.Ratelimiter.html#global_limit/3"},{"type":"function","title":"Nostrum.Api.Ratelimiter.init/1","doc":"Callback implementation for :gen_statem.init/1 .","ref":"Nostrum.Api.Ratelimiter.html#init/1"},{"type":"function","title":"Nostrum.Api.Ratelimiter.queue/1","doc":"Queue the given request and wait for the response synchronously. Ratelimits on the endpoint are handled by the ratelimiter. Global ratelimits will cause this to return an error.","ref":"Nostrum.Api.Ratelimiter.html#queue/1"},{"type":"function","title":"Nostrum.Api.Ratelimiter.start_link/1","doc":"Starts the ratelimiter.","ref":"Nostrum.Api.Ratelimiter.html#start_link/1"},{"type":"type","title":"Nostrum.Api.Ratelimiter.bucket/0","doc":"A bucket for endpoints unter the same ratelimit.","ref":"Nostrum.Api.Ratelimiter.html#t:bucket/0"},{"type":"type","title":"Nostrum.Api.Ratelimiter.queued_request/0","doc":"A bucket-specific request waiting to be queued, alongside its client.","ref":"Nostrum.Api.Ratelimiter.html#t:queued_request/0"},{"type":"type","title":"Nostrum.Api.Ratelimiter.remaining/0","doc":"Remaining calls on a route, as provided by the API response. The ratelimiter internally counts the remaining calls per route to dispatch new requests as soon as it's capable of doing so, but this is only possible if the API already provided us with ratelimit information for an endpoint. Therefore, if the initial call on an endpoint is made, the special :initial value is specified. This is used by the limit parsing function to set the remaining calls if and only if it is the response for the initial call - otherwise, the value won't represent the truth anymore.","ref":"Nostrum.Api.Ratelimiter.html#t:remaining/0"},{"type":"type","title":"Nostrum.Api.Ratelimiter.request/0","doc":"A request to make in the ratelimiter.","ref":"Nostrum.Api.Ratelimiter.html#t:request/0"},{"type":"type","title":"Nostrum.Api.Ratelimiter.state/0","doc":"The state of the ratelimiter. While this has no public use, it is still documented here to provide help when tracing the ratelimiter via :sys.trace/2 or other means. Fields :outstanding : Outstanding (unqueued) requests per bucket alongside with the remaining calls that may be made on said bucket. :running : Requests that have been sent off. Used to associate back the client with a request when the response comes in. :inflight : Requests for which we have started getting a response, but we have not fully received it yet. For responses that have a body, this will buffer their body until we can send it back to the client. :conn : The :gun connection backing the server. Used for making new requests, and updated as the state changes. :remaining_in_window : How many calls we may still make to the API during this time window. Reset automatically via timeouts.","ref":"Nostrum.Api.Ratelimiter.html#t:state/0"},{"type":"module","title":"Nostrum.Shard.Session","doc":"Manages a single shard's gateway connection. Purpose Discord's gateway sends us events over websocket. The shard session state machine concerns it self with parsing these events and dispatching them to clients as appropriate. Internal module This module is intended for exclusive usage inside of nostrum, and is documented for completeness and people curious to look behind the covers. Inner workings The session is implemented via :gen_statem and can be in one of the following states: disconnected : when no connection is up at all. On initial connection of the session (e.g. no seq field is available), this will block if we need to wait a moment to respect the session startup concurrency limits. Afterwards, it will transition to connecting_http . connecting_http : We are setting up a HTTP connection to the API. This means that no connection was available previously at all, and we need to open it from scratch. Used for gateway-initiated reconnect requests ("Cloudflare Websocket proxy restarting") and on :gun_down notifications for the connection in connected state. Once :gun notifies us that the connection is up, we transition to the connecting_ws state. connecting_ws : We are turning the HTTP connection into a WebSocket connection. If this succeeds, we head into the connected state. connected : The WebSocket connection is up. This state actively deals with new data from the gateway, and takes care of heartbeating. If Discord fails to respond to our heartbeats, we close down the full connection and attempt to re-establish and resume events.","ref":"Nostrum.Shard.Session.html"},{"type":"function","title":"Nostrum.Shard.Session.callback_mode/0","doc":"Callback implementation for :gen_statem.callback_mode/0 .","ref":"Nostrum.Shard.Session.html#callback_mode/0"},{"type":"function","title":"Nostrum.Shard.Session.child_spec/1","doc":"","ref":"Nostrum.Shard.Session.html#child_spec/1"},{"type":"function","title":"Nostrum.Shard.Session.connected/3","doc":"","ref":"Nostrum.Shard.Session.html#connected/3"},{"type":"function","title":"Nostrum.Shard.Session.connecting_http/3","doc":"","ref":"Nostrum.Shard.Session.html#connecting_http/3"},{"type":"function","title":"Nostrum.Shard.Session.connecting_ws/3","doc":"","ref":"Nostrum.Shard.Session.html#connecting_ws/3"},{"type":"function","title":"Nostrum.Shard.Session.disconnected/3","doc":"","ref":"Nostrum.Shard.Session.html#disconnected/3"},{"type":"function","title":"Nostrum.Shard.Session.get_ws_state/1","doc":"","ref":"Nostrum.Shard.Session.html#get_ws_state/1"},{"type":"function","title":"Nostrum.Shard.Session.init/1","doc":"Callback implementation for :gen_statem.init/1 .","ref":"Nostrum.Shard.Session.html#init/1"},{"type":"function","title":"Nostrum.Shard.Session.request_guild_members/3","doc":"","ref":"Nostrum.Shard.Session.html#request_guild_members/3"},{"type":"function","title":"Nostrum.Shard.Session.start_link/2","doc":"","ref":"Nostrum.Shard.Session.html#start_link/2"},{"type":"function","title":"Nostrum.Shard.Session.update_status/5","doc":"","ref":"Nostrum.Shard.Session.html#update_status/5"},{"type":"function","title":"Nostrum.Shard.Session.update_voice_state/5","doc":"","ref":"Nostrum.Shard.Session.html#update_voice_state/5"},{"type":"module","title":"Nostrum.Shard.Supervisor","doc":"Supervises shard processes. Implementation As events are sent to the shard, the following happens: Shard looks to see what type of event it is, only dispatch events are sent to the producer. If the event is a Dispatch , the payload is converted to an atom-keyed map. This is done because over ETF (which Nostrum uses), map keys are sometimes binaries and sometimes strings, making it a real headache. Additionally, with atom keys, we can use the Map.key notation. This is normally considered unsafe but a debug messages will be emitted if a key is unsafely converted to an atom. In this way we can ensure that our atom table is not growing unbounded. The payload is then written to the cache. To make sure we're not overrunning the cache, especially at startup with request_guild_members or other heavy payloads, this is done in the shard itself. The cache updates itself from the new data. In some cases, such as update or delete events, it may send out a second "old" object as well, that helps the library user to determine what changed. After writing to the cache, the shard send s out the event after going through the cache to all subscribed processes. In general, the payload will often match the payload described by the official Discord API documentation. The shard instructs the websocket client that it's ready to read more data. This prevents flooding the shard with messages that it may not be able to handle yet, thus growing the message queue and the memory usage.","ref":"Nostrum.Shard.Supervisor.html"},{"type":"function","title":"Nostrum.Shard.Supervisor.child_spec/1","doc":"Returns a specification to start this module under a supervisor. See Supervisor .","ref":"Nostrum.Shard.Supervisor.html#child_spec/1"},{"type":"function","title":"Nostrum.Shard.Supervisor.start_link/1","doc":"","ref":"Nostrum.Shard.Supervisor.html#start_link/1"},{"type":"function","title":"Nostrum.Shard.Supervisor.update_status/4","doc":"","ref":"Nostrum.Shard.Supervisor.html#update_status/4"},{"type":"function","title":"Nostrum.Shard.Supervisor.update_voice_state/4","doc":"","ref":"Nostrum.Shard.Supervisor.html#update_voice_state/4"},{"type":"module","title":"Nostrum.StateMachineTranslator","doc":"Translate error reports for :gen_statem modules in Elixir. Internal module This module is intended for exclusive usage inside of nostrum, and is documented for completeness and people curious to look behind the covers. Reasoning By default, Elixir will ignore these messages altogether, see this ElixirForum post . A possible workaround seems to be using the gen_state_machine library, but pulling in a library purely to have error reporting for something built-in to OTP seems pretty strange to me.","ref":"Nostrum.StateMachineTranslator.html"},{"type":"function","title":"Nostrum.StateMachineTranslator.translate/4","doc":"","ref":"Nostrum.StateMachineTranslator.html#translate/4"},{"type":"exception","title":"Nostrum.Error.ApiError","doc":"Represents a failed response from the API. This occurs when :gun fails, or when the API doesn't respond with 200 or 204 . This should only be raised explicitly when using the banged API methods.","ref":"Nostrum.Error.ApiError.html"},{"type":"type","title":"Nostrum.Error.ApiError.detailed_error/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:detailed_error/0"},{"type":"type","title":"Nostrum.Error.ApiError.discord_status_code/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:discord_status_code/0"},{"type":"type","title":"Nostrum.Error.ApiError.error/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:error/0"},{"type":"type","title":"Nostrum.Error.ApiError.error_list_map/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:error_list_map/0"},{"type":"type","title":"Nostrum.Error.ApiError.errors/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:errors/0"},{"type":"type","title":"Nostrum.Error.ApiError.response/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:response/0"},{"type":"type","title":"Nostrum.Error.ApiError.status_code/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:status_code/0"},{"type":"type","title":"Nostrum.Error.ApiError.t/0","doc":"","ref":"Nostrum.Error.ApiError.html#t:t/0"},{"type":"exception","title":"Nostrum.Error.CacheError","doc":"Represents an error when interacting with the cache. This likely occurs because a specified item could not be found in the cache, or your were searching for something invalid. This should only occur when using the banged cache methods.","ref":"Nostrum.Error.CacheError.html"},{"type":"exception","title":"Nostrum.Error.VoiceError","doc":"Represents an error when playing sound through voice channels. This occurs when attempting to play audio and the file can't be found for the ffmpeg, youtube-dl, or streamlink executables.","ref":"Nostrum.Error.VoiceError.html"},{"type":"extras","title":"Introduction","doc":"nostrum is an Elixir library that can be used to interact with Discord. To see documentation about a specific part of the library, please visit one of the following: API - Methods to interact with the RESTful API (and some other goodies). State - Caches that keep information from Discord fresh at your disposal. Events - Handling events from Discord as they come in. Voice - Playing audio through Discord voice channels.","ref":"intro.html"},{"type":"extras","title":"Introduction - Setup","doc":"There are two versions of nostrum, a stable version released on Hex and a dev version on GitHub. The dev version will be more up to date but will likely have more errors. def deps do [ { :nostrum , "~> 0.8" } ] # Or, for bleeding edge changes: # [{:nostrum, github: "Kraigie/nostrum"}] end Next up, you need to configure nostrum. The most basic configuration is simply setting a token to log in with: config :nostrum , token : "666" # The token of your bot as a string","ref":"intro.html#setup"},{"type":"extras","title":"Introduction - Configuration options","doc":"Apart from the token field mentioned above, the following fields are also supported: num_shards - the amount of shards to run. Can be one of the following: :auto : use the suggested amount of shards as provided by Discord. num : a number of shards to run. nostrum will warn if this is not the recommended amount. {lowest, highest, total} : start shards lowest to highest . total should contain the total amount of shards that your bot is expected to have. Useful for splitting a single bot across multiple servers, but see also the multi-node documentation . gateway_intents - a list of atoms representing gateway intents for Nostrum to subscribe to from the Discord API. More information can be found in the gateway intents documentation page. request_guild_members - perform member chunking to retrieve a complete list of members for all guilds at startup. Depending on your cache backend , this may increase startup time and memory usage by quite a bit. Defaults to false . Voice-specific ffmpeg - Specifies the path to the ffmpeg executable for playing audio. Defaults to "ffmpeg" . youtubedl - Specifies the path to the youtube-dl executable for playing audio with youtube-dl support. Defaults to "youtube-dl" . streamlink - Specifies the path to the streamlink executable for playing livestream audio with streamlink support. Defaults to "streamlink" . audio_timeout - Milliseconds that input must begin generating audio by upon invoking play . More information about this option can be found in the voice documentation page. Defaults to 20_000 (20s). audio_frames_per_burst - Number of opus frames to send at a time while playing audio. More information about this option can be found in the voice documentation page. Defaults to 10 . voice_auto_connect - This will determine if Nostrum automatically connects to voice websockets gateways upon joining voice channels. If set to false but you still wish to connect to the voice gateway, you can do so manually by calling Nostrum.Voice.connect_to_gateway/1 after joining a voice channel. Defaults to true . Development & debugging log_full_events - This will log the full payload received over the websocket. Defaults to false . log_dispatch_events - This will log dispatch events as they are received from the gateway. Defaults to false . fullsweep_after_default - Sets the fullsweep_after flag for processes that can have irregularly high memory usage due to Discord payloads. This options will dramatically reduce the amount of memory used by some processes at the cost of increased CPU usage. This is useful if you're running your application under a memory constrained environment. This comes at the cost of increased CPU usage. By default, this option will only affect some processes. You can set this flag for all processes using environment variables or by setting the system flag yourself . Defaults to whatever your system recommends, which is probably 65535 . Internal options The following options are only used for testing nostrum itself. dev - This is added to enable Nostrum to be run completely stand alone for development purposes. true will cause Nostrum to spawn its own event consumers. If you have the dev flag set to true while running Nostrum alongside your application some of your events will be consumed. Defaults to false .","ref":"intro.html#configuration-options"},{"type":"extras","title":"Introduction - Logging","doc":"nostrum uses Elixir's standard logger to inform you about regular and irregular events. Normal messages include Discord-requested shard reconnections and the IDENTIFY and READY events. The following metadata fields through logger: shard - Id of the shard on which the event occurred guild - Name of the guild on which the voice connection event occurred channel - Name of the channel on which the voice connection event occurred To enable this metadata, logger can be configured as such: config :logger , :console , metadata : [ :shard , :guild , :channel ] For more information on how this works, and how to change the logging configuration for nostrum on its own, please see the Logger documentation Why Elixir? From the Elixir website - Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain. How does Nostrum leverage these benefits? Fault tolerance : nostrum attempts, where reasonable, to allow for different parts of the application to fail with minimal harm. Supervisors are used heavily to ensure that anything that breaks will be restarted. Nostrum attempts to avoid most errors, but if they do occur ( and they will! ) it shouldn't be the end of the world. Concurrency - Concurrency is considered to be a first class citizen in Elixir. Through the use of SMP and processes, information should travel through the application quickly. Distributed : nostrum does not currently support full distribution of all components out of the box - that would fall out of the scope of the library. However, see the multi-node document for provided functionality.","ref":"intro.html#logging"},{"type":"extras","title":"Introduction - Example bots","doc":"A simple bot that consumes events from the gateway can be found at examples/event_consumer.ex . A more complex and active bot, bolt, can be found here . An example bot that plays audio through voice channels can be found at examples/audio_player_example.ex .","ref":"intro.html#example-bots"},{"type":"extras","title":"API","doc":"nostrum includes a complete implementation of the endpoints supported by Discord's API. Method names are copied closely from the documentation to eliminate any confusion about what a method does, as well as to allow users to easily lookup the endpoints in the official API documentation. For a full listing of method definitions, please see the Nostrum.Api module.","ref":"api.html"},{"type":"extras","title":"API - Banged (!) API methods","doc":"A lot of methods have a banged version of themselves. This is a common Elixir idiom hailing from Elixir's style of failing fast. By default, the API method will return a tuple like one of the following: # Success { :ok , msg } = Nostrum.Api . create_message ( 179679229036724225 , "456" ) # Failure { :error , reason } = Nostrum.Api . create_message ( 123 , "eat my shorts api" ) A banged method, instead of returning an error tuple, will throw an error. If successful, it will directly return the response with no :ok tuple. # Success msg = Nostrum.Api . create_message! ( 179679229036724225 , "456" ) # Failure - Throws an error Nostrum.Api . create_message! ( 123 , "eat my shorts api" )","ref":"api.html#banged-api-methods"},{"type":"extras","title":"API - Abstractions","doc":"When appropriate, some helpers are defined to make interacting with the API simpler. An example of this is Nostrum.Api.get_channel_messages/3 . By default this endpoint only allows the retrieval of 100 messages at a time. A general use case will have a user wanting more messages than that, thus nostrum handles the retrieval of any number of messages for the user. There are other endpoints that could use grooming like above, feel free to suggest an interface and implementation for these methods.","ref":"api.html#abstractions"},{"type":"extras","title":"API - Ratelimiting","doc":"Ratelimiting is handled internally by nostrum, so long as you use the methods supplied in the Nostrum.Api module. This means either calling the methods as they're given or using Nostrum.Api.request/4 to call an endpoint. To ensure that every request is handled properly, no matter if they're called asynchronously or not, nostrum funnels all requests through the Nostrum.Api.Ratelimiter state machine.","ref":"api.html#ratelimiting"},{"type":"extras","title":"API - REST-only","doc":"If you only want to use the REST portion of the provided API, the only process needed is the ratelimiter, which can be manually started by calling Nostrum.Api.Ratelimiter.start_link/1 . If you don't want to start nostrum, you can add runtime: false to the dependency options. If you're using mix release , all runtime: false deps will be excluded from the build, so you'll also need to add :nostrum app to mix.exs in :included_applications application option or in the releases project option.","ref":"api.html#rest-only"},{"type":"extras","title":"Application commands","doc":"Discord allows you to create commands for your bot that work within the slash command menu or via the context menu. Using nostrum, you can create, receive, and respond to application commands invoked by Discord users.","ref":"application_commands.html"},{"type":"extras","title":"Application commands - Permissions required","doc":"Quoting the official Discord documentation : In order to make Commands work within a guild, the guild must authorize your application with the applications.commands scope. The bot scope is not enough.","ref":"application_commands.html#permissions-required"},{"type":"extras","title":"Application commands - Getting started","doc":"Discord differentiates between global and guild-specific slash commands. Global commands will be distributed across all guilds that your bot is in within an hour. Guild-specific commands slash commands will be available instantly, which is why we will use guild-specific commands for testing. We will create a command that will allow the user to assign or remove a role of choice. The guild_id parameter is the ID of the guild on which the command will be created. Our command definition looks as follows: command = %{ name : "role" , description : "assign or remove a role" , options : [ %{ # ApplicationCommandType::ROLE type : 8 , name : "name" , description : "role to assign or remove" , required : true } , %{ # ApplicationCommandType::STRING type : 3 , name : "action" , description : "whether to assign or remove the role" , required : true , choices : [ %{ name : "assign" , value : "assign" } , %{ name : "remove" , value : "remove" } ] } ] } To register this command on the guild, we simply pass it to Nostrum.Api.create_guild_application_command/2 : Nostrum.Api . create_guild_application_command ( guild_id , command ) You can register the command in the :READY gateway event handler.","ref":"application_commands.html#getting-started"},{"type":"extras","title":"Application commands - Receiving interactions","doc":"Set up a gateway event handler for :INTERACTION_CREATE . On command invocation the interaction payload will look something like the following: % Nostrum.Struct.Interaction { channel_id : 474025345243414539 , data : %{ id : 793152718839087135 , name : "role" , options : [ %{ name : "name" , value : "458692275199803406" } , %{ name : "action" , value : "assign" } ] } , # ... Note that Discord already converted the user-supplied role to a snowflake. Convenient! Let's match on the retrieved event and create two function heads for the separate operation modes: alias Nostrum.Api alias Nostrum.Struct.Interaction defp manage_role ( % Interaction { data : %{ options : [ %{ value : role_id } , %{ value : "assign" } ] } } = interaction ) do Api . add_guild_member_role ( interaction . guild_id , interaction . member . user_id , role_id ) end defp manage_role ( % Interaction { data : %{ options : [ %{ value : role_id } , %{ value : "remove" } ] } } = interaction ) do Api . remove_guild_member_role ( interaction . guild_id , interaction . member . user_id , role_id ) end def handle_event ( { :INTERACTION_CREATE , % Interaction { data : %{ name : "role" } } = interaction , _ws_state } ) do manage_role ( interaction ) end Okay, we now have our handling code done. This is pretty much the same code that you would use for regular commands.","ref":"application_commands.html#receiving-interactions"},{"type":"extras","title":"Application commands - Responding to interactions","doc":"To respond to interactions, use Nostrum.Api.create_interaction_response/2 : defp manage_role ( % Interaction { data : %{ options : [ %{ value : role_id } , %{ value : "assign" } ] } } = interaction ) do Api . add_guild_member_role ( interaction . guild_id , interaction . member . user_id , role_id ) response = %{ type : 4 , # ChannelMessageWithSource data : %{ content : "role assigned" } } Api . create_interaction_response ( interaction , response ) end We have now built a simple command using slash commands, with argument conversion delegated to Discords side of things. Further actions on the command, such as checking permissions, author roles, and more - are left as an exercise to the reader.","ref":"application_commands.html#responding-to-interactions"},{"type":"extras","title":"Gateway Intents","doc":"The Discord API allows you to fine tune the payloads that are received by your bot through gateway intents. When connecting to Discord you can instruct Discord on which events you want to receive (i.e. messages, user presences, etc.). Nostrum allows you to set these intents within your configuration, by default all non-privileged intents are enabled . To pass intents you should use the following configuration: config :nostrum , token : "bot_token" , gateway_intents : [ :guilds , # other gateway intents ] Possible intents (and the gateway events they correspond to) are: guilds : - GUILD_CREATE - GUILD_UPDATE - GUILD_DELETE - GUILD_ROLE_CREATE - GUILD_ROLE_UPDATE - GUILD_ROLE_DELETE - CHANNEL_CREATE - CHANNEL_UPDATE - CHANNEL_DELETE - CHANNEL_PINS_UPDATE guild_members * : - GUILD_MEMBER_ADD - GUILD_MEMBER_UPDATE - GUILD_MEMBER_REMOVE guild_moderation : - GUILD_AUDIT_LOG_ENTRY_CREATE - GUILD_BAN_ADD - GUILD_BAN_REMOVE guild_emojis : - GUILD_EMOJIS_UPDATE guild_integrations : - GUILD_INTEGRATIONS_UPDATE guild_webhooks : - WEBHOOKS_UPDATE guild_invites : - INVITE_CREATE - INVITE_DELETE guild_voice_states : - VOICE_STATE_UPDATE guild_presences * : - PRESENCE_UPDATE guild_messages : - MESSAGE_CREATE - MESSAGE_UPDATE - MESSAGE_DELETE - MESSAGE_DELETE_BULK guild_message_reactions : - MESSAGE_REACTION_ADD - MESSAGE_REACTION_REMOVE - MESSAGE_REACTION_REMOVE_ALL - MESSAGE_REACTION_REMOVE_EMOJI guild_message_typing : - TYPING_START direct_messages : - MESSAGE_CREATE - MESSAGE_UPDATE - MESSAGE_DELETE - CHANNEL_PINS_UPDATE direct_message_reactions : - MESSAGE_REACTION_ADD - MESSAGE_REACTION_REMOVE - MESSAGE_REACTION_REMOVE_ALL - MESSAGE_REACTION_REMOVE_EMOJI direct_message_typing : - TYPING_START message_content * : - MESSAGE_CONTENT guild_scheduled_events : - GUILD_SCHEDULED_EVENT_CREATE - GUILD_SCHEDULED_EVENT_UPDATE - GUILD_SCHEDULED_EVENT_DELETE - GUILD_SCHEDULED_EVENT_USER_ADD - GUILD_SCHEDULED_EVENT_USER_REMOVE auto_moderation_configuration : - AUTO_MODERATION_RULE_CREATE - AUTO_MODERATION_RULE_DELETE - AUTO_MODERATION_RULE_UPDATE auto_moderation_execution : - AUTO_MODERATION_RULE_EXECUTION guild_message_polls : - MESSAGE_POLL_VOTE_ADD - MESSAGE_POLL_VOTE_REMOVE direct_message_polls : - MESSAGE_POLL_VOTE_ADD - MESSAGE_POLL_VOTE_REMOVE Besides an explicit list of atoms, acceptable configuration values are :all and :nonprivileged . Note that intents marked with * are privileged intents. You must enable these intents by visiting the Discord Developer portal. Once your bot passes 100 servers Discord will force you to verify your bot . If you require privileged intents you may need to write additional information on your usage of them. Nostrum's default value for gateway_intents is :nonprivileged , which enables all non-privileged intents. This is equivalent to setting gateway_intents to the above list without the privileged intents. If you require all intents, including privileged ones, set gateway_intents to :all . More information on gateway intents can be found in the Discord Developer documentation .","ref":"gateway_intents.html"},{"type":"extras","title":"State","doc":"Nostrum keeps track of the state that your bot can see, which is updated based on events from the WS connection. We differentiate between caches , which are optional and are used to provide your bot with fresh data, and state , which is mandatory state that we must track internally.","ref":"state.html"},{"type":"extras","title":"State - Caches","doc":"Caching will by default use Erlang's ETS tables. Abstractions are provided for common operations. If you feel the caches are missing some abstraction, feel free to suggest it on GitHub . Should the default ETS-based caching not be enough for you - for instance, you want to integrate to some external caching mechanism or want to distribute your bot across multiple nodes, please see the pluggable caching documentation.","ref":"state.html#caches"},{"type":"extras","title":"State - Query list comprehensions","doc":"nostrum's built-in functions to query the cache should be sufficient to cover common use cases. If you need more involved queries, it is recommended to use nostrum's qlc support. As an example, Nosedrum has a function to find a guild member by username and discriminator. This is internally implemented with the following query: find_by ( RequestedGuildId , Name , Discriminator , MemberCache , UserCache ) -> qlc : q ( [ Member || { { GuildId , MemberId } , Member } <- MemberCache : query_handle ( ) , GuildId =:= RequestedGuildId , { UserId , User } <- UserCache : query_handle ( ) , MemberId =:= UserId , map_get ( username , User ) =:= Name , map_get ( discriminator , User ) =:= Discriminator ] ) . By implementing a QLC table , all read operations from nostrum will be performed over your QLC table implementation alone, and nostrum's dispatcher modules can easily be expanded for more queries in the future. If you've never heard of QLC before, the beam-lazy repository contains a good introduction. Using QLC bring a plethora of benefits. Implementation of a QLC table is relatively simple, and gives us compile-time query optimization and compilation in native Erlang list comprehension syntax. Furthermore, should you wish to perform queries on your caches beyond what nostrum offers out of the box, you can write your queries using the query_handle/0 functions on our caches, without having to investigate their exact API. There is one caveat to be aware of when writing cache adapters in Elixir that build on this functionality: While Erlang's QLC can perform intelligent query optimization, a lot of it is implemented via a parse transform and thus only available at compile time in Erlang modules. It is therefore recommended to write your QLC queries in Erlang modules: in Mix projects this can be achieved easily via the src/ directory. Read the QLC module documentation for more details on the optimizations done. The reason why QLC is being used as opposed to the Elixir-traditional stream API is that the stream API does not support a number of features we are using here. Apart from that, nostrum's previous API ( select and friends) gave users a false impression that nostrum was doing an efficient iteration under the hood, which caused issues for large bots.","ref":"state.html#query-list-comprehensions"},{"type":"extras","title":"State - Internal state","doc":"In addition to the optional caching, nostrum also needs to keep track of internal state so it functions properly. State follows the same pattern as the pluggable caching functionality described above, but disabling state storage via NoOp as with caching is not possible. The modules under Nostrum.Store are used for this functionality.","ref":"state.html#internal-state"},{"type":"extras","title":"Event handling","doc":"Event handling is how your bot application will interact with the information sent from Discord over a websocket connection. By defining an event handler for an event, when something like a message is created or a channel is deleted, your application can perform an action as a result of that event. Nostrum uses Erlang's :pg module to determine which consumers are interested in events, via Nostrum.ConsumerGroup . This allows dynamic subscriptions at runtime, even across nodes. Events are dispatched to group members as they appear fromthe Discord Gateway after ingestion into the cache. To see the documentation on handling events of provided consumers, please see Nostrum.Consumer .","ref":"event_handling.html"},{"type":"extras","title":"Voice","doc":"","ref":"voice.html"},{"type":"extras","title":"Voice - Voice channels","doc":"Discord voice channels allow audio data to be sent to the voice servers over UDP. A bot is able to connect to up to one voice channel per guild. One websocket connection will be opened and maintained for each voice channel the bot joins. The websocket connection should reconnect automatically the same way that the main Discord gateway websocket connections do. For available voice functions and usage see the Nostrum.Voice module.","ref":"voice.html#voice-channels"},{"type":"extras","title":"Voice - FFmpeg","doc":"Nostrum uses the powerful ffmpeg command line utility to encode any audio (or video) file for sending to Discord's voice servers. By default Nostrum will look for the executable ffmpeg in the system path. If the executable is elsewhere, the path may be configured via config :nostrum, :ffmpeg, "/path/to/ffmpeg" . The function Nostrum.Voice.play/4 allows sound to played via files, local or remote, or via raw data that gets piped to stdin of the ffmpeg process. When playing from a url, the url can be a name of a file on the filesystem or a url of file on a remote server - ffmpeg supports a ton of protocols , the most common of which are probably http or simply reading a file from the filesystem. It is also possible to send raw opus frames, bypassing ffmpeg, if desired.","ref":"voice.html#ffmpeg"},{"type":"extras","title":"Voice - youtube-dl","doc":"With only ffmpeg installed, Nostrum supports playing audio/video files or raw, piped data as discussed in the section above. Nostrum also has support for youtube-dl , another powerful command line utility for downloading audio/video from online video services. Although the name implies support for Youtube, youtube-dl supports downloading from an immense list of sites . By default Nostrum will look for the executable youtube-dl in the system path. If the executable is elsewhere, the path may be configured via config :nostrum, :youtubedl, "/path/to/youtube-dl" . When Nostrum.Voice.play/4 is called with :ytdl for the type parameter, youtube-dl will be run with options -f bestaudio -q -o - , which will attempt to download the audio at the given url and pipe it to ffmpeg .","ref":"voice.html#youtube-dl"},{"type":"extras","title":"Voice - streamlink","doc":"Nostrum also has support for streamlink , yet another powerful command line utility for downloading live streams from online video streaming services. By default Nostrum will look for the executable streamlink in the system path. If the executable is elsewhere, the path may be configured via config :nostrum, :streamlink, "/path/to/streamlink" . When Nostrum.Voice.play/4 is called with :stream for the type parameter, streamlink will attempt to download the live stream content and pipe it to ffmpeg . It's recommended to use the most up-to-date version of streamlink to properly play human-readable URLs from services such as Youtube and Twitch. Version 3.x.x currently works with both of these services. If the short, human-readable url of the streaming service doesn't work with streamlink out of the box, you may have more luck extracting the underlying raw stream url. These are typically long URLs that end in .m3u8 or .hls . If you have youtube-dl installed, you can attempt to get this URL by running the following: { raw_url , 0 } = System . cmd ( "youtube-dl" , [ "-f" , "best" , "-g" , url ] ) raw_url = raw_url |> String . trim ( )","ref":"voice.html#streamlink"},{"type":"extras","title":"Voice - Audio Timeout","doc":"Upon invoking Nostrum.Voice.play/4 , the player process has a large configurable initial window ( 20_000 milliseconds by default) that it must generate audio within before timing out. This is done to allow ample time for slow networks to download large audio/video files. This configurable timeout only applies to when play is initially invoked; once audio has begun transmitting, the timeout drops to 500 milliseconds. Because the ffmpeg process doesn't close when its input device is stdin , which is the case when type is set to :pipe , :ytdl , or :stream the timeout is necessary to promptly detect end of input. If the audio process times out within the initial window, the Nostrum.Struct.Event.SpeakingUpdate that is generated will have its timed_out field set to true . It will be false in all other cases. If your use case does not include large, slow downloads and you wish to more quickly be notified of timeouts or errors, you may consider setting audio_timeout to a lower value. However, youtube-dl typically takes at least 2.5 seconds to begin outputting audio data, even on a fast connection. If your use case involves playing large files at a timestamp several hours in like this, play(guild_id, url, :ytdl, start_time: "2:37:56") , you may consider setting the timeout to a higher value, as downloading a large youtube video and having ffmpeg seek through several hours of audio may take 15-20 seconds, even with a fast network connection.","ref":"voice.html#audio-timeout"},{"type":"extras","title":"Voice - Audio Frames Per Burst","doc":"The value :audio_frames_per_burst represents the number of consecutive packets to send before resting. When using Nostrum.Voice.play/4 to play audio, Nostrum collects a number of opus frames from the audio input source before sending them all to Discord as a "burst" of ordered frames. This is done to reduce the overhead of process-sleeping and setup. For reference, a single opus frame is 20 milliseconds of audio (at least for the format that Discord uses). By default, the :audio_frames_per_burst is set to 10 , equivalent to 200 milliseconds of audio. Under normal circumstances, there's no reason to change this value. However, if you attempt to play a very short piece of audio that's less than 10 frames (200ms) in length, it will time out (after the configured :audio_timeout duration has passed) as it waits to collect 10 frames to send. For those cases, configure the value to at most the minimum frame length of the audio you intend to play, or simply 1 . Setting the value to 1 means that each opus frame from your audio source will be taken individually and be sent in its own "burst" with the player process sleeping between each; you likely won't notice a difference in audio playback quality compared to the default value of 10 other than that your sub-200ms audio files will play as expected.","ref":"voice.html#audio-frames-per-burst"},{"type":"extras","title":"Voice - Voice Events","doc":"There are a few voice related events that bots can consume with a Nostrum.Consumer process: Nostrum.Consumer.voice_state_update/0 Nostrum.Consumer.voice_server_update/0 Nostrum.Consumer.voice_speaking_update/0 Nostrum.Consumer.voice_ready/0 Nostrum.Consumer.voice_incoming_packet/0 Both Nostrum.Consumer.voice_state_update/0 and Nostrum.Consumer.voice_server_update/0 are sent by the shard gateway session when a bot joins a voice channel. The receipt of both of these events is required for a voice gateway session to begin, and it happens automatically when joining a channel. The Nostrum.Consumer.voice_state_update/0 event is also sent every time any user joins or leaves a voice channel, and Nostrum.Struct.Guild.voice_states/0 is automatically updated within the guild cache to reflect current state of voice channels. A use case for listening to both Nostrum.Consumer.voice_state_update/0 and Nostrum.Consumer.voice_server_update/0 events would be to outsource voice connections to an application outside of Nostrum. This can be done by setting the config option :voice_auto_connect to false and taking the session and token information from both of the events and passing them to your external voice app. Outside of this niche use case, another use case for listening solely to the Nostrum.Consumer.voice_state_update/0 event would be to detect when users join or leave voice channels. The Nostrum.Consumer.voice_speaking_update/0 event is generated by Nostrum for convenience. It is sent every time the bot starts or stops speaking/sending audio. A use case for this event is if you have a queue of URLs to play, listening to the Nostrum.Consumer.voice_speaking_update/0 will let the bot know when the current URL has finished playing and that it should begin playing the next one in the queue. The alternative approach for this use case that is not event-driven is to periodically call Nostrum.Voice.playing?/1 and wait for it to return false as the trigger to play the next URL. Note that the third element in the event is of type Nostrum.Struct.VoiceWSState.t/0 and not Nostrum.Struct.WSState.t/0 . The Nostrum.Consumer.voice_ready/0 event is generated by Nostrum for convenience. It is sent when the bot is ready to begin sending audio data upon joining a voice channel. From the moment the bot joins a voice channel, Nostrum handles the multi-step handshaking process that is required before any audio packets can be sent or received. It is a common use case for bots to immediately begin playing audio upon joining a voice channel. Calling Nostrum.Voice.play/4 directly after calling Nostrum.Voice.join_channel/4 will always return an error as several network actions must take place before playing audio is possible. Listening for the Nostrum.Consumer.voice_ready/0 event can be used by the bot to begin playing audio as soon as it is able to. The alternative approach for this use case that is not event-driven is to periodically call Nostrum.Voice.ready?/1 and wait for it to return true as the trigger to begin playing. Another common approach is to define a try_play function as follows: def try_play ( guild_id , url , type , opts \\\\ [ ] ) do case Nostrum.Voice . play ( guild_id , url , type , opts ) do { :error , _msg } -> Process . sleep ( 100 ) try_play ( guild_id , url , type , opts ) _ -> :ok end end Note that the third element in the event is of type Nostrum.Struct.VoiceWSState.t/0 and not Nostrum.Struct.WSState.t/0 . The Nostrum.Consumer.voice_incoming_packet/0 event is generated by Nostrum. None will be generated by default. You must first be connected to a voice channel, call the Nostrum.Voice.start_listen_async/1 function, then have another user in the same voice channel speak. If these conditions are met, an event will be received for each RTP packet the bot receives; 50 packets per 1 second for each user that is actively speaking. These events are only useful if you intend to listen to incoming audio and are disabled by default. An alternative approach to listening to incoming audio that is not event driven is to call Nostrum.Voice.listen/3 . This function blocks until the specified number of RTP packets is received. Nostrum.Voice.listen/3 has the additional features of removing duplicate RTP packets within the set of packets returned per invocation and the option to return the raw RTP packet. In practice these features likely won't be missed when consuming incoming voice packets asynchronously. Note that the third element in the event is of type Nostrum.Struct.VoiceWSState.t/0 and not Nostrum.Struct.WSState.t/0 .","ref":"voice.html#voice-events"},{"type":"extras","title":"Pluggable caching","doc":"The default ETS-based caches supplied by nostrum should work for most of your needs, but all of the caches can be exchanged for your own implementations. For this, implement the behaviours exported by the cache modules under Nostrum.Cache . Use the [:nostrum, :caches] configuration for configuring which cache implementation you want to use. This can only be set at dependency compilation time. A common situation is that you don't want to cache presences in your bot, most likely you don't care about user's status, so you can disable it altogether by using the NoOp presence cache: config :nostrum , caches : %{ presences : Nostrum.Cache.PresenceCache.NoOp } In addition to regular caches that associate Discord snowflakes with the proper "full" object, nostrum also maintains junction table-like mappings that allow you to find the matching object from one cache in another. One example for this is Nostrum.Cache.ChannelGuildMapping . Nostrum also ships with Mnesia-based caches. These are only compiled in when mnesia is available : they may not be available on Nerves or when Mnesia was not installed with OTP.","ref":"pluggable_caching.html"},{"type":"extras","title":"Pluggable caching - Implementations","doc":"ETS caching Caching based on :ets is used by default. No configuration is required. Fast, light on memory, but does not support any form of distribution or secondary indexing: queries such as fetching all guild members for a guild by its ID will perform a full table scan. For smaller bots, this is perfectly acceptable. Mnesia caching Mnesia-based caching is mainly suggested for larger bots that require features such as cache distribution, fragmentation, secondary indexing and more. The caches will attempt to create their tables automatically at startup: therefore, Mnesia must be started ahead of nostrum. Caches expose a function table/0 that can be called to retrieve the table name used by the cache and perform schema operations on it, such as adding replicas or fragmenting them. Access to Mnesia is presently done in sync_transaction mode for best consistency. If needed, a compile-time configuration option for the cache to switch this can be added. Mnesia-based caching assumes the user is familar with usage and maintenance of Mnesia: the Mnesia User's Guide is a good starting point. NoOp caching The NoOp cache adapters are supplied for the case where you do not want to cache specific data from Discord at all. These cache adapters presently also don't send out any data they receive either: this means that for caches using the NoOp cache adapters, you won't receive any gateway events.","ref":"pluggable_caching.html#implementations"},{"type":"extras","title":"Pluggable caching - Cache invalidation","doc":"nostrum does not invalidate cache in any special way: it will maintain it in response to gateway events (for instance by deleting a guild and its members upon leaving it), but won't regularly prune caches or associate expiration times with entries. For volatile (RAM-based) caches this is perfectly fine, however, when implementing your own cache backend that persists to disk in some way, you need to take care of this yourself.","ref":"pluggable_caching.html#cache-invalidation"},{"type":"extras","title":"Pluggable caching - Cache performance","doc":"nostrum strives to provide the most performant caches on the Discord bot caching market. If you run into performance issues with caches that you feel are not adequately documented as such, please feel free to open an issue. Benchmarks for caches can be found in the benchmarks/ directory of the source code tree. If you want to get a feeling for how the caches perform or implement optimizations, check them out.","ref":"pluggable_caching.html#cache-performance"},{"type":"extras","title":"Multi-node","doc":"At the moment, you can run nostrum in highly available mode across multiple nodes via OTP's distributed application support, see below. Support for properly distributing nostrum across multiple nodes and using them as one big entity is not supported (yet). As a general rule: if you are running distributed Erlang over the internet, make sure to secure it with a solid VPN and / or by using TLS for Erlang distribution .","ref":"multi_node.html"},{"type":"extras","title":"Multi-node - High availability","doc":"Running using OTP's distributed applications allows us to connect multiple nodes together and have your app and nostrum rescheduled on another node when things go south. Let's see how we can configure it. In this example, we will make use of three nodes, and all of them will be run from your bot's directory. The only difference on their command line is the --sname / --name you specify. We'll use --sname s for testing here, for proper fault tolerance you will want to use multiple hosts with --name . Let's assume we name our nodes joe , robert , and mike . Bundling nostrum with our app We want to colocate nostrum with our app to allow it to move around as our application is moved around. For this, utilize OTP's included applications feature to include nostrum into our supervision tree. You also need to explicitly include nostrum's dependencies to ensure they are started, as the regular nostrum application startup won't handle it for you. This can be done by changing your application definition in mix.exs as follows: def application do [ mod : { MyBot.Application , [ ] } , included_applications : [ :nostrum ] , # You can see this with `mix app.tree nostrum` extra_applications : [ :certifi , :gun , :inets , :jason , :kcl , :mime ] # ... ] end You also need to set runtime: false for :nostrum itself in your dependencies, and any dependencies of your app that depend on :nostrum , such as command frameworks like :nosedrum : defp deps do [ { :nostrum , "~> 0.8" , runtime : false } , # {:nosedrum, "~> 0.6", runtime: false}, ] end You now need to add nostrum to your applications' children to start it as part of your app: def start ( type , args ) do children = [ Nostrum.Application , # ... ] end If you want to run some logic ahead of starting nostrum, you can naturally also put it later into the list. You can start your bot now, and it's going to run. If you look at your bot's application in :observer , you will see that nostrum has now become one with your bot. We call that integration engineering. Now that our app bundles everything it needs with itself, this means starting our app will also starting nostrum, and stopping will also stop nostrum. We need this for step two. Setting up distribution The avid reader will probably know that starting with the same --cookie and --sname / --name is only step one, the nodes need to connect to each other as well. To be able to test this in interactive mode we will configure the settings in Erlang configuration files, for releases you can use your regular config/prod.exs . We will set up the following: Instruct OTP that our app, :mybot is a distributed app, and give it the hosts to run it on. On startup, tell OTP it should wait for the other nodes to become available. With the Erlang configuration files, this can be done as follows: % mybot_joe.config [ { kernel , [ { distributed , [ { mybot , 5000 , [ joe @ HOSTNAME , { mike @ HOSTNAME , robert @ HOSTNAME } ] } ] } , { sync_nodes_mandatory , [ mike @ HOSTNAME , robert @ HOSTNAME ] } , { sync_nodes_timeout , 30000 } ] } ] . % mybot_robert.config [ { kernel , [ { distributed , [ { mybot , 5000 , [ joe @ HOSTNAME , { mike @ HOSTNAME , robert @ HOSTNAME } ] } ] } , { sync_nodes_mandatory , [ joe @ HOSTNAME , mike @ HOSTNAME ] } , { sync_nodes_timeout , 30000 } ] } ] . % mybot_mike.config [ { kernel , [ { distributed , [ { mybot , 5000 , [ joe @ HOSTNAME , { mike @ HOSTNAME , robert @ HOSTNAME } ] } ] } , { sync_nodes_mandatory , [ joe @ HOSTNAME , robert @ HOSTNAME ] } , { sync_nodes_timeout , 30000 } ] } ] . Note the only thing that changes is the sync_node_mandatory setting, which instructs OTP which hosts to wait for on startup. The other settings must match. These options instructs OTP that our app :mybot is distributed and should be started at :joe@HOSTNAME first. If that fails, it moves to :robert@HOSTNAME or :mike@HOSTNAME . For details on the options, please see the kernel reference manual . Playtest In three distinct windows, run the following: iex --sname joe --cookie foo --erl-config myapp_joe.config -S mix iex --sname robert --cookie foo --erl-config myapp_robert.config -S mix iex --sname mike --cookie foo --erl-config myapp_mike.config -S mix If you have some other application that breaks on startup now - like monitoring exporters that bind to specific ports, or similar things - this is when they will blow up. Decide whether you want to run this on every node indeed or include it with your app as shown above. You now have three instances of the VM running. :joe@HOSTNAME runs your bot right now. If you stop that node, one of the other two nodes will start running your app. High availability complete. Being informed about takeover Your application's def start function takes a type argument. In this case, on the node that now runs your application, that type was {:failover, :joe@HOSTNAME} . If you start :joe@HOSTNAME back up, :joe@HOSTNAME is started with {:takeover, source_node} , where source_node is the node that it took over from. Manual takeover If you want to move your app around manually, you can use :application.takeover , for example :application.takeover(:mybot, :permanent) . Final thoughts At present, nostrum can not perform any state synchronization between nodes, it is an effective restart from scratch. For most bots, this type of failover will be sufficient.","ref":"multi_node.html#high-availability"},{"type":"extras","title":"Hot code upgrade","doc":"For the library users whose Discord bot can afford absolutely no downtime due to restarts, nostrum ships with appup files via the castle library. Maintenance The appups are maintained on a best-effort basis. While they are expected to work and be present and documented as such, no guarantee can be made that they will choose the most optimal path to upgrade and downgrade releases. Contributions in this regard are welcome. Usage To make use of nostrum's hot code upgrade support, please follow the instructions to install the castle library in order to configure your release appropriately. Outside of shipping the appup, nostrum does not provide further functionality to facilitate this. nostrum as included application When nostrum is run as an included application as documented in the multi-node support document , nostrum's default appup won't be read on generation of the release upgrade file. Please see the OTP documentation on Changing Included Applications for information on how to deal with upgrades in this case.","ref":"hot_code_upgrade.html"}] \ No newline at end of file diff --git a/dist/sidebar_items-7079D557.js b/dist/sidebar_items-7079D557.js new file mode 100644 index 000000000..cb8f6f9d9 --- /dev/null +++ b/dist/sidebar_items-7079D557.js @@ -0,0 +1 @@ +sidebarNodes={"modules":[{"id":"Nostrum.Api","deprecated":false,"group":"Api","title":"Nostrum.Api","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"allowed_mention/0","deprecated":false,"title":"allowed_mention()","anchor":"t:allowed_mention/0"},{"id":"allowed_mentions/0","deprecated":false,"title":"allowed_mentions()","anchor":"t:allowed_mentions/0"},{"id":"emoji/0","deprecated":false,"title":"emoji()","anchor":"t:emoji/0"},{"id":"error/0","deprecated":false,"title":"error()","anchor":"t:error/0"},{"id":"limit/0","deprecated":false,"title":"limit()","anchor":"t:limit/0"},{"id":"locator/0","deprecated":false,"title":"locator()","anchor":"t:locator/0"},{"id":"matrix/0","deprecated":false,"title":"matrix()","anchor":"t:matrix/0"},{"id":"options/0","deprecated":false,"title":"options()","anchor":"t:options/0"},{"id":"status/0","deprecated":false,"title":"status()","anchor":"t:status/0"},{"id":"thread_with_message_params/0","deprecated":false,"title":"thread_with_message_params()","anchor":"t:thread_with_message_params/0"},{"id":"thread_without_message_params/0","deprecated":false,"title":"thread_without_message_params()","anchor":"t:thread_without_message_params/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"add_guild_member/3","deprecated":false,"title":"add_guild_member(guild_id, user_id, options)","anchor":"add_guild_member/3"},{"id":"add_guild_member!/3","deprecated":false,"title":"add_guild_member!(guild_id, user_id, options)","anchor":"add_guild_member!/3"},{"id":"add_guild_member_role/4","deprecated":false,"title":"add_guild_member_role(guild_id, user_id, role_id, reason \\\\ nil)","anchor":"add_guild_member_role/4"},{"id":"add_pinned_channel_message/2","deprecated":false,"title":"add_pinned_channel_message(channel_id, message_id)","anchor":"add_pinned_channel_message/2"},{"id":"add_pinned_channel_message!/2","deprecated":false,"title":"add_pinned_channel_message!(channel_id, message_id)","anchor":"add_pinned_channel_message!/2"},{"id":"add_thread_member/2","deprecated":false,"title":"add_thread_member(thread_id, user_id)","anchor":"add_thread_member/2"},{"id":"batch_edit_application_command_permissions/3","deprecated":false,"title":"batch_edit_application_command_permissions(application_id \\\\ Me.get().id, guild_id, permissions)","anchor":"batch_edit_application_command_permissions/3"},{"id":"begin_guild_prune/3","deprecated":false,"title":"begin_guild_prune(guild_id, days, reason \\\\ nil)","anchor":"begin_guild_prune/3"},{"id":"begin_guild_prune!/3","deprecated":false,"title":"begin_guild_prune!(guild_id, days, reason)","anchor":"begin_guild_prune!/3"},{"id":"bulk_delete_messages/3","deprecated":false,"title":"bulk_delete_messages(channel_id, messages, filter \\\\ true)","anchor":"bulk_delete_messages/3"},{"id":"bulk_delete_messages!/3","deprecated":false,"title":"bulk_delete_messages!(channel_id, messages, filter \\\\ true)","anchor":"bulk_delete_messages!/3"},{"id":"bulk_overwrite_global_application_commands/2","deprecated":false,"title":"bulk_overwrite_global_application_commands(application_id \\\\ Me.get().id, commands)","anchor":"bulk_overwrite_global_application_commands/2"},{"id":"bulk_overwrite_guild_application_commands/3","deprecated":false,"title":"bulk_overwrite_guild_application_commands(application_id \\\\ Me.get().id, guild_id, commands)","anchor":"bulk_overwrite_guild_application_commands/3"},{"id":"create_channel_invite/3","deprecated":false,"title":"create_channel_invite(channel_id, options \\\\ [], reason \\\\ nil)","anchor":"create_channel_invite/3"},{"id":"create_channel_invite!/3","deprecated":false,"title":"create_channel_invite!(channel_id, options \\\\ [], reason \\\\ nil)","anchor":"create_channel_invite!/3"},{"id":"create_dm/1","deprecated":false,"title":"create_dm(user_id)","anchor":"create_dm/1"},{"id":"create_dm!/1","deprecated":false,"title":"create_dm!(user_id)","anchor":"create_dm!/1"},{"id":"create_followup_message/3","deprecated":false,"title":"create_followup_message(application_id \\\\ Me.get().id, token, webhook_payload)","anchor":"create_followup_message/3"},{"id":"create_followup_message!/3","deprecated":false,"title":"create_followup_message!(application_id \\\\ Me.get().id, token, webhook_payload)","anchor":"create_followup_message!/3"},{"id":"create_global_application_command/2","deprecated":false,"title":"create_global_application_command(application_id \\\\ Me.get().id, command)","anchor":"create_global_application_command/2"},{"id":"create_group_dm/2","deprecated":false,"title":"create_group_dm(access_tokens, nicks)","anchor":"create_group_dm/2"},{"id":"create_group_dm!/2","deprecated":false,"title":"create_group_dm!(access_tokens, nicks)","anchor":"create_group_dm!/2"},{"id":"create_guild_application_command/3","deprecated":false,"title":"create_guild_application_command(application_id \\\\ Me.get().id, guild_id, command)","anchor":"create_guild_application_command/3"},{"id":"create_guild_auto_moderation_rule/2","deprecated":false,"title":"create_guild_auto_moderation_rule(guild_id, options)","anchor":"create_guild_auto_moderation_rule/2"},{"id":"create_guild_ban/4","deprecated":false,"title":"create_guild_ban(guild_id, user_id, days_to_delete, reason \\\\ nil)","anchor":"create_guild_ban/4"},{"id":"create_guild_channel/2","deprecated":false,"title":"create_guild_channel(guild_id, options)","anchor":"create_guild_channel/2"},{"id":"create_guild_channel!/2","deprecated":false,"title":"create_guild_channel!(guild_id, options)","anchor":"create_guild_channel!/2"},{"id":"create_guild_emoji/3","deprecated":false,"title":"create_guild_emoji(guild_id, options, reason \\\\ nil)","anchor":"create_guild_emoji/3"},{"id":"create_guild_emoji!/3","deprecated":false,"title":"create_guild_emoji!(guild_id, params, reason \\\\ nil)","anchor":"create_guild_emoji!/3"},{"id":"create_guild_integrations/2","deprecated":false,"title":"create_guild_integrations(guild_id, options)","anchor":"create_guild_integrations/2"},{"id":"create_guild_role/3","deprecated":false,"title":"create_guild_role(guild_id, options, reason \\\\ nil)","anchor":"create_guild_role/3"},{"id":"create_guild_role!/3","deprecated":false,"title":"create_guild_role!(guild_id, options, reason \\\\ nil)","anchor":"create_guild_role!/3"},{"id":"create_guild_scheduled_event/3","deprecated":false,"title":"create_guild_scheduled_event(guild_id, reason \\\\ nil, options)","anchor":"create_guild_scheduled_event/3"},{"id":"create_interaction_response/2","deprecated":false,"title":"create_interaction_response(interaction, response)","anchor":"create_interaction_response/2"},{"id":"create_interaction_response/3","deprecated":false,"title":"create_interaction_response(id, token, options)","anchor":"create_interaction_response/3"},{"id":"create_interaction_response!/2","deprecated":false,"title":"create_interaction_response!(interaction, response)","anchor":"create_interaction_response!/2"},{"id":"create_interaction_response!/3","deprecated":false,"title":"create_interaction_response!(id, token, response)","anchor":"create_interaction_response!/3"},{"id":"create_message/2","deprecated":false,"title":"create_message(channel_id, options)","anchor":"create_message/2"},{"id":"create_message!/2","deprecated":false,"title":"create_message!(channel_id, options)","anchor":"create_message!/2"},{"id":"create_reaction/3","deprecated":false,"title":"create_reaction(channel_id, message_id, emoji)","anchor":"create_reaction/3"},{"id":"create_reaction!/3","deprecated":false,"title":"create_reaction!(channel_id, message_id, emoji)","anchor":"create_reaction!/3"},{"id":"create_webhook/3","deprecated":false,"title":"create_webhook(channel_id, args, reason \\\\ nil)","anchor":"create_webhook/3"},{"id":"delete_all_reactions/2","deprecated":false,"title":"delete_all_reactions(channel_id, message_id)","anchor":"delete_all_reactions/2"},{"id":"delete_all_reactions!/2","deprecated":false,"title":"delete_all_reactions!(channel_id, message_id)","anchor":"delete_all_reactions!/2"},{"id":"delete_channel/2","deprecated":false,"title":"delete_channel(channel_id, reason \\\\ nil)","anchor":"delete_channel/2"},{"id":"delete_channel!/2","deprecated":false,"title":"delete_channel!(channel_id, reason \\\\ nil)","anchor":"delete_channel!/2"},{"id":"delete_channel_permissions/3","deprecated":false,"title":"delete_channel_permissions(channel_id, overwrite_id, reason \\\\ nil)","anchor":"delete_channel_permissions/3"},{"id":"delete_global_application_command/2","deprecated":false,"title":"delete_global_application_command(application_id \\\\ Me.get().id, command_id)","anchor":"delete_global_application_command/2"},{"id":"delete_guild/1","deprecated":false,"title":"delete_guild(guild_id)","anchor":"delete_guild/1"},{"id":"delete_guild!/1","deprecated":false,"title":"delete_guild!(guild_id)","anchor":"delete_guild!/1"},{"id":"delete_guild_application_command/3","deprecated":false,"title":"delete_guild_application_command(application_id \\\\ Me.get().id, guild_id, command_id)","anchor":"delete_guild_application_command/3"},{"id":"delete_guild_auto_moderation_rule/2","deprecated":false,"title":"delete_guild_auto_moderation_rule(guild_id, rule_id)","anchor":"delete_guild_auto_moderation_rule/2"},{"id":"delete_guild_emoji/3","deprecated":false,"title":"delete_guild_emoji(guild_id, emoji_id, reason \\\\ nil)","anchor":"delete_guild_emoji/3"},{"id":"delete_guild_emoji!/3","deprecated":false,"title":"delete_guild_emoji!(guild_id, emoji_id, reason \\\\ nil)","anchor":"delete_guild_emoji!/3"},{"id":"delete_guild_integrations/2","deprecated":false,"title":"delete_guild_integrations(guild_id, integration_id)","anchor":"delete_guild_integrations/2"},{"id":"delete_guild_role/3","deprecated":false,"title":"delete_guild_role(guild_id, role_id, reason \\\\ nil)","anchor":"delete_guild_role/3"},{"id":"delete_guild_role!/3","deprecated":false,"title":"delete_guild_role!(guild_id, role_id, reason \\\\ nil)","anchor":"delete_guild_role!/3"},{"id":"delete_guild_scheduled_event/2","deprecated":false,"title":"delete_guild_scheduled_event(guild_id, event_id)","anchor":"delete_guild_scheduled_event/2"},{"id":"delete_interaction_followup_message/3","deprecated":false,"title":"delete_interaction_followup_message(application_id \\\\ Me.get().id, token, message_id)","anchor":"delete_interaction_followup_message/3"},{"id":"delete_interaction_followup_message!/3","deprecated":false,"title":"delete_interaction_followup_message!(application_id \\\\ Me.get().id, token, message_id)","anchor":"delete_interaction_followup_message!/3"},{"id":"delete_interaction_response/1","deprecated":false,"title":"delete_interaction_response(interaction)","anchor":"delete_interaction_response/1"},{"id":"delete_interaction_response/2","deprecated":false,"title":"delete_interaction_response(id \\\\ Me.get().id, token)","anchor":"delete_interaction_response/2"},{"id":"delete_interaction_response!/1","deprecated":false,"title":"delete_interaction_response!(interaction)","anchor":"delete_interaction_response!/1"},{"id":"delete_interaction_response!/2","deprecated":false,"title":"delete_interaction_response!(id \\\\ Me.get().id, token)","anchor":"delete_interaction_response!/2"},{"id":"delete_invite/1","deprecated":false,"title":"delete_invite(invite_code)","anchor":"delete_invite/1"},{"id":"delete_invite!/1","deprecated":false,"title":"delete_invite!(invite_code)","anchor":"delete_invite!/1"},{"id":"delete_message/1","deprecated":false,"title":"delete_message(message)","anchor":"delete_message/1"},{"id":"delete_message/2","deprecated":false,"title":"delete_message(channel_id, message_id)","anchor":"delete_message/2"},{"id":"delete_message!/1","deprecated":false,"title":"delete_message!(message)","anchor":"delete_message!/1"},{"id":"delete_message!/2","deprecated":false,"title":"delete_message!(channel_id, message_id)","anchor":"delete_message!/2"},{"id":"delete_own_reaction/3","deprecated":false,"title":"delete_own_reaction(channel_id, message_id, emoji)","anchor":"delete_own_reaction/3"},{"id":"delete_own_reaction!/3","deprecated":false,"title":"delete_own_reaction!(channel_id, message_id, emoji)","anchor":"delete_own_reaction!/3"},{"id":"delete_pinned_channel_message/2","deprecated":false,"title":"delete_pinned_channel_message(channel_id, message_id)","anchor":"delete_pinned_channel_message/2"},{"id":"delete_pinned_channel_message!/2","deprecated":false,"title":"delete_pinned_channel_message!(channel_id, message_id)","anchor":"delete_pinned_channel_message!/2"},{"id":"delete_reaction/3","deprecated":false,"title":"delete_reaction(channel_id, message_id, emoji)","anchor":"delete_reaction/3"},{"id":"delete_reaction!/3","deprecated":false,"title":"delete_reaction!(channel_id, message_id, emoji)","anchor":"delete_reaction!/3"},{"id":"delete_user_reaction/4","deprecated":false,"title":"delete_user_reaction(channel_id, message_id, emoji, user_id)","anchor":"delete_user_reaction/4"},{"id":"delete_user_reaction!/4","deprecated":false,"title":"delete_user_reaction!(channel_id, message_id, emoji, user_id)","anchor":"delete_user_reaction!/4"},{"id":"delete_webhook/2","deprecated":false,"title":"delete_webhook(webhook_id, reason \\\\ nil)","anchor":"delete_webhook/2"},{"id":"edit_application_command_permissions/4","deprecated":false,"title":"edit_application_command_permissions(application_id \\\\ Me.get().id, guild_id, command_id, permissions)","anchor":"edit_application_command_permissions/4"},{"id":"edit_channel_permissions/4","deprecated":false,"title":"edit_channel_permissions(channel_id, overwrite_id, permission_info, reason \\\\ nil)","anchor":"edit_channel_permissions/4"},{"id":"edit_channel_permissions!/4","deprecated":false,"title":"edit_channel_permissions!(channel_id, overwrite_id, permission_info, reason \\\\ nil)","anchor":"edit_channel_permissions!/4"},{"id":"edit_global_application_command/3","deprecated":false,"title":"edit_global_application_command(application_id \\\\ Me.get().id, command_id, command)","anchor":"edit_global_application_command/3"},{"id":"edit_guild_application_command/4","deprecated":false,"title":"edit_guild_application_command(application_id \\\\ Me.get().id, guild_id, command_id, command)","anchor":"edit_guild_application_command/4"},{"id":"edit_interaction_response/2","deprecated":false,"title":"edit_interaction_response(interaction, response)","anchor":"edit_interaction_response/2"},{"id":"edit_interaction_response/3","deprecated":false,"title":"edit_interaction_response(id \\\\ Me.get().id, token, response)","anchor":"edit_interaction_response/3"},{"id":"edit_interaction_response!/2","deprecated":false,"title":"edit_interaction_response!(interaction, response)","anchor":"edit_interaction_response!/2"},{"id":"edit_interaction_response!/3","deprecated":false,"title":"edit_interaction_response!(id \\\\ Me.get().id, token, response)","anchor":"edit_interaction_response!/3"},{"id":"edit_message/2","deprecated":false,"title":"edit_message(message, options)","anchor":"edit_message/2"},{"id":"edit_message/3","deprecated":false,"title":"edit_message(channel_id, message_id, options)","anchor":"edit_message/3"},{"id":"edit_message!/2","deprecated":false,"title":"edit_message!(message, options)","anchor":"edit_message!/2"},{"id":"edit_message!/3","deprecated":false,"title":"edit_message!(channel_id, message_id, options)","anchor":"edit_message!/3"},{"id":"edit_webhook_message/4","deprecated":false,"title":"edit_webhook_message(webhook_id, webhook_token, message_id, args)","anchor":"edit_webhook_message/4"},{"id":"execute_git_webhook/3","deprecated":false,"title":"execute_git_webhook(webhook_id, webhook_token, wait \\\\ false)","anchor":"execute_git_webhook/3"},{"id":"execute_slack_webhook/3","deprecated":false,"title":"execute_slack_webhook(webhook_id, webhook_token, wait \\\\ false)","anchor":"execute_slack_webhook/3"},{"id":"execute_webhook/4","deprecated":false,"title":"execute_webhook(webhook_id, webhook_token, args, wait \\\\ false)","anchor":"execute_webhook/4"},{"id":"expire_poll/2","deprecated":false,"title":"expire_poll(channel_id, message_id)","anchor":"expire_poll/2"},{"id":"expire_poll!/2","deprecated":false,"title":"expire_poll!(channel_id, message_id)","anchor":"expire_poll!/2"},{"id":"get_application_command_permissions/3","deprecated":false,"title":"get_application_command_permissions(application_id \\\\ Me.get().id, guild_id, command_id)","anchor":"get_application_command_permissions/3"},{"id":"get_application_information/0","deprecated":false,"title":"get_application_information()","anchor":"get_application_information/0"},{"id":"get_channel/1","deprecated":false,"title":"get_channel(channel_id)","anchor":"get_channel/1"},{"id":"get_channel!/1","deprecated":false,"title":"get_channel!(channel_id)","anchor":"get_channel!/1"},{"id":"get_channel_invites/1","deprecated":false,"title":"get_channel_invites(channel_id)","anchor":"get_channel_invites/1"},{"id":"get_channel_invites!/1","deprecated":false,"title":"get_channel_invites!(channel_id)","anchor":"get_channel_invites!/1"},{"id":"get_channel_message/2","deprecated":false,"title":"get_channel_message(channel_id, message_id)","anchor":"get_channel_message/2"},{"id":"get_channel_message!/2","deprecated":false,"title":"get_channel_message!(channel_id, message_id)","anchor":"get_channel_message!/2"},{"id":"get_channel_messages/3","deprecated":false,"title":"get_channel_messages(channel_id, limit, locator \\\\ {})","anchor":"get_channel_messages/3"},{"id":"get_channel_messages!/3","deprecated":false,"title":"get_channel_messages!(channel_id, limit, locator \\\\ {})","anchor":"get_channel_messages!/3"},{"id":"get_channel_webhooks/1","deprecated":false,"title":"get_channel_webhooks(channel_id)","anchor":"get_channel_webhooks/1"},{"id":"get_current_user/0","deprecated":false,"title":"get_current_user()","anchor":"get_current_user/0"},{"id":"get_current_user!/0","deprecated":false,"title":"get_current_user!()","anchor":"get_current_user!/0"},{"id":"get_current_user_guilds/1","deprecated":false,"title":"get_current_user_guilds(options \\\\ [])","anchor":"get_current_user_guilds/1"},{"id":"get_current_user_guilds!/1","deprecated":false,"title":"get_current_user_guilds!(options \\\\ [])","anchor":"get_current_user_guilds!/1"},{"id":"get_global_application_commands/1","deprecated":false,"title":"get_global_application_commands(application_id \\\\ Me.get().id)","anchor":"get_global_application_commands/1"},{"id":"get_guild/1","deprecated":false,"title":"get_guild(guild_id)","anchor":"get_guild/1"},{"id":"get_guild!/1","deprecated":false,"title":"get_guild!(guild_id)","anchor":"get_guild!/1"},{"id":"get_guild_application_command_permissions/2","deprecated":false,"title":"get_guild_application_command_permissions(application_id \\\\ Me.get().id, guild_id)","anchor":"get_guild_application_command_permissions/2"},{"id":"get_guild_application_commands/2","deprecated":false,"title":"get_guild_application_commands(application_id \\\\ Me.get().id, guild_id)","anchor":"get_guild_application_commands/2"},{"id":"get_guild_audit_log/2","deprecated":false,"title":"get_guild_audit_log(guild_id, options \\\\ [])","anchor":"get_guild_audit_log/2"},{"id":"get_guild_auto_moderation_rule/2","deprecated":false,"title":"get_guild_auto_moderation_rule(guild_id, rule_id)","anchor":"get_guild_auto_moderation_rule/2"},{"id":"get_guild_auto_moderation_rules/1","deprecated":false,"title":"get_guild_auto_moderation_rules(guild_id)","anchor":"get_guild_auto_moderation_rules/1"},{"id":"get_guild_ban/2","deprecated":false,"title":"get_guild_ban(guild_id, user_id)","anchor":"get_guild_ban/2"},{"id":"get_guild_bans/1","deprecated":false,"title":"get_guild_bans(guild_id)","anchor":"get_guild_bans/1"},{"id":"get_guild_channels/1","deprecated":false,"title":"get_guild_channels(guild_id)","anchor":"get_guild_channels/1"},{"id":"get_guild_channels!/1","deprecated":false,"title":"get_guild_channels!(guild_id)","anchor":"get_guild_channels!/1"},{"id":"get_guild_emoji/2","deprecated":false,"title":"get_guild_emoji(guild_id, emoji_id)","anchor":"get_guild_emoji/2"},{"id":"get_guild_emoji!/2","deprecated":false,"title":"get_guild_emoji!(guild_id, emoji_id)","anchor":"get_guild_emoji!/2"},{"id":"get_guild_integrations/1","deprecated":false,"title":"get_guild_integrations(guild_id)","anchor":"get_guild_integrations/1"},{"id":"get_guild_invites/1","deprecated":false,"title":"get_guild_invites(guild_id)","anchor":"get_guild_invites/1"},{"id":"get_guild_invites!/1","deprecated":false,"title":"get_guild_invites!(guild_id)","anchor":"get_guild_invites!/1"},{"id":"get_guild_member/2","deprecated":false,"title":"get_guild_member(guild_id, user_id)","anchor":"get_guild_member/2"},{"id":"get_guild_member!/2","deprecated":false,"title":"get_guild_member!(guild_id, user_id)","anchor":"get_guild_member!/2"},{"id":"get_guild_prune_count/2","deprecated":false,"title":"get_guild_prune_count(guild_id, days)","anchor":"get_guild_prune_count/2"},{"id":"get_guild_prune_count!/2","deprecated":false,"title":"get_guild_prune_count!(guild_id, days)","anchor":"get_guild_prune_count!/2"},{"id":"get_guild_roles/1","deprecated":false,"title":"get_guild_roles(guild_id)","anchor":"get_guild_roles/1"},{"id":"get_guild_roles!/1","deprecated":false,"title":"get_guild_roles!(guild_id)","anchor":"get_guild_roles!/1"},{"id":"get_guild_scheduled_event/2","deprecated":false,"title":"get_guild_scheduled_event(guild_id, event_id)","anchor":"get_guild_scheduled_event/2"},{"id":"get_guild_scheduled_event_users/3","deprecated":false,"title":"get_guild_scheduled_event_users(guild_id, event_id, params \\\\ [])","anchor":"get_guild_scheduled_event_users/3"},{"id":"get_guild_scheduled_events/1","deprecated":false,"title":"get_guild_scheduled_events(guild_id)","anchor":"get_guild_scheduled_events/1"},{"id":"get_guild_webhooks/1","deprecated":false,"title":"get_guild_webhooks(guild_id)","anchor":"get_guild_webhooks/1"},{"id":"get_guild_widget/1","deprecated":false,"title":"get_guild_widget(guild_id)","anchor":"get_guild_widget/1"},{"id":"get_invite/2","deprecated":false,"title":"get_invite(invite_code, options \\\\ [])","anchor":"get_invite/2"},{"id":"get_invite!/2","deprecated":false,"title":"get_invite!(invite_code, options \\\\ [])","anchor":"get_invite!/2"},{"id":"get_original_interaction_response/1","deprecated":false,"title":"get_original_interaction_response(interaction)","anchor":"get_original_interaction_response/1"},{"id":"get_pinned_messages/1","deprecated":false,"title":"get_pinned_messages(channel_id)","anchor":"get_pinned_messages/1"},{"id":"get_pinned_messages!/1","deprecated":false,"title":"get_pinned_messages!(channel_id)","anchor":"get_pinned_messages!/1"},{"id":"get_poll_answer_voters/4","deprecated":false,"title":"get_poll_answer_voters(channel_id, message_id, answer_id, params \\\\ [])","anchor":"get_poll_answer_voters/4"},{"id":"get_poll_answer_voters!/4","deprecated":false,"title":"get_poll_answer_voters!(channel_id, message_id, answer_id, params \\\\ [])","anchor":"get_poll_answer_voters!/4"},{"id":"get_reactions/4","deprecated":false,"title":"get_reactions(channel_id, message_id, emoji, params \\\\ [])","anchor":"get_reactions/4"},{"id":"get_reactions!/4","deprecated":false,"title":"get_reactions!(channel_id, message_id, emoji, params \\\\ [])","anchor":"get_reactions!/4"},{"id":"get_thread_member/2","deprecated":false,"title":"get_thread_member(thread_id, user_id)","anchor":"get_thread_member/2"},{"id":"get_thread_members/1","deprecated":false,"title":"get_thread_members(thread_id)","anchor":"get_thread_members/1"},{"id":"get_token/0","deprecated":false,"title":"get_token()","anchor":"get_token/0"},{"id":"get_user/1","deprecated":false,"title":"get_user(user_id)","anchor":"get_user/1"},{"id":"get_user!/1","deprecated":false,"title":"get_user!(user_id)","anchor":"get_user!/1"},{"id":"get_user_connections/0","deprecated":false,"title":"get_user_connections()","anchor":"get_user_connections/0"},{"id":"get_user_dms/0","deprecated":false,"title":"get_user_dms()","anchor":"get_user_dms/0"},{"id":"get_user_dms!/0","deprecated":false,"title":"get_user_dms!()","anchor":"get_user_dms!/0"},{"id":"get_voice_region/1","deprecated":false,"title":"get_voice_region(guild_id)","anchor":"get_voice_region/1"},{"id":"get_webhook/1","deprecated":false,"title":"get_webhook(webhook_id)","anchor":"get_webhook/1"},{"id":"get_webhook_message/2","deprecated":false,"title":"get_webhook_message(webhook, message_id)","anchor":"get_webhook_message/2"},{"id":"get_webhook_with_token/2","deprecated":false,"title":"get_webhook_with_token(webhook_id, webhook_token)","anchor":"get_webhook_with_token/2"},{"id":"join_thread/1","deprecated":false,"title":"join_thread(thread_id)","anchor":"join_thread/1"},{"id":"leave_guild/1","deprecated":false,"title":"leave_guild(guild_id)","anchor":"leave_guild/1"},{"id":"leave_thread/1","deprecated":false,"title":"leave_thread(thread_id)","anchor":"leave_thread/1"},{"id":"list_guild_emojis/1","deprecated":false,"title":"list_guild_emojis(guild_id)","anchor":"list_guild_emojis/1"},{"id":"list_guild_emojis!/1","deprecated":false,"title":"list_guild_emojis!(guild_id)","anchor":"list_guild_emojis!/1"},{"id":"list_guild_members/2","deprecated":false,"title":"list_guild_members(guild_id, options \\\\ %{})","anchor":"list_guild_members/2"},{"id":"list_guild_members!/2","deprecated":false,"title":"list_guild_members!(guild_id, options \\\\ %{})","anchor":"list_guild_members!/2"},{"id":"list_guild_threads/1","deprecated":false,"title":"list_guild_threads(guild_id)","anchor":"list_guild_threads/1"},{"id":"list_joined_private_archived_threads/2","deprecated":false,"title":"list_joined_private_archived_threads(channel_id, options \\\\ [])","anchor":"list_joined_private_archived_threads/2"},{"id":"list_private_archived_threads/2","deprecated":false,"title":"list_private_archived_threads(channel_id, options \\\\ [])","anchor":"list_private_archived_threads/2"},{"id":"list_public_archived_threads/2","deprecated":false,"title":"list_public_archived_threads(channel_id, options \\\\ [])","anchor":"list_public_archived_threads/2"},{"id":"list_voice_regions/0","deprecated":false,"title":"list_voice_regions()","anchor":"list_voice_regions/0"},{"id":"modify_channel/3","deprecated":false,"title":"modify_channel(channel_id, options, reason \\\\ nil)","anchor":"modify_channel/3"},{"id":"modify_channel!/3","deprecated":false,"title":"modify_channel!(channel_id, options, reason \\\\ nil)","anchor":"modify_channel!/3"},{"id":"modify_current_user/1","deprecated":false,"title":"modify_current_user(options)","anchor":"modify_current_user/1"},{"id":"modify_current_user!/1","deprecated":false,"title":"modify_current_user!(options)","anchor":"modify_current_user!/1"},{"id":"modify_current_user_nick/2","deprecated":false,"title":"modify_current_user_nick(guild_id, options \\\\ %{})","anchor":"modify_current_user_nick/2"},{"id":"modify_current_user_nick!/2","deprecated":false,"title":"modify_current_user_nick!(guild_id, options \\\\ %{})","anchor":"modify_current_user_nick!/2"},{"id":"modify_guild/3","deprecated":false,"title":"modify_guild(guild_id, options \\\\ [], reason \\\\ nil)","anchor":"modify_guild/3"},{"id":"modify_guild!/2","deprecated":false,"title":"modify_guild!(guild_id, options \\\\ [])","anchor":"modify_guild!/2"},{"id":"modify_guild_auto_moderation_rule/3","deprecated":false,"title":"modify_guild_auto_moderation_rule(guild_id, rule_id, options)","anchor":"modify_guild_auto_moderation_rule/3"},{"id":"modify_guild_channel_positions/2","deprecated":false,"title":"modify_guild_channel_positions(guild_id, positions)","anchor":"modify_guild_channel_positions/2"},{"id":"modify_guild_channel_positions!/2","deprecated":false,"title":"modify_guild_channel_positions!(guild_id, positions)","anchor":"modify_guild_channel_positions!/2"},{"id":"modify_guild_emoji/4","deprecated":false,"title":"modify_guild_emoji(guild_id, emoji_id, options \\\\ %{}, reason \\\\ nil)","anchor":"modify_guild_emoji/4"},{"id":"modify_guild_emoji!/4","deprecated":false,"title":"modify_guild_emoji!(guild_id, emoji_id, options, reason \\\\ nil)","anchor":"modify_guild_emoji!/4"},{"id":"modify_guild_integrations/3","deprecated":false,"title":"modify_guild_integrations(guild_id, integration_id, options)","anchor":"modify_guild_integrations/3"},{"id":"modify_guild_member/4","deprecated":false,"title":"modify_guild_member(guild_id, user_id, options \\\\ %{}, reason \\\\ nil)","anchor":"modify_guild_member/4"},{"id":"modify_guild_member!/4","deprecated":false,"title":"modify_guild_member!(guild_id, user_id, options \\\\ %{}, reason \\\\ nil)","anchor":"modify_guild_member!/4"},{"id":"modify_guild_role/4","deprecated":false,"title":"modify_guild_role(guild_id, role_id, options, reason \\\\ nil)","anchor":"modify_guild_role/4"},{"id":"modify_guild_role!/4","deprecated":false,"title":"modify_guild_role!(guild_id, role_id, options, reason \\\\ nil)","anchor":"modify_guild_role!/4"},{"id":"modify_guild_role_positions/3","deprecated":false,"title":"modify_guild_role_positions(guild_id, positions, reason \\\\ nil)","anchor":"modify_guild_role_positions/3"},{"id":"modify_guild_role_positions!/3","deprecated":false,"title":"modify_guild_role_positions!(guild_id, positions, reason \\\\ nil)","anchor":"modify_guild_role_positions!/3"},{"id":"modify_guild_scheduled_event/4","deprecated":false,"title":"modify_guild_scheduled_event(guild_id, event_id, reason \\\\ nil, options)","anchor":"modify_guild_scheduled_event/4"},{"id":"modify_guild_widget/2","deprecated":false,"title":"modify_guild_widget(guild_id, options)","anchor":"modify_guild_widget/2"},{"id":"modify_webhook/3","deprecated":false,"title":"modify_webhook(webhook_id, args, reason \\\\ nil)","anchor":"modify_webhook/3"},{"id":"modify_webhook_with_token/4","deprecated":false,"title":"modify_webhook_with_token(webhook_id, webhook_token, args, reason \\\\ nil)","anchor":"modify_webhook_with_token/4"},{"id":"remove_guild_ban/3","deprecated":false,"title":"remove_guild_ban(guild_id, user_id, reason \\\\ nil)","anchor":"remove_guild_ban/3"},{"id":"remove_guild_member/3","deprecated":false,"title":"remove_guild_member(guild_id, user_id, reason \\\\ nil)","anchor":"remove_guild_member/3"},{"id":"remove_guild_member!/3","deprecated":false,"title":"remove_guild_member!(guild_id, user_id, reason \\\\ nil)","anchor":"remove_guild_member!/3"},{"id":"remove_guild_member_role/4","deprecated":false,"title":"remove_guild_member_role(guild_id, user_id, role_id, reason \\\\ nil)","anchor":"remove_guild_member_role/4"},{"id":"remove_thread_member/2","deprecated":false,"title":"remove_thread_member(thread_id, user_id)","anchor":"remove_thread_member/2"},{"id":"request/1","deprecated":false,"title":"request(request)","anchor":"request/1"},{"id":"request/4","deprecated":false,"title":"request(method, route, body \\\\ \"\", params \\\\ [])","anchor":"request/4"},{"id":"request_multipart/4","deprecated":false,"title":"request_multipart(method, route, body, params \\\\ [])","anchor":"request_multipart/4"},{"id":"start_thread/3","deprecated":false,"title":"start_thread(channel_id, options, reason \\\\ nil)","anchor":"start_thread/3"},{"id":"start_thread_in_forum_channel/3","deprecated":false,"title":"start_thread_in_forum_channel(channel_id, options, reason \\\\ nil)","anchor":"start_thread_in_forum_channel/3"},{"id":"start_thread_with_message/4","deprecated":false,"title":"start_thread_with_message(channel_id, message_id, options, reason \\\\ nil)","anchor":"start_thread_with_message/4"},{"id":"start_typing/1","deprecated":false,"title":"start_typing(channel_id)","anchor":"start_typing/1"},{"id":"start_typing!/1","deprecated":false,"title":"start_typing!(channel_id)","anchor":"start_typing!/1"},{"id":"sync_guild_integrations/2","deprecated":false,"title":"sync_guild_integrations(guild_id, integration_id)","anchor":"sync_guild_integrations/2"},{"id":"update_shard_status/5","deprecated":false,"title":"update_shard_status(pid, status, game, type \\\\ 0, stream \\\\ nil)","anchor":"update_shard_status/5"},{"id":"update_status/4","deprecated":false,"title":"update_status(status, game, type \\\\ 0, stream \\\\ nil)","anchor":"update_status/4"},{"id":"update_voice_state/4","deprecated":false,"title":"update_voice_state(guild_id, channel_id, self_mute \\\\ false, self_deaf \\\\ false)","anchor":"update_voice_state/4"}],"key":"functions"}]},{"id":"Nostrum.Consumer","deprecated":false,"group":"Api","title":"Nostrum.Consumer","sections":[{"id":"Consuming gateway events","anchor":"module-consuming-gateway-events"},{"id":"Running multiple consumers","anchor":"module-running-multiple-consumers"},{"id":"Example consumer","anchor":"module-example-consumer"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"auto_moderation_rule_create/0","deprecated":false,"title":"auto_moderation_rule_create()","anchor":"t:auto_moderation_rule_create/0"},{"id":"auto_moderation_rule_delete/0","deprecated":false,"title":"auto_moderation_rule_delete()","anchor":"t:auto_moderation_rule_delete/0"},{"id":"auto_moderation_rule_execute/0","deprecated":false,"title":"auto_moderation_rule_execute()","anchor":"t:auto_moderation_rule_execute/0"},{"id":"auto_moderation_rule_update/0","deprecated":false,"title":"auto_moderation_rule_update()","anchor":"t:auto_moderation_rule_update/0"},{"id":"channel_create/0","deprecated":false,"title":"channel_create()","anchor":"t:channel_create/0"},{"id":"channel_delete/0","deprecated":false,"title":"channel_delete()","anchor":"t:channel_delete/0"},{"id":"channel_pins_ack/0","deprecated":false,"title":"channel_pins_ack()","anchor":"t:channel_pins_ack/0"},{"id":"channel_pins_update/0","deprecated":false,"title":"channel_pins_update()","anchor":"t:channel_pins_update/0"},{"id":"channel_update/0","deprecated":false,"title":"channel_update()","anchor":"t:channel_update/0"},{"id":"event/0","deprecated":false,"title":"event()","anchor":"t:event/0"},{"id":"guild_audit_log_entry_create/0","deprecated":false,"title":"guild_audit_log_entry_create()","anchor":"t:guild_audit_log_entry_create/0"},{"id":"guild_available/0","deprecated":false,"title":"guild_available()","anchor":"t:guild_available/0"},{"id":"guild_ban_add/0","deprecated":false,"title":"guild_ban_add()","anchor":"t:guild_ban_add/0"},{"id":"guild_ban_remove/0","deprecated":false,"title":"guild_ban_remove()","anchor":"t:guild_ban_remove/0"},{"id":"guild_create/0","deprecated":false,"title":"guild_create()","anchor":"t:guild_create/0"},{"id":"guild_delete/0","deprecated":false,"title":"guild_delete()","anchor":"t:guild_delete/0"},{"id":"guild_emojis_update/0","deprecated":false,"title":"guild_emojis_update()","anchor":"t:guild_emojis_update/0"},{"id":"guild_integrations_update/0","deprecated":false,"title":"guild_integrations_update()","anchor":"t:guild_integrations_update/0"},{"id":"guild_member_add/0","deprecated":false,"title":"guild_member_add()","anchor":"t:guild_member_add/0"},{"id":"guild_member_remove/0","deprecated":false,"title":"guild_member_remove()","anchor":"t:guild_member_remove/0"},{"id":"guild_member_update/0","deprecated":false,"title":"guild_member_update()","anchor":"t:guild_member_update/0"},{"id":"guild_members_chunk/0","deprecated":false,"title":"guild_members_chunk()","anchor":"t:guild_members_chunk/0"},{"id":"guild_role_create/0","deprecated":false,"title":"guild_role_create()","anchor":"t:guild_role_create/0"},{"id":"guild_role_delete/0","deprecated":false,"title":"guild_role_delete()","anchor":"t:guild_role_delete/0"},{"id":"guild_role_update/0","deprecated":false,"title":"guild_role_update()","anchor":"t:guild_role_update/0"},{"id":"guild_scheduled_event_create/0","deprecated":false,"title":"guild_scheduled_event_create()","anchor":"t:guild_scheduled_event_create/0"},{"id":"guild_scheduled_event_delete/0","deprecated":false,"title":"guild_scheduled_event_delete()","anchor":"t:guild_scheduled_event_delete/0"},{"id":"guild_scheduled_event_update/0","deprecated":false,"title":"guild_scheduled_event_update()","anchor":"t:guild_scheduled_event_update/0"},{"id":"guild_scheduled_event_user_add/0","deprecated":false,"title":"guild_scheduled_event_user_add()","anchor":"t:guild_scheduled_event_user_add/0"},{"id":"guild_scheduled_event_user_remove/0","deprecated":false,"title":"guild_scheduled_event_user_remove()","anchor":"t:guild_scheduled_event_user_remove/0"},{"id":"guild_unavailable/0","deprecated":false,"title":"guild_unavailable()","anchor":"t:guild_unavailable/0"},{"id":"guild_update/0","deprecated":false,"title":"guild_update()","anchor":"t:guild_update/0"},{"id":"integration_create/0","deprecated":false,"title":"integration_create()","anchor":"t:integration_create/0"},{"id":"integration_delete/0","deprecated":false,"title":"integration_delete()","anchor":"t:integration_delete/0"},{"id":"integration_update/0","deprecated":false,"title":"integration_update()","anchor":"t:integration_update/0"},{"id":"interaction_create/0","deprecated":false,"title":"interaction_create()","anchor":"t:interaction_create/0"},{"id":"message_ack/0","deprecated":false,"title":"message_ack()","anchor":"t:message_ack/0"},{"id":"message_create/0","deprecated":false,"title":"message_create()","anchor":"t:message_create/0"},{"id":"message_delete/0","deprecated":false,"title":"message_delete()","anchor":"t:message_delete/0"},{"id":"message_delete_bulk/0","deprecated":false,"title":"message_delete_bulk()","anchor":"t:message_delete_bulk/0"},{"id":"message_poll_vote_add/0","deprecated":false,"title":"message_poll_vote_add()","anchor":"t:message_poll_vote_add/0"},{"id":"message_poll_vote_remove/0","deprecated":false,"title":"message_poll_vote_remove()","anchor":"t:message_poll_vote_remove/0"},{"id":"message_reaction_add/0","deprecated":false,"title":"message_reaction_add()","anchor":"t:message_reaction_add/0"},{"id":"message_reaction_remove/0","deprecated":false,"title":"message_reaction_remove()","anchor":"t:message_reaction_remove/0"},{"id":"message_reaction_remove_all/0","deprecated":false,"title":"message_reaction_remove_all()","anchor":"t:message_reaction_remove_all/0"},{"id":"message_reaction_remove_emoji/0","deprecated":false,"title":"message_reaction_remove_emoji()","anchor":"t:message_reaction_remove_emoji/0"},{"id":"message_update/0","deprecated":false,"title":"message_update()","anchor":"t:message_update/0"},{"id":"presence_update/0","deprecated":false,"title":"presence_update()","anchor":"t:presence_update/0"},{"id":"ready/0","deprecated":false,"title":"ready()","anchor":"t:ready/0"},{"id":"resumed/0","deprecated":false,"title":"resumed()","anchor":"t:resumed/0"},{"id":"thread_create/0","deprecated":false,"title":"thread_create()","anchor":"t:thread_create/0"},{"id":"thread_delete/0","deprecated":false,"title":"thread_delete()","anchor":"t:thread_delete/0"},{"id":"thread_list_sync/0","deprecated":false,"title":"thread_list_sync()","anchor":"t:thread_list_sync/0"},{"id":"thread_member_update/0","deprecated":false,"title":"thread_member_update()","anchor":"t:thread_member_update/0"},{"id":"thread_members_update/0","deprecated":false,"title":"thread_members_update()","anchor":"t:thread_members_update/0"},{"id":"thread_update/0","deprecated":false,"title":"thread_update()","anchor":"t:thread_update/0"},{"id":"typing_start/0","deprecated":false,"title":"typing_start()","anchor":"t:typing_start/0"},{"id":"user_settings_update/0","deprecated":false,"title":"user_settings_update()","anchor":"t:user_settings_update/0"},{"id":"user_update/0","deprecated":false,"title":"user_update()","anchor":"t:user_update/0"},{"id":"voice_incoming_packet/0","deprecated":false,"title":"voice_incoming_packet()","anchor":"t:voice_incoming_packet/0"},{"id":"voice_ready/0","deprecated":false,"title":"voice_ready()","anchor":"t:voice_ready/0"},{"id":"voice_server_update/0","deprecated":false,"title":"voice_server_update()","anchor":"t:voice_server_update/0"},{"id":"voice_speaking_update/0","deprecated":false,"title":"voice_speaking_update()","anchor":"t:voice_speaking_update/0"},{"id":"voice_state_update/0","deprecated":false,"title":"voice_state_update()","anchor":"t:voice_state_update/0"},{"id":"webhooks_update/0","deprecated":false,"title":"webhooks_update()","anchor":"t:webhooks_update/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"handle_event/1","deprecated":false,"title":"handle_event(event)","anchor":"c:handle_event/1"}],"key":"callbacks"}]},{"id":"Nostrum.ConsumerGroup","deprecated":false,"group":"Api","title":"Nostrum.ConsumerGroup","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(opts)","anchor":"child_spec/1"},{"id":"demonitor/1","deprecated":false,"title":"demonitor(ref)","anchor":"demonitor/1"},{"id":"dispatch/1","deprecated":false,"title":"dispatch(event)","anchor":"dispatch/1"},{"id":"join/0","deprecated":false,"title":"join()","anchor":"join/0"},{"id":"join/1","deprecated":false,"title":"join(pid)","anchor":"join/1"},{"id":"monitor/0","deprecated":false,"title":"monitor()","anchor":"monitor/0"},{"id":"start_link/1","deprecated":false,"title":"start_link(opts)","anchor":"start_link/1"}],"key":"functions"}]},{"id":"Nostrum.Permission","deprecated":false,"group":"Api","title":"Nostrum.Permission","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"bit/0","deprecated":false,"title":"bit()","anchor":"t:bit/0"},{"id":"bitset/0","deprecated":false,"title":"bitset()","anchor":"t:bitset/0"},{"id":"general_permission/0","deprecated":false,"title":"general_permission()","anchor":"t:general_permission/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"text_permission/0","deprecated":false,"title":"text_permission()","anchor":"t:text_permission/0"},{"id":"voice_permission/0","deprecated":false,"title":"voice_permission()","anchor":"t:voice_permission/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"all/0","deprecated":false,"title":"all()","anchor":"all/0"},{"id":"from_bit/1","deprecated":false,"title":"from_bit(bit)","anchor":"from_bit/1"},{"id":"from_bit!/1","deprecated":false,"title":"from_bit!(bit)","anchor":"from_bit!/1"},{"id":"from_bitset/1","deprecated":false,"title":"from_bitset(bitset)","anchor":"from_bitset/1"},{"id":"is_permission/1","deprecated":false,"title":"is_permission(term)","anchor":"is_permission/1"},{"id":"to_bit/1","deprecated":false,"title":"to_bit(permission)","anchor":"to_bit/1"},{"id":"to_bitset/1","deprecated":false,"title":"to_bitset(permissions)","anchor":"to_bitset/1"}],"key":"functions"}]},{"id":"Nostrum.Voice","deprecated":false,"group":"Api","title":"Nostrum.Voice","sections":[{"id":"Voice Without FFmpeg","anchor":"module-voice-without-ffmpeg"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"opus_packet/0","deprecated":false,"title":"opus_packet()","anchor":"t:opus_packet/0"},{"id":"play_input/0","deprecated":false,"title":"play_input()","anchor":"t:play_input/0"},{"id":"play_type/0","deprecated":false,"title":"play_type()","anchor":"t:play_type/0"},{"id":"rtp_opus/0","deprecated":false,"title":"rtp_opus()","anchor":"t:rtp_opus/0"},{"id":"rtp_sequence/0","deprecated":false,"title":"rtp_sequence()","anchor":"t:rtp_sequence/0"},{"id":"rtp_ssrc/0","deprecated":false,"title":"rtp_ssrc()","anchor":"t:rtp_ssrc/0"},{"id":"rtp_timestamp/0","deprecated":false,"title":"rtp_timestamp()","anchor":"t:rtp_timestamp/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"connect_to_gateway/1","deprecated":false,"title":"connect_to_gateway(guild_id)","anchor":"connect_to_gateway/1"},{"id":"create_ogg_bitstream/1","deprecated":false,"title":"create_ogg_bitstream(opus_packets)","anchor":"create_ogg_bitstream/1"},{"id":"extract_opus_packet/1","deprecated":false,"title":"extract_opus_packet(packet)","anchor":"extract_opus_packet/1"},{"id":"get_channel_id/1","deprecated":false,"title":"get_channel_id(guild_id)","anchor":"get_channel_id/1"},{"id":"get_current_url/1","deprecated":false,"title":"get_current_url(guild_id)","anchor":"get_current_url/1"},{"id":"get_ssrc_map/1","deprecated":false,"title":"get_ssrc_map(guild_id)","anchor":"get_ssrc_map/1"},{"id":"join_channel/5","deprecated":false,"title":"join_channel(guild_id, channel_id, self_mute \\\\ false, self_deaf \\\\ false, persist \\\\ true)","anchor":"join_channel/5"},{"id":"leave_channel/1","deprecated":false,"title":"leave_channel(guild_id)","anchor":"leave_channel/1"},{"id":"listen/3","deprecated":false,"title":"listen(guild_id, num_packets, raw_rtp \\\\ false)","anchor":"listen/3"},{"id":"pad_opus/1","deprecated":false,"title":"pad_opus(packets)","anchor":"pad_opus/1"},{"id":"pause/1","deprecated":false,"title":"pause(guild_id)","anchor":"pause/1"},{"id":"play/4","deprecated":false,"title":"play(guild_id, input, type \\\\ :url, options \\\\ [])","anchor":"play/4"},{"id":"playing?/1","deprecated":false,"title":"playing?(guild_id)","anchor":"playing?/1"},{"id":"ready?/1","deprecated":false,"title":"ready?(guild_id)","anchor":"ready?/1"},{"id":"resume/1","deprecated":false,"title":"resume(guild_id)","anchor":"resume/1"},{"id":"send_frames/2","deprecated":false,"title":"send_frames(guild_id, frames)","anchor":"send_frames/2"},{"id":"set_is_speaking/2","deprecated":false,"title":"set_is_speaking(guild_id, speaking)","anchor":"set_is_speaking/2"},{"id":"start_listen_async/1","deprecated":false,"title":"start_listen_async(guild_id)","anchor":"start_listen_async/1"},{"id":"stop/1","deprecated":false,"title":"stop(guild_id)","anchor":"stop/1"},{"id":"stop_listen_async/1","deprecated":false,"title":"stop_listen_async(guild_id)","anchor":"stop_listen_async/1"}],"key":"functions"}]},{"id":"Nostrum.Cache.CacheSupervisor","deprecated":false,"group":"Cache","title":"Nostrum.Cache.CacheSupervisor","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"init/1","deprecated":false,"title":"init(list)","anchor":"init/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(list)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".CacheSupervisor","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.ChannelCache","deprecated":false,"group":"Cache","title":"Nostrum.Cache.ChannelCache","sections":[{"id":"Writing your own channel cache","anchor":"module-writing-your-own-channel-cache"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"reason/0","deprecated":false,"title":"reason()","anchor":"t:reason/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(map)","anchor":"c:create/1"},{"id":"delete/1","deprecated":false,"title":"delete(id)","anchor":"c:delete/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"c:query_handle/0"},{"id":"update/1","deprecated":false,"title":"update(t)","anchor":"c:update/1"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(function)","anchor":"c:wrap_qlc/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"get/1","deprecated":false,"title":"get(channel_or_message)","anchor":"get/1"},{"id":"get/2","deprecated":false,"title":"get(channel_id, cache)","anchor":"get/2"},{"id":"get!/1","deprecated":false,"title":"get!(channel_or_message)","anchor":"get!/1"},{"id":"get!/2","deprecated":false,"title":"get!(channel_id, cache)","anchor":"get!/2"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"}],"key":"functions"}],"nested_title":".ChannelCache","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.ChannelGuildMapping","deprecated":false,"group":"Cache","title":"Nostrum.Cache.ChannelGuildMapping","sections":[{"id":"Purpose","anchor":"module-purpose"},{"id":"Configuration","anchor":"module-configuration"}],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/2","deprecated":false,"title":"create(id, id)","anchor":"c:create/2"},{"id":"delete/1","deprecated":false,"title":"delete(id)","anchor":"c:delete/1"},{"id":"get/1","deprecated":false,"title":"get(id)","anchor":"c:get/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"create/2","deprecated":false,"title":"create(guild_id, shard_num)","anchor":"create/2"},{"id":"delete/1","deprecated":false,"title":"delete(guild_id)","anchor":"delete/1"},{"id":"get/1","deprecated":false,"title":"get(guild_id)","anchor":"get/1"}],"key":"functions"}],"nested_title":".ChannelGuildMapping","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.GuildCache","deprecated":false,"group":"Cache","title":"Nostrum.Cache.GuildCache","sections":[{"id":"Writing your own guild cache","anchor":"module-writing-your-own-guild-cache"}],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"channel_create/2","deprecated":false,"title":"channel_create(id, channel)","anchor":"c:channel_create/2"},{"id":"channel_delete/2","deprecated":false,"title":"channel_delete(id, id)","anchor":"c:channel_delete/2"},{"id":"channel_update/2","deprecated":false,"title":"channel_update(id, channel)","anchor":"c:channel_update/2"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(map)","anchor":"c:create/1"},{"id":"delete/1","deprecated":false,"title":"delete(id)","anchor":"c:delete/1"},{"id":"emoji_update/2","deprecated":false,"title":"emoji_update(id, emojis)","anchor":"c:emoji_update/2"},{"id":"member_count_down/1","deprecated":false,"title":"member_count_down(id)","anchor":"c:member_count_down/1"},{"id":"member_count_up/1","deprecated":false,"title":"member_count_up(id)","anchor":"c:member_count_up/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"c:query_handle/0"},{"id":"role_create/2","deprecated":false,"title":"role_create(id, role)","anchor":"c:role_create/2"},{"id":"role_delete/2","deprecated":false,"title":"role_delete(id, id)","anchor":"c:role_delete/2"},{"id":"role_update/2","deprecated":false,"title":"role_update(id, role)","anchor":"c:role_update/2"},{"id":"update/1","deprecated":false,"title":"update(map)","anchor":"c:update/1"},{"id":"voice_state_update/2","deprecated":false,"title":"voice_state_update(id, state)","anchor":"c:voice_state_update/2"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(function)","anchor":"c:wrap_qlc/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"fold/3","deprecated":false,"title":"fold(acc, reducer, cache \\\\ Nostrum.Cache.GuildCache.ETS)","anchor":"fold/3"},{"id":"get/2","deprecated":false,"title":"get(guild_id, cache \\\\ Nostrum.Cache.GuildCache.ETS)","anchor":"get/2"},{"id":"get!/1","deprecated":false,"title":"get!(guild_id)","anchor":"get!/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"wrap_qlc/2","deprecated":false,"title":"wrap_qlc(cache \\\\ Nostrum.Cache.GuildCache.ETS, fun)","anchor":"wrap_qlc/2"}],"key":"functions"}],"nested_title":".GuildCache","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.Me","deprecated":false,"group":"Cache","title":"Nostrum.Cache.Me","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(arg)","anchor":"child_spec/1"},{"id":"get/0","deprecated":false,"title":"get()","anchor":"get/0"},{"id":"start_link/1","deprecated":false,"title":"start_link(list)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".Me","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.MemberCache","deprecated":false,"group":"Cache","title":"Nostrum.Cache.MemberCache","sections":[],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"bulk_create/2","deprecated":false,"title":"bulk_create(id, members)","anchor":"c:bulk_create/2"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/2","deprecated":false,"title":"create(id, member)","anchor":"c:create/2"},{"id":"delete/2","deprecated":false,"title":"delete(id, user_id)","anchor":"c:delete/2"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"c:query_handle/0"},{"id":"update/2","deprecated":false,"title":"update(id, member)","anchor":"c:update/2"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(function)","anchor":"c:wrap_qlc/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"fold/4","deprecated":false,"title":"fold(acc, guild_id, member_reducer, cache \\\\ Nostrum.Cache.MemberCache.ETS)","anchor":"fold/4"},{"id":"fold_by_user/4","deprecated":false,"title":"fold_by_user(acc, user_id, member_reducer, cache \\\\ Nostrum.Cache.MemberCache.ETS)","anchor":"fold_by_user/4"},{"id":"fold_with_users/4","deprecated":false,"title":"fold_with_users(acc, guild_id, fun, cache \\\\ Nostrum.Cache.MemberCache.ETS)","anchor":"fold_with_users/4"},{"id":"get/3","deprecated":false,"title":"get(guild_id, user_id, cache \\\\ Nostrum.Cache.MemberCache.ETS)","anchor":"get/3"},{"id":"get_with_user/3","deprecated":false,"title":"get_with_user(guild_id, member_id, cache \\\\ Nostrum.Cache.MemberCache.ETS)","anchor":"get_with_user/3"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"wrap_qlc/2","deprecated":false,"title":"wrap_qlc(cache \\\\ Nostrum.Cache.MemberCache.ETS, fun)","anchor":"wrap_qlc/2"}],"key":"functions"}],"nested_title":".MemberCache","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.PresenceCache","deprecated":false,"group":"Cache","title":"Nostrum.Cache.PresenceCache","sections":[{"id":"Writing your own presence cache","anchor":"module-writing-your-own-presence-cache"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"presence/0","deprecated":false,"title":"presence()","anchor":"t:presence/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"bulk_create/2","deprecated":false,"title":"bulk_create(id, list)","anchor":"c:bulk_create/2"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(presence)","anchor":"c:create/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"c:query_handle/0"},{"id":"update/1","deprecated":false,"title":"update(map)","anchor":"c:update/1"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(function)","anchor":"c:wrap_qlc/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"get/3","deprecated":false,"title":"get(guild_id, user_id, cache \\\\ Nostrum.Cache.PresenceCache.ETS)","anchor":"get/3"},{"id":"get!/3","deprecated":false,"title":"get!(guild_id, user_id, cache \\\\ Nostrum.Cache.PresenceCache.ETS)","anchor":"get!/3"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"wrap_qlc/2","deprecated":false,"title":"wrap_qlc(cache \\\\ Nostrum.Cache.PresenceCache.ETS, fun)","anchor":"wrap_qlc/2"}],"key":"functions"}],"nested_title":".PresenceCache","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.UserCache","deprecated":false,"group":"Cache","title":"Nostrum.Cache.UserCache","sections":[],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"bulk_create/1","deprecated":false,"title":"bulk_create(user_payloads)","anchor":"c:bulk_create/1"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(payload)","anchor":"c:create/1"},{"id":"delete/1","deprecated":false,"title":"delete(snowflake)","anchor":"c:delete/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"c:query_handle/0"},{"id":"update/1","deprecated":false,"title":"update(payload)","anchor":"c:update/1"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(function)","anchor":"c:wrap_qlc/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"get/2","deprecated":false,"title":"get(user_id, cache \\\\ Nostrum.Cache.UserCache.ETS)","anchor":"get/2"},{"id":"get!/1","deprecated":false,"title":"get!(id)","anchor":"get!/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"wrap_qlc/2","deprecated":false,"title":"wrap_qlc(cache \\\\ Nostrum.Cache.UserCache.ETS, fun)","anchor":"wrap_qlc/2"}],"key":"functions"}],"nested_title":".UserCache","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Struct.ApplicationCommand","deprecated":false,"group":"Structs","title":"Nostrum.Struct.ApplicationCommand","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"application_command_edit_map/0","deprecated":false,"title":"application_command_edit_map()","anchor":"t:application_command_edit_map/0"},{"id":"application_command_map/0","deprecated":false,"title":"application_command_map()","anchor":"t:application_command_map/0"},{"id":"application_command_permission_type/0","deprecated":false,"title":"application_command_permission_type()","anchor":"t:application_command_permission_type/0"},{"id":"application_command_permissions/0","deprecated":false,"title":"application_command_permissions()","anchor":"t:application_command_permissions/0"},{"id":"command_choice/0","deprecated":false,"title":"command_choice()","anchor":"t:command_choice/0"},{"id":"command_description/0","deprecated":false,"title":"command_description()","anchor":"t:command_description/0"},{"id":"command_name/0","deprecated":false,"title":"command_name()","anchor":"t:command_name/0"},{"id":"command_option/0","deprecated":false,"title":"command_option()","anchor":"t:command_option/0"},{"id":"command_option_type/0","deprecated":false,"title":"command_option_type()","anchor":"t:command_option_type/0"},{"id":"command_type/0","deprecated":false,"title":"command_type()","anchor":"t:command_type/0"}],"key":"types"}],"nested_title":".ApplicationCommand","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.ApplicationCommandInteractionData","deprecated":false,"group":"Structs","title":"Nostrum.Struct.ApplicationCommandInteractionData","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"component_type/0","deprecated":false,"title":"component_type()","anchor":"t:component_type/0"},{"id":"components/0","deprecated":false,"title":"components()","anchor":"t:components/0"},{"id":"custom_id/0","deprecated":false,"title":"custom_id()","anchor":"t:custom_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"interaction_type/0","deprecated":false,"title":"interaction_type()","anchor":"t:interaction_type/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"options/0","deprecated":false,"title":"options()","anchor":"t:options/0"},{"id":"resolved/0","deprecated":false,"title":"resolved()","anchor":"t:resolved/0"},{"id":"select_values/0","deprecated":false,"title":"select_values()","anchor":"t:select_values/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"target_id/0","deprecated":false,"title":"target_id()","anchor":"t:target_id/0"}],"key":"types"}],"nested_title":".ApplicationCommandInteractionData","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.ApplicationCommandInteractionDataOption","deprecated":false,"group":"Structs","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"focused/0","deprecated":false,"title":"focused()","anchor":"t:focused/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"options/0","deprecated":false,"title":"options()","anchor":"t:options/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"},{"id":"value/0","deprecated":false,"title":"value()","anchor":"t:value/0"}],"key":"types"}],"nested_title":".ApplicationCommandInteractionDataOption","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.ApplicationCommandInteractionDataResolved","deprecated":false,"group":"Structs","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"attachments/0","deprecated":false,"title":"attachments()","anchor":"t:attachments/0"},{"id":"channels/0","deprecated":false,"title":"channels()","anchor":"t:channels/0"},{"id":"members/0","deprecated":false,"title":"members()","anchor":"t:members/0"},{"id":"messages/0","deprecated":false,"title":"messages()","anchor":"t:messages/0"},{"id":"roles/0","deprecated":false,"title":"roles()","anchor":"t:roles/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"users/0","deprecated":false,"title":"users()","anchor":"t:users/0"}],"key":"types"}],"nested_title":".ApplicationCommandInteractionDataResolved","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.AutoModerationRule","deprecated":false,"group":"Structs","title":"Nostrum.Struct.AutoModerationRule","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"actions/0","deprecated":false,"title":"actions()","anchor":"t:actions/0"},{"id":"creator_id/0","deprecated":false,"title":"creator_id()","anchor":"t:creator_id/0"},{"id":"enabled/0","deprecated":false,"title":"enabled()","anchor":"t:enabled/0"},{"id":"event_type/0","deprecated":false,"title":"event_type()","anchor":"t:event_type/0"},{"id":"exempt_channels/0","deprecated":false,"title":"exempt_channels()","anchor":"t:exempt_channels/0"},{"id":"exempt_roles/0","deprecated":false,"title":"exempt_roles()","anchor":"t:exempt_roles/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"preset_values/0","deprecated":false,"title":"preset_values()","anchor":"t:preset_values/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"trigger_metadata/0","deprecated":false,"title":"trigger_metadata()","anchor":"t:trigger_metadata/0"},{"id":"trigger_type/0","deprecated":false,"title":"trigger_type()","anchor":"t:trigger_type/0"}],"key":"types"}],"nested_title":".AutoModerationRule","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.AutoModerationRule.Action","deprecated":false,"group":"Structs","title":"Nostrum.Struct.AutoModerationRule.Action","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"action_type/0","deprecated":false,"title":"action_type()","anchor":"t:action_type/0"},{"id":"metadata/0","deprecated":false,"title":"metadata()","anchor":"t:metadata/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".AutoModerationRule.Action","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.AutoModerationRule.ActionMetadata","deprecated":false,"group":"Structs","title":"Nostrum.Struct.AutoModerationRule.ActionMetadata","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"send_alert_message_metadata/0","deprecated":false,"title":"send_alert_message_metadata()","anchor":"t:send_alert_message_metadata/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"timeout_metadata/0","deprecated":false,"title":"timeout_metadata()","anchor":"t:timeout_metadata/0"}],"key":"types"}],"nested_title":".AutoModerationRule.ActionMetadata","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.AutoModerationRule.TriggerMetadata","deprecated":false,"group":"Structs","title":"Nostrum.Struct.AutoModerationRule.TriggerMetadata","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"keyword_metadata/0","deprecated":false,"title":"keyword_metadata()","anchor":"t:keyword_metadata/0"},{"id":"preset_value_metadata/0","deprecated":false,"title":"preset_value_metadata()","anchor":"t:preset_value_metadata/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".AutoModerationRule.TriggerMetadata","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Channel","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Channel","sections":[{"id":"Channel Struct","anchor":"module-channel-struct"},{"id":"Channel Cache","anchor":"module-channel-cache"},{"id":"Example","anchor":"module-example"},{"id":"Helper Functions","anchor":"module-helper-functions"},{"id":"Api Functions","anchor":"module-api-functions"},{"id":"Channel Types","anchor":"module-channel-types"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"application_id/0","deprecated":false,"title":"application_id()","anchor":"t:application_id/0"},{"id":"applied_tags/0","deprecated":false,"title":"applied_tags()","anchor":"t:applied_tags/0"},{"id":"archive_timestamp/0","deprecated":false,"title":"archive_timestamp()","anchor":"t:archive_timestamp/0"},{"id":"archived/0","deprecated":false,"title":"archived()","anchor":"t:archived/0"},{"id":"auto_archive_duration/0","deprecated":false,"title":"auto_archive_duration()","anchor":"t:auto_archive_duration/0"},{"id":"bitrate/0","deprecated":false,"title":"bitrate()","anchor":"t:bitrate/0"},{"id":"channel_mention/0","deprecated":false,"title":"channel_mention()","anchor":"t:channel_mention/0"},{"id":"default_auto_archive_duration/0","deprecated":false,"title":"default_auto_archive_duration()","anchor":"t:default_auto_archive_duration/0"},{"id":"default_reaction_emoji/0","deprecated":false,"title":"default_reaction_emoji()","anchor":"t:default_reaction_emoji/0"},{"id":"default_thread_rate_limit_per_user/0","deprecated":false,"title":"default_thread_rate_limit_per_user()","anchor":"t:default_thread_rate_limit_per_user/0"},{"id":"dm_channel/0","deprecated":false,"title":"dm_channel()","anchor":"t:dm_channel/0"},{"id":"flags/0","deprecated":false,"title":"flags()","anchor":"t:flags/0"},{"id":"forum_tag/0","deprecated":false,"title":"forum_tag()","anchor":"t:forum_tag/0"},{"id":"group_dm_channel/0","deprecated":false,"title":"group_dm_channel()","anchor":"t:group_dm_channel/0"},{"id":"guild_category_channel/0","deprecated":false,"title":"guild_category_channel()","anchor":"t:guild_category_channel/0"},{"id":"guild_channel/0","deprecated":true,"title":"guild_channel()","anchor":"t:guild_channel/0"},{"id":"guild_forum_channel/0","deprecated":false,"title":"guild_forum_channel()","anchor":"t:guild_forum_channel/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"guild_news_channel/0","deprecated":false,"title":"guild_news_channel()","anchor":"t:guild_news_channel/0"},{"id":"guild_news_thread_channel/0","deprecated":false,"title":"guild_news_thread_channel()","anchor":"t:guild_news_thread_channel/0"},{"id":"guild_private_thread_channel/0","deprecated":false,"title":"guild_private_thread_channel()","anchor":"t:guild_private_thread_channel/0"},{"id":"guild_public_thread_channel/0","deprecated":false,"title":"guild_public_thread_channel()","anchor":"t:guild_public_thread_channel/0"},{"id":"guild_stage_voice_channel/0","deprecated":false,"title":"guild_stage_voice_channel()","anchor":"t:guild_stage_voice_channel/0"},{"id":"guild_store_channel/0","deprecated":false,"title":"guild_store_channel()","anchor":"t:guild_store_channel/0"},{"id":"guild_text_channel/0","deprecated":false,"title":"guild_text_channel()","anchor":"t:guild_text_channel/0"},{"id":"guild_voice_channel/0","deprecated":false,"title":"guild_voice_channel()","anchor":"t:guild_voice_channel/0"},{"id":"icon/0","deprecated":false,"title":"icon()","anchor":"t:icon/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"join_timestamp/0","deprecated":false,"title":"join_timestamp()","anchor":"t:join_timestamp/0"},{"id":"last_message_id/0","deprecated":false,"title":"last_message_id()","anchor":"t:last_message_id/0"},{"id":"last_pin_timestamp/0","deprecated":false,"title":"last_pin_timestamp()","anchor":"t:last_pin_timestamp/0"},{"id":"locked/0","deprecated":false,"title":"locked()","anchor":"t:locked/0"},{"id":"member/0","deprecated":false,"title":"member()","anchor":"t:member/0"},{"id":"member_count/0","deprecated":false,"title":"member_count()","anchor":"t:member_count/0"},{"id":"message_count/0","deprecated":false,"title":"message_count()","anchor":"t:message_count/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"newly_created/0","deprecated":false,"title":"newly_created()","anchor":"t:newly_created/0"},{"id":"nsfw/0","deprecated":false,"title":"nsfw()","anchor":"t:nsfw/0"},{"id":"owner_id/0","deprecated":false,"title":"owner_id()","anchor":"t:owner_id/0"},{"id":"parent_id/0","deprecated":false,"title":"parent_id()","anchor":"t:parent_id/0"},{"id":"permission_overwrites/0","deprecated":false,"title":"permission_overwrites()","anchor":"t:permission_overwrites/0"},{"id":"permissions/0","deprecated":false,"title":"permissions()","anchor":"t:permissions/0"},{"id":"position/0","deprecated":false,"title":"position()","anchor":"t:position/0"},{"id":"rate_limit_per_user/0","deprecated":false,"title":"rate_limit_per_user()","anchor":"t:rate_limit_per_user/0"},{"id":"recipients/0","deprecated":false,"title":"recipients()","anchor":"t:recipients/0"},{"id":"rtc_region/0","deprecated":false,"title":"rtc_region()","anchor":"t:rtc_region/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"text_channel/0","deprecated":true,"title":"text_channel()","anchor":"t:text_channel/0"},{"id":"thread_metadata/0","deprecated":false,"title":"thread_metadata()","anchor":"t:thread_metadata/0"},{"id":"topic/0","deprecated":false,"title":"topic()","anchor":"t:topic/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"},{"id":"user_limit/0","deprecated":false,"title":"user_limit()","anchor":"t:user_limit/0"},{"id":"video_quality_mode/0","deprecated":false,"title":"video_quality_mode()","anchor":"t:video_quality_mode/0"},{"id":"voice_channel/0","deprecated":true,"title":"voice_channel()","anchor":"t:voice_channel/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"mention/1","deprecated":false,"title":"mention(channel)","anchor":"mention/1"}],"key":"functions"}],"nested_title":".Channel","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Component","sections":[{"id":"Action Row","anchor":"module-action-row"},{"id":"Buttons","anchor":"module-buttons"},{"id":"Link Buttons","anchor":"module-link-buttons"},{"id":"Interaction Buttons ( Non-link Buttons )","anchor":"module-interaction-buttons-non-link-buttons"},{"id":"🐼 Emoji Buttons","anchor":"module-emoji-buttons"},{"id":"Select Menu","anchor":"module-select-menu"},{"id":"Text Input","anchor":"module-text-input"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"components/0","deprecated":false,"title":"components()","anchor":"t:components/0"},{"id":"custom_id/0","deprecated":false,"title":"custom_id()","anchor":"t:custom_id/0"},{"id":"disabled/0","deprecated":false,"title":"disabled()","anchor":"t:disabled/0"},{"id":"emoji/0","deprecated":false,"title":"emoji()","anchor":"t:emoji/0"},{"id":"label/0","deprecated":false,"title":"label()","anchor":"t:label/0"},{"id":"max_length/0","deprecated":false,"title":"max_length()","anchor":"t:max_length/0"},{"id":"max_values/0","deprecated":false,"title":"max_values()","anchor":"t:max_values/0"},{"id":"min_length/0","deprecated":false,"title":"min_length()","anchor":"t:min_length/0"},{"id":"min_values/0","deprecated":false,"title":"min_values()","anchor":"t:min_values/0"},{"id":"options/0","deprecated":false,"title":"options()","anchor":"t:options/0"},{"id":"placeholder/0","deprecated":false,"title":"placeholder()","anchor":"t:placeholder/0"},{"id":"required/0","deprecated":false,"title":"required()","anchor":"t:required/0"},{"id":"style/0","deprecated":false,"title":"style()","anchor":"t:style/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"},{"id":"url/0","deprecated":false,"title":"url()","anchor":"t:url/0"},{"id":"value/0","deprecated":false,"title":"value()","anchor":"t:value/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"new/1","deprecated":false,"title":"new(opts)","anchor":"c:new/1"},{"id":"update/2","deprecated":false,"title":"update(t, opts)","anchor":"c:update/2"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"to_struct/1","deprecated":false,"title":"to_struct(map)","anchor":"to_struct/1"}],"key":"functions"}],"nested_title":".Component","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component.ActionRow","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Component.ActionRow","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"action_row/1","deprecated":false,"title":"action_row(opts \\\\ [])","anchor":"action_row/1"},{"id":"append/2","deprecated":false,"title":"append(action_row, button)","anchor":"append/2"},{"id":"append_lazy/2","deprecated":false,"title":"append_lazy(action_row, button)","anchor":"append_lazy/2"},{"id":"flatten/1","deprecated":false,"title":"flatten(map)","anchor":"flatten/1"},{"id":"put/2","deprecated":false,"title":"put(component, select_menu)","anchor":"put/2"},{"id":"put_new/2","deprecated":false,"title":"put_new(component, list_of_components)","anchor":"put_new/2"}],"key":"functions"}],"nested_title":".Component.ActionRow","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component.Button","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Component.Button","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"interaction_button/0","deprecated":false,"title":"interaction_button()","anchor":"t:interaction_button/0"},{"id":"link_button/0","deprecated":false,"title":"link_button()","anchor":"t:link_button/0"},{"id":"opt/0","deprecated":false,"title":"opt()","anchor":"t:opt/0"},{"id":"opts/0","deprecated":false,"title":"opts()","anchor":"t:opts/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"button/1","deprecated":false,"title":"button(opts \\\\ [])","anchor":"button/1"},{"id":"disable/2","deprecated":false,"title":"disable(button, disabled)","anchor":"disable/2"},{"id":"flatten/1","deprecated":false,"title":"flatten(map)","anchor":"flatten/1"},{"id":"interaction_button/3","deprecated":false,"title":"interaction_button(label, custom_id, opts \\\\ [])","anchor":"interaction_button/3"},{"id":"link_button/3","deprecated":false,"title":"link_button(label, url, opts \\\\ [])","anchor":"link_button/3"},{"id":"put_style/2","deprecated":false,"title":"put_style(button, style)","anchor":"put_style/2"},{"id":"toggle/1","deprecated":false,"title":"toggle(button)","anchor":"toggle/1"}],"key":"functions"}],"nested_title":".Component.Button","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component.Option","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Component.Option","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"default/0","deprecated":false,"title":"default()","anchor":"t:default/0"},{"id":"description/0","deprecated":false,"title":"description()","anchor":"t:description/0"},{"id":"emoji/0","deprecated":false,"title":"emoji()","anchor":"t:emoji/0"},{"id":"label/0","deprecated":false,"title":"label()","anchor":"t:label/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"value/0","deprecated":false,"title":"value()","anchor":"t:value/0"}],"key":"types"}],"nested_title":".Component.Option","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component.SelectMenu","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Component.SelectMenu","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"opt/0","deprecated":false,"title":"opt()","anchor":"t:opt/0"},{"id":"opts/0","deprecated":false,"title":"opts()","anchor":"t:opts/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"flatten/1","deprecated":false,"title":"flatten(map)","anchor":"flatten/1"},{"id":"select_menu/2","deprecated":false,"title":"select_menu(custom_id, opts \\\\ [])","anchor":"select_menu/2"}],"key":"functions"}],"nested_title":".Component.SelectMenu","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component.TextInput","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Component.TextInput","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"opt/0","deprecated":false,"title":"opt()","anchor":"t:opt/0"},{"id":"opts/0","deprecated":false,"title":"opts()","anchor":"t:opts/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"flatten/1","deprecated":false,"title":"flatten(map)","anchor":"flatten/1"},{"id":"put_style/2","deprecated":false,"title":"put_style(text_input, style)","anchor":"put_style/2"},{"id":"text_input/3","deprecated":false,"title":"text_input(label, custom_id, opts \\\\ [])","anchor":"text_input/3"}],"key":"functions"}],"nested_title":".Component.TextInput","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Embed","sections":[{"id":"Building Embeds","anchor":"module-building-embeds"},{"id":"Using structs","anchor":"module-using-structs"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"author/0","deprecated":false,"title":"author()","anchor":"t:author/0"},{"id":"color/0","deprecated":false,"title":"color()","anchor":"t:color/0"},{"id":"description/0","deprecated":false,"title":"description()","anchor":"t:description/0"},{"id":"fields/0","deprecated":false,"title":"fields()","anchor":"t:fields/0"},{"id":"footer/0","deprecated":false,"title":"footer()","anchor":"t:footer/0"},{"id":"image/0","deprecated":false,"title":"image()","anchor":"t:image/0"},{"id":"provider/0","deprecated":false,"title":"provider()","anchor":"t:provider/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"thumbnail/0","deprecated":false,"title":"thumbnail()","anchor":"t:thumbnail/0"},{"id":"timestamp/0","deprecated":false,"title":"timestamp()","anchor":"t:timestamp/0"},{"id":"title/0","deprecated":false,"title":"title()","anchor":"t:title/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"},{"id":"url/0","deprecated":false,"title":"url()","anchor":"t:url/0"},{"id":"video/0","deprecated":false,"title":"video()","anchor":"t:video/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"author/1","deprecated":false,"title":"author(struct)","anchor":"c:author/1"},{"id":"color/1","deprecated":false,"title":"color(struct)","anchor":"c:color/1"},{"id":"description/1","deprecated":false,"title":"description(struct)","anchor":"c:description/1"},{"id":"fields/1","deprecated":false,"title":"fields(struct)","anchor":"c:fields/1"},{"id":"footer/1","deprecated":false,"title":"footer(struct)","anchor":"c:footer/1"},{"id":"image/1","deprecated":false,"title":"image(struct)","anchor":"c:image/1"},{"id":"thumbnail/1","deprecated":false,"title":"thumbnail(struct)","anchor":"c:thumbnail/1"},{"id":"timestamp/1","deprecated":false,"title":"timestamp(struct)","anchor":"c:timestamp/1"},{"id":"title/1","deprecated":false,"title":"title(struct)","anchor":"c:title/1"},{"id":"url/1","deprecated":false,"title":"url(struct)","anchor":"c:url/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"from/1","deprecated":false,"title":"from(struct)","anchor":"from/1"},{"id":"put_author/4","deprecated":false,"title":"put_author(embed, name, url, icon_url)","anchor":"put_author/4"},{"id":"put_color/2","deprecated":false,"title":"put_color(embed, value)","anchor":"put_color/2"},{"id":"put_description/2","deprecated":false,"title":"put_description(embed, value)","anchor":"put_description/2"},{"id":"put_field/4","deprecated":false,"title":"put_field(embed, name, value, inline \\\\ nil)","anchor":"put_field/4"},{"id":"put_footer/3","deprecated":false,"title":"put_footer(embed, text, icon_url \\\\ nil)","anchor":"put_footer/3"},{"id":"put_image/2","deprecated":false,"title":"put_image(embed, url)","anchor":"put_image/2"},{"id":"put_thumbnail/2","deprecated":false,"title":"put_thumbnail(embed, url)","anchor":"put_thumbnail/2"},{"id":"put_timestamp/2","deprecated":false,"title":"put_timestamp(embed, value)","anchor":"put_timestamp/2"},{"id":"put_title/2","deprecated":false,"title":"put_title(embed, value)","anchor":"put_title/2"},{"id":"put_url/2","deprecated":false,"title":"put_url(embed, value)","anchor":"put_url/2"}],"key":"functions"}],"nested_title":".Embed","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Author","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Embed.Author","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"icon_url/0","deprecated":false,"title":"icon_url()","anchor":"t:icon_url/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"proxy_icon_url/0","deprecated":false,"title":"proxy_icon_url()","anchor":"t:proxy_icon_url/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"url/0","deprecated":false,"title":"url()","anchor":"t:url/0"}],"key":"types"}],"nested_title":".Embed.Author","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Field","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Embed.Field","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"inline/0","deprecated":false,"title":"inline()","anchor":"t:inline/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"value/0","deprecated":false,"title":"value()","anchor":"t:value/0"}],"key":"types"}],"nested_title":".Embed.Field","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Footer","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Embed.Footer","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"icon_url/0","deprecated":false,"title":"icon_url()","anchor":"t:icon_url/0"},{"id":"proxy_icon_url/0","deprecated":false,"title":"proxy_icon_url()","anchor":"t:proxy_icon_url/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"text/0","deprecated":false,"title":"text()","anchor":"t:text/0"}],"key":"types"}],"nested_title":".Embed.Footer","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Image","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Embed.Image","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"height/0","deprecated":false,"title":"height()","anchor":"t:height/0"},{"id":"proxy_url/0","deprecated":false,"title":"proxy_url()","anchor":"t:proxy_url/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"url/0","deprecated":false,"title":"url()","anchor":"t:url/0"},{"id":"width/0","deprecated":false,"title":"width()","anchor":"t:width/0"}],"key":"types"}],"nested_title":".Embed.Image","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Provider","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Embed.Provider","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"url/0","deprecated":false,"title":"url()","anchor":"t:url/0"}],"key":"types"}],"nested_title":".Embed.Provider","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Thumbnail","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Embed.Thumbnail","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"height/0","deprecated":false,"title":"height()","anchor":"t:height/0"},{"id":"proxy_url/0","deprecated":false,"title":"proxy_url()","anchor":"t:proxy_url/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"url/0","deprecated":false,"title":"url()","anchor":"t:url/0"},{"id":"width/0","deprecated":false,"title":"width()","anchor":"t:width/0"}],"key":"types"}],"nested_title":".Embed.Thumbnail","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Video","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Embed.Video","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"height/0","deprecated":false,"title":"height()","anchor":"t:height/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"url/0","deprecated":false,"title":"url()","anchor":"t:url/0"},{"id":"width/0","deprecated":false,"title":"width()","anchor":"t:width/0"}],"key":"types"}],"nested_title":".Embed.Video","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Emoji","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Emoji","sections":[{"id":"Mentioning Emojis in Messages","anchor":"module-mentioning-emojis-in-messages"},{"id":"Using Emojis in the Api","anchor":"module-using-emojis-in-the-api"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"animated/0","deprecated":false,"title":"animated()","anchor":"t:animated/0"},{"id":"api_name/0","deprecated":false,"title":"api_name()","anchor":"t:api_name/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"managed/0","deprecated":false,"title":"managed()","anchor":"t:managed/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"require_colons/0","deprecated":false,"title":"require_colons()","anchor":"t:require_colons/0"},{"id":"roles/0","deprecated":false,"title":"roles()","anchor":"t:roles/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"t:user/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"api_name/1","deprecated":false,"title":"api_name(emoji)","anchor":"api_name/1"},{"id":"image_url/1","deprecated":false,"title":"image_url(emoji)","anchor":"image_url/1"},{"id":"mention/1","deprecated":false,"title":"mention(emoji)","anchor":"mention/1"}],"key":"functions"}],"nested_title":".Emoji","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"afk_channel_id/0","deprecated":false,"title":"afk_channel_id()","anchor":"t:afk_channel_id/0"},{"id":"afk_timeout/0","deprecated":false,"title":"afk_timeout()","anchor":"t:afk_timeout/0"},{"id":"application_id/0","deprecated":false,"title":"application_id()","anchor":"t:application_id/0"},{"id":"available_guild/0","deprecated":false,"title":"available_guild()","anchor":"t:available_guild/0"},{"id":"channels/0","deprecated":false,"title":"channels()","anchor":"t:channels/0"},{"id":"default_message_notifications/0","deprecated":false,"title":"default_message_notifications()","anchor":"t:default_message_notifications/0"},{"id":"emojis/0","deprecated":false,"title":"emojis()","anchor":"t:emojis/0"},{"id":"explicit_content_filter/0","deprecated":false,"title":"explicit_content_filter()","anchor":"t:explicit_content_filter/0"},{"id":"features/0","deprecated":false,"title":"features()","anchor":"t:features/0"},{"id":"guild_scheduled_events/0","deprecated":false,"title":"guild_scheduled_events()","anchor":"t:guild_scheduled_events/0"},{"id":"icon/0","deprecated":false,"title":"icon()","anchor":"t:icon/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"joined_at/0","deprecated":false,"title":"joined_at()","anchor":"t:joined_at/0"},{"id":"large/0","deprecated":false,"title":"large()","anchor":"t:large/0"},{"id":"member_count/0","deprecated":false,"title":"member_count()","anchor":"t:member_count/0"},{"id":"mfa_level/0","deprecated":false,"title":"mfa_level()","anchor":"t:mfa_level/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"owner_id/0","deprecated":false,"title":"owner_id()","anchor":"t:owner_id/0"},{"id":"public_updates_channel_id/0","deprecated":false,"title":"public_updates_channel_id()","anchor":"t:public_updates_channel_id/0"},{"id":"region/0","deprecated":false,"title":"region()","anchor":"t:region/0"},{"id":"rest_guild/0","deprecated":false,"title":"rest_guild()","anchor":"t:rest_guild/0"},{"id":"roles/0","deprecated":false,"title":"roles()","anchor":"t:roles/0"},{"id":"rules_channel_id/0","deprecated":false,"title":"rules_channel_id()","anchor":"t:rules_channel_id/0"},{"id":"splash/0","deprecated":false,"title":"splash()","anchor":"t:splash/0"},{"id":"system_channel_id/0","deprecated":false,"title":"system_channel_id()","anchor":"t:system_channel_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"threads/0","deprecated":false,"title":"threads()","anchor":"t:threads/0"},{"id":"unavailable/0","deprecated":false,"title":"unavailable()","anchor":"t:unavailable/0"},{"id":"unavailable_guild/0","deprecated":false,"title":"unavailable_guild()","anchor":"t:unavailable_guild/0"},{"id":"user_guild/0","deprecated":false,"title":"user_guild()","anchor":"t:user_guild/0"},{"id":"vanity_url_code/0","deprecated":false,"title":"vanity_url_code()","anchor":"t:vanity_url_code/0"},{"id":"verification_level/0","deprecated":false,"title":"verification_level()","anchor":"t:verification_level/0"},{"id":"voice_states/0","deprecated":false,"title":"voice_states()","anchor":"t:voice_states/0"},{"id":"widget_channel_id/0","deprecated":false,"title":"widget_channel_id()","anchor":"t:widget_channel_id/0"},{"id":"widget_enabled/0","deprecated":false,"title":"widget_enabled()","anchor":"t:widget_enabled/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"icon_url/2","deprecated":false,"title":"icon_url(guild, image_format \\\\ \"webp\")","anchor":"icon_url/2"},{"id":"splash_url/2","deprecated":false,"title":"splash_url(guild, image_format \\\\ \"webp\")","anchor":"splash_url/2"}],"key":"functions"}],"nested_title":".Guild","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.AuditLog","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.AuditLog","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"entries/0","deprecated":false,"title":"entries()","anchor":"t:entries/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"users/0","deprecated":false,"title":"users()","anchor":"t:users/0"},{"id":"webhooks/0","deprecated":false,"title":"webhooks()","anchor":"t:webhooks/0"}],"key":"types"}],"nested_title":".Guild.AuditLog","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.AuditLogEntry","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.AuditLogEntry","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"action_type/0","deprecated":false,"title":"action_type()","anchor":"t:action_type/0"},{"id":"changes/0","deprecated":false,"title":"changes()","anchor":"t:changes/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"options/0","deprecated":false,"title":"options()","anchor":"t:options/0"},{"id":"reason/0","deprecated":false,"title":"reason()","anchor":"t:reason/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"target_id/0","deprecated":false,"title":"target_id()","anchor":"t:target_id/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".Guild.AuditLogEntry","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Ban","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.Ban","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"reason/0","deprecated":false,"title":"reason()","anchor":"t:reason/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"t:user/0"}],"key":"types"}],"nested_title":".Guild.Ban","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Integration","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.Integration","sections":[{"id":"References","anchor":"module-references"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"account/0","deprecated":false,"title":"account()","anchor":"t:account/0"},{"id":"application/0","deprecated":false,"title":"application()","anchor":"t:application/0"},{"id":"enabled/0","deprecated":false,"title":"enabled()","anchor":"t:enabled/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"}],"key":"types"}],"nested_title":".Guild.Integration","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Integration.Account","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.Integration.Account","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Guild.Integration.Account","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Integration.Application","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.Integration.Application","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"bot/0","deprecated":false,"title":"bot()","anchor":"t:bot/0"},{"id":"description/0","deprecated":false,"title":"description()","anchor":"t:description/0"},{"id":"icon/0","deprecated":false,"title":"icon()","anchor":"t:icon/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"summary/0","deprecated":false,"title":"summary()","anchor":"t:summary/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Guild.Integration.Application","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Member","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.Member","sections":[{"id":"Mentioning Members in Messages","anchor":"module-mentioning-members-in-messages"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"communication_disabled_until/0","deprecated":false,"title":"communication_disabled_until()","anchor":"t:communication_disabled_until/0"},{"id":"deaf/0","deprecated":false,"title":"deaf()","anchor":"t:deaf/0"},{"id":"joined_at/0","deprecated":false,"title":"joined_at()","anchor":"t:joined_at/0"},{"id":"mute/0","deprecated":false,"title":"mute()","anchor":"t:mute/0"},{"id":"nick/0","deprecated":false,"title":"nick()","anchor":"t:nick/0"},{"id":"premium_since/0","deprecated":false,"title":"premium_since()","anchor":"t:premium_since/0"},{"id":"roles/0","deprecated":false,"title":"roles()","anchor":"t:roles/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"guild_channel_permissions/3","deprecated":false,"title":"guild_channel_permissions(member, guild, channel_id)","anchor":"guild_channel_permissions/3"},{"id":"guild_permissions/2","deprecated":false,"title":"guild_permissions(member, guild)","anchor":"guild_permissions/2"},{"id":"mention/1","deprecated":false,"title":"mention(member)","anchor":"mention/1"},{"id":"top_role/2","deprecated":false,"title":"top_role(member, guild)","anchor":"top_role/2"}],"key":"functions"}],"nested_title":".Guild.Member","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Role","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.Role","sections":[{"id":"Mentioning Roles in Messages","anchor":"module-mentioning-roles-in-messages"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"color/0","deprecated":false,"title":"color()","anchor":"t:color/0"},{"id":"hoist/0","deprecated":false,"title":"hoist()","anchor":"t:hoist/0"},{"id":"icon/0","deprecated":false,"title":"icon()","anchor":"t:icon/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"managed/0","deprecated":false,"title":"managed()","anchor":"t:managed/0"},{"id":"mentionable/0","deprecated":false,"title":"mentionable()","anchor":"t:mentionable/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"permissions/0","deprecated":false,"title":"permissions()","anchor":"t:permissions/0"},{"id":"position/0","deprecated":false,"title":"position()","anchor":"t:position/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"unicode_emoji/0","deprecated":false,"title":"unicode_emoji()","anchor":"t:unicode_emoji/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"mention/1","deprecated":false,"title":"mention(role)","anchor":"mention/1"}],"key":"functions"}],"nested_title":".Guild.Role","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.ScheduledEvent","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.ScheduledEvent","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"creator/0","deprecated":false,"title":"creator()","anchor":"t:creator/0"},{"id":"creator_id/0","deprecated":false,"title":"creator_id()","anchor":"t:creator_id/0"},{"id":"description/0","deprecated":false,"title":"description()","anchor":"t:description/0"},{"id":"entity_id/0","deprecated":false,"title":"entity_id()","anchor":"t:entity_id/0"},{"id":"entity_metadata/0","deprecated":false,"title":"entity_metadata()","anchor":"t:entity_metadata/0"},{"id":"entity_type/0","deprecated":false,"title":"entity_type()","anchor":"t:entity_type/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"privacy_level/0","deprecated":false,"title":"privacy_level()","anchor":"t:privacy_level/0"},{"id":"scheduled_end_time/0","deprecated":false,"title":"scheduled_end_time()","anchor":"t:scheduled_end_time/0"},{"id":"scheduled_start_time/0","deprecated":false,"title":"scheduled_start_time()","anchor":"t:scheduled_start_time/0"},{"id":"status/0","deprecated":false,"title":"status()","anchor":"t:status/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user_count/0","deprecated":false,"title":"user_count()","anchor":"t:user_count/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"to_struct/1","deprecated":false,"title":"to_struct(map)","anchor":"to_struct/1"}],"key":"functions"}],"nested_title":".Guild.ScheduledEvent","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"location/0","deprecated":false,"title":"location()","anchor":"t:location/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Guild.ScheduledEvent.EntityMetadata","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.ScheduledEvent.User","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.ScheduledEvent.User","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"event_id/0","deprecated":false,"title":"event_id()","anchor":"t:event_id/0"},{"id":"member/0","deprecated":false,"title":"member()","anchor":"t:member/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"t:user/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"to_struct/1","deprecated":false,"title":"to_struct(map)","anchor":"to_struct/1"}],"key":"functions"}],"nested_title":".Guild.ScheduledEvent.User","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.UnavailableGuild","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Guild.UnavailableGuild","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"unavailable/0","deprecated":false,"title":"unavailable()","anchor":"t:unavailable/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"to_struct/1","deprecated":false,"title":"to_struct(map)","anchor":"to_struct/1"}],"key":"functions"}],"nested_title":".Guild.UnavailableGuild","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Interaction","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Interaction","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"application_id/0","deprecated":false,"title":"application_id()","anchor":"t:application_id/0"},{"id":"channel/0","deprecated":false,"title":"channel()","anchor":"t:channel/0"},{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"data/0","deprecated":false,"title":"data()","anchor":"t:data/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"guild_locale/0","deprecated":false,"title":"guild_locale()","anchor":"t:guild_locale/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"locale/0","deprecated":false,"title":"locale()","anchor":"t:locale/0"},{"id":"member/0","deprecated":false,"title":"member()","anchor":"t:member/0"},{"id":"message/0","deprecated":false,"title":"message()","anchor":"t:message/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"token/0","deprecated":false,"title":"token()","anchor":"t:token/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"t:user/0"},{"id":"version/0","deprecated":false,"title":"version()","anchor":"t:version/0"}],"key":"types"}],"nested_title":".Interaction","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Invite","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Invite","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"approximate_member_count/0","deprecated":false,"title":"approximate_member_count()","anchor":"t:approximate_member_count/0"},{"id":"approximate_presence_count/0","deprecated":false,"title":"approximate_presence_count()","anchor":"t:approximate_presence_count/0"},{"id":"channel/0","deprecated":false,"title":"channel()","anchor":"t:channel/0"},{"id":"code/0","deprecated":false,"title":"code()","anchor":"t:code/0"},{"id":"created_at/0","deprecated":false,"title":"created_at()","anchor":"t:created_at/0"},{"id":"detailed_invite/0","deprecated":false,"title":"detailed_invite()","anchor":"t:detailed_invite/0"},{"id":"guild/0","deprecated":false,"title":"guild()","anchor":"t:guild/0"},{"id":"inviter/0","deprecated":false,"title":"inviter()","anchor":"t:inviter/0"},{"id":"max_age/0","deprecated":false,"title":"max_age()","anchor":"t:max_age/0"},{"id":"max_uses/0","deprecated":false,"title":"max_uses()","anchor":"t:max_uses/0"},{"id":"simple_invite/0","deprecated":false,"title":"simple_invite()","anchor":"t:simple_invite/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"target_user/0","deprecated":false,"title":"target_user()","anchor":"t:target_user/0"},{"id":"target_user_type/0","deprecated":false,"title":"target_user_type()","anchor":"t:target_user_type/0"},{"id":"temporary/0","deprecated":false,"title":"temporary()","anchor":"t:temporary/0"},{"id":"uses/0","deprecated":false,"title":"uses()","anchor":"t:uses/0"}],"key":"types"}],"nested_title":".Invite","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"activity/0","deprecated":false,"title":"activity()","anchor":"t:activity/0"},{"id":"application/0","deprecated":false,"title":"application()","anchor":"t:application/0"},{"id":"application_id/0","deprecated":false,"title":"application_id()","anchor":"t:application_id/0"},{"id":"attachments/0","deprecated":false,"title":"attachments()","anchor":"t:attachments/0"},{"id":"author/0","deprecated":false,"title":"author()","anchor":"t:author/0"},{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"components/0","deprecated":false,"title":"components()","anchor":"t:components/0"},{"id":"content/0","deprecated":false,"title":"content()","anchor":"t:content/0"},{"id":"edited_timestamp/0","deprecated":false,"title":"edited_timestamp()","anchor":"t:edited_timestamp/0"},{"id":"embeds/0","deprecated":false,"title":"embeds()","anchor":"t:embeds/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"interaction/0","deprecated":false,"title":"interaction()","anchor":"t:interaction/0"},{"id":"member/0","deprecated":false,"title":"member()","anchor":"t:member/0"},{"id":"mention_channels/0","deprecated":false,"title":"mention_channels()","anchor":"t:mention_channels/0"},{"id":"mention_everyone/0","deprecated":false,"title":"mention_everyone()","anchor":"t:mention_everyone/0"},{"id":"mention_roles/0","deprecated":false,"title":"mention_roles()","anchor":"t:mention_roles/0"},{"id":"mentions/0","deprecated":false,"title":"mentions()","anchor":"t:mentions/0"},{"id":"message_reference/0","deprecated":false,"title":"message_reference()","anchor":"t:message_reference/0"},{"id":"nonce/0","deprecated":false,"title":"nonce()","anchor":"t:nonce/0"},{"id":"pinned/0","deprecated":false,"title":"pinned()","anchor":"t:pinned/0"},{"id":"poll/0","deprecated":false,"title":"poll()","anchor":"t:poll/0"},{"id":"reactions/0","deprecated":false,"title":"reactions()","anchor":"t:reactions/0"},{"id":"referenced_message/0","deprecated":false,"title":"referenced_message()","anchor":"t:referenced_message/0"},{"id":"sticker_items/0","deprecated":false,"title":"sticker_items()","anchor":"t:sticker_items/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"thread/0","deprecated":false,"title":"thread()","anchor":"t:thread/0"},{"id":"timestamp/0","deprecated":false,"title":"timestamp()","anchor":"t:timestamp/0"},{"id":"tts/0","deprecated":false,"title":"tts()","anchor":"t:tts/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"},{"id":"webhook_id/0","deprecated":false,"title":"webhook_id()","anchor":"t:webhook_id/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"to_url/1","deprecated":false,"title":"to_url(message)","anchor":"to_url/1"}],"key":"functions"}],"nested_title":".Message","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Activity","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Activity","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"party_id/0","deprecated":false,"title":"party_id()","anchor":"t:party_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"}],"key":"types"}],"nested_title":".Message.Activity","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Application","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Application","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"cover_image/0","deprecated":false,"title":"cover_image()","anchor":"t:cover_image/0"},{"id":"description/0","deprecated":false,"title":"description()","anchor":"t:description/0"},{"id":"icon/0","deprecated":false,"title":"icon()","anchor":"t:icon/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Message.Application","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Attachment","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Attachment","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"filename/0","deprecated":false,"title":"filename()","anchor":"t:filename/0"},{"id":"height/0","deprecated":false,"title":"height()","anchor":"t:height/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"proxy_url/0","deprecated":false,"title":"proxy_url()","anchor":"t:proxy_url/0"},{"id":"size/0","deprecated":false,"title":"size()","anchor":"t:size/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"url/0","deprecated":false,"title":"url()","anchor":"t:url/0"},{"id":"width/0","deprecated":false,"title":"width()","anchor":"t:width/0"}],"key":"types"}],"nested_title":".Message.Attachment","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Component","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Component","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"components/0","deprecated":false,"title":"components()","anchor":"t:components/0"},{"id":"custom_id/0","deprecated":false,"title":"custom_id()","anchor":"t:custom_id/0"},{"id":"disabled/0","deprecated":false,"title":"disabled()","anchor":"t:disabled/0"},{"id":"emoji/0","deprecated":false,"title":"emoji()","anchor":"t:emoji/0"},{"id":"label/0","deprecated":false,"title":"label()","anchor":"t:label/0"},{"id":"max_length/0","deprecated":false,"title":"max_length()","anchor":"t:max_length/0"},{"id":"max_values/0","deprecated":false,"title":"max_values()","anchor":"t:max_values/0"},{"id":"min_length/0","deprecated":false,"title":"min_length()","anchor":"t:min_length/0"},{"id":"min_values/0","deprecated":false,"title":"min_values()","anchor":"t:min_values/0"},{"id":"options/0","deprecated":false,"title":"options()","anchor":"t:options/0"},{"id":"placeholder/0","deprecated":false,"title":"placeholder()","anchor":"t:placeholder/0"},{"id":"required/0","deprecated":false,"title":"required()","anchor":"t:required/0"},{"id":"style/0","deprecated":false,"title":"style()","anchor":"t:style/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"},{"id":"url/0","deprecated":false,"title":"url()","anchor":"t:url/0"},{"id":"value/0","deprecated":false,"title":"value()","anchor":"t:value/0"}],"key":"types"}],"nested_title":".Message.Component","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Poll","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Poll","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"allow_multiselect/0","deprecated":false,"title":"allow_multiselect()","anchor":"t:allow_multiselect/0"},{"id":"answers/0","deprecated":false,"title":"answers()","anchor":"t:answers/0"},{"id":"duration/0","deprecated":false,"title":"duration()","anchor":"t:duration/0"},{"id":"expiry/0","deprecated":false,"title":"expiry()","anchor":"t:expiry/0"},{"id":"layout_type/0","deprecated":false,"title":"layout_type()","anchor":"t:layout_type/0"},{"id":"question/0","deprecated":false,"title":"question()","anchor":"t:question/0"},{"id":"results/0","deprecated":false,"title":"results()","anchor":"t:results/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"create_poll/2","deprecated":false,"title":"create_poll(question_text, list)","anchor":"create_poll/2"},{"id":"put_answer/2","deprecated":false,"title":"put_answer(poll, answer)","anchor":"put_answer/2"},{"id":"put_answer/3","deprecated":false,"title":"put_answer(poll, answer, list)","anchor":"put_answer/3"}],"key":"functions"}],"nested_title":".Message.Poll","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Poll.Answer","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Poll.Answer","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"answer_id/0","deprecated":false,"title":"answer_id()","anchor":"t:answer_id/0"},{"id":"poll_media/0","deprecated":false,"title":"poll_media()","anchor":"t:poll_media/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Message.Poll.Answer","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Poll.MediaObject","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Poll.MediaObject","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"emoji/0","deprecated":false,"title":"emoji()","anchor":"t:emoji/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"text/0","deprecated":false,"title":"text()","anchor":"t:text/0"}],"key":"types"}],"nested_title":".Message.Poll.MediaObject","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Poll.Results","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Poll.Results","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"answer_counts/0","deprecated":false,"title":"answer_counts()","anchor":"t:answer_counts/0"},{"id":"is_finalized/0","deprecated":false,"title":"is_finalized()","anchor":"t:is_finalized/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Message.Poll.Results","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Reaction","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Reaction","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"count/0","deprecated":false,"title":"count()","anchor":"t:count/0"},{"id":"emoji/0","deprecated":false,"title":"emoji()","anchor":"t:emoji/0"},{"id":"me/0","deprecated":false,"title":"me()","anchor":"t:me/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Message.Reaction","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Reference","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Reference","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"message_id/0","deprecated":false,"title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Message.Reference","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Sticker","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Message.Sticker","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"available/0","deprecated":false,"title":"available()","anchor":"t:available/0"},{"id":"description/0","deprecated":false,"title":"description()","anchor":"t:description/0"},{"id":"format_type/0","deprecated":false,"title":"format_type()","anchor":"t:format_type/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"pack_id/0","deprecated":false,"title":"pack_id()","anchor":"t:pack_id/0"},{"id":"sort_value/0","deprecated":false,"title":"sort_value()","anchor":"t:sort_value/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"tags/0","deprecated":false,"title":"tags()","anchor":"t:tags/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"t:user/0"}],"key":"types"}],"nested_title":".Message.Sticker","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Overwrite","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Overwrite","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"allow/0","deprecated":false,"title":"allow()","anchor":"t:allow/0"},{"id":"deny/0","deprecated":false,"title":"deny()","anchor":"t:deny/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"}],"key":"types"}],"nested_title":".Overwrite","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.ThreadMember","deprecated":false,"group":"Structs","title":"Nostrum.Struct.ThreadMember","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"flags/0","deprecated":false,"title":"flags()","anchor":"t:flags/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"join_timestamp/0","deprecated":false,"title":"join_timestamp()","anchor":"t:join_timestamp/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".ThreadMember","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.User","deprecated":false,"group":"Structs","title":"Nostrum.Struct.User","sections":[{"id":"Mentioning Users in Messages","anchor":"module-mentioning-users-in-messages"},{"id":"User vs. Member","anchor":"module-user-vs-member"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"avatar/0","deprecated":false,"title":"avatar()","anchor":"t:avatar/0"},{"id":"bot/0","deprecated":false,"title":"bot()","anchor":"t:bot/0"},{"id":"discriminator/0","deprecated":false,"title":"discriminator()","anchor":"t:discriminator/0"},{"id":"email/0","deprecated":false,"title":"email()","anchor":"t:email/0"},{"id":"global_name/0","deprecated":false,"title":"global_name()","anchor":"t:global_name/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"mfa_enabled/0","deprecated":false,"title":"mfa_enabled()","anchor":"t:mfa_enabled/0"},{"id":"public_flags/0","deprecated":false,"title":"public_flags()","anchor":"t:public_flags/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"username/0","deprecated":false,"title":"username()","anchor":"t:username/0"},{"id":"verified/0","deprecated":false,"title":"verified()","anchor":"t:verified/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"avatar_url/2","deprecated":false,"title":"avatar_url(user, image_format \\\\ \"webp\")","anchor":"avatar_url/2"},{"id":"full_name/1","deprecated":false,"title":"full_name(user)","anchor":"full_name/1"},{"id":"mention/1","deprecated":false,"title":"mention(user)","anchor":"mention/1"}],"key":"functions"}],"nested_title":".User","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.User.Connection","deprecated":false,"group":"Structs","title":"Nostrum.Struct.User.Connection","sections":[],"nested_title":".User.Connection","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.User.Flags","deprecated":false,"group":"Structs","title":"Nostrum.Struct.User.Flags","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"bug_hunter_level_1/0","deprecated":false,"title":"bug_hunter_level_1()","anchor":"t:bug_hunter_level_1/0"},{"id":"bug_hunter_level_2/0","deprecated":false,"title":"bug_hunter_level_2()","anchor":"t:bug_hunter_level_2/0"},{"id":"early_supporter/0","deprecated":false,"title":"early_supporter()","anchor":"t:early_supporter/0"},{"id":"flags/0","deprecated":false,"title":"flags()","anchor":"t:flags/0"},{"id":"hypesquad_balance/0","deprecated":false,"title":"hypesquad_balance()","anchor":"t:hypesquad_balance/0"},{"id":"hypesquad_bravery/0","deprecated":false,"title":"hypesquad_bravery()","anchor":"t:hypesquad_bravery/0"},{"id":"hypesquad_brilliance/0","deprecated":false,"title":"hypesquad_brilliance()","anchor":"t:hypesquad_brilliance/0"},{"id":"hypesquad_events/0","deprecated":false,"title":"hypesquad_events()","anchor":"t:hypesquad_events/0"},{"id":"partner/0","deprecated":false,"title":"partner()","anchor":"t:partner/0"},{"id":"staff/0","deprecated":false,"title":"staff()","anchor":"t:staff/0"},{"id":"system/0","deprecated":false,"title":"system()","anchor":"t:system/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"team_user/0","deprecated":false,"title":"team_user()","anchor":"t:team_user/0"},{"id":"verified_bot/0","deprecated":false,"title":"verified_bot()","anchor":"t:verified_bot/0"},{"id":"verified_developer/0","deprecated":false,"title":"verified_developer()","anchor":"t:verified_developer/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"from_integer/1","deprecated":false,"title":"from_integer(flag_value)","anchor":"from_integer/1"},{"id":"to_integer/1","deprecated":false,"title":"to_integer(flag_struct)","anchor":"to_integer/1"}],"key":"functions"}],"nested_title":".User.Flags","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.VoiceRegion","deprecated":false,"group":"Structs","title":"Nostrum.Struct.VoiceRegion","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".VoiceRegion","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.VoiceWSState","deprecated":false,"group":"Structs","title":"Nostrum.Struct.VoiceWSState","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"conn/0","deprecated":false,"title":"conn()","anchor":"t:conn/0"},{"id":"conn_pid/0","deprecated":false,"title":"conn_pid()","anchor":"t:conn_pid/0"},{"id":"gateway/0","deprecated":false,"title":"gateway()","anchor":"t:gateway/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"heartbeat_ack/0","deprecated":false,"title":"heartbeat_ack()","anchor":"t:heartbeat_ack/0"},{"id":"heartbeat_interval/0","deprecated":false,"title":"heartbeat_interval()","anchor":"t:heartbeat_interval/0"},{"id":"heartbeat_ref/0","deprecated":false,"title":"heartbeat_ref()","anchor":"t:heartbeat_ref/0"},{"id":"identified/0","deprecated":false,"title":"identified()","anchor":"t:identified/0"},{"id":"last_heartbeat_ack/0","deprecated":false,"title":"last_heartbeat_ack()","anchor":"t:last_heartbeat_ack/0"},{"id":"last_heartbeat_send/0","deprecated":false,"title":"last_heartbeat_send()","anchor":"t:last_heartbeat_send/0"},{"id":"secret_key/0","deprecated":false,"title":"secret_key()","anchor":"t:secret_key/0"},{"id":"session/0","deprecated":false,"title":"session()","anchor":"t:session/0"},{"id":"ssrc_map/0","deprecated":false,"title":"ssrc_map()","anchor":"t:ssrc_map/0"},{"id":"stream/0","deprecated":false,"title":"stream()","anchor":"t:stream/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"token/0","deprecated":false,"title":"token()","anchor":"t:token/0"}],"key":"types"}],"nested_title":".VoiceWSState","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.WSState","deprecated":false,"group":"Structs","title":"Nostrum.Struct.WSState","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"conn/0","deprecated":false,"title":"conn()","anchor":"t:conn/0"},{"id":"conn_pid/0","deprecated":false,"title":"conn_pid()","anchor":"t:conn_pid/0"},{"id":"gateway/0","deprecated":false,"title":"gateway()","anchor":"t:gateway/0"},{"id":"heartbeat_ack/0","deprecated":false,"title":"heartbeat_ack()","anchor":"t:heartbeat_ack/0"},{"id":"heartbeat_interval/0","deprecated":false,"title":"heartbeat_interval()","anchor":"t:heartbeat_interval/0"},{"id":"last_heartbeat_ack/0","deprecated":false,"title":"last_heartbeat_ack()","anchor":"t:last_heartbeat_ack/0"},{"id":"last_heartbeat_send/0","deprecated":false,"title":"last_heartbeat_send()","anchor":"t:last_heartbeat_send/0"},{"id":"resume_gateway/0","deprecated":false,"title":"resume_gateway()","anchor":"t:resume_gateway/0"},{"id":"seq/0","deprecated":false,"title":"seq()","anchor":"t:seq/0"},{"id":"session/0","deprecated":false,"title":"session()","anchor":"t:session/0"},{"id":"shard_num/0","deprecated":false,"title":"shard_num()","anchor":"t:shard_num/0"},{"id":"stream/0","deprecated":false,"title":"stream()","anchor":"t:stream/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"total_shards/0","deprecated":false,"title":"total_shards()","anchor":"t:total_shards/0"},{"id":"zlib_ctx/0","deprecated":false,"title":"zlib_ctx()","anchor":"t:zlib_ctx/0"}],"key":"types"}],"nested_title":".WSState","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Webhook","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Webhook","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"avatar/0","deprecated":false,"title":"avatar()","anchor":"t:avatar/0"},{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"name/0","deprecated":false,"title":"name()","anchor":"t:name/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"token/0","deprecated":false,"title":"token()","anchor":"t:token/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"t:user/0"}],"key":"types"}],"nested_title":".Webhook","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Event.AutoModerationRuleExecute","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.AutoModerationRuleExecute","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"action/0","deprecated":false,"title":"action()","anchor":"t:action/0"},{"id":"alert_system_message_id/0","deprecated":false,"title":"alert_system_message_id()","anchor":"t:alert_system_message_id/0"},{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"content/0","deprecated":false,"title":"content()","anchor":"t:content/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"matched_content/0","deprecated":false,"title":"matched_content()","anchor":"t:matched_content/0"},{"id":"matched_keyword/0","deprecated":false,"title":"matched_keyword()","anchor":"t:matched_keyword/0"},{"id":"message_id/0","deprecated":false,"title":"message_id()","anchor":"t:message_id/0"},{"id":"rule_id/0","deprecated":false,"title":"rule_id()","anchor":"t:rule_id/0"},{"id":"rule_trigger_type/0","deprecated":false,"title":"rule_trigger_type()","anchor":"t:rule_trigger_type/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".AutoModerationRuleExecute","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.ChannelPinsUpdate","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.ChannelPinsUpdate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"last_pin_timestamp/0","deprecated":false,"title":"last_pin_timestamp()","anchor":"t:last_pin_timestamp/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".ChannelPinsUpdate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildBanAdd","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.GuildBanAdd","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"t:user/0"}],"key":"types"}],"nested_title":".GuildBanAdd","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildBanRemove","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.GuildBanRemove","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"t:user/0"}],"key":"types"}],"nested_title":".GuildBanRemove","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildIntegrationDelete","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.GuildIntegrationDelete","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"application_id/0","deprecated":false,"title":"application_id()","anchor":"t:application_id/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".GuildIntegrationDelete","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildIntegrationsUpdate","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.GuildIntegrationsUpdate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".GuildIntegrationsUpdate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildScheduledEventUserAdd","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"guild_scheduled_event_id/0","deprecated":false,"title":"guild_scheduled_event_id()","anchor":"t:guild_scheduled_event_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".GuildScheduledEventUserAdd","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildScheduledEventUserRemove","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"guild_scheduled_event_id/0","deprecated":false,"title":"guild_scheduled_event_id()","anchor":"t:guild_scheduled_event_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".GuildScheduledEventUserRemove","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.InviteCreate","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.InviteCreate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"code/0","deprecated":false,"title":"code()","anchor":"t:code/0"},{"id":"created_at/0","deprecated":false,"title":"created_at()","anchor":"t:created_at/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"inviter/0","deprecated":false,"title":"inviter()","anchor":"t:inviter/0"},{"id":"max_age/0","deprecated":false,"title":"max_age()","anchor":"t:max_age/0"},{"id":"max_uses/0","deprecated":false,"title":"max_uses()","anchor":"t:max_uses/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"target_user/0","deprecated":false,"title":"target_user()","anchor":"t:target_user/0"},{"id":"target_user_type/0","deprecated":false,"title":"target_user_type()","anchor":"t:target_user_type/0"},{"id":"temporary/0","deprecated":false,"title":"temporary()","anchor":"t:temporary/0"},{"id":"uses/0","deprecated":false,"title":"uses()","anchor":"t:uses/0"}],"key":"types"}],"nested_title":".InviteCreate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.InviteDelete","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.InviteDelete","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"code/0","deprecated":false,"title":"code()","anchor":"t:code/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".InviteDelete","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageDelete","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.MessageDelete","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".MessageDelete","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageDeleteBulk","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.MessageDeleteBulk","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"ids/0","deprecated":false,"title":"ids()","anchor":"t:ids/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".MessageDeleteBulk","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageReactionAdd","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.MessageReactionAdd","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"emoji/0","deprecated":false,"title":"emoji()","anchor":"t:emoji/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"member/0","deprecated":false,"title":"member()","anchor":"t:member/0"},{"id":"message_id/0","deprecated":false,"title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".MessageReactionAdd","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageReactionRemove","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.MessageReactionRemove","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"emoji/0","deprecated":false,"title":"emoji()","anchor":"t:emoji/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"message_id/0","deprecated":false,"title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".MessageReactionRemove","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageReactionRemoveAll","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.MessageReactionRemoveAll","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"message_id/0","deprecated":false,"title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".MessageReactionRemoveAll","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageReactionRemoveEmoji","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"emoji/0","deprecated":false,"title":"emoji()","anchor":"t:emoji/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"message_id/0","deprecated":false,"title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".MessageReactionRemoveEmoji","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.PartialApplication","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.PartialApplication","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"flags/0","deprecated":false,"title":"flags()","anchor":"t:flags/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".PartialApplication","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.PollVoteChange","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.PollVoteChange","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"answer_id/0","deprecated":false,"title":"answer_id()","anchor":"t:answer_id/0"},{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"message_id/0","deprecated":false,"title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"type/0","deprecated":false,"title":"type()","anchor":"t:type/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".PollVoteChange","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.Ready","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.Ready","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"application/0","deprecated":false,"title":"application()","anchor":"t:application/0"},{"id":"guilds/0","deprecated":false,"title":"guilds()","anchor":"t:guilds/0"},{"id":"session_id/0","deprecated":false,"title":"session_id()","anchor":"t:session_id/0"},{"id":"shard/0","deprecated":false,"title":"shard()","anchor":"t:shard/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"t:user/0"},{"id":"v/0","deprecated":false,"title":"v()","anchor":"t:v/0"}],"key":"types"}],"nested_title":".Ready","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.SpeakingUpdate","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.SpeakingUpdate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"current_url/0","deprecated":false,"title":"current_url()","anchor":"t:current_url/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"speaking/0","deprecated":false,"title":"speaking()","anchor":"t:speaking/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"timed_out/0","deprecated":false,"title":"timed_out()","anchor":"t:timed_out/0"}],"key":"types"}],"nested_title":".SpeakingUpdate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.ThreadListSync","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.ThreadListSync","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_ids/0","deprecated":false,"title":"channel_ids()","anchor":"t:channel_ids/0"},{"id":"guid_id/0","deprecated":false,"title":"guid_id()","anchor":"t:guid_id/0"},{"id":"members/0","deprecated":false,"title":"members()","anchor":"t:members/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"threads/0","deprecated":false,"title":"threads()","anchor":"t:threads/0"}],"key":"types"}],"nested_title":".ThreadListSync","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.ThreadMembersUpdate","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.ThreadMembersUpdate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"added_members/0","deprecated":false,"title":"added_members()","anchor":"t:added_members/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","deprecated":false,"title":"id()","anchor":"t:id/0"},{"id":"member_count/0","deprecated":false,"title":"member_count()","anchor":"t:member_count/0"},{"id":"removed_member_ids/0","deprecated":false,"title":"removed_member_ids()","anchor":"t:removed_member_ids/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".ThreadMembersUpdate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.TypingStart","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.TypingStart","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"member/0","deprecated":false,"title":"member()","anchor":"t:member/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"timestamp/0","deprecated":false,"title":"timestamp()","anchor":"t:timestamp/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".TypingStart","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.VoiceReady","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.VoiceReady","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".VoiceReady","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.VoiceServerUpdate","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.VoiceServerUpdate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"endpoint/0","deprecated":false,"title":"endpoint()","anchor":"t:endpoint/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"token/0","deprecated":false,"title":"token()","anchor":"t:token/0"}],"key":"types"}],"nested_title":".VoiceServerUpdate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.VoiceState","deprecated":false,"group":"Structs","title":"Nostrum.Struct.Event.VoiceState","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","deprecated":false,"title":"channel_id()","anchor":"t:channel_id/0"},{"id":"deaf/0","deprecated":false,"title":"deaf()","anchor":"t:deaf/0"},{"id":"guild_id/0","deprecated":false,"title":"guild_id()","anchor":"t:guild_id/0"},{"id":"member/0","deprecated":false,"title":"member()","anchor":"t:member/0"},{"id":"mute/0","deprecated":false,"title":"mute()","anchor":"t:mute/0"},{"id":"request_to_speak_timestamp/0","deprecated":false,"title":"request_to_speak_timestamp()","anchor":"t:request_to_speak_timestamp/0"},{"id":"self_deaf/0","deprecated":false,"title":"self_deaf()","anchor":"t:self_deaf/0"},{"id":"self_mute/0","deprecated":false,"title":"self_mute()","anchor":"t:self_mute/0"},{"id":"self_stream/0","deprecated":false,"title":"self_stream()","anchor":"t:self_stream/0"},{"id":"self_video/0","deprecated":false,"title":"self_video()","anchor":"t:self_video/0"},{"id":"session_id/0","deprecated":false,"title":"session_id()","anchor":"t:session_id/0"},{"id":"suppress/0","deprecated":false,"title":"suppress()","anchor":"t:suppress/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"},{"id":"user_id/0","deprecated":false,"title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".VoiceState","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Constants.ApplicationCommandOptionType","deprecated":false,"group":"Constants","title":"Nostrum.Constants.ApplicationCommandOptionType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"attachment/0","deprecated":false,"title":"attachment()","anchor":"attachment/0"},{"id":"boolean/0","deprecated":false,"title":"boolean()","anchor":"boolean/0"},{"id":"channel/0","deprecated":false,"title":"channel()","anchor":"channel/0"},{"id":"integer/0","deprecated":false,"title":"integer()","anchor":"integer/0"},{"id":"mentionable/0","deprecated":false,"title":"mentionable()","anchor":"mentionable/0"},{"id":"number/0","deprecated":false,"title":"number()","anchor":"number/0"},{"id":"role/0","deprecated":false,"title":"role()","anchor":"role/0"},{"id":"string/0","deprecated":false,"title":"string()","anchor":"string/0"},{"id":"sub_command/0","deprecated":false,"title":"sub_command()","anchor":"sub_command/0"},{"id":"sub_command_group/0","deprecated":false,"title":"sub_command_group()","anchor":"sub_command_group/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"user/0"}],"key":"functions"}],"nested_title":".ApplicationCommandOptionType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.ApplicationCommandPermissionType","deprecated":false,"group":"Constants","title":"Nostrum.Constants.ApplicationCommandPermissionType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"channel/0","deprecated":false,"title":"channel()","anchor":"channel/0"},{"id":"role/0","deprecated":false,"title":"role()","anchor":"role/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"user/0"}],"key":"functions"}],"nested_title":".ApplicationCommandPermissionType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.ApplicationCommandType","deprecated":false,"group":"Constants","title":"Nostrum.Constants.ApplicationCommandType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"chat_input/0","deprecated":false,"title":"chat_input()","anchor":"chat_input/0"},{"id":"message/0","deprecated":false,"title":"message()","anchor":"message/0"},{"id":"user/0","deprecated":false,"title":"user()","anchor":"user/0"}],"key":"functions"}],"nested_title":".ApplicationCommandType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.ButtonStyle","deprecated":false,"group":"Constants","title":"Nostrum.Constants.ButtonStyle","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"danger/0","deprecated":false,"title":"danger()","anchor":"danger/0"},{"id":"link/0","deprecated":false,"title":"link()","anchor":"link/0"},{"id":"primary/0","deprecated":false,"title":"primary()","anchor":"primary/0"},{"id":"secondary/0","deprecated":false,"title":"secondary()","anchor":"secondary/0"},{"id":"success/0","deprecated":false,"title":"success()","anchor":"success/0"}],"key":"functions"}],"nested_title":".ButtonStyle","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.ChannelType","deprecated":false,"group":"Constants","title":"Nostrum.Constants.ChannelType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"announcement_thread/0","deprecated":false,"title":"announcement_thread()","anchor":"announcement_thread/0"},{"id":"dm/0","deprecated":false,"title":"dm()","anchor":"dm/0"},{"id":"group_db/0","deprecated":false,"title":"group_db()","anchor":"group_db/0"},{"id":"guild_announcement/0","deprecated":false,"title":"guild_announcement()","anchor":"guild_announcement/0"},{"id":"guild_category/0","deprecated":false,"title":"guild_category()","anchor":"guild_category/0"},{"id":"guild_directory/0","deprecated":false,"title":"guild_directory()","anchor":"guild_directory/0"},{"id":"guild_forum/0","deprecated":false,"title":"guild_forum()","anchor":"guild_forum/0"},{"id":"guild_text/0","deprecated":false,"title":"guild_text()","anchor":"guild_text/0"},{"id":"guild_voice/0","deprecated":false,"title":"guild_voice()","anchor":"guild_voice/0"},{"id":"private_thread/0","deprecated":false,"title":"private_thread()","anchor":"private_thread/0"},{"id":"public_thread/0","deprecated":false,"title":"public_thread()","anchor":"public_thread/0"}],"key":"functions"}],"nested_title":".ChannelType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.ComponentType","deprecated":false,"group":"Constants","title":"Nostrum.Constants.ComponentType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"action_row/0","deprecated":false,"title":"action_row()","anchor":"action_row/0"},{"id":"button/0","deprecated":false,"title":"button()","anchor":"button/0"},{"id":"channel_select/0","deprecated":false,"title":"channel_select()","anchor":"channel_select/0"},{"id":"mentionable_select/0","deprecated":false,"title":"mentionable_select()","anchor":"mentionable_select/0"},{"id":"role_select/0","deprecated":false,"title":"role_select()","anchor":"role_select/0"},{"id":"string_select/0","deprecated":false,"title":"string_select()","anchor":"string_select/0"},{"id":"text_input/0","deprecated":false,"title":"text_input()","anchor":"text_input/0"},{"id":"user_select/0","deprecated":false,"title":"user_select()","anchor":"user_select/0"}],"key":"functions"}],"nested_title":".ComponentType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.InteractionCallbackType","deprecated":false,"group":"Constants","title":"Nostrum.Constants.InteractionCallbackType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"application_command_autocomplete_result/0","deprecated":false,"title":"application_command_autocomplete_result()","anchor":"application_command_autocomplete_result/0"},{"id":"channel_message_with_source/0","deprecated":false,"title":"channel_message_with_source()","anchor":"channel_message_with_source/0"},{"id":"deferred_channel_message_with_source/0","deprecated":false,"title":"deferred_channel_message_with_source()","anchor":"deferred_channel_message_with_source/0"},{"id":"deferred_update_message/0","deprecated":false,"title":"deferred_update_message()","anchor":"deferred_update_message/0"},{"id":"modal/0","deprecated":false,"title":"modal()","anchor":"modal/0"},{"id":"pong/0","deprecated":false,"title":"pong()","anchor":"pong/0"},{"id":"update_message/0","deprecated":false,"title":"update_message()","anchor":"update_message/0"}],"key":"functions"}],"nested_title":".InteractionCallbackType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.InteractionType","deprecated":false,"group":"Constants","title":"Nostrum.Constants.InteractionType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"application_command/0","deprecated":false,"title":"application_command()","anchor":"application_command/0"},{"id":"application_command_autocomplete/0","deprecated":false,"title":"application_command_autocomplete()","anchor":"application_command_autocomplete/0"},{"id":"message_component/0","deprecated":false,"title":"message_component()","anchor":"message_component/0"},{"id":"modal_submit/0","deprecated":false,"title":"modal_submit()","anchor":"modal_submit/0"},{"id":"ping/0","deprecated":false,"title":"ping()","anchor":"ping/0"}],"key":"functions"}],"nested_title":".InteractionType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.TextInputStyle","deprecated":false,"group":"Constants","title":"Nostrum.Constants.TextInputStyle","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"paragraph/0","deprecated":false,"title":"paragraph()","anchor":"paragraph/0"},{"id":"short/0","deprecated":false,"title":"short()","anchor":"short/0"}],"key":"functions"}],"nested_title":".TextInputStyle","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.WebhookType","deprecated":false,"group":"Constants","title":"Nostrum.Constants.WebhookType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"application/0","deprecated":false,"title":"application()","anchor":"application/0"},{"id":"channel_follower/0","deprecated":false,"title":"channel_follower()","anchor":"channel_follower/0"},{"id":"incoming/0","deprecated":false,"title":"incoming()","anchor":"incoming/0"}],"key":"functions"}],"nested_title":".WebhookType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Snowflake","deprecated":false,"group":"Utilities","title":"Nostrum.Snowflake","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"external_snowflake/0","deprecated":false,"title":"external_snowflake()","anchor":"t:external_snowflake/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"cast/1","deprecated":false,"title":"cast(value)","anchor":"cast/1"},{"id":"cast!/1","deprecated":false,"title":"cast!(value)","anchor":"cast!/1"},{"id":"creation_time/1","deprecated":false,"title":"creation_time(snowflake)","anchor":"creation_time/1"},{"id":"dump/1","deprecated":false,"title":"dump(snowflake)","anchor":"dump/1"},{"id":"from_datetime/1","deprecated":false,"title":"from_datetime(datetime)","anchor":"from_datetime/1"},{"id":"from_datetime!/1","deprecated":false,"title":"from_datetime!(datetime)","anchor":"from_datetime!/1"},{"id":"is_snowflake/1","deprecated":false,"title":"is_snowflake(term)","anchor":"is_snowflake/1"}],"key":"functions"}]},{"id":"Nostrum.Token","deprecated":false,"group":"Utilities","title":"Nostrum.Token","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"check_token!/0","deprecated":false,"title":"check_token!()","anchor":"check_token!/0"},{"id":"check_token!/1","deprecated":false,"title":"check_token!(token)","anchor":"check_token!/1"}],"key":"functions"}]},{"id":"Nostrum.Util","deprecated":false,"group":"Utilities","title":"Nostrum.Util","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"enum_to_struct/2","deprecated":false,"title":"enum_to_struct(enum, struct)","anchor":"enum_to_struct/2"},{"id":"gateway/0","deprecated":false,"title":"gateway()","anchor":"gateway/0"},{"id":"get_all_shard_latencies/0","deprecated":false,"title":"get_all_shard_latencies()","anchor":"get_all_shard_latencies/0"},{"id":"get_shard_latency/1","deprecated":false,"title":"get_shard_latency(state)","anchor":"get_shard_latency/1"},{"id":"maybe_to_atom/1","deprecated":false,"title":"maybe_to_atom(token)","anchor":"maybe_to_atom/1"},{"id":"maybe_to_datetime/1","deprecated":false,"title":"maybe_to_datetime(stamp)","anchor":"maybe_to_datetime/1"},{"id":"maybe_to_unixtime/1","deprecated":false,"title":"maybe_to_unixtime(stamp)","anchor":"maybe_to_unixtime/1"},{"id":"now/0","deprecated":false,"title":"now()","anchor":"now/0"},{"id":"now_iso/0","deprecated":false,"title":"now_iso()","anchor":"now_iso/0"},{"id":"num_shards/0","deprecated":false,"title":"num_shards()","anchor":"num_shards/0"},{"id":"safe_atom_map/1","deprecated":false,"title":"safe_atom_map(term)","anchor":"safe_atom_map/1"},{"id":"unused_atoms/0","deprecated":false,"title":"unused_atoms()","anchor":"unused_atoms/0"},{"id":"usec_now/0","deprecated":false,"title":"usec_now()","anchor":"usec_now/0"}],"key":"functions"}]},{"id":"Nostrum.Store.GuildShardMapping","deprecated":false,"group":"Stores","title":"Nostrum.Store.GuildShardMapping","sections":[{"id":"Purpose","anchor":"module-purpose"},{"id":"Configuration","anchor":"module-configuration"}],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/2","deprecated":false,"title":"create(id, shard_num)","anchor":"c:create/2"},{"id":"delete/1","deprecated":false,"title":"delete(id)","anchor":"c:delete/1"},{"id":"get/1","deprecated":false,"title":"get(id)","anchor":"c:get/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"create/2","deprecated":false,"title":"create(guild_id, shard_num)","anchor":"create/2"},{"id":"delete/1","deprecated":false,"title":"delete(guild_id)","anchor":"delete/1"},{"id":"get/1","deprecated":false,"title":"get(guild_id)","anchor":"get/1"}],"key":"functions"}],"nested_title":".GuildShardMapping","nested_context":"Nostrum.Store"},{"id":"Nostrum.Store.Supervisor","deprecated":false,"group":"Stores","title":"Nostrum.Store.Supervisor","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"init/1","deprecated":false,"title":"init(list)","anchor":"init/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(list)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".Supervisor","nested_context":"Nostrum.Store"},{"id":"Nostrum.Store.UnavailableGuild","deprecated":false,"group":"Stores","title":"Nostrum.Store.UnavailableGuild","sections":[{"id":"Purpose","anchor":"module-purpose"},{"id":"Configuration","anchor":"module-configuration"},{"id":"Implementation","anchor":"module-implementation"}],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(id)","anchor":"c:create/1"},{"id":"is?/1","deprecated":false,"title":"is?(id)","anchor":"c:is?/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"create/1","deprecated":false,"title":"create(guild_id)","anchor":"create/1"},{"id":"is?/1","deprecated":false,"title":"is?(guild_id)","anchor":"is?/1"}],"key":"functions"}],"nested_title":".UnavailableGuild","nested_context":"Nostrum.Store"},{"id":"Nostrum.Cache.ChannelCache.ETS","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelCache.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(channel)","anchor":"create/1"},{"id":"delete/1","deprecated":false,"title":"delete(id)","anchor":"delete/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"update/1","deprecated":false,"title":"update(channel)","anchor":"update/1"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.ChannelCache"},{"id":"Nostrum.Cache.ChannelCache.Mnesia","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelCache.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","deprecated":false,"title":"clear()","anchor":"clear/0"},{"id":"create/1","deprecated":false,"title":"create(channel)","anchor":"create/1"},{"id":"delete/1","deprecated":false,"title":"delete(id)","anchor":"delete/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"teardown/0","deprecated":false,"title":"teardown()","anchor":"teardown/0"},{"id":"update/1","deprecated":false,"title":"update(channel)","anchor":"update/1"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.ChannelCache"},{"id":"Nostrum.Cache.ChannelCache.NoOp","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelCache.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.ChannelCache"},{"id":"Nostrum.Cache.ChannelGuildMapping.ETS","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelGuildMapping.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/2","deprecated":false,"title":"create(channel_id, guild_id)","anchor":"create/2"},{"id":"delete/1","deprecated":false,"title":"delete(channel_id)","anchor":"delete/1"},{"id":"get/1","deprecated":false,"title":"get(channel_id)","anchor":"get/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.ChannelGuildMapping"},{"id":"Nostrum.Cache.ChannelGuildMapping.Mnesia","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/2","deprecated":false,"title":"create(channel_id, guild_id)","anchor":"create/2"},{"id":"delete/1","deprecated":false,"title":"delete(channel_id)","anchor":"delete/1"},{"id":"get/1","deprecated":false,"title":"get(channel_id)","anchor":"get/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"teardown/0","deprecated":false,"title":"teardown()","anchor":"teardown/0"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.ChannelGuildMapping"},{"id":"Nostrum.Cache.ChannelGuildMapping.NoOp","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelGuildMapping.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.ChannelGuildMapping"},{"id":"Nostrum.Cache.GuildCache.ETS","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.GuildCache.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"channel_create/2","deprecated":false,"title":"channel_create(guild_id, channel)","anchor":"channel_create/2"},{"id":"channel_delete/2","deprecated":false,"title":"channel_delete(guild_id, channel_id)","anchor":"channel_delete/2"},{"id":"channel_update/2","deprecated":false,"title":"channel_update(guild_id, channel)","anchor":"channel_update/2"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(payload)","anchor":"create/1"},{"id":"delete/1","deprecated":false,"title":"delete(guild_id)","anchor":"delete/1"},{"id":"emoji_update/2","deprecated":false,"title":"emoji_update(guild_id, emojis)","anchor":"emoji_update/2"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"member_count_down/1","deprecated":false,"title":"member_count_down(guild_id)","anchor":"member_count_down/1"},{"id":"member_count_up/1","deprecated":false,"title":"member_count_up(guild_id)","anchor":"member_count_up/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"role_create/2","deprecated":false,"title":"role_create(guild_id, role)","anchor":"role_create/2"},{"id":"role_delete/2","deprecated":false,"title":"role_delete(guild_id, role_id)","anchor":"role_delete/2"},{"id":"role_update/2","deprecated":false,"title":"role_update(guild_id, role)","anchor":"role_update/2"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"tabname/0","deprecated":false,"title":"tabname()","anchor":"tabname/0"},{"id":"update/1","deprecated":false,"title":"update(payload)","anchor":"update/1"},{"id":"voice_state_update/2","deprecated":false,"title":"voice_state_update(guild_id, payload)","anchor":"voice_state_update/2"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.GuildCache"},{"id":"Nostrum.Cache.GuildCache.Mnesia","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.GuildCache.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"channel_create/2","deprecated":false,"title":"channel_create(guild_id, channel)","anchor":"channel_create/2"},{"id":"channel_delete/2","deprecated":false,"title":"channel_delete(guild_id, channel_id)","anchor":"channel_delete/2"},{"id":"channel_update/2","deprecated":false,"title":"channel_update(guild_id, channel)","anchor":"channel_update/2"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","deprecated":false,"title":"clear()","anchor":"clear/0"},{"id":"create/1","deprecated":false,"title":"create(payload)","anchor":"create/1"},{"id":"delete/1","deprecated":false,"title":"delete(guild_id)","anchor":"delete/1"},{"id":"emoji_update/2","deprecated":false,"title":"emoji_update(guild_id, payload)","anchor":"emoji_update/2"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"member_count_down/1","deprecated":false,"title":"member_count_down(guild_id)","anchor":"member_count_down/1"},{"id":"member_count_up/1","deprecated":false,"title":"member_count_up(guild_id)","anchor":"member_count_up/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"role_create/2","deprecated":false,"title":"role_create(guild_id, payload)","anchor":"role_create/2"},{"id":"role_delete/2","deprecated":false,"title":"role_delete(guild_id, role_id)","anchor":"role_delete/2"},{"id":"role_update/2","deprecated":false,"title":"role_update(guild_id, role)","anchor":"role_update/2"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"teardown/0","deprecated":false,"title":"teardown()","anchor":"teardown/0"},{"id":"update/1","deprecated":false,"title":"update(payload)","anchor":"update/1"},{"id":"voice_state_update/2","deprecated":false,"title":"voice_state_update(guild_id, payload)","anchor":"voice_state_update/2"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.GuildCache"},{"id":"Nostrum.Cache.GuildCache.NoOp","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.GuildCache.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.GuildCache"},{"id":"Nostrum.Cache.MemberCache.ETS","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.MemberCache.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/2","deprecated":false,"title":"bulk_create(guild_id, members)","anchor":"bulk_create/2"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","deprecated":false,"title":"clear()","anchor":"clear/0"},{"id":"create/2","deprecated":false,"title":"create(guild_id, payload)","anchor":"create/2"},{"id":"delete/2","deprecated":false,"title":"delete(guild_id, user_id)","anchor":"delete/2"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"update/2","deprecated":false,"title":"update(guild_id, payload)","anchor":"update/2"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.MemberCache"},{"id":"Nostrum.Cache.MemberCache.Mnesia","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.MemberCache.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/2","deprecated":false,"title":"bulk_create(guild_id, members)","anchor":"bulk_create/2"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","deprecated":false,"title":"clear()","anchor":"clear/0"},{"id":"create/2","deprecated":false,"title":"create(guild_id, payload)","anchor":"create/2"},{"id":"delete/2","deprecated":false,"title":"delete(guild_id, user_id)","anchor":"delete/2"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"teardown/0","deprecated":false,"title":"teardown()","anchor":"teardown/0"},{"id":"update/2","deprecated":false,"title":"update(guild_id, payload)","anchor":"update/2"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.MemberCache"},{"id":"Nostrum.Cache.MemberCache.NoOp","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.MemberCache.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.MemberCache"},{"id":"Nostrum.Cache.PresenceCache.ETS","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.PresenceCache.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/2","deprecated":false,"title":"bulk_create(guild_id, presences)","anchor":"bulk_create/2"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(presence)","anchor":"create/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"update/1","deprecated":false,"title":"update(new)","anchor":"update/1"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.PresenceCache"},{"id":"Nostrum.Cache.PresenceCache.Mnesia","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.PresenceCache.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/2","deprecated":false,"title":"bulk_create(guild_id, presences)","anchor":"bulk_create/2"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","deprecated":false,"title":"clear()","anchor":"clear/0"},{"id":"create/1","deprecated":false,"title":"create(presence)","anchor":"create/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"teardown/0","deprecated":false,"title":"teardown()","anchor":"teardown/0"},{"id":"update/1","deprecated":false,"title":"update(new)","anchor":"update/1"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.PresenceCache"},{"id":"Nostrum.Cache.PresenceCache.NoOp","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.PresenceCache.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.PresenceCache"},{"id":"Nostrum.Cache.UserCache.ETS","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.UserCache.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/1","deprecated":false,"title":"bulk_create(users)","anchor":"bulk_create/1"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(payload)","anchor":"create/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"update/1","deprecated":false,"title":"update(info)","anchor":"update/1"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.UserCache"},{"id":"Nostrum.Cache.UserCache.Mnesia","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.UserCache.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/1","deprecated":false,"title":"bulk_create(users)","anchor":"bulk_create/1"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","deprecated":false,"title":"clear()","anchor":"clear/0"},{"id":"create/1","deprecated":false,"title":"create(payload)","anchor":"create/1"},{"id":"delete/1","deprecated":false,"title":"delete(user_id)","anchor":"delete/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","deprecated":false,"title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"teardown/0","deprecated":false,"title":"teardown()","anchor":"teardown/0"},{"id":"update/1","deprecated":false,"title":"update(payload)","anchor":"update/1"},{"id":"wrap_qlc/1","deprecated":false,"title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.UserCache"},{"id":"Nostrum.Cache.UserCache.NoOp","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Cache.UserCache.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.UserCache"},{"id":"Nostrum.Store.GuildShardMapping.ETS","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Store.GuildShardMapping.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/2","deprecated":false,"title":"create(guild_id, shard_num)","anchor":"create/2"},{"id":"delete/1","deprecated":false,"title":"delete(guild_id)","anchor":"delete/1"},{"id":"get/1","deprecated":false,"title":"get(guild_id)","anchor":"get/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Store.GuildShardMapping"},{"id":"Nostrum.Store.GuildShardMapping.Mnesia","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Store.GuildShardMapping.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/2","deprecated":false,"title":"create(guild_id, shard_num)","anchor":"create/2"},{"id":"delete/1","deprecated":false,"title":"delete(guild_id)","anchor":"delete/1"},{"id":"get/1","deprecated":false,"title":"get(guild_id)","anchor":"get/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"teardown/0","deprecated":false,"title":"teardown()","anchor":"teardown/0"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Store.GuildShardMapping"},{"id":"Nostrum.Store.UnavailableGuild.ETS","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Store.UnavailableGuild.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(guild_id)","anchor":"create/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"is?/1","deprecated":false,"title":"is?(guild_id)","anchor":"is?/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Store.UnavailableGuild"},{"id":"Nostrum.Store.UnavailableGuild.Mnesia","deprecated":false,"group":"Pluggable caches & stores","title":"Nostrum.Store.UnavailableGuild.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","deprecated":false,"title":"create(guild_id)","anchor":"create/1"},{"id":"init/1","deprecated":false,"title":"init(init_arg)","anchor":"init/1"},{"id":"is?/1","deprecated":false,"title":"is?(guild_id)","anchor":"is?/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","deprecated":false,"title":"table()","anchor":"table/0"},{"id":"teardown/0","deprecated":false,"title":"teardown()","anchor":"teardown/0"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Store.UnavailableGuild"},{"id":"Nostrum.Api.Ratelimiter","deprecated":false,"group":"Internal modules","title":"Nostrum.Api.Ratelimiter","sections":[{"id":"Purpose","anchor":"module-purpose"},{"id":"Asynchronous requests","anchor":"module-asynchronous-requests"},{"id":"Multi-node","anchor":"module-multi-node"},{"id":"Inner workings","anchor":"module-inner-workings"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"bucket/0","deprecated":false,"title":"bucket()","anchor":"t:bucket/0"},{"id":"queued_request/0","deprecated":false,"title":"queued_request()","anchor":"t:queued_request/0"},{"id":"remaining/0","deprecated":false,"title":"remaining()","anchor":"t:remaining/0"},{"id":"request/0","deprecated":false,"title":"request()","anchor":"t:request/0"},{"id":"state/0","deprecated":false,"title":"state()","anchor":"t:state/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"callback_mode/0","deprecated":false,"title":"callback_mode()","anchor":"callback_mode/0"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(opts)","anchor":"child_spec/1"},{"id":"code_change/4","deprecated":false,"title":"code_change(version, state, data, extra)","anchor":"code_change/4"},{"id":"connected/3","deprecated":false,"title":"connected(arg1, request, data)","anchor":"connected/3"},{"id":"connecting/3","deprecated":false,"title":"connecting(arg1, arg2, data)","anchor":"connecting/3"},{"id":"disconnected/3","deprecated":false,"title":"disconnected(arg, arg2, data)","anchor":"disconnected/3"},{"id":"get_endpoint/2","deprecated":false,"title":"get_endpoint(route, method)","anchor":"get_endpoint/2"},{"id":"global_limit/3","deprecated":false,"title":"global_limit(arg1, next, data)","anchor":"global_limit/3"},{"id":"init/1","deprecated":false,"title":"init(list)","anchor":"init/1"},{"id":"queue/1","deprecated":false,"title":"queue(request)","anchor":"queue/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(opts)","anchor":"start_link/1"}],"key":"functions"}]},{"id":"Nostrum.Shard.Session","deprecated":false,"group":"Internal modules","title":"Nostrum.Shard.Session","sections":[{"id":"Purpose","anchor":"module-purpose"},{"id":"Inner workings","anchor":"module-inner-workings"}],"nodeGroups":[{"name":"Functions","nodes":[{"id":"callback_mode/0","deprecated":false,"title":"callback_mode()","anchor":"callback_mode/0"},{"id":"child_spec/1","deprecated":false,"title":"child_spec(opts)","anchor":"child_spec/1"},{"id":"connected/3","deprecated":false,"title":"connected(arg1, request, data)","anchor":"connected/3"},{"id":"connecting_http/3","deprecated":false,"title":"connecting_http(arg1, from, data)","anchor":"connecting_http/3"},{"id":"connecting_ws/3","deprecated":false,"title":"connecting_ws(arg1, arg2, data)","anchor":"connecting_ws/3"},{"id":"disconnected/3","deprecated":false,"title":"disconnected(arg1, arg2, data)","anchor":"disconnected/3"},{"id":"get_ws_state/1","deprecated":false,"title":"get_ws_state(pid)","anchor":"get_ws_state/1"},{"id":"init/1","deprecated":false,"title":"init(list)","anchor":"init/1"},{"id":"request_guild_members/3","deprecated":false,"title":"request_guild_members(pid, guild_id, limit \\\\ 0)","anchor":"request_guild_members/3"},{"id":"start_link/2","deprecated":false,"title":"start_link(shard_opts, statem_opts)","anchor":"start_link/2"},{"id":"update_status/5","deprecated":false,"title":"update_status(pid, status, game, stream, type)","anchor":"update_status/5"},{"id":"update_voice_state/5","deprecated":false,"title":"update_voice_state(pid, guild_id, channel_id, self_mute, self_deaf)","anchor":"update_voice_state/5"}],"key":"functions"}]},{"id":"Nostrum.Shard.Supervisor","deprecated":false,"group":"Internal modules","title":"Nostrum.Shard.Supervisor","sections":[{"id":"Implementation","anchor":"module-implementation"}],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","deprecated":false,"title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"start_link/1","deprecated":false,"title":"start_link(args)","anchor":"start_link/1"},{"id":"update_status/4","deprecated":false,"title":"update_status(status, game, stream, type)","anchor":"update_status/4"},{"id":"update_voice_state/4","deprecated":false,"title":"update_voice_state(guild_id, channel_id, self_mute, self_deaf)","anchor":"update_voice_state/4"}],"key":"functions"}]},{"id":"Nostrum.StateMachineTranslator","deprecated":false,"group":"Internal modules","title":"Nostrum.StateMachineTranslator","sections":[{"id":"Reasoning","anchor":"module-reasoning"}],"nodeGroups":[{"name":"Functions","nodes":[{"id":"translate/4","deprecated":false,"title":"translate(min_level, arg2, arg3, arg4)","anchor":"translate/4"}],"key":"functions"}]},{"id":"Nostrum.Error.ApiError","deprecated":false,"group":"Exceptions","title":"Nostrum.Error.ApiError","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"detailed_error/0","deprecated":false,"title":"detailed_error()","anchor":"t:detailed_error/0"},{"id":"discord_status_code/0","deprecated":false,"title":"discord_status_code()","anchor":"t:discord_status_code/0"},{"id":"error/0","deprecated":false,"title":"error()","anchor":"t:error/0"},{"id":"error_list_map/0","deprecated":false,"title":"error_list_map()","anchor":"t:error_list_map/0"},{"id":"errors/0","deprecated":false,"title":"errors()","anchor":"t:errors/0"},{"id":"response/0","deprecated":false,"title":"response()","anchor":"t:response/0"},{"id":"status_code/0","deprecated":false,"title":"status_code()","anchor":"t:status_code/0"},{"id":"t/0","deprecated":false,"title":"t()","anchor":"t:t/0"}],"key":"types"}]},{"id":"Nostrum.Error.CacheError","deprecated":false,"group":"Exceptions","title":"Nostrum.Error.CacheError","sections":[]},{"id":"Nostrum.Error.VoiceError","deprecated":false,"group":"Exceptions","title":"Nostrum.Error.VoiceError","sections":[]}],"extras":[{"id":"api-reference","group":"","title":"API Reference","headers":[{"id":"Modules","anchor":"modules"},{"id":"Mix Tasks","anchor":"mix-tasks"}]},{"id":"intro","group":"","title":"Introduction","headers":[{"id":"Setup","anchor":"setup"},{"id":"Configuration options","anchor":"configuration-options"},{"id":"Logging","anchor":"logging"},{"id":"Example bots","anchor":"example-bots"}]},{"id":"api","group":"","title":"API","headers":[{"id":"Banged (!) API methods","anchor":"banged-api-methods"},{"id":"Abstractions","anchor":"abstractions"},{"id":"Ratelimiting","anchor":"ratelimiting"},{"id":"REST-only","anchor":"rest-only"}]},{"id":"application_commands","group":"","title":"Application commands","headers":[{"id":"Permissions required","anchor":"permissions-required"},{"id":"Getting started","anchor":"getting-started"},{"id":"Receiving interactions","anchor":"receiving-interactions"},{"id":"Responding to interactions","anchor":"responding-to-interactions"}]},{"id":"gateway_intents","group":"","title":"Gateway Intents","headers":[]},{"id":"state","group":"Functionality","title":"State","headers":[{"id":"Caches","anchor":"caches"},{"id":"Query list comprehensions","anchor":"query-list-comprehensions"},{"id":"Internal state","anchor":"internal-state"}]},{"id":"event_handling","group":"Functionality","title":"Event handling","headers":[]},{"id":"voice","group":"Functionality","title":"Voice","headers":[{"id":"Voice channels","anchor":"voice-channels"},{"id":"FFmpeg","anchor":"ffmpeg"},{"id":"youtube-dl","anchor":"youtube-dl"},{"id":"streamlink","anchor":"streamlink"},{"id":"Audio Timeout","anchor":"audio-timeout"},{"id":"Audio Frames Per Burst","anchor":"audio-frames-per-burst"},{"id":"Voice Events","anchor":"voice-events"}]},{"id":"pluggable_caching","group":"Advanced","title":"Pluggable caching","headers":[{"id":"Implementations","anchor":"implementations"},{"id":"Cache invalidation","anchor":"cache-invalidation"},{"id":"Cache performance","anchor":"cache-performance"}]},{"id":"multi_node","group":"Advanced","title":"Multi-node","headers":[{"id":"High availability","anchor":"high-availability"}]},{"id":"hot_code_upgrade","group":"Advanced","title":"Hot code upgrade","headers":[]}],"tasks":[{"id":"Mix.Tasks.Gh.Docs","deprecated":false,"group":"","title":"mix gh.docs","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"run/1","deprecated":false,"title":"run(_)","anchor":"run/1"}],"key":"functions"}]}]} \ No newline at end of file diff --git a/dist/sidebar_items-FF0CC478.js b/dist/sidebar_items-FF0CC478.js deleted file mode 100644 index e0fb8bbfe..000000000 --- a/dist/sidebar_items-FF0CC478.js +++ /dev/null @@ -1 +0,0 @@ -sidebarNodes={"modules":[{"id":"Nostrum.Api","group":"Api","title":"Nostrum.Api","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"allowed_mention/0","title":"allowed_mention()","anchor":"t:allowed_mention/0"},{"id":"allowed_mentions/0","title":"allowed_mentions()","anchor":"t:allowed_mentions/0"},{"id":"emoji/0","title":"emoji()","anchor":"t:emoji/0"},{"id":"error/0","title":"error()","anchor":"t:error/0"},{"id":"limit/0","title":"limit()","anchor":"t:limit/0"},{"id":"locator/0","title":"locator()","anchor":"t:locator/0"},{"id":"matrix/0","title":"matrix()","anchor":"t:matrix/0"},{"id":"options/0","title":"options()","anchor":"t:options/0"},{"id":"status/0","title":"status()","anchor":"t:status/0"},{"id":"thread_with_message_params/0","title":"thread_with_message_params()","anchor":"t:thread_with_message_params/0"},{"id":"thread_without_message_params/0","title":"thread_without_message_params()","anchor":"t:thread_without_message_params/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"add_guild_member/3","title":"add_guild_member(guild_id, user_id, options)","anchor":"add_guild_member/3"},{"id":"add_guild_member!/3","title":"add_guild_member!(guild_id, user_id, options)","anchor":"add_guild_member!/3"},{"id":"add_guild_member_role/4","title":"add_guild_member_role(guild_id, user_id, role_id, reason \\\\ nil)","anchor":"add_guild_member_role/4"},{"id":"add_pinned_channel_message/2","title":"add_pinned_channel_message(channel_id, message_id)","anchor":"add_pinned_channel_message/2"},{"id":"add_pinned_channel_message!/2","title":"add_pinned_channel_message!(channel_id, message_id)","anchor":"add_pinned_channel_message!/2"},{"id":"add_thread_member/2","title":"add_thread_member(thread_id, user_id)","anchor":"add_thread_member/2"},{"id":"batch_edit_application_command_permissions/3","title":"batch_edit_application_command_permissions(application_id \\\\ Me.get().id, guild_id, permissions)","anchor":"batch_edit_application_command_permissions/3"},{"id":"begin_guild_prune/3","title":"begin_guild_prune(guild_id, days, reason \\\\ nil)","anchor":"begin_guild_prune/3"},{"id":"begin_guild_prune!/3","title":"begin_guild_prune!(guild_id, days, reason)","anchor":"begin_guild_prune!/3"},{"id":"bulk_delete_messages/3","title":"bulk_delete_messages(channel_id, messages, filter \\\\ true)","anchor":"bulk_delete_messages/3"},{"id":"bulk_delete_messages!/3","title":"bulk_delete_messages!(channel_id, messages, filter \\\\ true)","anchor":"bulk_delete_messages!/3"},{"id":"bulk_overwrite_global_application_commands/2","title":"bulk_overwrite_global_application_commands(application_id \\\\ Me.get().id, commands)","anchor":"bulk_overwrite_global_application_commands/2"},{"id":"bulk_overwrite_guild_application_commands/3","title":"bulk_overwrite_guild_application_commands(application_id \\\\ Me.get().id, guild_id, commands)","anchor":"bulk_overwrite_guild_application_commands/3"},{"id":"create_channel_invite/3","title":"create_channel_invite(channel_id, options \\\\ [], reason \\\\ nil)","anchor":"create_channel_invite/3"},{"id":"create_channel_invite!/3","title":"create_channel_invite!(channel_id, options \\\\ [], reason \\\\ nil)","anchor":"create_channel_invite!/3"},{"id":"create_dm/1","title":"create_dm(user_id)","anchor":"create_dm/1"},{"id":"create_dm!/1","title":"create_dm!(user_id)","anchor":"create_dm!/1"},{"id":"create_followup_message/3","title":"create_followup_message(application_id \\\\ Me.get().id, token, webhook_payload)","anchor":"create_followup_message/3"},{"id":"create_followup_message!/3","title":"create_followup_message!(application_id \\\\ Me.get().id, token, webhook_payload)","anchor":"create_followup_message!/3"},{"id":"create_global_application_command/2","title":"create_global_application_command(application_id \\\\ Me.get().id, command)","anchor":"create_global_application_command/2"},{"id":"create_group_dm/2","title":"create_group_dm(access_tokens, nicks)","anchor":"create_group_dm/2"},{"id":"create_group_dm!/2","title":"create_group_dm!(access_tokens, nicks)","anchor":"create_group_dm!/2"},{"id":"create_guild_application_command/3","title":"create_guild_application_command(application_id \\\\ Me.get().id, guild_id, command)","anchor":"create_guild_application_command/3"},{"id":"create_guild_auto_moderation_rule/2","title":"create_guild_auto_moderation_rule(guild_id, options)","anchor":"create_guild_auto_moderation_rule/2"},{"id":"create_guild_ban/4","title":"create_guild_ban(guild_id, user_id, days_to_delete, reason \\\\ nil)","anchor":"create_guild_ban/4"},{"id":"create_guild_channel/2","title":"create_guild_channel(guild_id, options)","anchor":"create_guild_channel/2"},{"id":"create_guild_channel!/2","title":"create_guild_channel!(guild_id, options)","anchor":"create_guild_channel!/2"},{"id":"create_guild_emoji/3","title":"create_guild_emoji(guild_id, options, reason \\\\ nil)","anchor":"create_guild_emoji/3"},{"id":"create_guild_emoji!/3","title":"create_guild_emoji!(guild_id, params, reason \\\\ nil)","anchor":"create_guild_emoji!/3"},{"id":"create_guild_integrations/2","title":"create_guild_integrations(guild_id, options)","anchor":"create_guild_integrations/2"},{"id":"create_guild_role/3","title":"create_guild_role(guild_id, options, reason \\\\ nil)","anchor":"create_guild_role/3"},{"id":"create_guild_role!/3","title":"create_guild_role!(guild_id, options, reason \\\\ nil)","anchor":"create_guild_role!/3"},{"id":"create_guild_scheduled_event/3","title":"create_guild_scheduled_event(guild_id, reason \\\\ nil, options)","anchor":"create_guild_scheduled_event/3"},{"id":"create_interaction_response/2","title":"create_interaction_response(interaction, response)","anchor":"create_interaction_response/2"},{"id":"create_interaction_response/3","title":"create_interaction_response(id, token, options)","anchor":"create_interaction_response/3"},{"id":"create_interaction_response!/2","title":"create_interaction_response!(interaction, response)","anchor":"create_interaction_response!/2"},{"id":"create_interaction_response!/3","title":"create_interaction_response!(id, token, response)","anchor":"create_interaction_response!/3"},{"id":"create_message/2","title":"create_message(channel_id, options)","anchor":"create_message/2"},{"id":"create_message!/2","title":"create_message!(channel_id, options)","anchor":"create_message!/2"},{"id":"create_reaction/3","title":"create_reaction(channel_id, message_id, emoji)","anchor":"create_reaction/3"},{"id":"create_reaction!/3","title":"create_reaction!(channel_id, message_id, emoji)","anchor":"create_reaction!/3"},{"id":"create_webhook/3","title":"create_webhook(channel_id, args, reason \\\\ nil)","anchor":"create_webhook/3"},{"id":"delete_all_reactions/2","title":"delete_all_reactions(channel_id, message_id)","anchor":"delete_all_reactions/2"},{"id":"delete_all_reactions!/2","title":"delete_all_reactions!(channel_id, message_id)","anchor":"delete_all_reactions!/2"},{"id":"delete_channel/2","title":"delete_channel(channel_id, reason \\\\ nil)","anchor":"delete_channel/2"},{"id":"delete_channel!/2","title":"delete_channel!(channel_id, reason \\\\ nil)","anchor":"delete_channel!/2"},{"id":"delete_channel_permissions/3","title":"delete_channel_permissions(channel_id, overwrite_id, reason \\\\ nil)","anchor":"delete_channel_permissions/3"},{"id":"delete_global_application_command/2","title":"delete_global_application_command(application_id \\\\ Me.get().id, command_id)","anchor":"delete_global_application_command/2"},{"id":"delete_guild/1","title":"delete_guild(guild_id)","anchor":"delete_guild/1"},{"id":"delete_guild!/1","title":"delete_guild!(guild_id)","anchor":"delete_guild!/1"},{"id":"delete_guild_application_command/3","title":"delete_guild_application_command(application_id \\\\ Me.get().id, guild_id, command_id)","anchor":"delete_guild_application_command/3"},{"id":"delete_guild_auto_moderation_rule/2","title":"delete_guild_auto_moderation_rule(guild_id, rule_id)","anchor":"delete_guild_auto_moderation_rule/2"},{"id":"delete_guild_emoji/3","title":"delete_guild_emoji(guild_id, emoji_id, reason \\\\ nil)","anchor":"delete_guild_emoji/3"},{"id":"delete_guild_emoji!/3","title":"delete_guild_emoji!(guild_id, emoji_id, reason \\\\ nil)","anchor":"delete_guild_emoji!/3"},{"id":"delete_guild_integrations/2","title":"delete_guild_integrations(guild_id, integration_id)","anchor":"delete_guild_integrations/2"},{"id":"delete_guild_role/3","title":"delete_guild_role(guild_id, role_id, reason \\\\ nil)","anchor":"delete_guild_role/3"},{"id":"delete_guild_role!/3","title":"delete_guild_role!(guild_id, role_id, reason \\\\ nil)","anchor":"delete_guild_role!/3"},{"id":"delete_guild_scheduled_event/2","title":"delete_guild_scheduled_event(guild_id, event_id)","anchor":"delete_guild_scheduled_event/2"},{"id":"delete_interaction_followup_message/3","title":"delete_interaction_followup_message(application_id \\\\ Me.get().id, token, message_id)","anchor":"delete_interaction_followup_message/3"},{"id":"delete_interaction_followup_message!/3","title":"delete_interaction_followup_message!(application_id \\\\ Me.get().id, token, message_id)","anchor":"delete_interaction_followup_message!/3"},{"id":"delete_interaction_response/1","title":"delete_interaction_response(interaction)","anchor":"delete_interaction_response/1"},{"id":"delete_interaction_response/2","title":"delete_interaction_response(id \\\\ Me.get().id, token)","anchor":"delete_interaction_response/2"},{"id":"delete_interaction_response!/1","title":"delete_interaction_response!(interaction)","anchor":"delete_interaction_response!/1"},{"id":"delete_interaction_response!/2","title":"delete_interaction_response!(id \\\\ Me.get().id, token)","anchor":"delete_interaction_response!/2"},{"id":"delete_invite/1","title":"delete_invite(invite_code)","anchor":"delete_invite/1"},{"id":"delete_invite!/1","title":"delete_invite!(invite_code)","anchor":"delete_invite!/1"},{"id":"delete_message/1","title":"delete_message(message)","anchor":"delete_message/1"},{"id":"delete_message/2","title":"delete_message(channel_id, message_id)","anchor":"delete_message/2"},{"id":"delete_message!/1","title":"delete_message!(message)","anchor":"delete_message!/1"},{"id":"delete_message!/2","title":"delete_message!(channel_id, message_id)","anchor":"delete_message!/2"},{"id":"delete_own_reaction/3","title":"delete_own_reaction(channel_id, message_id, emoji)","anchor":"delete_own_reaction/3"},{"id":"delete_own_reaction!/3","title":"delete_own_reaction!(channel_id, message_id, emoji)","anchor":"delete_own_reaction!/3"},{"id":"delete_pinned_channel_message/2","title":"delete_pinned_channel_message(channel_id, message_id)","anchor":"delete_pinned_channel_message/2"},{"id":"delete_pinned_channel_message!/2","title":"delete_pinned_channel_message!(channel_id, message_id)","anchor":"delete_pinned_channel_message!/2"},{"id":"delete_reaction/3","title":"delete_reaction(channel_id, message_id, emoji)","anchor":"delete_reaction/3"},{"id":"delete_reaction!/3","title":"delete_reaction!(channel_id, message_id, emoji)","anchor":"delete_reaction!/3"},{"id":"delete_user_reaction/4","title":"delete_user_reaction(channel_id, message_id, emoji, user_id)","anchor":"delete_user_reaction/4"},{"id":"delete_user_reaction!/4","title":"delete_user_reaction!(channel_id, message_id, emoji, user_id)","anchor":"delete_user_reaction!/4"},{"id":"delete_webhook/2","title":"delete_webhook(webhook_id, reason \\\\ nil)","anchor":"delete_webhook/2"},{"id":"edit_application_command_permissions/4","title":"edit_application_command_permissions(application_id \\\\ Me.get().id, guild_id, command_id, permissions)","anchor":"edit_application_command_permissions/4"},{"id":"edit_channel_permissions/4","title":"edit_channel_permissions(channel_id, overwrite_id, permission_info, reason \\\\ nil)","anchor":"edit_channel_permissions/4"},{"id":"edit_channel_permissions!/4","title":"edit_channel_permissions!(channel_id, overwrite_id, permission_info, reason \\\\ nil)","anchor":"edit_channel_permissions!/4"},{"id":"edit_global_application_command/3","title":"edit_global_application_command(application_id \\\\ Me.get().id, command_id, command)","anchor":"edit_global_application_command/3"},{"id":"edit_guild_application_command/4","title":"edit_guild_application_command(application_id \\\\ Me.get().id, guild_id, command_id, command)","anchor":"edit_guild_application_command/4"},{"id":"edit_interaction_response/2","title":"edit_interaction_response(interaction, response)","anchor":"edit_interaction_response/2"},{"id":"edit_interaction_response/3","title":"edit_interaction_response(id \\\\ Me.get().id, token, response)","anchor":"edit_interaction_response/3"},{"id":"edit_interaction_response!/2","title":"edit_interaction_response!(interaction, response)","anchor":"edit_interaction_response!/2"},{"id":"edit_interaction_response!/3","title":"edit_interaction_response!(id \\\\ Me.get().id, token, response)","anchor":"edit_interaction_response!/3"},{"id":"edit_message/2","title":"edit_message(message, options)","anchor":"edit_message/2"},{"id":"edit_message/3","title":"edit_message(channel_id, message_id, options)","anchor":"edit_message/3"},{"id":"edit_message!/2","title":"edit_message!(message, options)","anchor":"edit_message!/2"},{"id":"edit_message!/3","title":"edit_message!(channel_id, message_id, options)","anchor":"edit_message!/3"},{"id":"edit_webhook_message/4","title":"edit_webhook_message(webhook_id, webhook_token, message_id, args)","anchor":"edit_webhook_message/4"},{"id":"execute_git_webhook/3","title":"execute_git_webhook(webhook_id, webhook_token, wait \\\\ false)","anchor":"execute_git_webhook/3"},{"id":"execute_slack_webhook/3","title":"execute_slack_webhook(webhook_id, webhook_token, wait \\\\ false)","anchor":"execute_slack_webhook/3"},{"id":"execute_webhook/4","title":"execute_webhook(webhook_id, webhook_token, args, wait \\\\ false)","anchor":"execute_webhook/4"},{"id":"expire_poll/2","title":"expire_poll(channel_id, message_id)","anchor":"expire_poll/2"},{"id":"expire_poll!/2","title":"expire_poll!(channel_id, message_id)","anchor":"expire_poll!/2"},{"id":"get_application_command_permissions/3","title":"get_application_command_permissions(application_id \\\\ Me.get().id, guild_id, command_id)","anchor":"get_application_command_permissions/3"},{"id":"get_application_information/0","title":"get_application_information()","anchor":"get_application_information/0"},{"id":"get_channel/1","title":"get_channel(channel_id)","anchor":"get_channel/1"},{"id":"get_channel!/1","title":"get_channel!(channel_id)","anchor":"get_channel!/1"},{"id":"get_channel_invites/1","title":"get_channel_invites(channel_id)","anchor":"get_channel_invites/1"},{"id":"get_channel_invites!/1","title":"get_channel_invites!(channel_id)","anchor":"get_channel_invites!/1"},{"id":"get_channel_message/2","title":"get_channel_message(channel_id, message_id)","anchor":"get_channel_message/2"},{"id":"get_channel_message!/2","title":"get_channel_message!(channel_id, message_id)","anchor":"get_channel_message!/2"},{"id":"get_channel_messages/3","title":"get_channel_messages(channel_id, limit, locator \\\\ {})","anchor":"get_channel_messages/3"},{"id":"get_channel_messages!/3","title":"get_channel_messages!(channel_id, limit, locator \\\\ {})","anchor":"get_channel_messages!/3"},{"id":"get_channel_webhooks/1","title":"get_channel_webhooks(channel_id)","anchor":"get_channel_webhooks/1"},{"id":"get_current_user/0","title":"get_current_user()","anchor":"get_current_user/0"},{"id":"get_current_user!/0","title":"get_current_user!()","anchor":"get_current_user!/0"},{"id":"get_current_user_guilds/1","title":"get_current_user_guilds(options \\\\ [])","anchor":"get_current_user_guilds/1"},{"id":"get_current_user_guilds!/1","title":"get_current_user_guilds!(options \\\\ [])","anchor":"get_current_user_guilds!/1"},{"id":"get_global_application_commands/1","title":"get_global_application_commands(application_id \\\\ Me.get().id)","anchor":"get_global_application_commands/1"},{"id":"get_guild/1","title":"get_guild(guild_id)","anchor":"get_guild/1"},{"id":"get_guild!/1","title":"get_guild!(guild_id)","anchor":"get_guild!/1"},{"id":"get_guild_application_command_permissions/2","title":"get_guild_application_command_permissions(application_id \\\\ Me.get().id, guild_id)","anchor":"get_guild_application_command_permissions/2"},{"id":"get_guild_application_commands/2","title":"get_guild_application_commands(application_id \\\\ Me.get().id, guild_id)","anchor":"get_guild_application_commands/2"},{"id":"get_guild_audit_log/2","title":"get_guild_audit_log(guild_id, options \\\\ [])","anchor":"get_guild_audit_log/2"},{"id":"get_guild_auto_moderation_rule/2","title":"get_guild_auto_moderation_rule(guild_id, rule_id)","anchor":"get_guild_auto_moderation_rule/2"},{"id":"get_guild_auto_moderation_rules/1","title":"get_guild_auto_moderation_rules(guild_id)","anchor":"get_guild_auto_moderation_rules/1"},{"id":"get_guild_ban/2","title":"get_guild_ban(guild_id, user_id)","anchor":"get_guild_ban/2"},{"id":"get_guild_bans/1","title":"get_guild_bans(guild_id)","anchor":"get_guild_bans/1"},{"id":"get_guild_channels/1","title":"get_guild_channels(guild_id)","anchor":"get_guild_channels/1"},{"id":"get_guild_channels!/1","title":"get_guild_channels!(guild_id)","anchor":"get_guild_channels!/1"},{"id":"get_guild_emoji/2","title":"get_guild_emoji(guild_id, emoji_id)","anchor":"get_guild_emoji/2"},{"id":"get_guild_emoji!/2","title":"get_guild_emoji!(guild_id, emoji_id)","anchor":"get_guild_emoji!/2"},{"id":"get_guild_integrations/1","title":"get_guild_integrations(guild_id)","anchor":"get_guild_integrations/1"},{"id":"get_guild_invites/1","title":"get_guild_invites(guild_id)","anchor":"get_guild_invites/1"},{"id":"get_guild_invites!/1","title":"get_guild_invites!(guild_id)","anchor":"get_guild_invites!/1"},{"id":"get_guild_member/2","title":"get_guild_member(guild_id, user_id)","anchor":"get_guild_member/2"},{"id":"get_guild_member!/2","title":"get_guild_member!(guild_id, user_id)","anchor":"get_guild_member!/2"},{"id":"get_guild_prune_count/2","title":"get_guild_prune_count(guild_id, days)","anchor":"get_guild_prune_count/2"},{"id":"get_guild_prune_count!/2","title":"get_guild_prune_count!(guild_id, days)","anchor":"get_guild_prune_count!/2"},{"id":"get_guild_roles/1","title":"get_guild_roles(guild_id)","anchor":"get_guild_roles/1"},{"id":"get_guild_roles!/1","title":"get_guild_roles!(guild_id)","anchor":"get_guild_roles!/1"},{"id":"get_guild_scheduled_event/2","title":"get_guild_scheduled_event(guild_id, event_id)","anchor":"get_guild_scheduled_event/2"},{"id":"get_guild_scheduled_event_users/3","title":"get_guild_scheduled_event_users(guild_id, event_id, params \\\\ [])","anchor":"get_guild_scheduled_event_users/3"},{"id":"get_guild_scheduled_events/1","title":"get_guild_scheduled_events(guild_id)","anchor":"get_guild_scheduled_events/1"},{"id":"get_guild_webhooks/1","title":"get_guild_webhooks(guild_id)","anchor":"get_guild_webhooks/1"},{"id":"get_guild_widget/1","title":"get_guild_widget(guild_id)","anchor":"get_guild_widget/1"},{"id":"get_invite/2","title":"get_invite(invite_code, options \\\\ [])","anchor":"get_invite/2"},{"id":"get_invite!/2","title":"get_invite!(invite_code, options \\\\ [])","anchor":"get_invite!/2"},{"id":"get_original_interaction_response/1","title":"get_original_interaction_response(interaction)","anchor":"get_original_interaction_response/1"},{"id":"get_pinned_messages/1","title":"get_pinned_messages(channel_id)","anchor":"get_pinned_messages/1"},{"id":"get_pinned_messages!/1","title":"get_pinned_messages!(channel_id)","anchor":"get_pinned_messages!/1"},{"id":"get_poll_answer_voters/4","title":"get_poll_answer_voters(channel_id, message_id, answer_id, params \\\\ [])","anchor":"get_poll_answer_voters/4"},{"id":"get_poll_answer_voters!/4","title":"get_poll_answer_voters!(channel_id, message_id, answer_id, params \\\\ [])","anchor":"get_poll_answer_voters!/4"},{"id":"get_reactions/4","title":"get_reactions(channel_id, message_id, emoji, params \\\\ [])","anchor":"get_reactions/4"},{"id":"get_reactions!/4","title":"get_reactions!(channel_id, message_id, emoji, params \\\\ [])","anchor":"get_reactions!/4"},{"id":"get_thread_member/2","title":"get_thread_member(thread_id, user_id)","anchor":"get_thread_member/2"},{"id":"get_thread_members/1","title":"get_thread_members(thread_id)","anchor":"get_thread_members/1"},{"id":"get_token/0","title":"get_token()","anchor":"get_token/0"},{"id":"get_user/1","title":"get_user(user_id)","anchor":"get_user/1"},{"id":"get_user!/1","title":"get_user!(user_id)","anchor":"get_user!/1"},{"id":"get_user_connections/0","title":"get_user_connections()","anchor":"get_user_connections/0"},{"id":"get_user_dms/0","title":"get_user_dms()","anchor":"get_user_dms/0"},{"id":"get_user_dms!/0","title":"get_user_dms!()","anchor":"get_user_dms!/0"},{"id":"get_voice_region/1","title":"get_voice_region(guild_id)","anchor":"get_voice_region/1"},{"id":"get_webhook/1","title":"get_webhook(webhook_id)","anchor":"get_webhook/1"},{"id":"get_webhook_message/2","title":"get_webhook_message(webhook, message_id)","anchor":"get_webhook_message/2"},{"id":"get_webhook_with_token/2","title":"get_webhook_with_token(webhook_id, webhook_token)","anchor":"get_webhook_with_token/2"},{"id":"join_thread/1","title":"join_thread(thread_id)","anchor":"join_thread/1"},{"id":"leave_guild/1","title":"leave_guild(guild_id)","anchor":"leave_guild/1"},{"id":"leave_thread/1","title":"leave_thread(thread_id)","anchor":"leave_thread/1"},{"id":"list_guild_emojis/1","title":"list_guild_emojis(guild_id)","anchor":"list_guild_emojis/1"},{"id":"list_guild_emojis!/1","title":"list_guild_emojis!(guild_id)","anchor":"list_guild_emojis!/1"},{"id":"list_guild_members/2","title":"list_guild_members(guild_id, options \\\\ %{})","anchor":"list_guild_members/2"},{"id":"list_guild_members!/2","title":"list_guild_members!(guild_id, options \\\\ %{})","anchor":"list_guild_members!/2"},{"id":"list_guild_threads/1","title":"list_guild_threads(guild_id)","anchor":"list_guild_threads/1"},{"id":"list_joined_private_archived_threads/2","title":"list_joined_private_archived_threads(channel_id, options \\\\ [])","anchor":"list_joined_private_archived_threads/2"},{"id":"list_private_archived_threads/2","title":"list_private_archived_threads(channel_id, options \\\\ [])","anchor":"list_private_archived_threads/2"},{"id":"list_public_archived_threads/2","title":"list_public_archived_threads(channel_id, options \\\\ [])","anchor":"list_public_archived_threads/2"},{"id":"list_voice_regions/0","title":"list_voice_regions()","anchor":"list_voice_regions/0"},{"id":"modify_channel/3","title":"modify_channel(channel_id, options, reason \\\\ nil)","anchor":"modify_channel/3"},{"id":"modify_channel!/3","title":"modify_channel!(channel_id, options, reason \\\\ nil)","anchor":"modify_channel!/3"},{"id":"modify_current_user/1","title":"modify_current_user(options)","anchor":"modify_current_user/1"},{"id":"modify_current_user!/1","title":"modify_current_user!(options)","anchor":"modify_current_user!/1"},{"id":"modify_current_user_nick/2","title":"modify_current_user_nick(guild_id, options \\\\ %{})","anchor":"modify_current_user_nick/2"},{"id":"modify_current_user_nick!/2","title":"modify_current_user_nick!(guild_id, options \\\\ %{})","anchor":"modify_current_user_nick!/2"},{"id":"modify_guild/3","title":"modify_guild(guild_id, options \\\\ [], reason \\\\ nil)","anchor":"modify_guild/3"},{"id":"modify_guild!/2","title":"modify_guild!(guild_id, options \\\\ [])","anchor":"modify_guild!/2"},{"id":"modify_guild_auto_moderation_rule/3","title":"modify_guild_auto_moderation_rule(guild_id, rule_id, options)","anchor":"modify_guild_auto_moderation_rule/3"},{"id":"modify_guild_channel_positions/2","title":"modify_guild_channel_positions(guild_id, positions)","anchor":"modify_guild_channel_positions/2"},{"id":"modify_guild_channel_positions!/2","title":"modify_guild_channel_positions!(guild_id, positions)","anchor":"modify_guild_channel_positions!/2"},{"id":"modify_guild_emoji/4","title":"modify_guild_emoji(guild_id, emoji_id, options \\\\ %{}, reason \\\\ nil)","anchor":"modify_guild_emoji/4"},{"id":"modify_guild_emoji!/4","title":"modify_guild_emoji!(guild_id, emoji_id, options, reason \\\\ nil)","anchor":"modify_guild_emoji!/4"},{"id":"modify_guild_integrations/3","title":"modify_guild_integrations(guild_id, integration_id, options)","anchor":"modify_guild_integrations/3"},{"id":"modify_guild_member/4","title":"modify_guild_member(guild_id, user_id, options \\\\ %{}, reason \\\\ nil)","anchor":"modify_guild_member/4"},{"id":"modify_guild_member!/4","title":"modify_guild_member!(guild_id, user_id, options \\\\ %{}, reason \\\\ nil)","anchor":"modify_guild_member!/4"},{"id":"modify_guild_role/4","title":"modify_guild_role(guild_id, role_id, options, reason \\\\ nil)","anchor":"modify_guild_role/4"},{"id":"modify_guild_role!/4","title":"modify_guild_role!(guild_id, role_id, options, reason \\\\ nil)","anchor":"modify_guild_role!/4"},{"id":"modify_guild_role_positions/3","title":"modify_guild_role_positions(guild_id, positions, reason \\\\ nil)","anchor":"modify_guild_role_positions/3"},{"id":"modify_guild_role_positions!/3","title":"modify_guild_role_positions!(guild_id, positions, reason \\\\ nil)","anchor":"modify_guild_role_positions!/3"},{"id":"modify_guild_scheduled_event/4","title":"modify_guild_scheduled_event(guild_id, event_id, reason \\\\ nil, options)","anchor":"modify_guild_scheduled_event/4"},{"id":"modify_guild_widget/2","title":"modify_guild_widget(guild_id, options)","anchor":"modify_guild_widget/2"},{"id":"modify_webhook/3","title":"modify_webhook(webhook_id, args, reason \\\\ nil)","anchor":"modify_webhook/3"},{"id":"modify_webhook_with_token/4","title":"modify_webhook_with_token(webhook_id, webhook_token, args, reason \\\\ nil)","anchor":"modify_webhook_with_token/4"},{"id":"remove_guild_ban/3","title":"remove_guild_ban(guild_id, user_id, reason \\\\ nil)","anchor":"remove_guild_ban/3"},{"id":"remove_guild_member/3","title":"remove_guild_member(guild_id, user_id, reason \\\\ nil)","anchor":"remove_guild_member/3"},{"id":"remove_guild_member!/3","title":"remove_guild_member!(guild_id, user_id, reason \\\\ nil)","anchor":"remove_guild_member!/3"},{"id":"remove_guild_member_role/4","title":"remove_guild_member_role(guild_id, user_id, role_id, reason \\\\ nil)","anchor":"remove_guild_member_role/4"},{"id":"remove_thread_member/2","title":"remove_thread_member(thread_id, user_id)","anchor":"remove_thread_member/2"},{"id":"request/1","title":"request(request)","anchor":"request/1"},{"id":"request/4","title":"request(method, route, body \\\\ \"\", params \\\\ [])","anchor":"request/4"},{"id":"request_multipart/4","title":"request_multipart(method, route, body, params \\\\ [])","anchor":"request_multipart/4"},{"id":"start_thread/3","title":"start_thread(channel_id, options, reason \\\\ nil)","anchor":"start_thread/3"},{"id":"start_thread_in_forum_channel/3","title":"start_thread_in_forum_channel(channel_id, options, reason \\\\ nil)","anchor":"start_thread_in_forum_channel/3"},{"id":"start_thread_with_message/4","title":"start_thread_with_message(channel_id, message_id, options, reason \\\\ nil)","anchor":"start_thread_with_message/4"},{"id":"start_typing/1","title":"start_typing(channel_id)","anchor":"start_typing/1"},{"id":"start_typing!/1","title":"start_typing!(channel_id)","anchor":"start_typing!/1"},{"id":"sync_guild_integrations/2","title":"sync_guild_integrations(guild_id, integration_id)","anchor":"sync_guild_integrations/2"},{"id":"update_shard_status/5","title":"update_shard_status(pid, status, game, type \\\\ 0, stream \\\\ nil)","anchor":"update_shard_status/5"},{"id":"update_status/4","title":"update_status(status, game, type \\\\ 0, stream \\\\ nil)","anchor":"update_status/4"},{"id":"update_voice_state/4","title":"update_voice_state(guild_id, channel_id, self_mute \\\\ false, self_deaf \\\\ false)","anchor":"update_voice_state/4"}],"key":"functions"}]},{"id":"Nostrum.Consumer","group":"Api","title":"Nostrum.Consumer","sections":[{"id":"Consuming gateway events","anchor":"module-consuming-gateway-events"},{"id":"Running multiple consumers","anchor":"module-running-multiple-consumers"},{"id":"Example consumer","anchor":"module-example-consumer"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"auto_moderation_rule_create/0","title":"auto_moderation_rule_create()","anchor":"t:auto_moderation_rule_create/0"},{"id":"auto_moderation_rule_delete/0","title":"auto_moderation_rule_delete()","anchor":"t:auto_moderation_rule_delete/0"},{"id":"auto_moderation_rule_execute/0","title":"auto_moderation_rule_execute()","anchor":"t:auto_moderation_rule_execute/0"},{"id":"auto_moderation_rule_update/0","title":"auto_moderation_rule_update()","anchor":"t:auto_moderation_rule_update/0"},{"id":"channel_create/0","title":"channel_create()","anchor":"t:channel_create/0"},{"id":"channel_delete/0","title":"channel_delete()","anchor":"t:channel_delete/0"},{"id":"channel_pins_ack/0","title":"channel_pins_ack()","anchor":"t:channel_pins_ack/0"},{"id":"channel_pins_update/0","title":"channel_pins_update()","anchor":"t:channel_pins_update/0"},{"id":"channel_update/0","title":"channel_update()","anchor":"t:channel_update/0"},{"id":"event/0","title":"event()","anchor":"t:event/0"},{"id":"guild_audit_log_entry_create/0","title":"guild_audit_log_entry_create()","anchor":"t:guild_audit_log_entry_create/0"},{"id":"guild_available/0","title":"guild_available()","anchor":"t:guild_available/0"},{"id":"guild_ban_add/0","title":"guild_ban_add()","anchor":"t:guild_ban_add/0"},{"id":"guild_ban_remove/0","title":"guild_ban_remove()","anchor":"t:guild_ban_remove/0"},{"id":"guild_create/0","title":"guild_create()","anchor":"t:guild_create/0"},{"id":"guild_delete/0","title":"guild_delete()","anchor":"t:guild_delete/0"},{"id":"guild_emojis_update/0","title":"guild_emojis_update()","anchor":"t:guild_emojis_update/0"},{"id":"guild_integrations_update/0","title":"guild_integrations_update()","anchor":"t:guild_integrations_update/0"},{"id":"guild_member_add/0","title":"guild_member_add()","anchor":"t:guild_member_add/0"},{"id":"guild_member_remove/0","title":"guild_member_remove()","anchor":"t:guild_member_remove/0"},{"id":"guild_member_update/0","title":"guild_member_update()","anchor":"t:guild_member_update/0"},{"id":"guild_members_chunk/0","title":"guild_members_chunk()","anchor":"t:guild_members_chunk/0"},{"id":"guild_role_create/0","title":"guild_role_create()","anchor":"t:guild_role_create/0"},{"id":"guild_role_delete/0","title":"guild_role_delete()","anchor":"t:guild_role_delete/0"},{"id":"guild_role_update/0","title":"guild_role_update()","anchor":"t:guild_role_update/0"},{"id":"guild_scheduled_event_create/0","title":"guild_scheduled_event_create()","anchor":"t:guild_scheduled_event_create/0"},{"id":"guild_scheduled_event_delete/0","title":"guild_scheduled_event_delete()","anchor":"t:guild_scheduled_event_delete/0"},{"id":"guild_scheduled_event_update/0","title":"guild_scheduled_event_update()","anchor":"t:guild_scheduled_event_update/0"},{"id":"guild_scheduled_event_user_add/0","title":"guild_scheduled_event_user_add()","anchor":"t:guild_scheduled_event_user_add/0"},{"id":"guild_scheduled_event_user_remove/0","title":"guild_scheduled_event_user_remove()","anchor":"t:guild_scheduled_event_user_remove/0"},{"id":"guild_unavailable/0","title":"guild_unavailable()","anchor":"t:guild_unavailable/0"},{"id":"guild_update/0","title":"guild_update()","anchor":"t:guild_update/0"},{"id":"integration_create/0","title":"integration_create()","anchor":"t:integration_create/0"},{"id":"integration_delete/0","title":"integration_delete()","anchor":"t:integration_delete/0"},{"id":"integration_update/0","title":"integration_update()","anchor":"t:integration_update/0"},{"id":"interaction_create/0","title":"interaction_create()","anchor":"t:interaction_create/0"},{"id":"message_ack/0","title":"message_ack()","anchor":"t:message_ack/0"},{"id":"message_create/0","title":"message_create()","anchor":"t:message_create/0"},{"id":"message_delete/0","title":"message_delete()","anchor":"t:message_delete/0"},{"id":"message_delete_bulk/0","title":"message_delete_bulk()","anchor":"t:message_delete_bulk/0"},{"id":"message_poll_vote_add/0","title":"message_poll_vote_add()","anchor":"t:message_poll_vote_add/0"},{"id":"message_poll_vote_remove/0","title":"message_poll_vote_remove()","anchor":"t:message_poll_vote_remove/0"},{"id":"message_reaction_add/0","title":"message_reaction_add()","anchor":"t:message_reaction_add/0"},{"id":"message_reaction_remove/0","title":"message_reaction_remove()","anchor":"t:message_reaction_remove/0"},{"id":"message_reaction_remove_all/0","title":"message_reaction_remove_all()","anchor":"t:message_reaction_remove_all/0"},{"id":"message_reaction_remove_emoji/0","title":"message_reaction_remove_emoji()","anchor":"t:message_reaction_remove_emoji/0"},{"id":"message_update/0","title":"message_update()","anchor":"t:message_update/0"},{"id":"presence_update/0","title":"presence_update()","anchor":"t:presence_update/0"},{"id":"ready/0","title":"ready()","anchor":"t:ready/0"},{"id":"resumed/0","title":"resumed()","anchor":"t:resumed/0"},{"id":"thread_create/0","title":"thread_create()","anchor":"t:thread_create/0"},{"id":"thread_delete/0","title":"thread_delete()","anchor":"t:thread_delete/0"},{"id":"thread_list_sync/0","title":"thread_list_sync()","anchor":"t:thread_list_sync/0"},{"id":"thread_member_update/0","title":"thread_member_update()","anchor":"t:thread_member_update/0"},{"id":"thread_members_update/0","title":"thread_members_update()","anchor":"t:thread_members_update/0"},{"id":"thread_update/0","title":"thread_update()","anchor":"t:thread_update/0"},{"id":"typing_start/0","title":"typing_start()","anchor":"t:typing_start/0"},{"id":"user_settings_update/0","title":"user_settings_update()","anchor":"t:user_settings_update/0"},{"id":"user_update/0","title":"user_update()","anchor":"t:user_update/0"},{"id":"voice_incoming_packet/0","title":"voice_incoming_packet()","anchor":"t:voice_incoming_packet/0"},{"id":"voice_ready/0","title":"voice_ready()","anchor":"t:voice_ready/0"},{"id":"voice_server_update/0","title":"voice_server_update()","anchor":"t:voice_server_update/0"},{"id":"voice_speaking_update/0","title":"voice_speaking_update()","anchor":"t:voice_speaking_update/0"},{"id":"voice_state_update/0","title":"voice_state_update()","anchor":"t:voice_state_update/0"},{"id":"webhooks_update/0","title":"webhooks_update()","anchor":"t:webhooks_update/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"handle_event/1","title":"handle_event(event)","anchor":"c:handle_event/1"}],"key":"callbacks"}]},{"id":"Nostrum.ConsumerGroup","group":"Api","title":"Nostrum.ConsumerGroup","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(opts)","anchor":"child_spec/1"},{"id":"demonitor/1","title":"demonitor(ref)","anchor":"demonitor/1"},{"id":"dispatch/1","title":"dispatch(event)","anchor":"dispatch/1"},{"id":"join/0","title":"join()","anchor":"join/0"},{"id":"join/1","title":"join(pid)","anchor":"join/1"},{"id":"monitor/0","title":"monitor()","anchor":"monitor/0"},{"id":"start_link/1","title":"start_link(opts)","anchor":"start_link/1"}],"key":"functions"}]},{"id":"Nostrum.Permission","group":"Api","title":"Nostrum.Permission","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"bit/0","title":"bit()","anchor":"t:bit/0"},{"id":"bitset/0","title":"bitset()","anchor":"t:bitset/0"},{"id":"general_permission/0","title":"general_permission()","anchor":"t:general_permission/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"text_permission/0","title":"text_permission()","anchor":"t:text_permission/0"},{"id":"voice_permission/0","title":"voice_permission()","anchor":"t:voice_permission/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"all/0","title":"all()","anchor":"all/0"},{"id":"from_bit/1","title":"from_bit(bit)","anchor":"from_bit/1"},{"id":"from_bit!/1","title":"from_bit!(bit)","anchor":"from_bit!/1"},{"id":"from_bitset/1","title":"from_bitset(bitset)","anchor":"from_bitset/1"},{"id":"is_permission/1","title":"is_permission(term)","anchor":"is_permission/1"},{"id":"to_bit/1","title":"to_bit(permission)","anchor":"to_bit/1"},{"id":"to_bitset/1","title":"to_bitset(permissions)","anchor":"to_bitset/1"}],"key":"functions"}]},{"id":"Nostrum.Voice","group":"Api","title":"Nostrum.Voice","sections":[{"id":"Voice Without FFmpeg","anchor":"module-voice-without-ffmpeg"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"opus_packet/0","title":"opus_packet()","anchor":"t:opus_packet/0"},{"id":"play_input/0","title":"play_input()","anchor":"t:play_input/0"},{"id":"play_type/0","title":"play_type()","anchor":"t:play_type/0"},{"id":"rtp_opus/0","title":"rtp_opus()","anchor":"t:rtp_opus/0"},{"id":"rtp_sequence/0","title":"rtp_sequence()","anchor":"t:rtp_sequence/0"},{"id":"rtp_ssrc/0","title":"rtp_ssrc()","anchor":"t:rtp_ssrc/0"},{"id":"rtp_timestamp/0","title":"rtp_timestamp()","anchor":"t:rtp_timestamp/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"connect_to_gateway/1","title":"connect_to_gateway(guild_id)","anchor":"connect_to_gateway/1"},{"id":"create_ogg_bitstream/1","title":"create_ogg_bitstream(opus_packets)","anchor":"create_ogg_bitstream/1"},{"id":"extract_opus_packet/1","title":"extract_opus_packet(packet)","anchor":"extract_opus_packet/1"},{"id":"get_channel_id/1","title":"get_channel_id(guild_id)","anchor":"get_channel_id/1"},{"id":"get_current_url/1","title":"get_current_url(guild_id)","anchor":"get_current_url/1"},{"id":"get_ssrc_map/1","title":"get_ssrc_map(guild_id)","anchor":"get_ssrc_map/1"},{"id":"join_channel/5","title":"join_channel(guild_id, channel_id, self_mute \\\\ false, self_deaf \\\\ false, persist \\\\ true)","anchor":"join_channel/5"},{"id":"leave_channel/1","title":"leave_channel(guild_id)","anchor":"leave_channel/1"},{"id":"listen/3","title":"listen(guild_id, num_packets, raw_rtp \\\\ false)","anchor":"listen/3"},{"id":"pad_opus/1","title":"pad_opus(packets)","anchor":"pad_opus/1"},{"id":"pause/1","title":"pause(guild_id)","anchor":"pause/1"},{"id":"play/4","title":"play(guild_id, input, type \\\\ :url, options \\\\ [])","anchor":"play/4"},{"id":"playing?/1","title":"playing?(guild_id)","anchor":"playing?/1"},{"id":"ready?/1","title":"ready?(guild_id)","anchor":"ready?/1"},{"id":"resume/1","title":"resume(guild_id)","anchor":"resume/1"},{"id":"send_frames/2","title":"send_frames(guild_id, frames)","anchor":"send_frames/2"},{"id":"set_is_speaking/2","title":"set_is_speaking(guild_id, speaking)","anchor":"set_is_speaking/2"},{"id":"start_listen_async/1","title":"start_listen_async(guild_id)","anchor":"start_listen_async/1"},{"id":"stop/1","title":"stop(guild_id)","anchor":"stop/1"},{"id":"stop_listen_async/1","title":"stop_listen_async(guild_id)","anchor":"stop_listen_async/1"}],"key":"functions"}]},{"id":"Nostrum.Cache.CacheSupervisor","group":"Cache","title":"Nostrum.Cache.CacheSupervisor","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"init/1","title":"init(list)","anchor":"init/1"},{"id":"start_link/1","title":"start_link(list)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".CacheSupervisor","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.ChannelCache","group":"Cache","title":"Nostrum.Cache.ChannelCache","sections":[{"id":"Writing your own channel cache","anchor":"module-writing-your-own-channel-cache"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"reason/0","title":"reason()","anchor":"t:reason/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"child_spec/1","title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/1","title":"create(map)","anchor":"c:create/1"},{"id":"delete/1","title":"delete(id)","anchor":"c:delete/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"c:query_handle/0"},{"id":"update/1","title":"update(t)","anchor":"c:update/1"},{"id":"wrap_qlc/1","title":"wrap_qlc(function)","anchor":"c:wrap_qlc/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"get/1","title":"get(channel_or_message)","anchor":"get/1"},{"id":"get/2","title":"get(channel_id, cache)","anchor":"get/2"},{"id":"get!/1","title":"get!(channel_or_message)","anchor":"get!/1"},{"id":"get!/2","title":"get!(channel_id, cache)","anchor":"get!/2"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"}],"key":"functions"}],"nested_title":".ChannelCache","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.ChannelGuildMapping","group":"Cache","title":"Nostrum.Cache.ChannelGuildMapping","sections":[{"id":"Purpose","anchor":"module-purpose"},{"id":"Configuration","anchor":"module-configuration"}],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"child_spec/1","title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/2","title":"create(id, id)","anchor":"c:create/2"},{"id":"delete/1","title":"delete(id)","anchor":"c:delete/1"},{"id":"get/1","title":"get(id)","anchor":"c:get/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"create/2","title":"create(guild_id, shard_num)","anchor":"create/2"},{"id":"delete/1","title":"delete(guild_id)","anchor":"delete/1"},{"id":"get/1","title":"get(guild_id)","anchor":"get/1"}],"key":"functions"}],"nested_title":".ChannelGuildMapping","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.GuildCache","group":"Cache","title":"Nostrum.Cache.GuildCache","sections":[{"id":"Writing your own guild cache","anchor":"module-writing-your-own-guild-cache"}],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"channel_create/2","title":"channel_create(id, channel)","anchor":"c:channel_create/2"},{"id":"channel_delete/2","title":"channel_delete(id, id)","anchor":"c:channel_delete/2"},{"id":"channel_update/2","title":"channel_update(id, channel)","anchor":"c:channel_update/2"},{"id":"child_spec/1","title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/1","title":"create(map)","anchor":"c:create/1"},{"id":"delete/1","title":"delete(id)","anchor":"c:delete/1"},{"id":"emoji_update/2","title":"emoji_update(id, emojis)","anchor":"c:emoji_update/2"},{"id":"member_count_down/1","title":"member_count_down(id)","anchor":"c:member_count_down/1"},{"id":"member_count_up/1","title":"member_count_up(id)","anchor":"c:member_count_up/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"c:query_handle/0"},{"id":"role_create/2","title":"role_create(id, role)","anchor":"c:role_create/2"},{"id":"role_delete/2","title":"role_delete(id, id)","anchor":"c:role_delete/2"},{"id":"role_update/2","title":"role_update(id, role)","anchor":"c:role_update/2"},{"id":"update/1","title":"update(map)","anchor":"c:update/1"},{"id":"voice_state_update/2","title":"voice_state_update(id, state)","anchor":"c:voice_state_update/2"},{"id":"wrap_qlc/1","title":"wrap_qlc(function)","anchor":"c:wrap_qlc/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"fold/3","title":"fold(acc, reducer, cache \\\\ Nostrum.Cache.GuildCache.ETS)","anchor":"fold/3"},{"id":"get/2","title":"get(guild_id, cache \\\\ Nostrum.Cache.GuildCache.ETS)","anchor":"get/2"},{"id":"get!/1","title":"get!(guild_id)","anchor":"get!/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"wrap_qlc/2","title":"wrap_qlc(cache \\\\ Nostrum.Cache.GuildCache.ETS, fun)","anchor":"wrap_qlc/2"}],"key":"functions"}],"nested_title":".GuildCache","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.Me","group":"Cache","title":"Nostrum.Cache.Me","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(arg)","anchor":"child_spec/1"},{"id":"get/0","title":"get()","anchor":"get/0"},{"id":"start_link/1","title":"start_link(list)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".Me","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.MemberCache","group":"Cache","title":"Nostrum.Cache.MemberCache","sections":[],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"bulk_create/2","title":"bulk_create(id, members)","anchor":"c:bulk_create/2"},{"id":"child_spec/1","title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/2","title":"create(id, member)","anchor":"c:create/2"},{"id":"delete/2","title":"delete(id, user_id)","anchor":"c:delete/2"},{"id":"query_handle/0","title":"query_handle()","anchor":"c:query_handle/0"},{"id":"update/2","title":"update(id, member)","anchor":"c:update/2"},{"id":"wrap_qlc/1","title":"wrap_qlc(function)","anchor":"c:wrap_qlc/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"fold/4","title":"fold(acc, guild_id, member_reducer, cache \\\\ Nostrum.Cache.MemberCache.ETS)","anchor":"fold/4"},{"id":"fold_by_user/4","title":"fold_by_user(acc, user_id, member_reducer, cache \\\\ Nostrum.Cache.MemberCache.ETS)","anchor":"fold_by_user/4"},{"id":"fold_with_users/4","title":"fold_with_users(acc, guild_id, fun, cache \\\\ Nostrum.Cache.MemberCache.ETS)","anchor":"fold_with_users/4"},{"id":"get/3","title":"get(guild_id, user_id, cache \\\\ Nostrum.Cache.MemberCache.ETS)","anchor":"get/3"},{"id":"get_with_user/3","title":"get_with_user(guild_id, member_id, cache \\\\ Nostrum.Cache.MemberCache.ETS)","anchor":"get_with_user/3"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"wrap_qlc/2","title":"wrap_qlc(cache \\\\ Nostrum.Cache.MemberCache.ETS, fun)","anchor":"wrap_qlc/2"}],"key":"functions"}],"nested_title":".MemberCache","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.PresenceCache","group":"Cache","title":"Nostrum.Cache.PresenceCache","sections":[{"id":"Writing your own presence cache","anchor":"module-writing-your-own-presence-cache"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"presence/0","title":"presence()","anchor":"t:presence/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"bulk_create/2","title":"bulk_create(id, list)","anchor":"c:bulk_create/2"},{"id":"child_spec/1","title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/1","title":"create(presence)","anchor":"c:create/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"c:query_handle/0"},{"id":"update/1","title":"update(map)","anchor":"c:update/1"},{"id":"wrap_qlc/1","title":"wrap_qlc(function)","anchor":"c:wrap_qlc/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"get/3","title":"get(guild_id, user_id, cache \\\\ Nostrum.Cache.PresenceCache.ETS)","anchor":"get/3"},{"id":"get!/3","title":"get!(guild_id, user_id, cache \\\\ Nostrum.Cache.PresenceCache.ETS)","anchor":"get!/3"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"wrap_qlc/2","title":"wrap_qlc(cache \\\\ Nostrum.Cache.PresenceCache.ETS, fun)","anchor":"wrap_qlc/2"}],"key":"functions"}],"nested_title":".PresenceCache","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Cache.UserCache","group":"Cache","title":"Nostrum.Cache.UserCache","sections":[],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"bulk_create/1","title":"bulk_create(user_payloads)","anchor":"c:bulk_create/1"},{"id":"child_spec/1","title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/1","title":"create(payload)","anchor":"c:create/1"},{"id":"delete/1","title":"delete(snowflake)","anchor":"c:delete/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"c:query_handle/0"},{"id":"update/1","title":"update(payload)","anchor":"c:update/1"},{"id":"wrap_qlc/1","title":"wrap_qlc(function)","anchor":"c:wrap_qlc/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"get/2","title":"get(user_id, cache \\\\ Nostrum.Cache.UserCache.ETS)","anchor":"get/2"},{"id":"get!/1","title":"get!(id)","anchor":"get!/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"wrap_qlc/2","title":"wrap_qlc(cache \\\\ Nostrum.Cache.UserCache.ETS, fun)","anchor":"wrap_qlc/2"}],"key":"functions"}],"nested_title":".UserCache","nested_context":"Nostrum.Cache"},{"id":"Nostrum.Struct.ApplicationCommand","group":"Structs","title":"Nostrum.Struct.ApplicationCommand","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"application_command_edit_map/0","title":"application_command_edit_map()","anchor":"t:application_command_edit_map/0"},{"id":"application_command_map/0","title":"application_command_map()","anchor":"t:application_command_map/0"},{"id":"application_command_permission_type/0","title":"application_command_permission_type()","anchor":"t:application_command_permission_type/0"},{"id":"application_command_permissions/0","title":"application_command_permissions()","anchor":"t:application_command_permissions/0"},{"id":"command_choice/0","title":"command_choice()","anchor":"t:command_choice/0"},{"id":"command_description/0","title":"command_description()","anchor":"t:command_description/0"},{"id":"command_name/0","title":"command_name()","anchor":"t:command_name/0"},{"id":"command_option/0","title":"command_option()","anchor":"t:command_option/0"},{"id":"command_option_type/0","title":"command_option_type()","anchor":"t:command_option_type/0"},{"id":"command_type/0","title":"command_type()","anchor":"t:command_type/0"}],"key":"types"}],"nested_title":".ApplicationCommand","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.ApplicationCommandInteractionData","group":"Structs","title":"Nostrum.Struct.ApplicationCommandInteractionData","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"component_type/0","title":"component_type()","anchor":"t:component_type/0"},{"id":"components/0","title":"components()","anchor":"t:components/0"},{"id":"custom_id/0","title":"custom_id()","anchor":"t:custom_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"interaction_type/0","title":"interaction_type()","anchor":"t:interaction_type/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"options/0","title":"options()","anchor":"t:options/0"},{"id":"resolved/0","title":"resolved()","anchor":"t:resolved/0"},{"id":"select_values/0","title":"select_values()","anchor":"t:select_values/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"target_id/0","title":"target_id()","anchor":"t:target_id/0"}],"key":"types"}],"nested_title":".ApplicationCommandInteractionData","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.ApplicationCommandInteractionDataOption","group":"Structs","title":"Nostrum.Struct.ApplicationCommandInteractionDataOption","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"focused/0","title":"focused()","anchor":"t:focused/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"options/0","title":"options()","anchor":"t:options/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"},{"id":"value/0","title":"value()","anchor":"t:value/0"}],"key":"types"}],"nested_title":".ApplicationCommandInteractionDataOption","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.ApplicationCommandInteractionDataResolved","group":"Structs","title":"Nostrum.Struct.ApplicationCommandInteractionDataResolved","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"attachments/0","title":"attachments()","anchor":"t:attachments/0"},{"id":"channels/0","title":"channels()","anchor":"t:channels/0"},{"id":"members/0","title":"members()","anchor":"t:members/0"},{"id":"messages/0","title":"messages()","anchor":"t:messages/0"},{"id":"roles/0","title":"roles()","anchor":"t:roles/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"users/0","title":"users()","anchor":"t:users/0"}],"key":"types"}],"nested_title":".ApplicationCommandInteractionDataResolved","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.AutoModerationRule","group":"Structs","title":"Nostrum.Struct.AutoModerationRule","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"actions/0","title":"actions()","anchor":"t:actions/0"},{"id":"creator_id/0","title":"creator_id()","anchor":"t:creator_id/0"},{"id":"enabled/0","title":"enabled()","anchor":"t:enabled/0"},{"id":"event_type/0","title":"event_type()","anchor":"t:event_type/0"},{"id":"exempt_channels/0","title":"exempt_channels()","anchor":"t:exempt_channels/0"},{"id":"exempt_roles/0","title":"exempt_roles()","anchor":"t:exempt_roles/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"preset_values/0","title":"preset_values()","anchor":"t:preset_values/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"trigger_metadata/0","title":"trigger_metadata()","anchor":"t:trigger_metadata/0"},{"id":"trigger_type/0","title":"trigger_type()","anchor":"t:trigger_type/0"}],"key":"types"}],"nested_title":".AutoModerationRule","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.AutoModerationRule.Action","group":"Structs","title":"Nostrum.Struct.AutoModerationRule.Action","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"action_type/0","title":"action_type()","anchor":"t:action_type/0"},{"id":"metadata/0","title":"metadata()","anchor":"t:metadata/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".AutoModerationRule.Action","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.AutoModerationRule.ActionMetadata","group":"Structs","title":"Nostrum.Struct.AutoModerationRule.ActionMetadata","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"send_alert_message_metadata/0","title":"send_alert_message_metadata()","anchor":"t:send_alert_message_metadata/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"timeout_metadata/0","title":"timeout_metadata()","anchor":"t:timeout_metadata/0"}],"key":"types"}],"nested_title":".AutoModerationRule.ActionMetadata","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.AutoModerationRule.TriggerMetadata","group":"Structs","title":"Nostrum.Struct.AutoModerationRule.TriggerMetadata","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"keyword_metadata/0","title":"keyword_metadata()","anchor":"t:keyword_metadata/0"},{"id":"preset_value_metadata/0","title":"preset_value_metadata()","anchor":"t:preset_value_metadata/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".AutoModerationRule.TriggerMetadata","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Channel","group":"Structs","title":"Nostrum.Struct.Channel","sections":[{"id":"Channel Struct","anchor":"module-channel-struct"},{"id":"Channel Cache","anchor":"module-channel-cache"},{"id":"Example","anchor":"module-example"},{"id":"Helper Functions","anchor":"module-helper-functions"},{"id":"Api Functions","anchor":"module-api-functions"},{"id":"Channel Types","anchor":"module-channel-types"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"application_id/0","title":"application_id()","anchor":"t:application_id/0"},{"id":"applied_tags/0","title":"applied_tags()","anchor":"t:applied_tags/0"},{"id":"archive_timestamp/0","title":"archive_timestamp()","anchor":"t:archive_timestamp/0"},{"id":"archived/0","title":"archived()","anchor":"t:archived/0"},{"id":"auto_archive_duration/0","title":"auto_archive_duration()","anchor":"t:auto_archive_duration/0"},{"id":"bitrate/0","title":"bitrate()","anchor":"t:bitrate/0"},{"id":"channel_mention/0","title":"channel_mention()","anchor":"t:channel_mention/0"},{"id":"default_auto_archive_duration/0","title":"default_auto_archive_duration()","anchor":"t:default_auto_archive_duration/0"},{"id":"default_reaction_emoji/0","title":"default_reaction_emoji()","anchor":"t:default_reaction_emoji/0"},{"id":"default_thread_rate_limit_per_user/0","title":"default_thread_rate_limit_per_user()","anchor":"t:default_thread_rate_limit_per_user/0"},{"id":"dm_channel/0","title":"dm_channel()","anchor":"t:dm_channel/0"},{"id":"flags/0","title":"flags()","anchor":"t:flags/0"},{"id":"forum_tag/0","title":"forum_tag()","anchor":"t:forum_tag/0"},{"id":"group_dm_channel/0","title":"group_dm_channel()","anchor":"t:group_dm_channel/0"},{"id":"guild_category_channel/0","title":"guild_category_channel()","anchor":"t:guild_category_channel/0"},{"id":"guild_channel/0","title":"guild_channel()","anchor":"t:guild_channel/0"},{"id":"guild_forum_channel/0","title":"guild_forum_channel()","anchor":"t:guild_forum_channel/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"guild_news_channel/0","title":"guild_news_channel()","anchor":"t:guild_news_channel/0"},{"id":"guild_news_thread_channel/0","title":"guild_news_thread_channel()","anchor":"t:guild_news_thread_channel/0"},{"id":"guild_private_thread_channel/0","title":"guild_private_thread_channel()","anchor":"t:guild_private_thread_channel/0"},{"id":"guild_public_thread_channel/0","title":"guild_public_thread_channel()","anchor":"t:guild_public_thread_channel/0"},{"id":"guild_stage_voice_channel/0","title":"guild_stage_voice_channel()","anchor":"t:guild_stage_voice_channel/0"},{"id":"guild_store_channel/0","title":"guild_store_channel()","anchor":"t:guild_store_channel/0"},{"id":"guild_text_channel/0","title":"guild_text_channel()","anchor":"t:guild_text_channel/0"},{"id":"guild_voice_channel/0","title":"guild_voice_channel()","anchor":"t:guild_voice_channel/0"},{"id":"icon/0","title":"icon()","anchor":"t:icon/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"join_timestamp/0","title":"join_timestamp()","anchor":"t:join_timestamp/0"},{"id":"last_message_id/0","title":"last_message_id()","anchor":"t:last_message_id/0"},{"id":"last_pin_timestamp/0","title":"last_pin_timestamp()","anchor":"t:last_pin_timestamp/0"},{"id":"locked/0","title":"locked()","anchor":"t:locked/0"},{"id":"member/0","title":"member()","anchor":"t:member/0"},{"id":"member_count/0","title":"member_count()","anchor":"t:member_count/0"},{"id":"message_count/0","title":"message_count()","anchor":"t:message_count/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"newly_created/0","title":"newly_created()","anchor":"t:newly_created/0"},{"id":"nsfw/0","title":"nsfw()","anchor":"t:nsfw/0"},{"id":"owner_id/0","title":"owner_id()","anchor":"t:owner_id/0"},{"id":"parent_id/0","title":"parent_id()","anchor":"t:parent_id/0"},{"id":"permission_overwrites/0","title":"permission_overwrites()","anchor":"t:permission_overwrites/0"},{"id":"permissions/0","title":"permissions()","anchor":"t:permissions/0"},{"id":"position/0","title":"position()","anchor":"t:position/0"},{"id":"rate_limit_per_user/0","title":"rate_limit_per_user()","anchor":"t:rate_limit_per_user/0"},{"id":"recipients/0","title":"recipients()","anchor":"t:recipients/0"},{"id":"rtc_region/0","title":"rtc_region()","anchor":"t:rtc_region/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"text_channel/0","title":"text_channel()","anchor":"t:text_channel/0"},{"id":"thread_metadata/0","title":"thread_metadata()","anchor":"t:thread_metadata/0"},{"id":"topic/0","title":"topic()","anchor":"t:topic/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"},{"id":"user_limit/0","title":"user_limit()","anchor":"t:user_limit/0"},{"id":"video_quality_mode/0","title":"video_quality_mode()","anchor":"t:video_quality_mode/0"},{"id":"voice_channel/0","title":"voice_channel()","anchor":"t:voice_channel/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"mention/1","title":"mention(channel)","anchor":"mention/1"}],"key":"functions"}],"nested_title":".Channel","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component","group":"Structs","title":"Nostrum.Struct.Component","sections":[{"id":"Action Row","anchor":"module-action-row"},{"id":"Buttons","anchor":"module-buttons"},{"id":"Link Buttons","anchor":"module-link-buttons"},{"id":"Interaction Buttons ( Non-link Buttons )","anchor":"module-interaction-buttons-non-link-buttons"},{"id":"🐼 Emoji Buttons","anchor":"module-emoji-buttons"},{"id":"Select Menu","anchor":"module-select-menu"},{"id":"Text Input","anchor":"module-text-input"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"components/0","title":"components()","anchor":"t:components/0"},{"id":"custom_id/0","title":"custom_id()","anchor":"t:custom_id/0"},{"id":"disabled/0","title":"disabled()","anchor":"t:disabled/0"},{"id":"emoji/0","title":"emoji()","anchor":"t:emoji/0"},{"id":"label/0","title":"label()","anchor":"t:label/0"},{"id":"max_length/0","title":"max_length()","anchor":"t:max_length/0"},{"id":"max_values/0","title":"max_values()","anchor":"t:max_values/0"},{"id":"min_length/0","title":"min_length()","anchor":"t:min_length/0"},{"id":"min_values/0","title":"min_values()","anchor":"t:min_values/0"},{"id":"options/0","title":"options()","anchor":"t:options/0"},{"id":"placeholder/0","title":"placeholder()","anchor":"t:placeholder/0"},{"id":"required/0","title":"required()","anchor":"t:required/0"},{"id":"style/0","title":"style()","anchor":"t:style/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"},{"id":"url/0","title":"url()","anchor":"t:url/0"},{"id":"value/0","title":"value()","anchor":"t:value/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"new/1","title":"new(opts)","anchor":"c:new/1"},{"id":"update/2","title":"update(t, opts)","anchor":"c:update/2"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"to_struct/1","title":"to_struct(map)","anchor":"to_struct/1"}],"key":"functions"}],"nested_title":".Component","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component.ActionRow","group":"Structs","title":"Nostrum.Struct.Component.ActionRow","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"action_row/1","title":"action_row(opts \\\\ [])","anchor":"action_row/1"},{"id":"append/2","title":"append(action_row, button)","anchor":"append/2"},{"id":"append_lazy/2","title":"append_lazy(action_row, button)","anchor":"append_lazy/2"},{"id":"flatten/1","title":"flatten(map)","anchor":"flatten/1"},{"id":"put/2","title":"put(component, select_menu)","anchor":"put/2"},{"id":"put_new/2","title":"put_new(component, list_of_components)","anchor":"put_new/2"}],"key":"functions"}],"nested_title":".Component.ActionRow","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component.Button","group":"Structs","title":"Nostrum.Struct.Component.Button","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"interaction_button/0","title":"interaction_button()","anchor":"t:interaction_button/0"},{"id":"link_button/0","title":"link_button()","anchor":"t:link_button/0"},{"id":"opt/0","title":"opt()","anchor":"t:opt/0"},{"id":"opts/0","title":"opts()","anchor":"t:opts/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"button/1","title":"button(opts \\\\ [])","anchor":"button/1"},{"id":"disable/2","title":"disable(button, disabled)","anchor":"disable/2"},{"id":"flatten/1","title":"flatten(map)","anchor":"flatten/1"},{"id":"interaction_button/3","title":"interaction_button(label, custom_id, opts \\\\ [])","anchor":"interaction_button/3"},{"id":"link_button/3","title":"link_button(label, url, opts \\\\ [])","anchor":"link_button/3"},{"id":"put_style/2","title":"put_style(button, style)","anchor":"put_style/2"},{"id":"toggle/1","title":"toggle(button)","anchor":"toggle/1"}],"key":"functions"}],"nested_title":".Component.Button","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component.Option","group":"Structs","title":"Nostrum.Struct.Component.Option","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"default/0","title":"default()","anchor":"t:default/0"},{"id":"description/0","title":"description()","anchor":"t:description/0"},{"id":"emoji/0","title":"emoji()","anchor":"t:emoji/0"},{"id":"label/0","title":"label()","anchor":"t:label/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"value/0","title":"value()","anchor":"t:value/0"}],"key":"types"}],"nested_title":".Component.Option","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component.SelectMenu","group":"Structs","title":"Nostrum.Struct.Component.SelectMenu","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"opt/0","title":"opt()","anchor":"t:opt/0"},{"id":"opts/0","title":"opts()","anchor":"t:opts/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"flatten/1","title":"flatten(map)","anchor":"flatten/1"},{"id":"select_menu/2","title":"select_menu(custom_id, opts \\\\ [])","anchor":"select_menu/2"}],"key":"functions"}],"nested_title":".Component.SelectMenu","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Component.TextInput","group":"Structs","title":"Nostrum.Struct.Component.TextInput","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"opt/0","title":"opt()","anchor":"t:opt/0"},{"id":"opts/0","title":"opts()","anchor":"t:opts/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"flatten/1","title":"flatten(map)","anchor":"flatten/1"},{"id":"put_style/2","title":"put_style(text_input, style)","anchor":"put_style/2"},{"id":"text_input/3","title":"text_input(label, custom_id, opts \\\\ [])","anchor":"text_input/3"}],"key":"functions"}],"nested_title":".Component.TextInput","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed","group":"Structs","title":"Nostrum.Struct.Embed","sections":[{"id":"Building Embeds","anchor":"module-building-embeds"},{"id":"Using structs","anchor":"module-using-structs"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"author/0","title":"author()","anchor":"t:author/0"},{"id":"color/0","title":"color()","anchor":"t:color/0"},{"id":"description/0","title":"description()","anchor":"t:description/0"},{"id":"fields/0","title":"fields()","anchor":"t:fields/0"},{"id":"footer/0","title":"footer()","anchor":"t:footer/0"},{"id":"image/0","title":"image()","anchor":"t:image/0"},{"id":"provider/0","title":"provider()","anchor":"t:provider/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"thumbnail/0","title":"thumbnail()","anchor":"t:thumbnail/0"},{"id":"timestamp/0","title":"timestamp()","anchor":"t:timestamp/0"},{"id":"title/0","title":"title()","anchor":"t:title/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"},{"id":"url/0","title":"url()","anchor":"t:url/0"},{"id":"video/0","title":"video()","anchor":"t:video/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"author/1","title":"author(struct)","anchor":"c:author/1"},{"id":"color/1","title":"color(struct)","anchor":"c:color/1"},{"id":"description/1","title":"description(struct)","anchor":"c:description/1"},{"id":"fields/1","title":"fields(struct)","anchor":"c:fields/1"},{"id":"footer/1","title":"footer(struct)","anchor":"c:footer/1"},{"id":"image/1","title":"image(struct)","anchor":"c:image/1"},{"id":"thumbnail/1","title":"thumbnail(struct)","anchor":"c:thumbnail/1"},{"id":"timestamp/1","title":"timestamp(struct)","anchor":"c:timestamp/1"},{"id":"title/1","title":"title(struct)","anchor":"c:title/1"},{"id":"url/1","title":"url(struct)","anchor":"c:url/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"from/1","title":"from(struct)","anchor":"from/1"},{"id":"put_author/4","title":"put_author(embed, name, url, icon_url)","anchor":"put_author/4"},{"id":"put_color/2","title":"put_color(embed, value)","anchor":"put_color/2"},{"id":"put_description/2","title":"put_description(embed, value)","anchor":"put_description/2"},{"id":"put_field/4","title":"put_field(embed, name, value, inline \\\\ nil)","anchor":"put_field/4"},{"id":"put_footer/3","title":"put_footer(embed, text, icon_url \\\\ nil)","anchor":"put_footer/3"},{"id":"put_image/2","title":"put_image(embed, url)","anchor":"put_image/2"},{"id":"put_thumbnail/2","title":"put_thumbnail(embed, url)","anchor":"put_thumbnail/2"},{"id":"put_timestamp/2","title":"put_timestamp(embed, value)","anchor":"put_timestamp/2"},{"id":"put_title/2","title":"put_title(embed, value)","anchor":"put_title/2"},{"id":"put_url/2","title":"put_url(embed, value)","anchor":"put_url/2"}],"key":"functions"}],"nested_title":".Embed","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Author","group":"Structs","title":"Nostrum.Struct.Embed.Author","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"icon_url/0","title":"icon_url()","anchor":"t:icon_url/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"proxy_icon_url/0","title":"proxy_icon_url()","anchor":"t:proxy_icon_url/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"url/0","title":"url()","anchor":"t:url/0"}],"key":"types"}],"nested_title":".Embed.Author","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Field","group":"Structs","title":"Nostrum.Struct.Embed.Field","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"inline/0","title":"inline()","anchor":"t:inline/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"value/0","title":"value()","anchor":"t:value/0"}],"key":"types"}],"nested_title":".Embed.Field","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Footer","group":"Structs","title":"Nostrum.Struct.Embed.Footer","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"icon_url/0","title":"icon_url()","anchor":"t:icon_url/0"},{"id":"proxy_icon_url/0","title":"proxy_icon_url()","anchor":"t:proxy_icon_url/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"text/0","title":"text()","anchor":"t:text/0"}],"key":"types"}],"nested_title":".Embed.Footer","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Image","group":"Structs","title":"Nostrum.Struct.Embed.Image","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"height/0","title":"height()","anchor":"t:height/0"},{"id":"proxy_url/0","title":"proxy_url()","anchor":"t:proxy_url/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"url/0","title":"url()","anchor":"t:url/0"},{"id":"width/0","title":"width()","anchor":"t:width/0"}],"key":"types"}],"nested_title":".Embed.Image","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Provider","group":"Structs","title":"Nostrum.Struct.Embed.Provider","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"url/0","title":"url()","anchor":"t:url/0"}],"key":"types"}],"nested_title":".Embed.Provider","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Thumbnail","group":"Structs","title":"Nostrum.Struct.Embed.Thumbnail","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"height/0","title":"height()","anchor":"t:height/0"},{"id":"proxy_url/0","title":"proxy_url()","anchor":"t:proxy_url/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"url/0","title":"url()","anchor":"t:url/0"},{"id":"width/0","title":"width()","anchor":"t:width/0"}],"key":"types"}],"nested_title":".Embed.Thumbnail","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Embed.Video","group":"Structs","title":"Nostrum.Struct.Embed.Video","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"height/0","title":"height()","anchor":"t:height/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"url/0","title":"url()","anchor":"t:url/0"},{"id":"width/0","title":"width()","anchor":"t:width/0"}],"key":"types"}],"nested_title":".Embed.Video","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Emoji","group":"Structs","title":"Nostrum.Struct.Emoji","sections":[{"id":"Mentioning Emojis in Messages","anchor":"module-mentioning-emojis-in-messages"},{"id":"Using Emojis in the Api","anchor":"module-using-emojis-in-the-api"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"animated/0","title":"animated()","anchor":"t:animated/0"},{"id":"api_name/0","title":"api_name()","anchor":"t:api_name/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"managed/0","title":"managed()","anchor":"t:managed/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"require_colons/0","title":"require_colons()","anchor":"t:require_colons/0"},{"id":"roles/0","title":"roles()","anchor":"t:roles/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user/0","title":"user()","anchor":"t:user/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"api_name/1","title":"api_name(emoji)","anchor":"api_name/1"},{"id":"image_url/1","title":"image_url(emoji)","anchor":"image_url/1"},{"id":"mention/1","title":"mention(emoji)","anchor":"mention/1"}],"key":"functions"}],"nested_title":".Emoji","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild","group":"Structs","title":"Nostrum.Struct.Guild","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"afk_channel_id/0","title":"afk_channel_id()","anchor":"t:afk_channel_id/0"},{"id":"afk_timeout/0","title":"afk_timeout()","anchor":"t:afk_timeout/0"},{"id":"application_id/0","title":"application_id()","anchor":"t:application_id/0"},{"id":"available_guild/0","title":"available_guild()","anchor":"t:available_guild/0"},{"id":"channels/0","title":"channels()","anchor":"t:channels/0"},{"id":"default_message_notifications/0","title":"default_message_notifications()","anchor":"t:default_message_notifications/0"},{"id":"emojis/0","title":"emojis()","anchor":"t:emojis/0"},{"id":"explicit_content_filter/0","title":"explicit_content_filter()","anchor":"t:explicit_content_filter/0"},{"id":"features/0","title":"features()","anchor":"t:features/0"},{"id":"guild_scheduled_events/0","title":"guild_scheduled_events()","anchor":"t:guild_scheduled_events/0"},{"id":"icon/0","title":"icon()","anchor":"t:icon/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"joined_at/0","title":"joined_at()","anchor":"t:joined_at/0"},{"id":"large/0","title":"large()","anchor":"t:large/0"},{"id":"member_count/0","title":"member_count()","anchor":"t:member_count/0"},{"id":"mfa_level/0","title":"mfa_level()","anchor":"t:mfa_level/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"owner_id/0","title":"owner_id()","anchor":"t:owner_id/0"},{"id":"public_updates_channel_id/0","title":"public_updates_channel_id()","anchor":"t:public_updates_channel_id/0"},{"id":"region/0","title":"region()","anchor":"t:region/0"},{"id":"rest_guild/0","title":"rest_guild()","anchor":"t:rest_guild/0"},{"id":"roles/0","title":"roles()","anchor":"t:roles/0"},{"id":"rules_channel_id/0","title":"rules_channel_id()","anchor":"t:rules_channel_id/0"},{"id":"splash/0","title":"splash()","anchor":"t:splash/0"},{"id":"system_channel_id/0","title":"system_channel_id()","anchor":"t:system_channel_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"threads/0","title":"threads()","anchor":"t:threads/0"},{"id":"unavailable/0","title":"unavailable()","anchor":"t:unavailable/0"},{"id":"unavailable_guild/0","title":"unavailable_guild()","anchor":"t:unavailable_guild/0"},{"id":"user_guild/0","title":"user_guild()","anchor":"t:user_guild/0"},{"id":"vanity_url_code/0","title":"vanity_url_code()","anchor":"t:vanity_url_code/0"},{"id":"verification_level/0","title":"verification_level()","anchor":"t:verification_level/0"},{"id":"voice_states/0","title":"voice_states()","anchor":"t:voice_states/0"},{"id":"widget_channel_id/0","title":"widget_channel_id()","anchor":"t:widget_channel_id/0"},{"id":"widget_enabled/0","title":"widget_enabled()","anchor":"t:widget_enabled/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"icon_url/2","title":"icon_url(guild, image_format \\\\ \"webp\")","anchor":"icon_url/2"},{"id":"splash_url/2","title":"splash_url(guild, image_format \\\\ \"webp\")","anchor":"splash_url/2"}],"key":"functions"}],"nested_title":".Guild","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.AuditLog","group":"Structs","title":"Nostrum.Struct.Guild.AuditLog","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"entries/0","title":"entries()","anchor":"t:entries/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"users/0","title":"users()","anchor":"t:users/0"},{"id":"webhooks/0","title":"webhooks()","anchor":"t:webhooks/0"}],"key":"types"}],"nested_title":".Guild.AuditLog","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.AuditLogEntry","group":"Structs","title":"Nostrum.Struct.Guild.AuditLogEntry","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"action_type/0","title":"action_type()","anchor":"t:action_type/0"},{"id":"changes/0","title":"changes()","anchor":"t:changes/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"options/0","title":"options()","anchor":"t:options/0"},{"id":"reason/0","title":"reason()","anchor":"t:reason/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"target_id/0","title":"target_id()","anchor":"t:target_id/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".Guild.AuditLogEntry","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Ban","group":"Structs","title":"Nostrum.Struct.Guild.Ban","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"reason/0","title":"reason()","anchor":"t:reason/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user/0","title":"user()","anchor":"t:user/0"}],"key":"types"}],"nested_title":".Guild.Ban","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Integration","group":"Structs","title":"Nostrum.Struct.Guild.Integration","sections":[{"id":"References","anchor":"module-references"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"account/0","title":"account()","anchor":"t:account/0"},{"id":"application/0","title":"application()","anchor":"t:application/0"},{"id":"enabled/0","title":"enabled()","anchor":"t:enabled/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"}],"key":"types"}],"nested_title":".Guild.Integration","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Integration.Account","group":"Structs","title":"Nostrum.Struct.Guild.Integration.Account","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Guild.Integration.Account","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Integration.Application","group":"Structs","title":"Nostrum.Struct.Guild.Integration.Application","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"bot/0","title":"bot()","anchor":"t:bot/0"},{"id":"description/0","title":"description()","anchor":"t:description/0"},{"id":"icon/0","title":"icon()","anchor":"t:icon/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"summary/0","title":"summary()","anchor":"t:summary/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Guild.Integration.Application","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Member","group":"Structs","title":"Nostrum.Struct.Guild.Member","sections":[{"id":"Mentioning Members in Messages","anchor":"module-mentioning-members-in-messages"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"communication_disabled_until/0","title":"communication_disabled_until()","anchor":"t:communication_disabled_until/0"},{"id":"deaf/0","title":"deaf()","anchor":"t:deaf/0"},{"id":"joined_at/0","title":"joined_at()","anchor":"t:joined_at/0"},{"id":"mute/0","title":"mute()","anchor":"t:mute/0"},{"id":"nick/0","title":"nick()","anchor":"t:nick/0"},{"id":"premium_since/0","title":"premium_since()","anchor":"t:premium_since/0"},{"id":"roles/0","title":"roles()","anchor":"t:roles/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"guild_channel_permissions/3","title":"guild_channel_permissions(member, guild, channel_id)","anchor":"guild_channel_permissions/3"},{"id":"guild_permissions/2","title":"guild_permissions(member, guild)","anchor":"guild_permissions/2"},{"id":"mention/1","title":"mention(member)","anchor":"mention/1"},{"id":"top_role/2","title":"top_role(member, guild)","anchor":"top_role/2"}],"key":"functions"}],"nested_title":".Guild.Member","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.Role","group":"Structs","title":"Nostrum.Struct.Guild.Role","sections":[{"id":"Mentioning Roles in Messages","anchor":"module-mentioning-roles-in-messages"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"color/0","title":"color()","anchor":"t:color/0"},{"id":"hoist/0","title":"hoist()","anchor":"t:hoist/0"},{"id":"icon/0","title":"icon()","anchor":"t:icon/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"managed/0","title":"managed()","anchor":"t:managed/0"},{"id":"mentionable/0","title":"mentionable()","anchor":"t:mentionable/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"permissions/0","title":"permissions()","anchor":"t:permissions/0"},{"id":"position/0","title":"position()","anchor":"t:position/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"unicode_emoji/0","title":"unicode_emoji()","anchor":"t:unicode_emoji/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"mention/1","title":"mention(role)","anchor":"mention/1"}],"key":"functions"}],"nested_title":".Guild.Role","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.ScheduledEvent","group":"Structs","title":"Nostrum.Struct.Guild.ScheduledEvent","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"creator/0","title":"creator()","anchor":"t:creator/0"},{"id":"creator_id/0","title":"creator_id()","anchor":"t:creator_id/0"},{"id":"description/0","title":"description()","anchor":"t:description/0"},{"id":"entity_id/0","title":"entity_id()","anchor":"t:entity_id/0"},{"id":"entity_metadata/0","title":"entity_metadata()","anchor":"t:entity_metadata/0"},{"id":"entity_type/0","title":"entity_type()","anchor":"t:entity_type/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"privacy_level/0","title":"privacy_level()","anchor":"t:privacy_level/0"},{"id":"scheduled_end_time/0","title":"scheduled_end_time()","anchor":"t:scheduled_end_time/0"},{"id":"scheduled_start_time/0","title":"scheduled_start_time()","anchor":"t:scheduled_start_time/0"},{"id":"status/0","title":"status()","anchor":"t:status/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user_count/0","title":"user_count()","anchor":"t:user_count/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"to_struct/1","title":"to_struct(map)","anchor":"to_struct/1"}],"key":"functions"}],"nested_title":".Guild.ScheduledEvent","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata","group":"Structs","title":"Nostrum.Struct.Guild.ScheduledEvent.EntityMetadata","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"location/0","title":"location()","anchor":"t:location/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Guild.ScheduledEvent.EntityMetadata","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.ScheduledEvent.User","group":"Structs","title":"Nostrum.Struct.Guild.ScheduledEvent.User","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"event_id/0","title":"event_id()","anchor":"t:event_id/0"},{"id":"member/0","title":"member()","anchor":"t:member/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user/0","title":"user()","anchor":"t:user/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"to_struct/1","title":"to_struct(map)","anchor":"to_struct/1"}],"key":"functions"}],"nested_title":".Guild.ScheduledEvent.User","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Guild.UnavailableGuild","group":"Structs","title":"Nostrum.Struct.Guild.UnavailableGuild","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"unavailable/0","title":"unavailable()","anchor":"t:unavailable/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"to_struct/1","title":"to_struct(map)","anchor":"to_struct/1"}],"key":"functions"}],"nested_title":".Guild.UnavailableGuild","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Interaction","group":"Structs","title":"Nostrum.Struct.Interaction","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"application_id/0","title":"application_id()","anchor":"t:application_id/0"},{"id":"channel/0","title":"channel()","anchor":"t:channel/0"},{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"data/0","title":"data()","anchor":"t:data/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"guild_locale/0","title":"guild_locale()","anchor":"t:guild_locale/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"locale/0","title":"locale()","anchor":"t:locale/0"},{"id":"member/0","title":"member()","anchor":"t:member/0"},{"id":"message/0","title":"message()","anchor":"t:message/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"token/0","title":"token()","anchor":"t:token/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"},{"id":"user/0","title":"user()","anchor":"t:user/0"},{"id":"version/0","title":"version()","anchor":"t:version/0"}],"key":"types"}],"nested_title":".Interaction","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Invite","group":"Structs","title":"Nostrum.Struct.Invite","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"approximate_member_count/0","title":"approximate_member_count()","anchor":"t:approximate_member_count/0"},{"id":"approximate_presence_count/0","title":"approximate_presence_count()","anchor":"t:approximate_presence_count/0"},{"id":"channel/0","title":"channel()","anchor":"t:channel/0"},{"id":"code/0","title":"code()","anchor":"t:code/0"},{"id":"created_at/0","title":"created_at()","anchor":"t:created_at/0"},{"id":"detailed_invite/0","title":"detailed_invite()","anchor":"t:detailed_invite/0"},{"id":"guild/0","title":"guild()","anchor":"t:guild/0"},{"id":"inviter/0","title":"inviter()","anchor":"t:inviter/0"},{"id":"max_age/0","title":"max_age()","anchor":"t:max_age/0"},{"id":"max_uses/0","title":"max_uses()","anchor":"t:max_uses/0"},{"id":"simple_invite/0","title":"simple_invite()","anchor":"t:simple_invite/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"target_user/0","title":"target_user()","anchor":"t:target_user/0"},{"id":"target_user_type/0","title":"target_user_type()","anchor":"t:target_user_type/0"},{"id":"temporary/0","title":"temporary()","anchor":"t:temporary/0"},{"id":"uses/0","title":"uses()","anchor":"t:uses/0"}],"key":"types"}],"nested_title":".Invite","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message","group":"Structs","title":"Nostrum.Struct.Message","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"activity/0","title":"activity()","anchor":"t:activity/0"},{"id":"application/0","title":"application()","anchor":"t:application/0"},{"id":"application_id/0","title":"application_id()","anchor":"t:application_id/0"},{"id":"attachments/0","title":"attachments()","anchor":"t:attachments/0"},{"id":"author/0","title":"author()","anchor":"t:author/0"},{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"components/0","title":"components()","anchor":"t:components/0"},{"id":"content/0","title":"content()","anchor":"t:content/0"},{"id":"edited_timestamp/0","title":"edited_timestamp()","anchor":"t:edited_timestamp/0"},{"id":"embeds/0","title":"embeds()","anchor":"t:embeds/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"interaction/0","title":"interaction()","anchor":"t:interaction/0"},{"id":"member/0","title":"member()","anchor":"t:member/0"},{"id":"mention_channels/0","title":"mention_channels()","anchor":"t:mention_channels/0"},{"id":"mention_everyone/0","title":"mention_everyone()","anchor":"t:mention_everyone/0"},{"id":"mention_roles/0","title":"mention_roles()","anchor":"t:mention_roles/0"},{"id":"mentions/0","title":"mentions()","anchor":"t:mentions/0"},{"id":"message_reference/0","title":"message_reference()","anchor":"t:message_reference/0"},{"id":"nonce/0","title":"nonce()","anchor":"t:nonce/0"},{"id":"pinned/0","title":"pinned()","anchor":"t:pinned/0"},{"id":"poll/0","title":"poll()","anchor":"t:poll/0"},{"id":"reactions/0","title":"reactions()","anchor":"t:reactions/0"},{"id":"referenced_message/0","title":"referenced_message()","anchor":"t:referenced_message/0"},{"id":"sticker_items/0","title":"sticker_items()","anchor":"t:sticker_items/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"thread/0","title":"thread()","anchor":"t:thread/0"},{"id":"timestamp/0","title":"timestamp()","anchor":"t:timestamp/0"},{"id":"tts/0","title":"tts()","anchor":"t:tts/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"},{"id":"webhook_id/0","title":"webhook_id()","anchor":"t:webhook_id/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"to_url/1","title":"to_url(message)","anchor":"to_url/1"}],"key":"functions"}],"nested_title":".Message","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Activity","group":"Structs","title":"Nostrum.Struct.Message.Activity","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"party_id/0","title":"party_id()","anchor":"t:party_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"}],"key":"types"}],"nested_title":".Message.Activity","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Application","group":"Structs","title":"Nostrum.Struct.Message.Application","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"cover_image/0","title":"cover_image()","anchor":"t:cover_image/0"},{"id":"description/0","title":"description()","anchor":"t:description/0"},{"id":"icon/0","title":"icon()","anchor":"t:icon/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Message.Application","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Attachment","group":"Structs","title":"Nostrum.Struct.Message.Attachment","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"filename/0","title":"filename()","anchor":"t:filename/0"},{"id":"height/0","title":"height()","anchor":"t:height/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"proxy_url/0","title":"proxy_url()","anchor":"t:proxy_url/0"},{"id":"size/0","title":"size()","anchor":"t:size/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"url/0","title":"url()","anchor":"t:url/0"},{"id":"width/0","title":"width()","anchor":"t:width/0"}],"key":"types"}],"nested_title":".Message.Attachment","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Component","group":"Structs","title":"Nostrum.Struct.Message.Component","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"components/0","title":"components()","anchor":"t:components/0"},{"id":"custom_id/0","title":"custom_id()","anchor":"t:custom_id/0"},{"id":"disabled/0","title":"disabled()","anchor":"t:disabled/0"},{"id":"emoji/0","title":"emoji()","anchor":"t:emoji/0"},{"id":"label/0","title":"label()","anchor":"t:label/0"},{"id":"max_length/0","title":"max_length()","anchor":"t:max_length/0"},{"id":"max_values/0","title":"max_values()","anchor":"t:max_values/0"},{"id":"min_length/0","title":"min_length()","anchor":"t:min_length/0"},{"id":"min_values/0","title":"min_values()","anchor":"t:min_values/0"},{"id":"options/0","title":"options()","anchor":"t:options/0"},{"id":"placeholder/0","title":"placeholder()","anchor":"t:placeholder/0"},{"id":"required/0","title":"required()","anchor":"t:required/0"},{"id":"style/0","title":"style()","anchor":"t:style/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"},{"id":"url/0","title":"url()","anchor":"t:url/0"},{"id":"value/0","title":"value()","anchor":"t:value/0"}],"key":"types"}],"nested_title":".Message.Component","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Poll","group":"Structs","title":"Nostrum.Struct.Message.Poll","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"allow_multiselect/0","title":"allow_multiselect()","anchor":"t:allow_multiselect/0"},{"id":"answers/0","title":"answers()","anchor":"t:answers/0"},{"id":"duration/0","title":"duration()","anchor":"t:duration/0"},{"id":"expiry/0","title":"expiry()","anchor":"t:expiry/0"},{"id":"layout_type/0","title":"layout_type()","anchor":"t:layout_type/0"},{"id":"question/0","title":"question()","anchor":"t:question/0"},{"id":"results/0","title":"results()","anchor":"t:results/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"create_poll/2","title":"create_poll(question_text, list)","anchor":"create_poll/2"},{"id":"put_answer/2","title":"put_answer(poll, answer)","anchor":"put_answer/2"},{"id":"put_answer/3","title":"put_answer(poll, answer, list)","anchor":"put_answer/3"}],"key":"functions"}],"nested_title":".Message.Poll","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Poll.Answer","group":"Structs","title":"Nostrum.Struct.Message.Poll.Answer","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"answer_id/0","title":"answer_id()","anchor":"t:answer_id/0"},{"id":"poll_media/0","title":"poll_media()","anchor":"t:poll_media/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Message.Poll.Answer","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Poll.MediaObject","group":"Structs","title":"Nostrum.Struct.Message.Poll.MediaObject","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"emoji/0","title":"emoji()","anchor":"t:emoji/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"text/0","title":"text()","anchor":"t:text/0"}],"key":"types"}],"nested_title":".Message.Poll.MediaObject","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Poll.Results","group":"Structs","title":"Nostrum.Struct.Message.Poll.Results","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"answer_counts/0","title":"answer_counts()","anchor":"t:answer_counts/0"},{"id":"is_finalized/0","title":"is_finalized()","anchor":"t:is_finalized/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Message.Poll.Results","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Reaction","group":"Structs","title":"Nostrum.Struct.Message.Reaction","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"count/0","title":"count()","anchor":"t:count/0"},{"id":"emoji/0","title":"emoji()","anchor":"t:emoji/0"},{"id":"me/0","title":"me()","anchor":"t:me/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Message.Reaction","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Reference","group":"Structs","title":"Nostrum.Struct.Message.Reference","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"message_id/0","title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".Message.Reference","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Message.Sticker","group":"Structs","title":"Nostrum.Struct.Message.Sticker","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"available/0","title":"available()","anchor":"t:available/0"},{"id":"description/0","title":"description()","anchor":"t:description/0"},{"id":"format_type/0","title":"format_type()","anchor":"t:format_type/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"pack_id/0","title":"pack_id()","anchor":"t:pack_id/0"},{"id":"sort_value/0","title":"sort_value()","anchor":"t:sort_value/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"tags/0","title":"tags()","anchor":"t:tags/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"},{"id":"user/0","title":"user()","anchor":"t:user/0"}],"key":"types"}],"nested_title":".Message.Sticker","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Overwrite","group":"Structs","title":"Nostrum.Struct.Overwrite","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"allow/0","title":"allow()","anchor":"t:allow/0"},{"id":"deny/0","title":"deny()","anchor":"t:deny/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"}],"key":"types"}],"nested_title":".Overwrite","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.ThreadMember","group":"Structs","title":"Nostrum.Struct.ThreadMember","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"flags/0","title":"flags()","anchor":"t:flags/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"join_timestamp/0","title":"join_timestamp()","anchor":"t:join_timestamp/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".ThreadMember","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.User","group":"Structs","title":"Nostrum.Struct.User","sections":[{"id":"Mentioning Users in Messages","anchor":"module-mentioning-users-in-messages"},{"id":"User vs. Member","anchor":"module-user-vs-member"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"avatar/0","title":"avatar()","anchor":"t:avatar/0"},{"id":"bot/0","title":"bot()","anchor":"t:bot/0"},{"id":"discriminator/0","title":"discriminator()","anchor":"t:discriminator/0"},{"id":"email/0","title":"email()","anchor":"t:email/0"},{"id":"global_name/0","title":"global_name()","anchor":"t:global_name/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"mfa_enabled/0","title":"mfa_enabled()","anchor":"t:mfa_enabled/0"},{"id":"public_flags/0","title":"public_flags()","anchor":"t:public_flags/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"username/0","title":"username()","anchor":"t:username/0"},{"id":"verified/0","title":"verified()","anchor":"t:verified/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"avatar_url/2","title":"avatar_url(user, image_format \\\\ \"webp\")","anchor":"avatar_url/2"},{"id":"full_name/1","title":"full_name(user)","anchor":"full_name/1"},{"id":"mention/1","title":"mention(user)","anchor":"mention/1"}],"key":"functions"}],"nested_title":".User","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.User.Connection","group":"Structs","title":"Nostrum.Struct.User.Connection","sections":[],"nested_title":".User.Connection","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.User.Flags","group":"Structs","title":"Nostrum.Struct.User.Flags","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"bug_hunter_level_1/0","title":"bug_hunter_level_1()","anchor":"t:bug_hunter_level_1/0"},{"id":"bug_hunter_level_2/0","title":"bug_hunter_level_2()","anchor":"t:bug_hunter_level_2/0"},{"id":"early_supporter/0","title":"early_supporter()","anchor":"t:early_supporter/0"},{"id":"flags/0","title":"flags()","anchor":"t:flags/0"},{"id":"hypesquad_balance/0","title":"hypesquad_balance()","anchor":"t:hypesquad_balance/0"},{"id":"hypesquad_bravery/0","title":"hypesquad_bravery()","anchor":"t:hypesquad_bravery/0"},{"id":"hypesquad_brilliance/0","title":"hypesquad_brilliance()","anchor":"t:hypesquad_brilliance/0"},{"id":"hypesquad_events/0","title":"hypesquad_events()","anchor":"t:hypesquad_events/0"},{"id":"partner/0","title":"partner()","anchor":"t:partner/0"},{"id":"staff/0","title":"staff()","anchor":"t:staff/0"},{"id":"system/0","title":"system()","anchor":"t:system/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"team_user/0","title":"team_user()","anchor":"t:team_user/0"},{"id":"verified_bot/0","title":"verified_bot()","anchor":"t:verified_bot/0"},{"id":"verified_developer/0","title":"verified_developer()","anchor":"t:verified_developer/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"from_integer/1","title":"from_integer(flag_value)","anchor":"from_integer/1"},{"id":"to_integer/1","title":"to_integer(flag_struct)","anchor":"to_integer/1"}],"key":"functions"}],"nested_title":".User.Flags","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.VoiceRegion","group":"Structs","title":"Nostrum.Struct.VoiceRegion","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".VoiceRegion","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.VoiceWSState","group":"Structs","title":"Nostrum.Struct.VoiceWSState","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"conn/0","title":"conn()","anchor":"t:conn/0"},{"id":"conn_pid/0","title":"conn_pid()","anchor":"t:conn_pid/0"},{"id":"gateway/0","title":"gateway()","anchor":"t:gateway/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"heartbeat_ack/0","title":"heartbeat_ack()","anchor":"t:heartbeat_ack/0"},{"id":"heartbeat_interval/0","title":"heartbeat_interval()","anchor":"t:heartbeat_interval/0"},{"id":"heartbeat_ref/0","title":"heartbeat_ref()","anchor":"t:heartbeat_ref/0"},{"id":"identified/0","title":"identified()","anchor":"t:identified/0"},{"id":"last_heartbeat_ack/0","title":"last_heartbeat_ack()","anchor":"t:last_heartbeat_ack/0"},{"id":"last_heartbeat_send/0","title":"last_heartbeat_send()","anchor":"t:last_heartbeat_send/0"},{"id":"secret_key/0","title":"secret_key()","anchor":"t:secret_key/0"},{"id":"session/0","title":"session()","anchor":"t:session/0"},{"id":"ssrc_map/0","title":"ssrc_map()","anchor":"t:ssrc_map/0"},{"id":"stream/0","title":"stream()","anchor":"t:stream/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"token/0","title":"token()","anchor":"t:token/0"}],"key":"types"}],"nested_title":".VoiceWSState","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.WSState","group":"Structs","title":"Nostrum.Struct.WSState","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"conn/0","title":"conn()","anchor":"t:conn/0"},{"id":"conn_pid/0","title":"conn_pid()","anchor":"t:conn_pid/0"},{"id":"gateway/0","title":"gateway()","anchor":"t:gateway/0"},{"id":"heartbeat_ack/0","title":"heartbeat_ack()","anchor":"t:heartbeat_ack/0"},{"id":"heartbeat_interval/0","title":"heartbeat_interval()","anchor":"t:heartbeat_interval/0"},{"id":"last_heartbeat_ack/0","title":"last_heartbeat_ack()","anchor":"t:last_heartbeat_ack/0"},{"id":"last_heartbeat_send/0","title":"last_heartbeat_send()","anchor":"t:last_heartbeat_send/0"},{"id":"resume_gateway/0","title":"resume_gateway()","anchor":"t:resume_gateway/0"},{"id":"seq/0","title":"seq()","anchor":"t:seq/0"},{"id":"session/0","title":"session()","anchor":"t:session/0"},{"id":"shard_num/0","title":"shard_num()","anchor":"t:shard_num/0"},{"id":"stream/0","title":"stream()","anchor":"t:stream/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"total_shards/0","title":"total_shards()","anchor":"t:total_shards/0"},{"id":"zlib_ctx/0","title":"zlib_ctx()","anchor":"t:zlib_ctx/0"}],"key":"types"}],"nested_title":".WSState","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Webhook","group":"Structs","title":"Nostrum.Struct.Webhook","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"avatar/0","title":"avatar()","anchor":"t:avatar/0"},{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"name/0","title":"name()","anchor":"t:name/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"token/0","title":"token()","anchor":"t:token/0"},{"id":"user/0","title":"user()","anchor":"t:user/0"}],"key":"types"}],"nested_title":".Webhook","nested_context":"Nostrum.Struct"},{"id":"Nostrum.Struct.Event.AutoModerationRuleExecute","group":"Structs","title":"Nostrum.Struct.Event.AutoModerationRuleExecute","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"action/0","title":"action()","anchor":"t:action/0"},{"id":"alert_system_message_id/0","title":"alert_system_message_id()","anchor":"t:alert_system_message_id/0"},{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"content/0","title":"content()","anchor":"t:content/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"matched_content/0","title":"matched_content()","anchor":"t:matched_content/0"},{"id":"matched_keyword/0","title":"matched_keyword()","anchor":"t:matched_keyword/0"},{"id":"message_id/0","title":"message_id()","anchor":"t:message_id/0"},{"id":"rule_id/0","title":"rule_id()","anchor":"t:rule_id/0"},{"id":"rule_trigger_type/0","title":"rule_trigger_type()","anchor":"t:rule_trigger_type/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".AutoModerationRuleExecute","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.ChannelPinsUpdate","group":"Structs","title":"Nostrum.Struct.Event.ChannelPinsUpdate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"last_pin_timestamp/0","title":"last_pin_timestamp()","anchor":"t:last_pin_timestamp/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".ChannelPinsUpdate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildBanAdd","group":"Structs","title":"Nostrum.Struct.Event.GuildBanAdd","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user/0","title":"user()","anchor":"t:user/0"}],"key":"types"}],"nested_title":".GuildBanAdd","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildBanRemove","group":"Structs","title":"Nostrum.Struct.Event.GuildBanRemove","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user/0","title":"user()","anchor":"t:user/0"}],"key":"types"}],"nested_title":".GuildBanRemove","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildIntegrationDelete","group":"Structs","title":"Nostrum.Struct.Event.GuildIntegrationDelete","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"application_id/0","title":"application_id()","anchor":"t:application_id/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".GuildIntegrationDelete","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildIntegrationsUpdate","group":"Structs","title":"Nostrum.Struct.Event.GuildIntegrationsUpdate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".GuildIntegrationsUpdate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildScheduledEventUserAdd","group":"Structs","title":"Nostrum.Struct.Event.GuildScheduledEventUserAdd","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"guild_scheduled_event_id/0","title":"guild_scheduled_event_id()","anchor":"t:guild_scheduled_event_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".GuildScheduledEventUserAdd","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.GuildScheduledEventUserRemove","group":"Structs","title":"Nostrum.Struct.Event.GuildScheduledEventUserRemove","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"guild_scheduled_event_id/0","title":"guild_scheduled_event_id()","anchor":"t:guild_scheduled_event_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".GuildScheduledEventUserRemove","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.InviteCreate","group":"Structs","title":"Nostrum.Struct.Event.InviteCreate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"code/0","title":"code()","anchor":"t:code/0"},{"id":"created_at/0","title":"created_at()","anchor":"t:created_at/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"inviter/0","title":"inviter()","anchor":"t:inviter/0"},{"id":"max_age/0","title":"max_age()","anchor":"t:max_age/0"},{"id":"max_uses/0","title":"max_uses()","anchor":"t:max_uses/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"target_user/0","title":"target_user()","anchor":"t:target_user/0"},{"id":"target_user_type/0","title":"target_user_type()","anchor":"t:target_user_type/0"},{"id":"temporary/0","title":"temporary()","anchor":"t:temporary/0"},{"id":"uses/0","title":"uses()","anchor":"t:uses/0"}],"key":"types"}],"nested_title":".InviteCreate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.InviteDelete","group":"Structs","title":"Nostrum.Struct.Event.InviteDelete","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"code/0","title":"code()","anchor":"t:code/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".InviteDelete","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageDelete","group":"Structs","title":"Nostrum.Struct.Event.MessageDelete","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".MessageDelete","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageDeleteBulk","group":"Structs","title":"Nostrum.Struct.Event.MessageDeleteBulk","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"ids/0","title":"ids()","anchor":"t:ids/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".MessageDeleteBulk","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageReactionAdd","group":"Structs","title":"Nostrum.Struct.Event.MessageReactionAdd","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"emoji/0","title":"emoji()","anchor":"t:emoji/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"member/0","title":"member()","anchor":"t:member/0"},{"id":"message_id/0","title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".MessageReactionAdd","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageReactionRemove","group":"Structs","title":"Nostrum.Struct.Event.MessageReactionRemove","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"emoji/0","title":"emoji()","anchor":"t:emoji/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"message_id/0","title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".MessageReactionRemove","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageReactionRemoveAll","group":"Structs","title":"Nostrum.Struct.Event.MessageReactionRemoveAll","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"message_id/0","title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".MessageReactionRemoveAll","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.MessageReactionRemoveEmoji","group":"Structs","title":"Nostrum.Struct.Event.MessageReactionRemoveEmoji","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"emoji/0","title":"emoji()","anchor":"t:emoji/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"message_id/0","title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".MessageReactionRemoveEmoji","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.PartialApplication","group":"Structs","title":"Nostrum.Struct.Event.PartialApplication","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"flags/0","title":"flags()","anchor":"t:flags/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".PartialApplication","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.PollVoteChange","group":"Structs","title":"Nostrum.Struct.Event.PollVoteChange","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"answer_id/0","title":"answer_id()","anchor":"t:answer_id/0"},{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"message_id/0","title":"message_id()","anchor":"t:message_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"type/0","title":"type()","anchor":"t:type/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".PollVoteChange","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.Ready","group":"Structs","title":"Nostrum.Struct.Event.Ready","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"application/0","title":"application()","anchor":"t:application/0"},{"id":"guilds/0","title":"guilds()","anchor":"t:guilds/0"},{"id":"session_id/0","title":"session_id()","anchor":"t:session_id/0"},{"id":"shard/0","title":"shard()","anchor":"t:shard/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user/0","title":"user()","anchor":"t:user/0"},{"id":"v/0","title":"v()","anchor":"t:v/0"}],"key":"types"}],"nested_title":".Ready","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.SpeakingUpdate","group":"Structs","title":"Nostrum.Struct.Event.SpeakingUpdate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"current_url/0","title":"current_url()","anchor":"t:current_url/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"speaking/0","title":"speaking()","anchor":"t:speaking/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"timed_out/0","title":"timed_out()","anchor":"t:timed_out/0"}],"key":"types"}],"nested_title":".SpeakingUpdate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.ThreadListSync","group":"Structs","title":"Nostrum.Struct.Event.ThreadListSync","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_ids/0","title":"channel_ids()","anchor":"t:channel_ids/0"},{"id":"guid_id/0","title":"guid_id()","anchor":"t:guid_id/0"},{"id":"members/0","title":"members()","anchor":"t:members/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"threads/0","title":"threads()","anchor":"t:threads/0"}],"key":"types"}],"nested_title":".ThreadListSync","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.ThreadMembersUpdate","group":"Structs","title":"Nostrum.Struct.Event.ThreadMembersUpdate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"added_members/0","title":"added_members()","anchor":"t:added_members/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"id/0","title":"id()","anchor":"t:id/0"},{"id":"member_count/0","title":"member_count()","anchor":"t:member_count/0"},{"id":"removed_member_ids/0","title":"removed_member_ids()","anchor":"t:removed_member_ids/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".ThreadMembersUpdate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.TypingStart","group":"Structs","title":"Nostrum.Struct.Event.TypingStart","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"member/0","title":"member()","anchor":"t:member/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"timestamp/0","title":"timestamp()","anchor":"t:timestamp/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".TypingStart","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.VoiceReady","group":"Structs","title":"Nostrum.Struct.Event.VoiceReady","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}],"nested_title":".VoiceReady","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.VoiceServerUpdate","group":"Structs","title":"Nostrum.Struct.Event.VoiceServerUpdate","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"endpoint/0","title":"endpoint()","anchor":"t:endpoint/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"token/0","title":"token()","anchor":"t:token/0"}],"key":"types"}],"nested_title":".VoiceServerUpdate","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Struct.Event.VoiceState","group":"Structs","title":"Nostrum.Struct.Event.VoiceState","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"channel_id/0","title":"channel_id()","anchor":"t:channel_id/0"},{"id":"deaf/0","title":"deaf()","anchor":"t:deaf/0"},{"id":"guild_id/0","title":"guild_id()","anchor":"t:guild_id/0"},{"id":"member/0","title":"member()","anchor":"t:member/0"},{"id":"mute/0","title":"mute()","anchor":"t:mute/0"},{"id":"request_to_speak_timestamp/0","title":"request_to_speak_timestamp()","anchor":"t:request_to_speak_timestamp/0"},{"id":"self_deaf/0","title":"self_deaf()","anchor":"t:self_deaf/0"},{"id":"self_mute/0","title":"self_mute()","anchor":"t:self_mute/0"},{"id":"self_stream/0","title":"self_stream()","anchor":"t:self_stream/0"},{"id":"self_video/0","title":"self_video()","anchor":"t:self_video/0"},{"id":"session_id/0","title":"session_id()","anchor":"t:session_id/0"},{"id":"suppress/0","title":"suppress()","anchor":"t:suppress/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"},{"id":"user_id/0","title":"user_id()","anchor":"t:user_id/0"}],"key":"types"}],"nested_title":".VoiceState","nested_context":"Nostrum.Struct.Event"},{"id":"Nostrum.Constants.ApplicationCommandOptionType","group":"Constants","title":"Nostrum.Constants.ApplicationCommandOptionType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"attachment/0","title":"attachment()","anchor":"attachment/0"},{"id":"boolean/0","title":"boolean()","anchor":"boolean/0"},{"id":"channel/0","title":"channel()","anchor":"channel/0"},{"id":"integer/0","title":"integer()","anchor":"integer/0"},{"id":"mentionable/0","title":"mentionable()","anchor":"mentionable/0"},{"id":"number/0","title":"number()","anchor":"number/0"},{"id":"role/0","title":"role()","anchor":"role/0"},{"id":"string/0","title":"string()","anchor":"string/0"},{"id":"sub_command/0","title":"sub_command()","anchor":"sub_command/0"},{"id":"sub_command_group/0","title":"sub_command_group()","anchor":"sub_command_group/0"},{"id":"user/0","title":"user()","anchor":"user/0"}],"key":"functions"}],"nested_title":".ApplicationCommandOptionType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.ApplicationCommandPermissionType","group":"Constants","title":"Nostrum.Constants.ApplicationCommandPermissionType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"channel/0","title":"channel()","anchor":"channel/0"},{"id":"role/0","title":"role()","anchor":"role/0"},{"id":"user/0","title":"user()","anchor":"user/0"}],"key":"functions"}],"nested_title":".ApplicationCommandPermissionType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.ApplicationCommandType","group":"Constants","title":"Nostrum.Constants.ApplicationCommandType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"chat_input/0","title":"chat_input()","anchor":"chat_input/0"},{"id":"message/0","title":"message()","anchor":"message/0"},{"id":"user/0","title":"user()","anchor":"user/0"}],"key":"functions"}],"nested_title":".ApplicationCommandType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.ButtonStyle","group":"Constants","title":"Nostrum.Constants.ButtonStyle","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"danger/0","title":"danger()","anchor":"danger/0"},{"id":"link/0","title":"link()","anchor":"link/0"},{"id":"primary/0","title":"primary()","anchor":"primary/0"},{"id":"secondary/0","title":"secondary()","anchor":"secondary/0"},{"id":"success/0","title":"success()","anchor":"success/0"}],"key":"functions"}],"nested_title":".ButtonStyle","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.ChannelType","group":"Constants","title":"Nostrum.Constants.ChannelType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"announcement_thread/0","title":"announcement_thread()","anchor":"announcement_thread/0"},{"id":"dm/0","title":"dm()","anchor":"dm/0"},{"id":"group_db/0","title":"group_db()","anchor":"group_db/0"},{"id":"guild_announcement/0","title":"guild_announcement()","anchor":"guild_announcement/0"},{"id":"guild_category/0","title":"guild_category()","anchor":"guild_category/0"},{"id":"guild_directory/0","title":"guild_directory()","anchor":"guild_directory/0"},{"id":"guild_forum/0","title":"guild_forum()","anchor":"guild_forum/0"},{"id":"guild_text/0","title":"guild_text()","anchor":"guild_text/0"},{"id":"guild_voice/0","title":"guild_voice()","anchor":"guild_voice/0"},{"id":"private_thread/0","title":"private_thread()","anchor":"private_thread/0"},{"id":"public_thread/0","title":"public_thread()","anchor":"public_thread/0"}],"key":"functions"}],"nested_title":".ChannelType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.ComponentType","group":"Constants","title":"Nostrum.Constants.ComponentType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"action_row/0","title":"action_row()","anchor":"action_row/0"},{"id":"button/0","title":"button()","anchor":"button/0"},{"id":"channel_select/0","title":"channel_select()","anchor":"channel_select/0"},{"id":"mentionable_select/0","title":"mentionable_select()","anchor":"mentionable_select/0"},{"id":"role_select/0","title":"role_select()","anchor":"role_select/0"},{"id":"string_select/0","title":"string_select()","anchor":"string_select/0"},{"id":"text_input/0","title":"text_input()","anchor":"text_input/0"},{"id":"user_select/0","title":"user_select()","anchor":"user_select/0"}],"key":"functions"}],"nested_title":".ComponentType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.InteractionCallbackType","group":"Constants","title":"Nostrum.Constants.InteractionCallbackType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"application_command_autocomplete_result/0","title":"application_command_autocomplete_result()","anchor":"application_command_autocomplete_result/0"},{"id":"channel_message_with_source/0","title":"channel_message_with_source()","anchor":"channel_message_with_source/0"},{"id":"deferred_channel_message_with_source/0","title":"deferred_channel_message_with_source()","anchor":"deferred_channel_message_with_source/0"},{"id":"deferred_update_message/0","title":"deferred_update_message()","anchor":"deferred_update_message/0"},{"id":"modal/0","title":"modal()","anchor":"modal/0"},{"id":"pong/0","title":"pong()","anchor":"pong/0"},{"id":"update_message/0","title":"update_message()","anchor":"update_message/0"}],"key":"functions"}],"nested_title":".InteractionCallbackType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.InteractionType","group":"Constants","title":"Nostrum.Constants.InteractionType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"application_command/0","title":"application_command()","anchor":"application_command/0"},{"id":"application_command_autocomplete/0","title":"application_command_autocomplete()","anchor":"application_command_autocomplete/0"},{"id":"message_component/0","title":"message_component()","anchor":"message_component/0"},{"id":"modal_submit/0","title":"modal_submit()","anchor":"modal_submit/0"},{"id":"ping/0","title":"ping()","anchor":"ping/0"}],"key":"functions"}],"nested_title":".InteractionType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.TextInputStyle","group":"Constants","title":"Nostrum.Constants.TextInputStyle","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"paragraph/0","title":"paragraph()","anchor":"paragraph/0"},{"id":"short/0","title":"short()","anchor":"short/0"}],"key":"functions"}],"nested_title":".TextInputStyle","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Constants.WebhookType","group":"Constants","title":"Nostrum.Constants.WebhookType","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"application/0","title":"application()","anchor":"application/0"},{"id":"channel_follower/0","title":"channel_follower()","anchor":"channel_follower/0"},{"id":"incoming/0","title":"incoming()","anchor":"incoming/0"}],"key":"functions"}],"nested_title":".WebhookType","nested_context":"Nostrum.Constants"},{"id":"Nostrum.Snowflake","group":"Utilities","title":"Nostrum.Snowflake","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"external_snowflake/0","title":"external_snowflake()","anchor":"t:external_snowflake/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"cast/1","title":"cast(value)","anchor":"cast/1"},{"id":"cast!/1","title":"cast!(value)","anchor":"cast!/1"},{"id":"creation_time/1","title":"creation_time(snowflake)","anchor":"creation_time/1"},{"id":"dump/1","title":"dump(snowflake)","anchor":"dump/1"},{"id":"from_datetime/1","title":"from_datetime(datetime)","anchor":"from_datetime/1"},{"id":"from_datetime!/1","title":"from_datetime!(datetime)","anchor":"from_datetime!/1"},{"id":"is_snowflake/1","title":"is_snowflake(term)","anchor":"is_snowflake/1"}],"key":"functions"}]},{"id":"Nostrum.Token","group":"Utilities","title":"Nostrum.Token","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"check_token!/0","title":"check_token!()","anchor":"check_token!/0"},{"id":"check_token!/1","title":"check_token!(token)","anchor":"check_token!/1"}],"key":"functions"}]},{"id":"Nostrum.Util","group":"Utilities","title":"Nostrum.Util","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"enum_to_struct/2","title":"enum_to_struct(enum, struct)","anchor":"enum_to_struct/2"},{"id":"gateway/0","title":"gateway()","anchor":"gateway/0"},{"id":"get_all_shard_latencies/0","title":"get_all_shard_latencies()","anchor":"get_all_shard_latencies/0"},{"id":"get_shard_latency/1","title":"get_shard_latency(state)","anchor":"get_shard_latency/1"},{"id":"maybe_to_atom/1","title":"maybe_to_atom(token)","anchor":"maybe_to_atom/1"},{"id":"maybe_to_datetime/1","title":"maybe_to_datetime(stamp)","anchor":"maybe_to_datetime/1"},{"id":"maybe_to_unixtime/1","title":"maybe_to_unixtime(stamp)","anchor":"maybe_to_unixtime/1"},{"id":"now/0","title":"now()","anchor":"now/0"},{"id":"now_iso/0","title":"now_iso()","anchor":"now_iso/0"},{"id":"num_shards/0","title":"num_shards()","anchor":"num_shards/0"},{"id":"safe_atom_map/1","title":"safe_atom_map(term)","anchor":"safe_atom_map/1"},{"id":"unused_atoms/0","title":"unused_atoms()","anchor":"unused_atoms/0"},{"id":"usec_now/0","title":"usec_now()","anchor":"usec_now/0"}],"key":"functions"}]},{"id":"Nostrum.Store.GuildShardMapping","group":"Stores","title":"Nostrum.Store.GuildShardMapping","sections":[{"id":"Purpose","anchor":"module-purpose"},{"id":"Configuration","anchor":"module-configuration"}],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"child_spec/1","title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/2","title":"create(id, shard_num)","anchor":"c:create/2"},{"id":"delete/1","title":"delete(id)","anchor":"c:delete/1"},{"id":"get/1","title":"get(id)","anchor":"c:get/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"create/2","title":"create(guild_id, shard_num)","anchor":"create/2"},{"id":"delete/1","title":"delete(guild_id)","anchor":"delete/1"},{"id":"get/1","title":"get(guild_id)","anchor":"get/1"}],"key":"functions"}],"nested_title":".GuildShardMapping","nested_context":"Nostrum.Store"},{"id":"Nostrum.Store.Supervisor","group":"Stores","title":"Nostrum.Store.Supervisor","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"init/1","title":"init(list)","anchor":"init/1"},{"id":"start_link/1","title":"start_link(list)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".Supervisor","nested_context":"Nostrum.Store"},{"id":"Nostrum.Store.UnavailableGuild","group":"Stores","title":"Nostrum.Store.UnavailableGuild","sections":[{"id":"Purpose","anchor":"module-purpose"},{"id":"Configuration","anchor":"module-configuration"},{"id":"Implementation","anchor":"module-implementation"}],"nodeGroups":[{"name":"Callbacks","nodes":[{"id":"child_spec/1","title":"child_spec(term)","anchor":"c:child_spec/1"},{"id":"create/1","title":"create(id)","anchor":"c:create/1"},{"id":"is?/1","title":"is?(id)","anchor":"c:is?/1"}],"key":"callbacks"},{"name":"Functions","nodes":[{"id":"create/1","title":"create(guild_id)","anchor":"create/1"},{"id":"is?/1","title":"is?(guild_id)","anchor":"is?/1"}],"key":"functions"}],"nested_title":".UnavailableGuild","nested_context":"Nostrum.Store"},{"id":"Nostrum.Cache.ChannelCache.ETS","group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelCache.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","title":"create(channel)","anchor":"create/1"},{"id":"delete/1","title":"delete(id)","anchor":"delete/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"update/1","title":"update(channel)","anchor":"update/1"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.ChannelCache"},{"id":"Nostrum.Cache.ChannelCache.Mnesia","group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelCache.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","title":"clear()","anchor":"clear/0"},{"id":"create/1","title":"create(channel)","anchor":"create/1"},{"id":"delete/1","title":"delete(id)","anchor":"delete/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"teardown/0","title":"teardown()","anchor":"teardown/0"},{"id":"update/1","title":"update(channel)","anchor":"update/1"},{"id":"wrap_qlc/1","title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.ChannelCache"},{"id":"Nostrum.Cache.ChannelCache.NoOp","group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelCache.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.ChannelCache"},{"id":"Nostrum.Cache.ChannelGuildMapping.ETS","group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelGuildMapping.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/2","title":"create(channel_id, guild_id)","anchor":"create/2"},{"id":"delete/1","title":"delete(channel_id)","anchor":"delete/1"},{"id":"get/1","title":"get(channel_id)","anchor":"get/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.ChannelGuildMapping"},{"id":"Nostrum.Cache.ChannelGuildMapping.Mnesia","group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelGuildMapping.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/2","title":"create(channel_id, guild_id)","anchor":"create/2"},{"id":"delete/1","title":"delete(channel_id)","anchor":"delete/1"},{"id":"get/1","title":"get(channel_id)","anchor":"get/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"teardown/0","title":"teardown()","anchor":"teardown/0"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.ChannelGuildMapping"},{"id":"Nostrum.Cache.ChannelGuildMapping.NoOp","group":"Pluggable caches & stores","title":"Nostrum.Cache.ChannelGuildMapping.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.ChannelGuildMapping"},{"id":"Nostrum.Cache.GuildCache.ETS","group":"Pluggable caches & stores","title":"Nostrum.Cache.GuildCache.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"channel_create/2","title":"channel_create(guild_id, channel)","anchor":"channel_create/2"},{"id":"channel_delete/2","title":"channel_delete(guild_id, channel_id)","anchor":"channel_delete/2"},{"id":"channel_update/2","title":"channel_update(guild_id, channel)","anchor":"channel_update/2"},{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","title":"create(payload)","anchor":"create/1"},{"id":"delete/1","title":"delete(guild_id)","anchor":"delete/1"},{"id":"emoji_update/2","title":"emoji_update(guild_id, emojis)","anchor":"emoji_update/2"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"member_count_down/1","title":"member_count_down(guild_id)","anchor":"member_count_down/1"},{"id":"member_count_up/1","title":"member_count_up(guild_id)","anchor":"member_count_up/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"role_create/2","title":"role_create(guild_id, role)","anchor":"role_create/2"},{"id":"role_delete/2","title":"role_delete(guild_id, role_id)","anchor":"role_delete/2"},{"id":"role_update/2","title":"role_update(guild_id, role)","anchor":"role_update/2"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"tabname/0","title":"tabname()","anchor":"tabname/0"},{"id":"update/1","title":"update(payload)","anchor":"update/1"},{"id":"voice_state_update/2","title":"voice_state_update(guild_id, payload)","anchor":"voice_state_update/2"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.GuildCache"},{"id":"Nostrum.Cache.GuildCache.Mnesia","group":"Pluggable caches & stores","title":"Nostrum.Cache.GuildCache.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"channel_create/2","title":"channel_create(guild_id, channel)","anchor":"channel_create/2"},{"id":"channel_delete/2","title":"channel_delete(guild_id, channel_id)","anchor":"channel_delete/2"},{"id":"channel_update/2","title":"channel_update(guild_id, channel)","anchor":"channel_update/2"},{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","title":"clear()","anchor":"clear/0"},{"id":"create/1","title":"create(payload)","anchor":"create/1"},{"id":"delete/1","title":"delete(guild_id)","anchor":"delete/1"},{"id":"emoji_update/2","title":"emoji_update(guild_id, payload)","anchor":"emoji_update/2"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"member_count_down/1","title":"member_count_down(guild_id)","anchor":"member_count_down/1"},{"id":"member_count_up/1","title":"member_count_up(guild_id)","anchor":"member_count_up/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"role_create/2","title":"role_create(guild_id, payload)","anchor":"role_create/2"},{"id":"role_delete/2","title":"role_delete(guild_id, role_id)","anchor":"role_delete/2"},{"id":"role_update/2","title":"role_update(guild_id, role)","anchor":"role_update/2"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"teardown/0","title":"teardown()","anchor":"teardown/0"},{"id":"update/1","title":"update(payload)","anchor":"update/1"},{"id":"voice_state_update/2","title":"voice_state_update(guild_id, payload)","anchor":"voice_state_update/2"},{"id":"wrap_qlc/1","title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.GuildCache"},{"id":"Nostrum.Cache.GuildCache.NoOp","group":"Pluggable caches & stores","title":"Nostrum.Cache.GuildCache.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.GuildCache"},{"id":"Nostrum.Cache.MemberCache.ETS","group":"Pluggable caches & stores","title":"Nostrum.Cache.MemberCache.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/2","title":"bulk_create(guild_id, members)","anchor":"bulk_create/2"},{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","title":"clear()","anchor":"clear/0"},{"id":"create/2","title":"create(guild_id, payload)","anchor":"create/2"},{"id":"delete/2","title":"delete(guild_id, user_id)","anchor":"delete/2"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"update/2","title":"update(guild_id, payload)","anchor":"update/2"},{"id":"wrap_qlc/1","title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.MemberCache"},{"id":"Nostrum.Cache.MemberCache.Mnesia","group":"Pluggable caches & stores","title":"Nostrum.Cache.MemberCache.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/2","title":"bulk_create(guild_id, members)","anchor":"bulk_create/2"},{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","title":"clear()","anchor":"clear/0"},{"id":"create/2","title":"create(guild_id, payload)","anchor":"create/2"},{"id":"delete/2","title":"delete(guild_id, user_id)","anchor":"delete/2"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"teardown/0","title":"teardown()","anchor":"teardown/0"},{"id":"update/2","title":"update(guild_id, payload)","anchor":"update/2"},{"id":"wrap_qlc/1","title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.MemberCache"},{"id":"Nostrum.Cache.MemberCache.NoOp","group":"Pluggable caches & stores","title":"Nostrum.Cache.MemberCache.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.MemberCache"},{"id":"Nostrum.Cache.PresenceCache.ETS","group":"Pluggable caches & stores","title":"Nostrum.Cache.PresenceCache.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/2","title":"bulk_create(guild_id, presences)","anchor":"bulk_create/2"},{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","title":"create(presence)","anchor":"create/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"update/1","title":"update(new)","anchor":"update/1"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.PresenceCache"},{"id":"Nostrum.Cache.PresenceCache.Mnesia","group":"Pluggable caches & stores","title":"Nostrum.Cache.PresenceCache.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/2","title":"bulk_create(guild_id, presences)","anchor":"bulk_create/2"},{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","title":"clear()","anchor":"clear/0"},{"id":"create/1","title":"create(presence)","anchor":"create/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"teardown/0","title":"teardown()","anchor":"teardown/0"},{"id":"update/1","title":"update(new)","anchor":"update/1"},{"id":"wrap_qlc/1","title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.PresenceCache"},{"id":"Nostrum.Cache.PresenceCache.NoOp","group":"Pluggable caches & stores","title":"Nostrum.Cache.PresenceCache.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.PresenceCache"},{"id":"Nostrum.Cache.UserCache.ETS","group":"Pluggable caches & stores","title":"Nostrum.Cache.UserCache.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/1","title":"bulk_create(users)","anchor":"bulk_create/1"},{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","title":"create(payload)","anchor":"create/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"update/1","title":"update(info)","anchor":"update/1"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Cache.UserCache"},{"id":"Nostrum.Cache.UserCache.Mnesia","group":"Pluggable caches & stores","title":"Nostrum.Cache.UserCache.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"bulk_create/1","title":"bulk_create(users)","anchor":"bulk_create/1"},{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"clear/0","title":"clear()","anchor":"clear/0"},{"id":"create/1","title":"create(payload)","anchor":"create/1"},{"id":"delete/1","title":"delete(user_id)","anchor":"delete/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"query_handle/0","title":"query_handle()","anchor":"query_handle/0"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"teardown/0","title":"teardown()","anchor":"teardown/0"},{"id":"update/1","title":"update(payload)","anchor":"update/1"},{"id":"wrap_qlc/1","title":"wrap_qlc(fun)","anchor":"wrap_qlc/1"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Cache.UserCache"},{"id":"Nostrum.Cache.UserCache.NoOp","group":"Pluggable caches & stores","title":"Nostrum.Cache.UserCache.NoOp","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"}],"key":"functions"}],"nested_title":".NoOp","nested_context":"Nostrum.Cache.UserCache"},{"id":"Nostrum.Store.GuildShardMapping.ETS","group":"Pluggable caches & stores","title":"Nostrum.Store.GuildShardMapping.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/2","title":"create(guild_id, shard_num)","anchor":"create/2"},{"id":"delete/1","title":"delete(guild_id)","anchor":"delete/1"},{"id":"get/1","title":"get(guild_id)","anchor":"get/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Store.GuildShardMapping"},{"id":"Nostrum.Store.GuildShardMapping.Mnesia","group":"Pluggable caches & stores","title":"Nostrum.Store.GuildShardMapping.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/2","title":"create(guild_id, shard_num)","anchor":"create/2"},{"id":"delete/1","title":"delete(guild_id)","anchor":"delete/1"},{"id":"get/1","title":"get(guild_id)","anchor":"get/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"teardown/0","title":"teardown()","anchor":"teardown/0"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Store.GuildShardMapping"},{"id":"Nostrum.Store.UnavailableGuild.ETS","group":"Pluggable caches & stores","title":"Nostrum.Store.UnavailableGuild.ETS","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","title":"create(guild_id)","anchor":"create/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"is?/1","title":"is?(guild_id)","anchor":"is?/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"}],"key":"functions"}],"nested_title":".ETS","nested_context":"Nostrum.Store.UnavailableGuild"},{"id":"Nostrum.Store.UnavailableGuild.Mnesia","group":"Pluggable caches & stores","title":"Nostrum.Store.UnavailableGuild.Mnesia","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"create/1","title":"create(guild_id)","anchor":"create/1"},{"id":"init/1","title":"init(init_arg)","anchor":"init/1"},{"id":"is?/1","title":"is?(guild_id)","anchor":"is?/1"},{"id":"start_link/1","title":"start_link(init_arg)","anchor":"start_link/1"},{"id":"table/0","title":"table()","anchor":"table/0"},{"id":"teardown/0","title":"teardown()","anchor":"teardown/0"}],"key":"functions"}],"nested_title":".Mnesia","nested_context":"Nostrum.Store.UnavailableGuild"},{"id":"Nostrum.Api.Ratelimiter","group":"Internal modules","title":"Nostrum.Api.Ratelimiter","sections":[{"id":"Purpose","anchor":"module-purpose"},{"id":"Asynchronous requests","anchor":"module-asynchronous-requests"},{"id":"Multi-node","anchor":"module-multi-node"},{"id":"Inner workings","anchor":"module-inner-workings"}],"nodeGroups":[{"name":"Types","nodes":[{"id":"bucket/0","title":"bucket()","anchor":"t:bucket/0"},{"id":"queued_request/0","title":"queued_request()","anchor":"t:queued_request/0"},{"id":"remaining/0","title":"remaining()","anchor":"t:remaining/0"},{"id":"request/0","title":"request()","anchor":"t:request/0"},{"id":"state/0","title":"state()","anchor":"t:state/0"}],"key":"types"},{"name":"Functions","nodes":[{"id":"callback_mode/0","title":"callback_mode()","anchor":"callback_mode/0"},{"id":"child_spec/1","title":"child_spec(opts)","anchor":"child_spec/1"},{"id":"code_change/4","title":"code_change(version, state, data, extra)","anchor":"code_change/4"},{"id":"connected/3","title":"connected(arg1, request, data)","anchor":"connected/3"},{"id":"connecting/3","title":"connecting(arg1, arg2, data)","anchor":"connecting/3"},{"id":"disconnected/3","title":"disconnected(arg, arg2, data)","anchor":"disconnected/3"},{"id":"get_endpoint/2","title":"get_endpoint(route, method)","anchor":"get_endpoint/2"},{"id":"global_limit/3","title":"global_limit(arg1, next, data)","anchor":"global_limit/3"},{"id":"init/1","title":"init(list)","anchor":"init/1"},{"id":"queue/1","title":"queue(request)","anchor":"queue/1"},{"id":"start_link/1","title":"start_link(opts)","anchor":"start_link/1"}],"key":"functions"}]},{"id":"Nostrum.Shard.Session","group":"Internal modules","title":"Nostrum.Shard.Session","sections":[{"id":"Purpose","anchor":"module-purpose"},{"id":"Inner workings","anchor":"module-inner-workings"}],"nodeGroups":[{"name":"Functions","nodes":[{"id":"callback_mode/0","title":"callback_mode()","anchor":"callback_mode/0"},{"id":"child_spec/1","title":"child_spec(opts)","anchor":"child_spec/1"},{"id":"connected/3","title":"connected(arg1, request, data)","anchor":"connected/3"},{"id":"connecting_http/3","title":"connecting_http(arg1, from, data)","anchor":"connecting_http/3"},{"id":"connecting_ws/3","title":"connecting_ws(arg1, arg2, data)","anchor":"connecting_ws/3"},{"id":"disconnected/3","title":"disconnected(arg1, arg2, data)","anchor":"disconnected/3"},{"id":"get_ws_state/1","title":"get_ws_state(pid)","anchor":"get_ws_state/1"},{"id":"init/1","title":"init(list)","anchor":"init/1"},{"id":"request_guild_members/3","title":"request_guild_members(pid, guild_id, limit \\\\ 0)","anchor":"request_guild_members/3"},{"id":"start_link/2","title":"start_link(shard_opts, statem_opts)","anchor":"start_link/2"},{"id":"update_status/5","title":"update_status(pid, status, game, stream, type)","anchor":"update_status/5"},{"id":"update_voice_state/5","title":"update_voice_state(pid, guild_id, channel_id, self_mute, self_deaf)","anchor":"update_voice_state/5"}],"key":"functions"}]},{"id":"Nostrum.Shard.Supervisor","group":"Internal modules","title":"Nostrum.Shard.Supervisor","sections":[{"id":"Implementation","anchor":"module-implementation"}],"nodeGroups":[{"name":"Functions","nodes":[{"id":"child_spec/1","title":"child_spec(init_arg)","anchor":"child_spec/1"},{"id":"start_link/1","title":"start_link(args)","anchor":"start_link/1"},{"id":"update_status/4","title":"update_status(status, game, stream, type)","anchor":"update_status/4"},{"id":"update_voice_state/4","title":"update_voice_state(guild_id, channel_id, self_mute, self_deaf)","anchor":"update_voice_state/4"}],"key":"functions"}]},{"id":"Nostrum.StateMachineTranslator","group":"Internal modules","title":"Nostrum.StateMachineTranslator","sections":[{"id":"Reasoning","anchor":"module-reasoning"}],"nodeGroups":[{"name":"Functions","nodes":[{"id":"translate/4","title":"translate(min_level, arg2, arg3, arg4)","anchor":"translate/4"}],"key":"functions"}]},{"id":"Nostrum.Error.ApiError","group":"Exceptions","title":"Nostrum.Error.ApiError","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"detailed_error/0","title":"detailed_error()","anchor":"t:detailed_error/0"},{"id":"discord_status_code/0","title":"discord_status_code()","anchor":"t:discord_status_code/0"},{"id":"error/0","title":"error()","anchor":"t:error/0"},{"id":"error_list_map/0","title":"error_list_map()","anchor":"t:error_list_map/0"},{"id":"errors/0","title":"errors()","anchor":"t:errors/0"},{"id":"response/0","title":"response()","anchor":"t:response/0"},{"id":"status_code/0","title":"status_code()","anchor":"t:status_code/0"},{"id":"t/0","title":"t()","anchor":"t:t/0"}],"key":"types"}]},{"id":"Nostrum.Error.CacheError","group":"Exceptions","title":"Nostrum.Error.CacheError","sections":[]},{"id":"Nostrum.Error.VoiceError","group":"Exceptions","title":"Nostrum.Error.VoiceError","sections":[]}],"extras":[{"id":"api-reference","group":"","title":"API Reference","headers":[{"id":"Modules","anchor":"modules"},{"id":"Mix Tasks","anchor":"mix-tasks"}]},{"id":"intro","group":"","title":"Introduction","headers":[{"id":"Setup","anchor":"setup"},{"id":"Configuration options","anchor":"configuration-options"},{"id":"Logging","anchor":"logging"},{"id":"Example bots","anchor":"example-bots"}]},{"id":"api","group":"","title":"API","headers":[{"id":"Banged (!) API methods","anchor":"banged-api-methods"},{"id":"Abstractions","anchor":"abstractions"},{"id":"Ratelimiting","anchor":"ratelimiting"},{"id":"REST-only","anchor":"rest-only"}]},{"id":"application_commands","group":"","title":"Application commands","headers":[{"id":"Permissions required","anchor":"permissions-required"},{"id":"Getting started","anchor":"getting-started"},{"id":"Receiving interactions","anchor":"receiving-interactions"},{"id":"Responding to interactions","anchor":"responding-to-interactions"}]},{"id":"gateway_intents","group":"","title":"Gateway Intents","headers":[]},{"id":"state","group":"Functionality","title":"State","headers":[{"id":"Caches","anchor":"caches"},{"id":"Query list comprehensions","anchor":"query-list-comprehensions"},{"id":"Internal state","anchor":"internal-state"}]},{"id":"event_handling","group":"Functionality","title":"Event handling","headers":[]},{"id":"voice","group":"Functionality","title":"Voice","headers":[{"id":"Voice channels","anchor":"voice-channels"},{"id":"FFmpeg","anchor":"ffmpeg"},{"id":"youtube-dl","anchor":"youtube-dl"},{"id":"streamlink","anchor":"streamlink"},{"id":"Audio Timeout","anchor":"audio-timeout"},{"id":"Audio Frames Per Burst","anchor":"audio-frames-per-burst"},{"id":"Voice Events","anchor":"voice-events"}]},{"id":"pluggable_caching","group":"Advanced","title":"Pluggable caching","headers":[{"id":"Implementations","anchor":"implementations"},{"id":"Cache invalidation","anchor":"cache-invalidation"},{"id":"Cache performance","anchor":"cache-performance"}]},{"id":"multi_node","group":"Advanced","title":"Multi-node","headers":[{"id":"High availability","anchor":"high-availability"}]},{"id":"hot_code_upgrade","group":"Advanced","title":"Hot code upgrade","headers":[]}],"tasks":[{"id":"Mix.Tasks.Gh.Docs","group":"","title":"mix gh.docs","sections":[],"nodeGroups":[{"name":"Functions","nodes":[{"id":"run/1","title":"run(_)","anchor":"run/1"}],"key":"functions"}]}]} \ No newline at end of file diff --git a/event_handling.html b/event_handling.html index 2ff043ce0..12e090ce0 100644 --- a/event_handling.html +++ b/event_handling.html @@ -4,20 +4,19 @@ - + + Event handling — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,76 +35,106 @@ } catch (error) { } -

    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Event handling -

    + Event handling +

    Event handling is how your bot application will interact with the information sent from Discord over a websocket connection. By defining an event handler for @@ -115,8 +144,10 @@

    Nostrum.ConsumerGroup. This allows dynamic subscriptions at runtime, even across nodes. Events are dispatched to group members as they appear fromthe Discord Gateway after ingestion into the cache.

    To see the documentation on handling events of provided consumers, please see -Nostrum.Consumer.

    - + +

    +

    + +
    -
    +
    diff --git a/gateway_intents.html b/gateway_intents.html index bf7d587c3..287c5482c 100644 --- a/gateway_intents.html +++ b/gateway_intents.html @@ -4,20 +4,19 @@ - + + Gateway Intents — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,83 +35,113 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Gateway Intents -

    + Gateway Intents +

    The Discord API allows you to fine tune the payloads that are received by your bot through gateway intents.

    When connecting to Discord you can instruct Discord on which events you want to receive (i.e. messages, user presences, etc.).

    Nostrum allows you to set these intents within your configuration, by default all non-privileged intents are enabled.

    To pass intents you should use the following configuration:

    config :nostrum,
       token: "bot_token",
    -  gateway_intents: [
    +  gateway_intents: [
         :guilds,
         # other gateway intents
    -  ]

    Possible intents (and the gateway events they correspond to) are:

    guilds:
    +  ]

    Possible intents (and the gateway events they correspond to) are:

    guilds:
       - GUILD_CREATE
       - GUILD_UPDATE
       - GUILD_DELETE
    @@ -210,7 +239,9 @@ 

    - MESSAGE_POLL_VOTE_REMOVE

    Besides an explicit list of atoms, acceptable configuration values are :all and :nonprivileged.

    Note that intents marked with * are privileged intents. You must enable these intents by visiting the Discord Developer portal.

    Once your bot passes 100 servers Discord will force you to verify your bot. If you require privileged intents you may need to write additional information on your usage of them.

    Nostrum's default value for gateway_intents is :nonprivileged, which enables all non-privileged intents. This is equivalent to setting gateway_intents to the above list without the privileged intents. If you require all intents, including privileged ones, set gateway_intents to :all.

    More information on gateway intents can be found in the Discord Developer documentation.

    -
    +
    + +
    +

    + +
    -
    +
    diff --git a/hot_code_upgrade.html b/hot_code_upgrade.html index 1c6f78526..30dd9f867 100644 --- a/hot_code_upgrade.html +++ b/hot_code_upgrade.html @@ -4,20 +4,19 @@ - + + Hot code upgrade — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,110 +35,142 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Hot code upgrade -

    + Hot code upgrade +

    For the library users whose Discord bot can afford absolutely no downtime due to restarts, nostrum ships with appup files via the castle library.

    - -

    maintenance

    +
    + - Maintenance + Maintenance

    The appups are maintained on a best-effort basis. While they are expected to work and be present and documented as such, no guarantee can be made that they will choose the most optimal path to upgrade and downgrade releases. Contributions in this regard are welcome.

    - -

    usage

    +
    + - Usage + Usage

    To make use of nostrum's hot code upgrade support, please follow the instructions to install the castle library in order to configure your release appropriately. Outside of shipping the appup, nostrum does not provide further functionality to facilitate this.

    - -

    nostrum-as-included-application

    +
    + - nostrum as included application + nostrum as included application

    When nostrum is run as an included application as documented in the multi-node support document, nostrum's default appup won't be read on generation of the release upgrade file.

    Please see the OTP documentation on Changing Included Applications -for information on how to deal with upgrades in this case.

    -
    +for information on how to deal with upgrades in this case.

    +
    + +
    +

    + +
    -
    +
    diff --git a/index.html b/index.html index 304d14e16..7aca598f5 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Nostrum v0.9.0-alpha3 — Documentation - + diff --git a/intro.html b/intro.html index c3c241c8a..894b1d72e 100644 --- a/intro.html +++ b/intro.html @@ -4,20 +4,19 @@ - + + Introduction — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,97 +35,127 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Introduction -

    + Introduction +

    nostrum is an Elixir library that can be used to interact with Discord.

    To see documentation about a specific part of the library, please visit one of the following:

    • API - Methods to interact with the RESTful API (and some other goodies).
    • State - Caches that keep information from Discord fresh at your disposal.
    • Events - Handling events from Discord as they come in.
    • Voice - Playing audio through Discord voice channels.

    - -

    setup

    +
    + - Setup + Setup

    There are two versions of nostrum, a stable version released on Hex and a dev version on GitHub. The dev version will be more up to date but will likely -have more errors.

    def deps do
    -  [{:nostrum, "~> 0.8"}]
    +have more errors.

    def deps do
    +  [{:nostrum, "~> 0.8"}]
       # Or, for bleeding edge changes:
       # [{:nostrum, github: "Kraigie/nostrum"}]
    -end

    Next up, you need to configure nostrum. The most basic configuration is simply +end

    Next up, you need to configure nostrum. The most basic configuration is simply setting a token to log in with:

    config :nostrum,
       token: "666"  # The token of your bot as a string

    - -

    configuration-options

    +
    + - Configuration options + Configuration options

    Apart from the token field mentioned above, the following fields are also supported:

    • num_shards - the amount of shards to run. Can be one of the following:
      • :auto: use the suggested amount of shards as provided by Discord.
      • num: a number of shards to run. nostrum will warn if this is not the recommended amount.
      • {lowest, highest, total}: start shards lowest to highest. total @@ -138,10 +167,10 @@

        of members for all guilds at startup. Depending on your cache backend, this may increase startup time and memory usage by quite a bit. Defaults to false.

      - -

      voice-specific

      +
      + - Voice-specific + Voice-specific

      • ffmpeg - Specifies the path to the ffmpeg executable for playing audio. Defaults to "ffmpeg".
      • youtubedl - Specifies the path to the youtube-dl executable for playing @@ -155,10 +184,10 @@

        but you still wish to connect to the voice gateway, you can do so manually by calling Nostrum.Voice.connect_to_gateway/1 after joining a voice channel. Defaults to true.

      - -

      development-debugging

      +
      + - Development & debugging + Development & debugging

      • log_full_events - This will log the full payload received over the websocket. Defaults to false.
      • log_dispatch_events - This will log dispatch events as they are received @@ -172,31 +201,31 @@

        variables or by setting the system flag yourself. Defaults to whatever your system recommends, which is probably 65535.

      - -

      internal-options

      +
      + - Internal options + Internal options

      The following options are only used for testing nostrum itself.

      • dev - This is added to enable Nostrum to be run completely stand alone for development purposes. true will cause Nostrum to spawn its own event consumers. If you have the dev flag set to true while running Nostrum alongside your application some of your events will be consumed. Defaults to false.

      - -

      logging

      +
      + - Logging + Logging

      nostrum uses Elixir's standard logger to inform you about regular and irregular events. Normal messages include Discord-requested shard reconnections and the IDENTIFY and READY events.

      The following metadata fields through logger:

      • shard - Id of the shard on which the event occurred
      • guild - Name of the guild on which the voice connection event occurred
      • channel - Name of the channel on which the voice connection event occurred

      To enable this metadata, logger can be configured as such:

      config :logger, :console,
      -  metadata: [:shard, :guild, :channel]

      For more information on how this works, and how to change the logging + metadata: [:shard, :guild, :channel]

      For more information on how this works, and how to change the logging configuration for nostrum on its own, please see the Logger documentation

      - -

      why-elixir

      +
      + - Why Elixir? + Why Elixir?

      From the Elixir website -

      Elixir is a dynamic, functional language designed for building scalable and maintainable applications.

      Elixir leverages the Erlang VM, known for running low-latency, distributed @@ -211,15 +240,17 @@

      components out of the box - that would fall out of the scope of the library. However, see the multi-node document for provided functionality.

    - -

    example-bots

    +
    + - Example bots + Example bots

    -
    +examples/audio_player_example.ex.

    +
    + +
    +

    + +
    -
    +
    diff --git a/multi_node.html b/multi_node.html index 6c42b85b8..e8e6363ce 100644 --- a/multi_node.html +++ b/multi_node.html @@ -4,20 +4,19 @@ - + + Multi-node — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,76 +35,106 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Multi-node -

    + Multi-node +

    At the moment, you can run nostrum in highly available mode across multiple nodes via OTP's distributed application support, see below. Support for properly @@ -114,10 +143,10 @@

    sure to secure it with a solid VPN and / or by using TLS for Erlang distribution.

    - -

    high-availability

    +
    + - High availability + High availability

    Running using OTP's distributed applications @@ -128,10 +157,10 @@

    --sname / --name you specify. We'll use --snames for testing here, for proper fault tolerance you will want to use multiple hosts with --name. Let's assume we name our nodes joe, robert, and mike.

    - -

    bundling-nostrum-with-our-app

    +
    + - Bundling nostrum with our app + Bundling nostrum with our app

    We want to colocate nostrum with our app to allow it to move around as our application is moved around. For this, utilize OTP's included @@ -139,37 +168,37 @@

    feature to include nostrum into our supervision tree. You also need to explicitly include nostrum's dependencies to ensure they are started, as the regular nostrum application startup won't handle it for you. This can be done by -changing your application definition in mix.exs as follows:

      def application do
    -    [
    -      mod: {MyBot.Application, []},
    -      included_applications: [:nostrum],
    +changing your application definition in mix.exs as follows:

      def application do
    +    [
    +      mod: {MyBot.Application, []},
    +      included_applications: [:nostrum],
           # You can see this with `mix app.tree nostrum`
    -      extra_applications: [:certifi, :gun, :inets, :jason, :kcl, :mime]
    +      extra_applications: [:certifi, :gun, :inets, :jason, :kcl, :mime]
           # ...
    -    ]
    -  end

    You also need to set runtime: false for :nostrum itself in your + ] + end

    You also need to set runtime: false for :nostrum itself in your dependencies, and any dependencies of your app that depend on :nostrum, such -as command frameworks like :nosedrum:

      defp deps do
    -    [
    -      {:nostrum, "~> 0.8", runtime: false},
    +as command frameworks like :nosedrum:

      defp deps do
    +    [
    +      {:nostrum, "~> 0.8", runtime: false},
           # {:nosedrum, "~> 0.6", runtime: false},
    -    ]
    -  end

    You now need to add nostrum to your applications' children to start it as part -of your app:

      def start(type, args) do
    -    children = [
    +    ]
    +  end

    You now need to add nostrum to your applications' children to start it as part +of your app:

      def start(type, args) do
    +    children = [
           Nostrum.Application,
           # ...
    -    ]
    -  end

    If you want to run some logic ahead of starting nostrum, you can naturally also + ] + end

    If you want to run some logic ahead of starting nostrum, you can naturally also put it later into the list.

    You can start your bot now, and it's going to run. If you look at your bot's application in :observer, you will see that nostrum has now become one with your bot. We call that integration engineering.

    Now that our app bundles everything it needs with itself, this means starting our app will also starting nostrum, and stopping will also stop nostrum. We need this for step two.

    - -

    setting-up-distribution

    +
    + - Setting up distribution + Setting up distribution

    The avid reader will probably know that starting with the same --cookie and --sname / --name is only step one, the nodes need to connect to each other @@ -177,27 +206,27 @@

    Erlang configuration files, for releases you can use your regular config/prod.exs. We will set up the following:

    • Instruct OTP that our app, :mybot is a distributed app, and give it the hosts to run it on.

    • On startup, tell OTP it should wait for the other nodes to become available.

    With the Erlang configuration files, this can be done as follows:

    % mybot_joe.config
    -[{kernel,
    -  [{distributed, [{mybot, 5000, [joe@HOSTNAME, {mike@HOSTNAME, robert@HOSTNAME}]}]},
    -   {sync_nodes_mandatory, [mike@HOSTNAME, robert@HOSTNAME]},
    -   {sync_nodes_timeout, 30000}]}].
    % mybot_robert.config
    -[{kernel,
    -  [{distributed, [{mybot, 5000, [joe@HOSTNAME, {mike@HOSTNAME, robert@HOSTNAME}]}]},
    -   {sync_nodes_mandatory, [joe@HOSTNAME, mike@HOSTNAME]},
    -   {sync_nodes_timeout, 30000}]}].
    % mybot_mike.config
    -[{kernel,
    -  [{distributed, [{mybot, 5000, [joe@HOSTNAME, {mike@HOSTNAME, robert@HOSTNAME}]}]},
    -   {sync_nodes_mandatory, [joe@HOSTNAME, robert@HOSTNAME]},
    -   {sync_nodes_timeout, 30000}]}].

    Note the only thing that changes is the sync_node_mandatory setting, which +[{kernel, + [{distributed, [{mybot, 5000, [joe@HOSTNAME, {mike@HOSTNAME, robert@HOSTNAME}]}]}, + {sync_nodes_mandatory, [mike@HOSTNAME, robert@HOSTNAME]}, + {sync_nodes_timeout, 30000}]}].

    % mybot_robert.config
    +[{kernel,
    +  [{distributed, [{mybot, 5000, [joe@HOSTNAME, {mike@HOSTNAME, robert@HOSTNAME}]}]},
    +   {sync_nodes_mandatory, [joe@HOSTNAME, mike@HOSTNAME]},
    +   {sync_nodes_timeout, 30000}]}].
    % mybot_mike.config
    +[{kernel,
    +  [{distributed, [{mybot, 5000, [joe@HOSTNAME, {mike@HOSTNAME, robert@HOSTNAME}]}]},
    +   {sync_nodes_mandatory, [joe@HOSTNAME, robert@HOSTNAME]},
    +   {sync_nodes_timeout, 30000}]}].

    Note the only thing that changes is the sync_node_mandatory setting, which instructs OTP which hosts to wait for on startup. The other settings must match. These options instructs OTP that our app :mybot is distributed and should be started at :joe@HOSTNAME first. If that fails, it moves to :robert@HOSTNAME or :mike@HOSTNAME.

    For details on the options, please see the kernel reference manual.

    - -

    playtest

    +
    + - Playtest + Playtest

    In three distinct windows, run the following:

    1. iex --sname joe --cookie foo --erl-config myapp_joe.config -S mix
    2. iex --sname robert --cookie foo --erl-config myapp_robert.config -S mix
    3. iex --sname mike --cookie foo --erl-config myapp_mike.config -S mix

    If you have some other application that breaks on startup now - like monitoring exporters that bind to specific ports, or similar things - this is when they @@ -205,31 +234,33 @@

    include it with your app as shown above.

    You now have three instances of the VM running. :joe@HOSTNAME runs your bot right now. If you stop that node, one of the other two nodes will start running your app. High availability complete.

    - -

    being-informed-about-takeover

    +
    + - Being informed about takeover + Being informed about takeover

    Your application's def start function takes a type argument. In this case, on the node that now runs your application, that type was {:failover, :joe@HOSTNAME}. If you start :joe@HOSTNAME back up, :joe@HOSTNAME is started with {:takeover, source_node}, where source_node is the node that it took over from.

    - -

    manual-takeover

    +
    + - Manual takeover + Manual takeover

    If you want to move your app around manually, you can use :application.takeover, for example :application.takeover(:mybot, :permanent).

    - -

    final-thoughts

    +
    + - Final thoughts + Final thoughts

    At present, nostrum can not perform any state synchronization between nodes, it is an effective restart from scratch. For most bots, this type of failover will -be sufficient.

    -
    +be sufficient.

    +
    + +
    +

    + +
    -
    +
    diff --git a/pluggable_caching.html b/pluggable_caching.html index 54efa491a..3736f04df 100644 --- a/pluggable_caching.html +++ b/pluggable_caching.html @@ -4,20 +4,19 @@ - + + Pluggable caching — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,76 +35,106 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +
    +

    - - - View Source - + + + View Source + - Pluggable caching -

    + Pluggable caching +

    The default ETS-based caches supplied by nostrum should work for most of your needs, but all of the caches can be exchanged for your own implementations. For @@ -115,57 +144,57 @@

    time. A common situation is that you don't want to cache presences in your bot, most likely you don't care about user's status, so you can disable it altogether by using the NoOp presence cache:

    config :nostrum,
    -  caches: %{
    +  caches: %{
         presences: Nostrum.Cache.PresenceCache.NoOp
    -  }

    In addition to regular caches that associate Discord snowflakes with the proper + }

    In addition to regular caches that associate Discord snowflakes with the proper "full" object, nostrum also maintains junction table-like mappings that allow you to find the matching object from one cache in another. One example for this is Nostrum.Cache.ChannelGuildMapping.

    Nostrum also ships with Mnesia-based caches. These are only compiled in when mnesia is available: they may not be available on Nerves or when Mnesia was not installed with OTP.

    - -

    implementations

    +
    + - Implementations + Implementations

    - -

    ets-caching

    +
    + - ETS caching + ETS caching

    Caching based on :ets is used by default. No configuration is required. Fast, light on memory, but does not support any form of distribution or secondary indexing: queries such as fetching all guild members for a guild by its ID will perform a full table scan. For smaller bots, this is perfectly acceptable.

    - -

    mnesia-caching

    +
    + - Mnesia caching + Mnesia caching

    Mnesia-based caching is mainly suggested for larger bots that require features such as cache distribution, fragmentation, secondary indexing and more.

    The caches will attempt to create their tables automatically at startup: therefore, Mnesia must be started ahead of nostrum. Caches expose a function table/0 that can be called to retrieve the table name used by the cache and -perform schema operations on it, such as adding replicas or fragmenting them.

    Access to Mnesia is presently done in sync_transaction mode for best +perform schema operations on it, such as adding replicas or fragmenting them.

    Access to Mnesia is presently done in sync_transaction mode for best consistency. If needed, a compile-time configuration option for the cache to switch this can be added.

    Mnesia-based caching assumes the user is familar with usage and maintenance of Mnesia: the Mnesia User's Guide is a good starting point.

    - -

    noop-caching

    +
    + - NoOp caching + NoOp caching

    The NoOp cache adapters are supplied for the case where you do not want to cache specific data from Discord at all.

    These cache adapters presently also don't send out any data they receive either: this means that for caches using the NoOp cache adapters, you won't receive any gateway events.

    - -

    cache-invalidation

    +
    + - Cache invalidation + Cache invalidation

    nostrum does not invalidate cache in any special way: it will maintain it in response to gateway events (for instance by deleting a guild and its members @@ -173,10 +202,10 @@

    with entries. For volatile (RAM-based) caches this is perfectly fine, however, when implementing your own cache backend that persists to disk in some way, you need to take care of this yourself.

    - -

    cache-performance

    +
    + - Cache performance + Cache performance

    nostrum strives to provide the most performant caches on the Discord bot caching market. If you run into performance issues with caches that you feel are not @@ -184,7 +213,9 @@

    directory of the source code tree. If you want to get a feeling for how the caches perform or implement optimizations, check them out.

    -
    +
    + +

    +

    + +
    -
    +
    diff --git a/search.html b/search.html index 405da7b28..c83dca83d 100644 --- a/search.html +++ b/search.html @@ -4,20 +4,21 @@ - + - Search — Nostrum v0.9.0-alpha3 - + - - - + Search — Nostrum v0.9.0-alpha3 + - - + + + + + @@ -36,107 +37,136 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    + +
    + - -
    +

    + +
    -
    +
    diff --git a/state.html b/state.html index 71e3dcf45..190d0aef6 100644 --- a/state.html +++ b/state.html @@ -4,20 +4,19 @@ - + + State — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,85 +35,115 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +

    Nostrum keeps track of the state that your bot can see, which is updated based on events from the WS connection. We differentiate between caches, which are optional and are used to provide your bot with fresh data, and state, which is mandatory state that we must track internally.

    - -

    caches

    +
    + - Caches + Caches

    Caching will by default use Erlang's ETS tables. Abstractions are provided for common operations. If you feel the caches are missing some abstraction, feel @@ -122,21 +151,21 @@

    want to integrate to some external caching mechanism or want to distribute your bot across multiple nodes, please see the pluggable caching documentation.

    - -

    query-list-comprehensions

    +
    + - Query list comprehensions + Query list comprehensions

    nostrum's built-in functions to query the cache should be sufficient to cover common use cases. If you need more involved queries, it is recommended to use nostrum's qlc support.

    As an example, Nosedrum has a function to find a guild member by username and -discriminator. This is internally implemented with the following query:

    find_by(RequestedGuildId, Name, Discriminator, MemberCache, UserCache) ->
    -    qlc:q([Member || {{GuildId, MemberId}, Member} <- MemberCache:query_handle(),
    +discriminator. This is internally implemented with the following query:

    find_by(RequestedGuildId, Name, Discriminator, MemberCache, UserCache) ->
    +    qlc:q([Member || {{GuildId, MemberId}, Member} <- MemberCache:query_handle(),
                          GuildId =:= RequestedGuildId,
    -                     {UserId, User} <- UserCache:query_handle(),
    +                     {UserId, User} <- UserCache:query_handle(),
                          MemberId =:= UserId,
    -                     map_get(username, User)  =:= Name,
    -                     map_get(discriminator, User) =:= Discriminator]).

    By implementing a QLC + map_get(username, User) =:= Name, + map_get(discriminator, User) =:= Discriminator]).

    By implementing a QLC table, all read operations from nostrum will be performed over your QLC table implementation alone, and nostrum's dispatcher modules can easily be expanded @@ -159,16 +188,18 @@

    Apart from that, nostrum's previous API (select and friends) gave users a false impression that nostrum was doing an efficient iteration under the hood, which caused issues for large bots.

    - -

    internal-state

    +
    + - Internal state + Internal state

    In addition to the optional caching, nostrum also needs to keep track of internal state so it functions properly. State follows the same pattern as the pluggable caching functionality described above, but disabling state storage via -NoOp as with caching is not possible.

    The modules under Nostrum.Store are used for this functionality.

    -
    +NoOp as with caching is not possible.

    The modules under Nostrum.Store are used for this functionality.

    +
    + +
    +

    + +
    -
    +
    diff --git a/voice.html b/voice.html index 02a5f587c..48a2320d7 100644 --- a/voice.html +++ b/voice.html @@ -4,20 +4,19 @@ - + + Voice — Nostrum v0.9.0-alpha3 - + - - - - - - + + + + @@ -36,82 +35,112 @@ } catch (error) { } -
    +
    - - + + + -
    +
    -
    -
    -

    - +
    + +

    - -

    voice-channels

    +
    + - Voice channels + Voice channels

    Discord voice channels allow audio data to be sent to the voice servers over UDP. A bot is able to connect to up to one voice channel per guild. One websocket @@ -119,10 +148,10 @@

    The websocket connection should reconnect automatically the same way that the main Discord gateway websocket connections do. For available voice functions and usage see the Nostrum.Voice module.

    - -

    ffmpeg

    +
    + - FFmpeg + FFmpeg

    Nostrum uses the powerful ffmpeg command line utility to encode any audio (or video) file for sending to Discord's voice servers. @@ -135,10 +164,10 @@

    of file on a remote server - ffmpeg supports a ton of protocols, the most common of which are probably http or simply reading a file from the filesystem. It is also possible to send raw opus frames, bypassing ffmpeg, if desired.

    - -

    youtube-dl

    +
    + - youtube-dl + youtube-dl

    With only ffmpeg installed, Nostrum supports playing audio/video files or raw, piped data as discussed in the section above. Nostrum also has support for youtube-dl, another @@ -149,10 +178,10 @@

    executable is elsewhere, the path may be configured via config :nostrum, :youtubedl, "/path/to/youtube-dl". When Nostrum.Voice.play/4 is called with :ytdl for the type parameter, youtube-dl will be run with options -f bestaudio -q -o -, which will attempt to download the audio at the given url and pipe it to ffmpeg.

    Nostrum also has support for streamlink, yet another powerful command line utility for downloading live streams from online video streaming services. @@ -165,12 +194,12 @@

    currently works with both of these services. If the short, human-readable url of the streaming service doesn't work with streamlink out of the box, you may have more luck extracting the underlying raw stream url. These are typically long URLs that end in .m3u8 or .hls. If you have youtube-dl installed, -you can attempt to get this URL by running the following:

    {raw_url, 0} = System.cmd("youtube-dl", ["-f", "best", "-g", url])
    -raw_url = raw_url |> String.trim()

    - -

    audio-timeout

    +you can attempt to get this URL by running the following:

    {raw_url, 0} = System.cmd("youtube-dl", ["-f", "best", "-g", url])
    +raw_url = raw_url |> String.trim()

    + + - Audio Timeout + Audio Timeout

    Upon invoking Nostrum.Voice.play/4, the player process has a large configurable initial window (20_000 milliseconds by default) that it must generate audio within before timing out. This is done to allow @@ -188,10 +217,10 @@

    play(guild_id, url, :ytdl, start_time: "2:37:56"), you may consider setting the timeout to a higher value, as downloading a large youtube video and having ffmpeg seek through several hours of audio may take 15-20 seconds, even with a fast network connection.

    - -

    audio-frames-per-burst

    +
    + - Audio Frames Per Burst + Audio Frames Per Burst

    The value :audio_frames_per_burst represents the number of consecutive packets to send before resting. When using Nostrum.Voice.play/4 to play audio, Nostrum collects a number of opus frames from the @@ -205,10 +234,10 @@

    means that each opus frame from your audio source will be taken individually and be sent in its own "burst" with the player process sleeping between each; you likely won't notice a difference in audio playback quality compared to the default value of 10 other than that your sub-200ms audio files will play as expected.

    - -

    voice-events

    +
    + - Voice Events + Voice Events

    There are a few voice related events that bots can consume with a Nostrum.Consumer process:

    Both Nostrum.Consumer.voice_state_update/0 and Nostrum.Consumer.voice_server_update/0 are sent by the shard gateway session when a bot joins a voice channel. The receipt of both of @@ -239,16 +268,16 @@

    Nostrum.Consumer.voice_ready/0 event can be used by the bot to begin playing audio as soon as it is able to. The alternative approach for this use case that is not event-driven is to periodically call Nostrum.Voice.ready?/1 and wait for it to return true as the trigger to -begin playing. Another common approach is to define a try_play function as follows:

    def try_play(guild_id, url, type, opts \\ []) do
    -  case Nostrum.Voice.play(guild_id, url, type, opts) do
    -    {:error, _msg} ->
    -      Process.sleep(100)
    -      try_play(guild_id, url, type, opts)
    +begin playing. Another common approach is to define a try_play function as follows:

    def try_play(guild_id, url, type, opts \\ []) do
    +  case Nostrum.Voice.play(guild_id, url, type, opts) do
    +    {:error, _msg} ->
    +      Process.sleep(100)
    +      try_play(guild_id, url, type, opts)
     
         _ ->
           :ok
    -  end
    -end

    Note that the third element in the event is of type Nostrum.Struct.VoiceWSState.t/0 and + end +end

    Note that the third element in the event is of type Nostrum.Struct.VoiceWSState.t/0 and not Nostrum.Struct.WSState.t/0.

    The Nostrum.Consumer.voice_incoming_packet/0 event is generated by Nostrum. None will be generated by default. You must first be connected to a voice channel, call the Nostrum.Voice.start_listen_async/1 function, then have another user in the same voice channel speak. If these conditions are met, an event @@ -261,7 +290,9 @@

    likely won't be missed when consuming incoming voice packets asynchronously. Note that the third element in the event is of type Nostrum.Struct.VoiceWSState.t/0 and not Nostrum.Struct.WSState.t/0.

    -
    +
    + +

    +

    + +
    -
    +