x/discordeno@13.0.0-rc45

Discord API library for Deno
GitHub Stars
505
Latest
gateway/
handlers/
helpers/
plugins/
rest/
site/
tests/
testss/
transformers/
types/
util/
import * as discordeno from "https://deno.land/x/discordeno@13.0.0-rc45/mod.ts";

Enums

ActivityFlags

https://discord.com/developers/docs/topics/gateway#activity-object-activity-flags

ActivityTypes

https://discord.com/developers/docs/topics/gateway#activity-object-activity-types

AllowedMentionsTypes

https://discord.com/developers/docs/resources/channel#allowed-mentions-object-allowed-mention-types

ApplicationCommandOptionTypes

https://discord.com/developers/docs/interactions/slash-commands#applicationcommandoptiontype

ApplicationCommandPermissionTypes
ApplicationCommandTypes
ApplicationFlags

https://discord.com/developers/docs/topics/oauth2#application-application-flags

AuditLogEvents

https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events

BitwisePermissionFlags

https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags

ButtonStyles

https://discord.com/developers/docs/interactions/message-components#buttons-button-styles

ChannelFlags

https://discord.com/developers/docs/resources/channel#channels-resource

ChannelTypes

https://discord.com/developers/docs/resources/channel#channel-object-channel-types

DefaultMessageNotificationLevels

https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level

Errors
ExplicitContentFilterLevels

https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level

GatewayCloseEventCodes

https://discord.com/developers/docs/topics/opcodes-and-status-codes#opcodes-and-status-codes

GatewayIntents

https://discord.com/developers/docs/topics/gateway#list-of-intents

GatewayOpcodes

https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes

GuildFeatures

https://discord.com/developers/docs/resources/guild#guild-object-guild-features

GuildNsfwLevel

https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level

HTTPResponseCodes

https://discord.com/developers/docs/topics/opcodes-and-status-codes#http

IntegrationExpireBehaviors

https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors

InteractionResponseTypes

https://discord.com/developers/docs/interactions/slash-commands#interaction-response-interactionresponsetype

InteractionTypes

https://discord.com/developers/docs/interactions/slash-commands#interaction-interactiontype

InviteTargetTypes

https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types

JsonErrorCodes

https://discord.com/developers/docs/topics/opcodes-and-status-codes#json

Locales
MessageActivityTypes

https://discord.com/developers/docs/resources/channel#message-object-message-activity-types

MessageComponentTypes

https://discord.com/developers/docs/interactions/message-components#component-types

MessageTypes

https://discord.com/developers/docs/resources/channel#message-object-message-types

MfaLevels

https://discord.com/developers/docs/resources/guild#guild-object-mfa-level

OverwriteTypes
PremiumTiers

https://discord.com/developers/docs/resources/guild#guild-object-premium-tier

PremiumTypes

https://discord.com/developers/docs/resources/user#user-object-premium-types

RpcCloseEventCodes

https://discord.com/developers/docs/topics/opcodes-and-status-codes#rpc

RpcErrorCodes

https://discord.com/developers/docs/topics/opcodes-and-status-codes#rpc

ScheduledEventEntityType
ScheduledEventPrivacyLevel
ScheduledEventStatus
ShardSocketCloseCodes
ShardState
StickerFormatTypes

https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types

StickerTypes

https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types

SystemChannelFlags

https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags

TargetTypes

https://discord.com/developers/docs/resources/invite#invite-object-target-user-types

TeamMembershipStates

https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum

TextStyles
UserFlags

https://discord.com/developers/docs/resources/user#user-object-user-flags

VerificationLevels

https://discord.com/developers/docs/resources/guild#guild-object-verification-level

VideoQualityModes
VisibilityTypes

https://discord.com/developers/docs/resources/user#connection-object-visibility-types

VoiceCloseEventCodes

https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice

VoiceOpcodes

https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice

WebhookTypes

https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types

Variables

API_VERSION

https://discord.com/developers/docs/reference#api-versioning-api-versions

BASE_URL

https://discord.com/developers/docs/reference#api-reference-base-url

baseEndpoints
CHANNEL_MENTION_REGEX
CONTEXT_MENU_COMMANDS_NAME_REGEX
DEFAULT_HEARTBEAT_INTERVAL
defaultHelpers
DISCORD_SNOWFLAKE_REGEX
DISCORDENO_VERSION

https://github.com/discordeno/discordeno/releases

EmojiToggle
GATEWAY_RATE_LIMIT_RESET_INTERVAL
GATEWAY_VERSION

https://discord.com/developers/docs/topics/gateway#gateways-gateway-versions

GuildToggle
IMAGE_BASE_URL

https://discord.com/developers/docs/reference#image-formatting-image-base-url

Intents

https://discord.com/developers/docs/topics/gateway#list-of-intents

MAX_GATEWAY_REQUESTS_PER_INTERVAL
MemberToggle
rest
RoleToggle
routes
SLASH_COMMANDS_NAME_REGEX
statusTypes
USER_AGENT

https://discord.com/developers/docs/reference#user-agent

UserToggle
VoiceStateToggle

Functions

addDiscoverySubcategory

Add a discovery subcategory to the guild. Requires the MANAGE_GUILD permission.

addReaction

Create a reaction for the message. Reaction takes the form of name:id for custom guild emoji, or Unicode characters. Requires READ_MESSAGE_HISTORY and ADD_REACTIONS

addReactions

Adds multiple reactions to a message. If ordered is true(default is false), it will add the reactions one at a time in the order provided. Note: Reaction takes the form of name:id for custom guild emoji, or Unicode characters. Requires READ_MESSAGE_HISTORY and ADD_REACTIONS

addRole

Add a role to the member

addToThread

Adds a user to a thread. Requires the ability to send messages in the thread. Requires the thread is not archived.

avatarURL

The users custom avatar or the default avatar if you don't have a member object.

banMember

Ban a user from the guild and optionally delete previous messages sent by the user. Requires the BAN_MEMBERS permission.

bigintToSnowflake
calculateSafeRequests
calculateShardId
calculateTotalShards

Handler used to determine max number of shards to use based upon the max concurrency.

calculateWorkerId
checkRateLimits

Check the rate limits for a url or a bucket.

cleanupQueues

Cleans up the queues by checking if there is nothing left and removing it.

close
connect
connectToVoiceChannel

Connect or join a voice channel inside a guild. By default, the "selfDeaf" option is true. Requires CONNECT and VIEW_CHANNEL permissions.

convertRestError
createApplicationCommand

There are two kinds of Application Commands: global commands and guild commands. Global commands are available for every guild that adds your app; guild commands are specific to the guild you specify when making them. Command names are unique per application within each scope (global and guild). That means:

createBaseHelpers
createBot
createBotConstants
createBotGatewayHandlers
createChannel

Create a channel in your server. Bot needs MANAGE_CHANNEL permissions in the server.

createEmoji

Create an emoji in the server

createEventHandlers
createForumPost

Creates a new public thread from an existing message. Returns a thread channel.

createGatewayManager

Create a new Gateway Manager.

createGuild

Create a new guild. Returns a guild object on success. Fires a Guild Create Gateway event. This endpoint can be used only by bots in less than 10 guilds.

createGuildFromTemplate

Create a new guild based on a template NOTE: This endpoint can be used only by bots in less than 10 guilds.

createGuildTemplate

Creates a template for the guild. Requires the MANAGE_GUILD permission.

createHelpers
createInvite

Creates a new invite for this channel. Requires CREATE_INSTANT_INVITE

createRequestBody

Creates the request body and headers that are necessary to send a request. Will handle different types of methods and everything necessary for discord.

createRestManager
createRole

Create a new role for the guild. Requires the MANAGE_ROLES permission.

createScheduledEvent

Create a guild scheduled event in the guild. A guild can have a maximum of 100 events with SCHEDULED or ACTIVE status at any time.

createShard
createShardManager

Create a new Shard manager. This does not manage a specific range of Shard but the provided Shards on create or when an identify is requested. The aim of this is to provide an easy to use manager which can be used by workers or any other kind of separate process.

createStageInstance

Creates a new Stage instance associated to a Stage channel. Requires the user to be a moderator of the Stage channel.

createTransformers
createUtils
createWebhook

Create a new webhook. Requires the MANAGE_WEBHOOKS permission. Returns a webhook object on success. Webhook names follow our naming restrictions that can be found in our Usernames and Nicknames documentation, with the following additional stipulations:

delay

Pause the execution for a given amount of milliseconds.

deleteApplicationCommand

Deletes a application command.

deleteChannel

Delete a channel in your server. Bot needs MANAGE_CHANNEL permissions in the server. Bot needs MANAGE_THREADS permissions in the server if deleting thread.

deleteChannelOverwrite

Delete the channel permission overwrites for a user or role in this channel. Requires MANAGE_ROLES permission.

deleteEmoji

Delete the given emoji. Requires the MANAGE_EMOJIS permission. Returns 204 No Content on success.

deleteFollowupMessage

Deletes a followup message for an Interaction. Functions the same as delete webhook message, however this uses your interaction token instead of bot token. Does not support ephemeral followups.

deleteGuild

Delete a guild permanently. User must be owner. Returns 204 No Content on success. Fires a Guild Delete Gateway event.

deleteGuildTemplate

Deletes a template from a guild. Requires the MANAGE_GUILD permission.

deleteIntegration

Delete the attached integration object for the guild with this id. Requires MANAGE_GUILD permission.

deleteInteractionResponse

To delete your response to a application command. If a message id is not provided, it will default to deleting the original response.

deleteInvite

Deletes an invite for the given code. Requires MANAGE_CHANNELS or MANAGE_GUILD permission

deleteMessage

Delete a message with the channel id and message id only.

deleteMessages

Delete messages from the channel. 2-100. Requires the MANAGE_MESSAGES permission

deleteRole

Delete a guild role. Requires the MANAGE_ROLES permission.

deleteScheduledEvent

Delete a scheduled event.

deleteStageInstance

Deletes the Stage instance. Requires the user to be a moderator of the Stage channel.

deleteWebhook

Delete a webhook permanently. Requires the MANAGE_WEBHOOKS permission. Returns a undefined on success

deleteWebhookMessage
deleteWebhookWithToken

Delete a webhook permanently. Returns a undefined on success

editApplicationCommandPermissions

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

editBotNickname

Edit the nickname of the bot in this guild

editBotProfile

Modifies the bot's username or avatar. NOTE: username: if changed may cause the bot's discriminator to be randomized.

editBotStatus
editChannel

Update a channel's settings. Requires the MANAGE_CHANNELS permission for the guild.

editChannelOverwrite

Edit the channel permission overwrites for a user or role in this channel. Requires MANAGE_ROLES permission.

editDiscovery

Modify the discovery metadata for the guild. Requires the MANAGE_GUILD permission. Returns the updated discovery metadata object on success.

editEmoji

Modify the given emoji. Requires the MANAGE_EMOJIS permission.

editFollowupMessage

Edits a followup message for an Interaction. Functions the same as edit webhook message, however this uses your interaction token instead of bot token. Does not support ephemeral followups.

editGuild

Modify a guilds settings. Requires the MANAGE_GUILD permission.

editGuildTemplate

Edit a template's metadata. Requires the MANAGE_GUILD permission.

editInteractionResponse

To edit your response to a application command. If a messageId is not provided it will default to editing the original response.

editMember

Edit the member

editMessage

Edit the message.

editRole

Edit a guild role. Requires the MANAGE_ROLES permission.

editScheduledEvent

Modify a guild scheduled event. To start or end an event, use this endpoint to modify the event's status.

editShardStatus
editWebhook

Edit a webhook. Requires the MANAGE_WEBHOOKS permission. Returns the updated webhook object on success.

editWebhookMessage
editWebhookWithToken

Edit a webhook. Returns the updated webhook object on success.

editWelcomeScreen
editWidget

Modify a guild widget object for the guild. Requires the MANAGE_GUILD permission.

emojiUrl

Creates a url to the emoji from the Discord CDN.

fetchMembers

Highly recommended to use this function to fetch members instead of getMember from REST. REST: 50/s global(across all shards) rate limit with ALL requests this included GW(this function): 120/m(PER shard) rate limit. Meaning if you have 8 shards your limit is now 960/m.

followChannel

Follow a News Channel to send messages to a target channel. Requires the MANAGE_WEBHOOKS permission in the target channel. Returns the webhook id.

formatImageURL

Help format an image url.

getActiveThreads

Returns all active threads in the guild, including public and private threads. Threads are ordered by their id, in descending order.

getApplicationCommand

Fetches the global command for the given Id. If a guildId is provided, the guild command will be fetched.

getApplicationCommandPermission

Fetches command permissions for a specific command for your application in a guild. Returns a GuildApplicationCommandPermissions object.

getApplicationCommandPermissions

Fetches command permissions for all commands for your application in a guild. Returns an array of GuildApplicationCommandPermissions objects.

getApplicationCommands

Fetch all the commands for your application. If a guild id is not provided, it will fetch global commands.

getApplicationInfo

Get the applications info

getArchivedThreads

Get the archived threads for this channel, defaults to public

getAuditLogs

Returns the audit logs for the guild. Requires VIEW AUDIT LOGS permission

getAvailableVoiceRegions

Returns an array of voice regions that can be used when creating servers.

getBan

Returns a ban object for the given user or a 404 not found if the ban cannot be found. Requires the BAN_MEMBERS permission.

getBans

Returns a list of ban objects for the users banned from this guild. Requires the BAN_MEMBERS permission.

getChannel

Fetches a single channel object from the api.

getChannelInvites

Gets the invites for this channel. Requires MANAGE_CHANNEL

getChannels

Returns a list of guild channel objects.

getChannelWebhooks

Gets the webhooks for this channel. Requires MANAGE_WEBHOOKS

getDiscovery

Returns the discovery metadata object for the guild. Requires the MANAGE_GUILD permission.

getDiscoveryCategories

Returns a Collection (mapped by Id of the discovery category object) of discovery category objects that can be used when editing guilds

getDmChannel

Get a user's dm channel. This is required in order to send a DM.

getEmoji

Returns an emoji for the given guild and emoji Id.

getEmojis

Returns a list of emojis for the given guild.

getFollowupMessage

Returns a followup message for an Interaction. Functions the same as get webhook message, however this uses your interaction token instead of bot token. Does not support ephemeral followups.

getGatewayBot

Get the bots Gateway metadata that can help during the operation of large or sharded bots.

getGuild

This function fetches a guild's data. This is not the same data as a GUILD_CREATE. So it does not cache the guild, you must do it manually.

getGuildPreview

Returns the guild preview object for the given id. If the bot is not in the guild, then the guild must be Discoverable.

getGuildTemplates

Returns an array of templates. Requires the MANAGE_GUILD permission.

getIntegrations

Returns a list of integrations for the guild. Requires the MANAGE_GUILD permission.

getInvite

Returns an invite for the given code or throws an error if the invite doesn't exists.

getInvites

Get all the invites for this guild. Requires MANAGE_GUILD permission

getMember

Returns a guild member object for the specified user.

getMembers

Highly recommended to NOT use this function to get members instead use fetchMembers(). REST(this function): 50/s global(across all shards) rate limit with ALL requests this included GW(fetchMembers): 120/m(PER shard) rate limit. Meaning if you have 8 shards your limit is 960/m.

getMessage

Fetch a single message from the server. Requires VIEW_CHANNEL and READ_MESSAGE_HISTORY

getMessages

Fetches between 2-100 messages. Requires VIEW_CHANNEL and READ_MESSAGE_HISTORY

getOriginalInteractionResponse

Returns the initial Interaction response. Functions the same as Get Webhook Message

getPins

Get pinned messages in this channel.

getPruneCount

Check how many members would be removed from the server in a prune operation. Requires the KICK_MEMBERS permission

getReactions

Get a list of users that reacted with this emoji.

getRoles

Returns a list of role objects for the guild.

getScheduledEvent

Get a guild scheduled event.

getScheduledEvents

Get a list of guild scheduled event for the given guild.

getScheduledEventUsers
getStageInstance

Gets the stage instance associated with the Stage channel, if it exists.

getTemplate

Returns the guild template if it exists

getThreadMember

Returns thread members objects that are members of the thread.

getThreadMembers

Returns thread members objects that are members of the thread.

getUser

This function will return the raw user payload in the rare cases you need to fetch a user directly from the API.

getVanityUrl

Returns the code and uses of the vanity url for this server if it is enabled else code will be null. Requires the MANAGE_GUILD permission.

getVoiceRegions

Returns a list of voice region objects for the guild. Unlike the similar /voice route, this returns VIP servers when the guild is VIP-enabled.

getWebhook

Returns the new webhook object for the given id.

getWebhookMessage

Returns a previously-sent webhook message from the same token. Returns a message object on success.

getWebhooks

Returns a list of guild webhooks objects. Requires the MANAGE_WEBHOOKs permission.

getWebhookWithToken

Returns the new webhook object for the given id, this call does not require authentication and returns no user in the webhook object.

getWelcomeScreen

Returns the Welcome Screen object for the guild. Requires the MANAGE_GUILD permission.

getWidget

Returns the widget for the guild.

getWidgetImageURL

Returns the widget image URL for the guild.

getWidgetSettings

Returns a guild widget settings object. Requires the MANAGE_GUILD permission.

guildBannerURL

The full URL of the banner from Discords CDN. Undefined if no banner is set.

guildIconURL

The full URL of the icon from Discords CDN. Undefined when no icon is set.

guildSplashURL

The full URL of the splash from Discords CDN. Undefined if no splash is set.

handleChannelCreate
handleChannelDelete
handleChannelPinsUpdate
handleChannelUpdate
handleClose
handleGuildBanAdd
handleGuildBanRemove
handleGuildCreate
handleGuildDelete
handleGuildEmojisUpdate
handleGuildIntegrationsUpdate
handleGuildLoaded
handleGuildMemberAdd
handleGuildMemberRemove
handleGuildMembersChunk
handleGuildMemberUpdate
handleGuildRoleCreate
handleGuildRoleDelete
handleGuildRoleUpdate
handleGuildScheduledEventCreate
handleGuildScheduledEventDelete
handleGuildScheduledEventUpdate
handleGuildScheduledEventUserAdd
handleGuildScheduledEventUserRemove
handleGuildUpdate
handleIntegrationCreate
handleIntegrationDelete
handleIntegrationUpdate
handleInteractionCreate
handleInviteCreate
handleInviteDelete
handleMessage
handleMessageCreate
handleMessageDelete
handleMessageDeleteBulk
handleMessageReactionAdd
handleMessageReactionRemove
handleMessageReactionRemoveAll
handleMessageReactionRemoveEmoji
handleMessageUpdate
handlePresenceUpdate
handleReady
handleStageInstanceCreate
handleStageInstanceDelete
handleStageInstanceUpdate
handleThreadCreate
handleThreadDelete
handleThreadListSync
handleThreadMembersUpdate
handleThreadUpdate
handleTypingStart
handleUserUpdate
handleVoiceServerUpdate
handleVoiceStateUpdate
handleWebhooksUpdate
hasProperty

TS save way to check if a property exists in an object

iconBigintToHash
iconHashToBigInt
identify
isContextApplicationCommand
isGetMessagesAfter
isGetMessagesAround
isGetMessagesBefore
isGetMessagesLimit
isOpen
joinThread

Adds the bot to the thread. Cannot join an archived thread.

kickMember

Kick a member from the server

leaveGuild

Leave a guild

leaveThread

Removes the bot from a thread. Requires the thread is not archived.

makeOptionsForCommand
modifyRolePositions

Modify the positions of a set of role objects for the guild. Requires the MANAGE_ROLES permission. Returns a list of all of the guild's role objects on success. Fires multiple Guild Role Update Gateway events.

nitroStickerPacks

Returns the list of sticker packs available to Nitro subscribers.

packOverwrites
pinMessage

Pin a message in a channel. Requires MANAGE_MESSAGES. Max pins allowed in a channel = 50.

prepareBuckets
processGlobalQueue
processQueue

Processes the queue by looping over each path separately until the queues are empty.

processRateLimitedPaths

This will create a infinite loop running in 1 seconds using tail recursion to keep rate limits clean. When a rate limit resets, this will remove it so the queue can proceed.

processRequest

Processes a request and assigns it to a queue or creates a queue if none exists for it.

processRequestHeaders

Processes the rate limit headers and determines if it needs to be rate limited and returns the bucket id if available

pruneMembers

Begin a prune operation. Requires the KICK_MEMBERS permission. Returns an object with one 'pruned' key indicating the number of members that were removed in the prune operation. For large guilds it's recommended to set the computePruneCount option to false, forcing 'pruned' to null. Fires multiple Guild Member Remove Gateway events.

publishMessage

Crosspost a message in a News Channel to following channels.

removeAllReactions

Removes all reactions for all emojis on this message.

removeDiscoverySubcategory

Removes a discovery subcategory from the guild. Requires the MANAGE_GUILD permission. Returns a 204 No Content on success.

removeReaction

Removes a reaction from the given user on this message, defaults to bot. Reaction takes the form of name:id for custom guild emoji, or Unicode characters.

removeReactionEmoji
removeRole

Remove a role from the member

removeThreadMember

Removes a user from a thread. Requires the MANAGE_THREADS permission or that you are the creator of the thread. Also requires the thread is not archived.

resume
runMethod
searchMembers

Query string to match username(s) and nickname(s) against

send
sendInteractionResponse

Send a response to a users application command. The command data will have the id and token necessary to respond. Interaction tokens are valid for 15 minutes and can be used to send followup messages.

sendMessage

Send a message to the channel. Requires SEND_MESSAGES permission.

sendWebhook

Send a webhook with webhook Id and webhook token

separateOverwrites
shutdown
simplifyUrl

Split a url to separate rate limit buckets based on major/minor parameters.

snowflakeToBigint
spawnShards

Begin spawning shards.

startBot
startHeartbeating
startThreadWithMessage

Creates a new public thread from an existing message. Returns a thread channel.

startThreadWithoutMessage

Creates a new private thread. Returns a thread channel.

startTyping

Trigger a typing indicator for the specified channel. Generally bots should NOT implement this route. However, if a bot is responding to a command and expects the computation to take a few seconds, this endpoint may be called to let the user know that the bot is processing their message.

stop
stopBot
stopHeartbeating
swapChannels

Modify the positions of channels on the guild. Requires MANAGE_CHANNELS permission. Only channels to be modified are required.

syncGuildTemplate

Syncs the template to the guild's current state. Requires the MANAGE_GUILD permission.

tellWorkerToIdentify

Allows users to hook in and change to communicate to different workers across different servers or anything they like. For example using redis pubsub to talk to other servers.

transformActivity
transformApplication
transformApplicationCommand
transformApplicationCommandOption
transformApplicationCommandPermission
transformAttachment
transformAuditLogEntry
transformChannel
transformComponent
transformEmbed
transformEmoji
transformGatewayBot
transformGuild
transformIntegration
transformInteraction
transformInteractionDataOption
transformInteractionDataResolved
transformInvite
transformMember
transformMessage
transformPresence
transformRole
transformScheduledEvent
transformStageInstance
transformSticker
transformStickerPack
transformTeam
transformTemplate
transformThreadMember
transformThreadMemberGuildCreate
transformUser
transformVoiceRegion
transformVoiceState
transformWebhook
transformWelcomeScreen
transformWidget
transformWidgetSettings
unbanMember

Remove the ban for a user. Requires BAN_MEMBERS permission

unpinMessage
updateBotVoiceState

Updates the bot's voice state Caveats:

  • channel_id must currently point to a stage channel.
  • Bot must already have joined channel_id.
  • You must have the MUTE_MEMBERS permission. But can always suppress yourself.
  • You must have the REQUEST_TO_SPEAK permission to request to speak. You can always clear your own request to speak.
  • You are able to set request_to_speak_timestamp to any present or future time.
  • When suppressed, the user will have their request_to_speak_timestamp removed.
updateStageInstance

Updates fields of an existing Stage instance. Requires the user to be a moderator of the Stage channel.

updateUserVoiceState

Updates the a user's voice state Caveats:

  • channel_id must currently point to a stage channel.
  • User must already have joined channel_id.
  • You must have the MUTE_MEMBERS permission. But can always suppress yourself.
  • When unsuppressed, non-bot users will have their request_to_speak_timestamp set to the current time. Bot users will not.
  • You must have the REQUEST_TO_SPEAK permission to request to speak. You can always clear your own request to speak.
  • You are able to set request_to_speak_timestamp to any present or future time.
  • When suppressed, the user will have their request_to_speak_timestamp removed.
upsertApplicationCommand

Edit an existing application command. If this command did not exist, it will create it.

upsertApplicationCommands

Bulk edit existing application commands. If a command does not exist, it will create it.

validateLength

Validates the length of a string in JS. Certain characters in JS can have multiple numbers in length in unicode and discords api is in python which treats length differently.

validDiscoveryTerm
verifySignature

Interfaces

ActionRow

https://discord.com/developers/docs/interactions/message-components#actionrow

Activity
AllowedMentions

https://discord.com/developers/docs/resources/channel#allowed-mentions-object

Application
ApplicationCommand
ApplicationCommandOption
ApplicationCommandOptionChoice

https://discord.com/developers/docs/interactions/slash-commands#applicationcommandoptionchoice

ApplicationCommandPermission
ApplicationCommandPermissions

https://discord.com/developers/docs/interactions/application-commands#edit-application-command-permissions

Attachment
AuditLogEntry
BaseRole

https://discord.com/developers/docs/topics/permissions#role-object-role-structure

BeginGuildPrune

https://discord.com/developers/docs/resources/guild#begin-guild-prune

Bot
BotGatewayHandlerOptions
ButtonComponent

https://discord.com/developers/docs/interactions/message-components#button-object-button-structure

Channel
CollectionOptions
CollectionSweeper
Component
CreateApplicationCommand

https://discord.com/developers/docs/interactions/application-commands#endpoints-json-params

CreateBotOptions
CreateChannelInvite
CreateContextApplicationCommand

https://discord.com/developers/docs/interactions/application-commands#endpoints-json-params

CreateForumMessage
CreateForumPostWithMessage
CreateGatewayManager
CreateGuild

https://discord.com/developers/docs/resources/guild#create-guild

CreateGuildBan

https://discord.com/developers/docs/resources/guild#create-guild-ban

CreateGuildChannel
CreateGuildEmoji

https://discord.com/developers/docs/resources/emoji#create-guild-emoji

CreateGuildFromTemplate

https://discord.com/developers/docs/resources/template#create-guild-from-template-json-params

CreateGuildRole
CreateMessage
CreateRestManagerOptions
CreateScheduledEvent
CreateShard
CreateShardManager
CreateStageInstance
CreateTemplate
CreateWebhook
DeleteWebhookMessageOptions
DiscordActionRow

https://discord.com/developers/docs/interactions/message-components#actionrow

DiscordActivity

https://discord.com/developers/docs/topics/gateway#activity-object

DiscordActivityAssets

https://discord.com/developers/docs/topics/gateway#activity-object-activity-assets

DiscordActivityButton

https://discord.com/developers/docs/topics/gateway#activity-object-activity-buttons

DiscordActivityEmoji

https://discord.com/developers/docs/topics/gateway#activity-object-activity-emoji

DiscordActivityParty

https://discord.com/developers/docs/topics/gateway#activity-object-activity-party

DiscordActivitySecrets

https://discord.com/developers/docs/topics/gateway#activity-object-activity-secrets

DiscordActivityTimestamps

https://discord.com/developers/docs/topics/gateway#activity-object-activity-timestamps

DiscordAddGuildDiscoverySubcategory
DiscordAllowedMentions

https://discord.com/developers/docs/resources/channel#allowed-mentions-object

DiscordApplication

https://discord.com/developers/docs/topics/oauth2#application-object

DiscordApplicationCommand

https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure

DiscordApplicationCommandOption

https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure

DiscordApplicationCommandOptionChoice

https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-choice-structure

DiscordApplicationCommandPermissions

https://discord.com/developers/docs/interactions/slash-commands#applicationcommandpermissions

DiscordApplicationWebhook
DiscordAttachment

https://discord.com/developers/docs/resources/channel#attachment-object

DiscordAuditLog

https://discord.com/developers/docs/resources/audit-log#audit-log-object

DiscordAuditLogEntry

https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-entry-structure

DiscordBan

https://discord.com/developers/docs/resources/guild#ban-object

DiscordButtonComponent

https://discord.com/developers/docs/interactions/message-components#buttons-button-object

DiscordChannel

https://discord.com/developers/docs/resources/channel#channel-object

DiscordChannelMention

https://discord.com/developers/docs/resources/channel#channel-mention-object

DiscordChannelPinsUpdate

https://discord.com/developers/docs/topics/gateway#channel-pins-update

DiscordClientStatus

https://discord.com/developers/docs/topics/gateway#client-status-object

DiscordComponent
DiscordConnection

https://discord.com/developers/docs/resources/user#connection-object

DiscordDiscoveryCategory
DiscordDiscoveryMetadata
DiscordDiscoveryName
DiscordEmbed

https://discord.com/developers/docs/resources/channel#embed-object

DiscordEmbedAuthor

https://discord.com/developers/docs/resources/channel#embed-object-embed-author-structure

DiscordEmbedField

https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure

DiscordEmbedFooter

https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure

DiscordEmbedImage

https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure

DiscordEmbedProvider
DiscordEmbedThumbnail

https://discord.com/developers/docs/resources/channel#embed-object-embed-thumbnail-structure

DiscordEmbedVideo

https://discord.com/developers/docs/resources/channel#embed-object-embed-video-structure

DiscordEmoji

https://discord.com/developers/docs/resources/emoji#emoji-object-emoji-structure

DiscordFollowedChannel

https://discord.com/developers/docs/resources/channel#followed-channel-object

DiscordGatewayPayload

https://discord.com/developers/docs/topics/gateway#payloads-gateway-payload-structure

DiscordGetGatewayBot

https://discord.com/developers/docs/topics/gateway#get-gateway-bot

DiscordGuild

https://discord.com/developers/docs/resources/guild#guild-object

DiscordGuildApplicationCommandPermissions

https://discord.com/developers/docs/interactions/slash-commands#guildapplicationcommandpermissions

DiscordGuildBanAddRemove

https://discord.com/developers/docs/topics/gateway#guild-ban-add

DiscordGuildEmojisUpdate

https://discord.com/developers/docs/topics/gateway#guild-emojis-update

DiscordGuildIntegrationsUpdate

https://discord.com/developers/docs/topics/gateway#guild-integrations-update

DiscordGuildMemberAdd

https://discord.com/developers/docs/topics/gateway#guild-member-add

DiscordGuildMemberRemove

https://discord.com/developers/docs/topics/gateway#guild-member-remove

DiscordGuildMembersChunk

https://discord.com/developers/docs/topics/gateway#guild-members-chunk

DiscordGuildMemberUpdate

https://discord.com/developers/docs/topics/gateway#guild-member-update

DiscordGuildPreview

https://discord.com/developers/docs/resources/guild#guild-preview-object

DiscordGuildRoleCreate

https://discord.com/developers/docs/topics/gateway#guild-role-create

DiscordGuildRoleDelete

https://discord.com/developers/docs/topics/gateway#guild-role-delete

DiscordGuildRoleUpdate

https://discord.com/developers/docs/topics/gateway#guild-role-update

DiscordGuildWidget

https://discord.com/developers/docs/resources/guild#get-guild-widget-example-get-guild-widget

DiscordGuildWidgetSettings
DiscordHello

https://discord.com/developers/docs/topics/gateway#hello

DiscordIncomingWebhook
DiscordInputTextComponent

https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-structure

DiscordInstallParams
DiscordIntegration

https://discord.com/developers/docs/resources/guild#integration-object-integration-structure

DiscordIntegrationAccount

https://discord.com/developers/docs/resources/guild#integration-account-object-integration-account-structure

DiscordIntegrationApplication

https://discord.com/developers/docs/resources/guild#integration-application-object-integration-application-structure

DiscordIntegrationCreateUpdate

https://github.com/discord/discord-api-docs/blob/master/docs/topics/Gateway.md#integration-create-event-additional-fields

DiscordIntegrationDelete

https://github.com/discord/discord-api-docs/blob/master/docs/topics/Gateway.md#integration-delete-event-fields

DiscordInteraction
DiscordInteractionData
DiscordInteractionDataResolved
DiscordInteractionMember

https://discord.com/developers/docs/resources/guild#guild-member-object

DiscordInvite

https://discord.com/developers/docs/resources/invite#invite-object

DiscordInviteCreate

https://discord.com/developers/docs/topics/gateway#invite-create

DiscordInviteDelete

https://discord.com/developers/docs/topics/gateway#invite-delete

DiscordInviteMetadata

https://discord.com/developers/docs/resources/invite#invite-metadata-object

DiscordInviteStageInstance
DiscordListActiveThreads
DiscordListArchivedThreads
DiscordMember

https://discord.com/developers/docs/resources/guild#guild-member-object

DiscordMemberWithUser
DiscordMessage

https://discord.com/developers/docs/resources/channel#message-object

DiscordMessageActivity

https://discord.com/developers/docs/resources/channel#message-object-message-activity-structure

DiscordMessageDelete

https://discord.com/developers/docs/topics/gateway#message-delete

DiscordMessageDeleteBulk

https://discord.com/developers/docs/topics/gateway#message-delete-bulk

DiscordMessageInteraction

https://discord.com/developers/docs/interactions/receiving-and-responding#message-interaction-object-message-interaction-structure

DiscordMessageReactionAdd

https://discord.com/developers/docs/topics/gateway#message-reaction-add

DiscordMessageReactionRemove

https://discord.com/developers/docs/topics/gateway#message-reaction-remove

DiscordMessageReactionRemoveAll

https://discord.com/developers/docs/topics/gateway#message-reaction-remove-all

DiscordMessageReference

https://discord.com/developers/docs/resources/channel#message-object-message-reference-structure

DiscordOptionalAuditEntryInfo

https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info

DiscordOverwrite
DiscordPresenceUpdate

https://discord.com/developers/docs/topics/gateway#presence-update

DiscordReaction

https://discord.com/developers/docs/resources/channel#reaction-object

DiscordReady

https://discord.com/developers/docs/topics/gateway#ready

DiscordRole

https://discord.com/developers/docs/topics/permissions#role-object-role-structure

DiscordRoleTags

https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure

DiscordScheduledEvent
DiscordScheduledEventEntityMetadata
DiscordScheduledEventUserAdd
DiscordScheduledEventUserRemove
DiscordSelectMenuComponent
DiscordSelectOption
DiscordSessionStartLimit

https://discord.com/developers/docs/topics/gateway#session-start-limit-object

DiscordStageInstance

https://discord.com/developers/docs/resources/stage-instance#auto-closing-stage-instance-structure

DiscordSticker

https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-structure

DiscordStickerItem

https://discord.com/developers/docs/resources/sticker#sticker-item-object-sticker-item-structure

DiscordStickerPack

https://discord.com/developers/docs/resources/sticker#sticker-pack-object-sticker-pack-structure

DiscordTeam

https://discord.com/developers/docs/topics/teams#data-models-team-object

DiscordTeamMember

https://discord.com/developers/docs/topics/teams#data-models-team-members-object

DiscordTemplate

https://discord.com/developers/docs/resources/template#template-object-template-structure

DiscordThreadListSync
DiscordThreadMember
DiscordThreadMemberBase
DiscordThreadMemberGuildCreate
DiscordThreadMembersUpdate

https://discord.com/developers/docs/topics/gateway#thread-members-update-thread-members-update-event-fields

DiscordThreadMemberUpdate

https://discord.com/developers/docs/topics/gateway#thread-member-update

DiscordThreadMetadata
DiscordTypingStart

https://discord.com/developers/docs/topics/gateway#typing-start

DiscordUnavailableGuild

https://discord.com/developers/docs/resources/guild#unavailable-guild-object

DiscordUser

https://discord.com/developers/docs/resources/user#user-object

DiscordValidateDiscoverySearchTerm
DiscordVoiceRegion

https://discord.com/developers/docs/resources/voice#voice-region-object-voice-region-structure

DiscordVoiceServerUpdate

https://discord.com/developers/docs/topics/gateway#voice-server-update

DiscordVoiceState

https://discord.com/developers/docs/resources/voice#voice-state-object-voice-state-structure

DiscordWebhookUpdate

https://discord.com/developers/docs/topics/gateway#webhooks-update-webhook-update-event-fields

DiscordWelcomeScreen

https://discord.com/developers/docs/resources/guild#welcome-screen-object-welcome-screen-structure

DiscordWelcomeScreenChannel

https://discord.com/developers/docs/resources/guild#welcome-screen-object-welcome-screen-channel-structure

EditGuildRole
EditMessage

https://discord.com/developers/docs/resources/channel#edit-message-json-params

EditScheduledEvent
EditWebhookMessage

https://discord.com/developers/docs/resources/webhook#edit-webhook-message-jsonform-params

Embed
Emoji
EventHandlers
ExecuteWebhook

https://discord.com/developers/docs/resources/webhook#execute-webhook

FileContent
GetApplicationCommand

https://discord.com/developers/docs/interactions/application-commands#endpoints-query-string-params

GetBans
GetGatewayBot
GetGuildAuditLog

https://discord.com/developers/docs/resources/audit-log#get-guild-audit-log-query-string-parameters

GetGuildPruneCountQuery

https://discord.com/developers/docs/resources/guild#get-guild-prune-count

GetGuildWidgetImageQuery

https://discord.com/developers/docs/resources/guild#get-guild-widget-image-query-string-params

GetInvite

https://discord.com/developers/docs/resources/invite#get-invite

GetMessagesAfter

https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params

GetMessagesAround

https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params

GetMessagesBefore

https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params

GetMessagesLimit

https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params

GetReactions

https://discord.com/developers/docs/resources/channel#get-reactions-query-string-params

GetScheduledEvents
GetScheduledEventUsers
GetWebhookMessageOptions
Guild
GuildWidget
GuildWidgetSettings
Helpers
HelperUtils
InputTextComponent

https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-structure

Integration
Interaction
InteractionApplicationCommandCallbackData

https://discord.com/developers/docs/interactions/slash-commands#interaction-response-interactionapplicationcommandcallbackdata

InteractionDataOption
InteractionDataResolved
InteractionResponse

https://discord.com/developers/docs/interactions/slash-commands#interaction-response

Invite
ListArchivedThreads

https://discord.com/developers/docs/resources/channel#list-public-archived-threads-query-string-params

ListGuildMembers

https://discord.com/developers/docs/resources/guild#list-guild-members

Member
Message
ModifyChannel
ModifyGuild

https://discord.com/developers/docs/resources/guild#modify-guild

ModifyGuildChannelPositions

https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions

ModifyGuildDiscoveryMetadata
ModifyGuildEmoji

https://discord.com/developers/docs/resources/emoji#modify-guild-emoji

ModifyGuildMember

https://discord.com/developers/docs/resources/guild#modify-guild-member

ModifyGuildTemplate

https://discord.com/developers/docs/resources/template#modify-guild-template

ModifyGuildWelcomeScreen

https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen

ModifyRolePositions
ModifyWebhook
Overwrite
OverwriteReadable
PresenceUpdate
RequestGuildMembers

https://discord.com/developers/docs/topics/gateway#request-guild-members

RestPayload
RestRateLimitedPath
RestRequest
RestRequestRejection
RestRequestResponse
Role
ScheduledEvent
SearchMembers

https://discord.com/developers/docs/resources/guild#search-guild-members-query-string-params

SelectMenuComponent

https://discord.com/developers/docs/interactions/message-components#select-menu-object-select-menu-structure

SelectOption
ShardEvents
ShardGatewayConfig
ShardHeart
ShardSocketRequest
StageInstance
StartThreadWithMessage
StartThreadWithoutMessage
StatusUpdate

https://discord.com/developers/docs/topics/gateway#update-status

Sticker
StickerPack
Team
Template
ThreadMember
ThreadMemberGuildCreate
Transformers
UpdateOthersVoiceState

https://discord.com/developers/docs/resources/guild#update-user-voice-state

UpdateSelfVoiceState

https://discord.com/developers/docs/resources/guild#update-current-user-voice-state

UpdateVoiceState

https://discord.com/developers/docs/topics/gateway#update-voice-state

UpsertApplicationCommands
User
VerifySignatureOptions
VoiceRegions
VoiceState
Webhook
WelcomeScreen
WelcomeScreenChannel

Type Aliases

AtLeastOne
CamelCase
Camelize
DefaultHelpers
DiscordAuditLogChange

https://discord.com/developers/docs/resources/audit-log#audit-log-change-object-audit-log-change-structure

DiscordInteractionDataOption
DiscordMessageComponents
DiscordMessageReactionRemoveEmoji

https://discord.com/developers/docs/topics/gateway#message-reaction-remove-emoji

DiscordWebhook

https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-structure

EmbedTypes

https://discord.com/developers/docs/resources/channel#embed-object-embed-types

EmojiToggleKeys
FinalHelpers
GatewayDebugEvents
GatewayDispatchEventNames
GatewayEventNames
GatewayManager
GetMessagesOptions
GuildToggleKeys
Id
ImageFormat

https://discord.com/developers/docs/reference#image-formatting json is only for stickers

ImageSize

https://discord.com/developers/docs/reference#image-formatting

Intents
KeysWithUndefined
Localization
MakeRequired
MemberToggleKeys
MessageComponents
OmitFirstFnArg
Optionalize
PermissionStrings
PickPartial
RemoveFirstFromTuple
RestManager
RoleToggleKeys
Shard
ShardManager

This is a Shard manager. This does not manage a specific range of Shard but the provided Shards on create or when an identify is requested. The aim of this is to provide an easy to use manager which can be used by workers or any other kind of separate process.

StatusTypes
UnPromise
UserToggleKeys
VoiceStateToggleKeys

Discordeno

Discord API library for Deno

Discordeno follows semantic versioning

Discord Test Coverage

Features

  • Secure & stable: Discordeno is actively maintained to ensure great performance and convenience.
  • Simple, Efficient, & Lightweight: Discordeno is simplistic, easy-to-use and versatile while being efficient and lightweight. No caching by default.
  • Functional API: The functional API ensures overall concise yet performant code while removing the difficulties of extending built-in classes and inheritance.
  • Cross Runtime: Supports both Deno and Node.js runtimes.
  • Standalone REST, Gateway, Custom Cache & more: Discordeno provides the ability to have almost every part of a bot as a standalone piece.
  • Plugins: Designed to let you plugin and override any part of the code. Never deal with the headaches of maintaining your fork just to get something customized for your needs. You can use plugins for almost anything, for example we have a few official plugins.
    • Cache plugin that enables caching everything.
    • Sweeper plugin that enables sweepers to clean the cache every once in a while.
    • Permission plugin checks internally all missing permissions before forwarding a request to the Discord API so that the client does not get globally banned by Discord.
  • Flexibility: If your bot does not need certain properties from objects then you can simply remove them. For example, if your bot does not need Channel.topic you should not have to store it. This can save you GBs of memory. Doing this for any property on any object is as simple as a few lines of code.

REST

  • ✅ Freedom from Invalid Request 1 Hour Downtimes
    • ✅ Discordeno will protect your bot from going down for an hour and will instead decrease the maximum downtime to 10 minutes.
  • ✅ Freedom from global rate limit errors
    • ✅ As your bot grows, you want to handle global rate limits better. Shards don't communicate fast enough to truly handle it properly so this allows 1 rest handler across the entire bot.
    • ✅ In fact, you can host multiple instances of your bot and all connect to the same rest server.
  • ✅ REST does not rest!
    • ✅ Separate rest means if your bot for whatever reason crashes, your requests that are queued will still keep going and will not be lost.
    • ✅ Seamless updates! When you want to update and reboot the bot, you could potentially lose tons of messages or responses that are in queue. Using this you could restart your bot without ever worrying about losing any responses.
  • ✅ Single source of contact to Discord API
    • ✅ This will allow you to make requests to discord from anywhere including a bot dashboard. You no longer need to have to communicate to your bot processes just to make a request or anything. Free up your bot process for processing bot events.
  • ✅ Scalability! Scalability! Scalability!

Gateway

  • Zero Downtime Updates:
    • ✅ Your bot can be updated in a matter of seconds. With normal sharding, you have to restart which also has to process identifying all your shards with a 1/~5s rate limit. With WS handling moved to a proxy process, this allows you to instantly get the bot code restarted without any concerns of delays. If you have a bot on 200,000 servers normally this would mean a 20 minute delay to restart your bot if you made a small change and restarted.
  • Zero Downtime Resharding:
    • ✅ Discord stops letting your bot get added to new servers at certain points in time. For example, suppose you had 150,000 servers running 150 shards. The maximum amount of servers your shards could hold is 150 * 2500 = 375,000. If your bot reaches this, it can no longer join new servers until it re-shards.
    • ✅ DD proxy provides 2 types of re-sharding. Automated and manual. You can also have both.
      • ✅ Automated: This system will automatically begin a Zero-downtime resharding process behind the scenes when you reach 80% of your maximum servers allowed by your shards. For example, since 375,000 was the max, at 300,000 we would begin re-sharding behind the scenes with ZERO DOWNTIME.
        • ✅ 80% of maximum servers reached (The % of 80% is customizable.)
        • ✅ Identify limits have room to allow re-sharding. (Also customizable)
      • ✅ Manual: You can also trigger this manually should you choose.
  • Horizontal Scaling:
    • ✅ The proxy system allows you to scale the bot horizontally. When you reach a huge size, you can either keep spending more money to keep beefing up your server or you can buy several cheaper servers and scale horizontally. The proxy means you can have WS handling on a completely separate system.
  • No Loss Restarts:
    • ✅ When you restart a bot without the proxy system, normally you would lose many events. Users may be using commands or messages are sent that will not be filtered. As your bot's grow this number rises dramatically. Users may join who wont get the auto-roles or any other actions your bot should take. With the proxy system, you can keep restarting your bot and never lose any events. Events will be put into a queue while your bot is down(max size of queue is customizable), once the bot is available the queue will begin processing all events.
  • Controllers:
    • ✅ The controller aspect gives you full control over everything inside the proxy. You can provide a function to simply override the handler. For example, if you would like a certain function to do something different, instead of having to fork and maintain your fork, you can just provide a function to override.
  • Clustering With Workers:
    • ✅ Take full advantage of all your CPU cores by using workers to spread the load. Control how many shards per worker and how many workers to maximize efficiency!

Custom Cache

Have your cache setup in any way you like. Redis, PGSQL or any cache layer you would like.

Getting Started

Minimal Example

Here is a minimal example to get started with:

import { createBot, Intents, startBot } from "https://deno.land/x/discordeno@13.0.0-rc18/mod.ts";
import { enableCachePlugin, enableCacheSweepers } from "https://deno.land/x/discordeno_cache_plugin@0.0.18/mod.ts";

const baseBot = createBot({
  token: Deno.env.get("DISCORD_TOKEN"),
  intents: Intents.Guilds | Intents.GuildMessages,
  botId: Deno.env.get("BOT_ID"),
  events: {
    ready() {
      console.log("Successfully connected to gateway");
    },
    messageCreate(bot, message) {
      // Process the message with your command handler here
    },
  },
});

const bot = enableCachePlugin(baseBot);

enableCacheSweepers(bot);

await startBot(bot);

Templates

Note to developers: don't worry, a lot of developers start out by building a Discord bot as their first project, and it's not easy. Discordeno is designed and built with all of the issues in mind that many developers have encountered when they initially started writing Discord bots using existing libraries. If you are a beginner, you can check out these awesome official and unofficial templates:

Frameworks

Plugins

Contributing

We appreciate your help! Before contributing, please read the Contributing Guide.