#github-notifications

1 messages · Page 39 of 1

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

This would be awesome to have for many reasons.
My use cases are having a channel dedicated to instruction on how to use specific command(s) and being able to use them there (with ephemeral responses) so the channel doesn't get flooded with responses.

Another case is having a specific channel used for displaying user inputted data in a specific format. This requires another channel to be designated as a "submission" channel.

I'd love it if this was revisited.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

The nonce field was removed from the Channel -> Create Message endpoint without any notice in following PR: #2859
The PR was not even closely related to thr nonce field at all.

Confusing is that most libraries are still providing access to this field even it is not documented anymore.

As well does the Message object still contain the nonce field.

Thereby I ask for clarification if the nonce field has been deprecated or was removed from the documentation ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hello, first time posting here. In the past months of using slash commands I've found myself wanting to remove the amazingly persistent and annoying built-in slash commands (/ban, /tableflip (honestly how old are we), /shrug etc etc). I have a personal ban command that logs the ban to a channel in a personal format, but with the built in command being named the same I am unable to expect my /ban to be tabbed to the right command and have to consciously pay attention to not use the built in co...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

The mfa_level requirement of a guild can be set to true or false, when it should be restricted to 0 or 1. This breaks api clients which expect the level to be 0 or 1, and not a boolean.

Steps to Reproduce

curl -X POST 'https://discord.com/api/v10/guilds/:id/mfa' \
  -H 'authorization: Bot ' \
  -H 'content-type: application/json' \
  -d '{"level": true}'

This will set the level to true for that guild, when it should be 1 or 0.

Expected Behavio...

chilly siloBOT
#

The new commit https://github.com/discord/discord-api-docs/commit/0436db025f7a552df36d48243330cd4b878d57b5 regarding a tutorial on using Heroku for hosting is a very bad idea.

These are some points that were sourced from communities of developers:

  • Bots are not what the platform is designed for. Heroku is designed to provide web servers (like Django, Flask, etc). This is why they give you a domain name and open a port on their local emulator.

  • Heroku's environment is heavily contai...

chilly siloBOT
chilly siloBOT
#

As usual, if this has been duped, my search-fu has failed me again.

What

As it stands right now, when requesting guild members, you submit a command to the gateway, and receive the members and you receive GUILD_MEMBER_CHUNK in 1K chunks. This is great, you know all the members on that server, and you can go about your day.

The issue here is that this does not scale well, rather, it doesn't scale well for bots.
When you request members, chunking isn't handled like normal ev...

chilly siloBOT
#

Hey,
i am the lead-developer on a 75k member discord server (704715447764779178) and we thought about rebuilding our support ticket system that is currently using private threads with the new forum channels when they gonna get released.

Sadly in the docs it's stated that forum channels will only contain public threads so such a rebuild wouldn't be possible.
In our ticket system we got multiple categories of ticket types you can select from a dropdown menu.
We thought about merging all...

chilly siloBOT
#

As the Action Metadata fields of channel_id and duration_seconds are only relevant to their associated action types, these fields are not required if neither associated action type is used.

There are even inconsistencies with this system as well. Even if I chose TIMEOUT as my action type, as long as a specify a channel_id without specifying duration_seconds, then the response will succeed and set the duration_seconds to 0. I'm not sure why it does this and is out of the scope o...

chilly siloBOT
#

Description

When you post a Discord Bot token to a public gist, you don't get a SYSTEM DM and the token is also not invalidated.

Steps to Reproduce

Go to https://gist.github.com, create a public gist and paste a valid bot token in

Expected Behavior

The token is invalidated and you get a system dm and an email

Current Behavior

nothing happens

Screenshots/Videos

Client and System Information

Windows 11 Home 22H2 22621.105

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Currently when a user has the Send Message perm disabled and Use Application Commands enabled slash commands can't be used.

Allowing application command use in channels where you can't send messages can be helpful for a variety of reasons, including:

  • bot command-only channels
  • "looking for…" channels that have a specific template to follow
  • contact channels where you use a command to send a message to guild admins
chilly siloBOT
chilly siloBOT
#

As far as I can see for now, clients can send an "afk" with its status to update. Why can't bots receive that?

General use-cases for now:

  • bots can manage afk users per-voicechannel again instead of having one setting in the server settings. There was a bot before that was able to manage it before the setting was added iirc. it would also be possible to make channels not move members to afk if the user goes afk. it would also be possible to move a user to audience in stage channel...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

When creating message containing a file using webhook with wait query param set to false, 200 status code is returned instead of 204.

Steps to Reproduce

Send a message containing a file using webhook with wait query param set to false.

Expected Behavior

204 status code

Current Behavior

200 status code

Screenshots/Videos

No response

Client and System Information

Own library

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

When I add name_localizations for a command name that contains subcommands, the name entered in the name_localization does not make any of the subcommand appear. Works fine in commands without subcommands.

Steps to Reproduce

Used the following example JSON, set user account at Discord to language English, US and entered /lookup and it does not show /find or /lookup subcommands.

` {
"name": "find",
"name_localizations": {
"en-US": "lookup"
},
...

chilly siloBOT
chilly siloBOT
#

Additionally it would make sense to expand this to the resolved channels as well. Its all fine and gravy to check if a member has permission to do something in that channel, but it makes no difference if the bot can't do that too.

Making the request to check immediately can work in some circumstances, but in many it won't.

Example: logging channel

  • User executes /config logging channel:<chanId>
  • The bot can check the members permissions to access said channel (doesn't even reall...
#

The last update was in 2020 and it didn't have ARM64 support. I think it's safe to assume the GameSDK has been effectively abandonned. I've already ripped it out of my codebase because of issues which haven't been fixed.

Actually, it turns out that there is in fact ARM support and the SDK is still bring updated.
It seems like it's the documentation/links that haven't been updated, however the "latest version" points to the correct one.

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

Hi,
I am trying to implement OAuth2 for my iOS app.
I have defined one urlscheme "lokapp" in my mobile app, and have updated in Redirects in /oauth2/general.
So when I launch my app by adding my custom url scheme in browser "lokapp://", its working as expected and launc my app. Now when I open authUrl it open Authorize page correctly and when I click on Authrize it shows 'Redirect URI is not supported by client'. I am not sure how to fix these. Images for reference

##...

chilly siloBOT
chilly siloBOT
#

Description

My bot is written using DSharpPlus.

Intermittently Slash commands start giving "Interaction Failed" after 3 seconds. BUT :

Once it starts it keeps happening BUT :

Appears to primarily (only?) affect mobile clients.
same mobile client, same bot, same user, on a different server works. (shard issue?)
same mobile client, same bot, same user, sending via DM works
same bot, same server, same user, electron client works

Steps to Reproduce

try to use slashcomma...

chilly siloBOT
chilly siloBOT
#

There's a system/app that I've been desiring for many years that doesn't exist yet, and I only recently realized how easy it would be to make. I wanted to message you before reaching out to local developers because it should be simple to integrate into Discord as you already have many supporting features in place.

The few gamers I talked to agree that the idea is gold. If you have the resources to spare, please have a private talk with me as I don't want to discuss publicly.

Thank you

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Could anyone who got this working, kindly assist me with the process?

I'm unable to figure what exactly needs to be returned to the Webhook calls.

Currently, when i attempt to save my webhook URL in discord developer portal, my url gets called with 2 POST requests; one with correct signature and the other with incorrect.
For the Correct one, i return Status 200 and JSON data: {"type":1}
For the Incorrect one, i return Status 401 and JSON data: {"type":1}

But, Discord is still refus...

chilly siloBOT
#

Thanks for bringing this up and including concrete rationale. I think a lot of these points are good, and it makes sense to shift the sample and tutorial to use HTTP instead of Gateway. I'll spend some time next week going through the existing app and tutorial to rewrite and reframe it.

However, I don't want to or plan on removing the tutorial entirely. We've gotten indication that Heroku is really popular among Discord devs through surveys (and they'll use it regardless), so we want t...

chilly siloBOT
#

Thanks for bringing this up and including concrete rationale. I think a lot of these points are good, and it makes sense to shift the sample and tutorial to use HTTP instead of Gateway. I'll spend some time next week going through the existing app and tutorial to rewrite and reframe it.

However, I don't want to or plan on removing the tutorial entirely. We've gotten indication that Heroku is really popular among Discord devs through surveys (and they'll use it regardless), so we want t...

chilly siloBOT
#

AutoMod allows pre-moderation, however it can be extended into a more general policies system to allow even more detailed moderation possibilities.

Proposal

I propose a few policies that would complement existing moderation tools.

Channel rate limit across users

Per-user rate limit, i.e. slow mode is useful to ease up a bit of a moderation load, but it does not necessarily make whole discussion slower-paced. Channel rate limit across users, on the other hand, would be usefu...

chilly siloBOT
#

Discord should now be able to allow us to moderate this via their "AutoMod" bot/service ?
It's a win-win for everyone! Server admins can efficiently blacklist stuff out, and no pressure of bot Devs making a bot fetch bios then?

Btw on an alternative note, can't we tell users to not provide sensitive information in their bio when they edit it? Internet itself is not a safe place to just give out any private information...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

The Message Formatting part of the documentation (https://discord.com/developers/docs/reference#message-formatting) mentions unix timestamps but doesn't specify that the parser expects timestamps with second precision. Using millisecond timestamps will result in formatted dates beyond the year 50000 and microsecond timestamps will outright cause NaNs and undefineds to appear in formatted output.

Steps to Reproduce




Expected Behavior

I'd expect usag...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

With the "standard" permission system, I am able to configure permissions for individual roles/members specific for each channel.

With the new command permission system, it seems like I'm able to allow/deny commands for each channel or for each role, but simultaneously (although I can do it "separately").

What I want to be able to express is something like "role A can use the command in channel A, and role B can use the command in channel B", and that doesn't seem possible to do with ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I'm removing myself from this thread because I think the engineering staff have made it clear this isn't a feature they want to implement but I'll add this:

We now have the guilds.members.read scope to get member profile information per-guild, this still doesn't bios but it does return everything you normally get from members. This appeals to the use cases menioned further up this thread asking for access to per-server data.

I stand by the moderation use cases I mentioned before. Co...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Current behavior

Currently, the client caches autocomplete results with what the user typed in the focused option

Desired behavior

The client should cache autocomplete results based on what the user typed in the focused option, as well as other options.

Why this is needed

I've seen the client give back invalid results after changing one of the previously set values.

Let's take an example

  1. You are trying to find a function in a class
  2. You start typing your co...
chilly siloBOT
#

Most implementations I've seen use an embed (either before or in the bridged message itself), with the name and avatar of the author and a small snippet of the message. The "author url" is then set to a link of the message that is being replied to, so that it can be clicked to jump to the message.
<img width="207" alt="image" src="https://user-images.githubusercontent.com/44026893/175832261-3d5fcaf1-8faa-4333-98d0-660ab476765e.png">

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

One would assume "select development partners" are given docs which contain the complete list of scopes discord offers.

I also think the store section – probably even the whole of – the SDK should be reviewed, since it documents code clearly written for api version 6. I did not remove any of it here because I felt like that would be making the scope of this pull request too large.

These docs are for the publicly available API; unless someone from discord can confirm the community docs ...

#

Removing approval only scopes isn't helpful at all, these scopes do exist and they should be documented for 2 large reasons:

So industry partners can understand what's possible (PS/Xbox setting presences, getting friends lists etc.)
So general users like me and you can see what Discord are offering to industry partners

Applications.entitlements still works even though the gameSDK is effectively depreciated. This technology may be re-used later down the line. SKUs are, for example, us...

#

If and when these features are repurposed with a different intent, they can be added back with the relevant feature documentation.

If there is a closed set of applications using legacy technology from discord, these scopes should not be listed in this table as things people can use today. My recommendation here would be a separate section of the docs containing the legacy documentation.

#

but... people can use them today? I gave 2 examples of applications that actively use some of these scopes? Delisting these is literally just reductive and harms the developer experience for people using the technology, legacy or not. Complicating the docs with a legacy section is redundant when this is a list of scopes that have actual use cases and in-the-wild uses in applications.

It wouldn't make sense to move the documentation of these scopes away from the scope documentation and into...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

This PR addresses some issues with the OAuth2 Scopes table by separating it into multiple groups:

  • Public User Scopes (normal)
  • Guild Scopes (commands/bot)
  • Other Scopes (webhooks/client creds)
  • Restricted Scopes (devs/testers only, unless approved)
  • Private Scopes (approval required)

I think this is a better alternative to the controversial #5127, as it should resolve confusion without removing documentation. I believe the documentation should continue to list all scopes, as i...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Too sad this was insta-merged. :disappointed: I think this would have been a better wording, and consistent with how this is named everywhere else:

Interaction payloads now contain an `app_permissions` field whose value is the computed [permissions](#DOCS_TOPICS_PERMISSIONS/permissions-bitwise-permission-flags) for a bot or app in the context of a specific interaction (including channel overrides). Similar to other permission fields, the value of `app_permissions` is a bitw...
chilly siloBOT
#

Description

As of the API push an hour or so ago, the user json returned by the API now has premium_type = null for non-nitro accounts, it used to be 0, and it is defined as returning an integer. This is breaking some libraries

Steps to Reproduce

do a get on /users/@me (as long as you don't have Nitro)

Expected Behavior

it should return an integer, like it used to do and is documented as doing

Current Behavior

it is returning null

Screenshots/Videos

No response
...

chilly siloBOT
#

This is confusing, "installed with" suggests that moderators cannot change the permission in the role after adding the both, which is not true, unless this is truly relying on the granted permissions from the oauth step.

It also suggests that its not a combined check like the rest of discords permission system, wherein if @everyone has permission, so would the bot (unless explicitly denied in an overwrite)

chilly siloBOT
#

@ImRodry It's an additive change so it won't break any apps—it's solely giving apps more information.
We also talked about the change in the latest DDevs event.

Usually stuff is added and only announced a few days later to allow libs to implement the feature, otherwise not many people can use it at the official launch

So you would rather it be announced and made usable in a few days?

#

I don't really agree that it implies that, especially with the context provided in the above section. Unless a dev relies on the @everyone permissions grant their botATTACH_FILES, EMBED_LINKS, MENTION_EVERYONE, or/and USE_EXTERNAL_EMOJIS in every server its installed, then a dev should make sure their bot is installed with the permissions.

The section above is the technical changes, the Updating your app section is purely to give devs advice on the practical changes they shou...

#

Change to Bot Permissions in Interactions and Webhooks

:warning: This includes an upcoming breaking change for some bots

Starting on July 28, 2022 (in about a month), the way bot's permissions will be calculated for interaction responses and webhook execution will be updated. Instead of using the permissions calculated for @-everyone, permissions will be calculated specifically for the bot (including any overwrites).

This change aligns with how bot's permissions are calcula...

#

This is a good and long-awaited change for the Use External Emojis permission.

However, as we have been discussing in DDevs #api, this change is a pain for permissions that previously were not checked for interactions and webhooks, such as Embed Links. One of the benefits of using interactions is that you don't need to worry about making sure the bot has embed permissions, since they are essential to most bots and if the server does not give everyone embed permissions, it is annoying to ha...

chilly siloBOT
#

Description

Discord's developer policy (https://discord.com/developers/docs/policies-and-agreements/developer-policy) states not to 'to distribute NSFW material without an NSFW tag;'. I have realized that the 'NSFW' terminology for referring to age-restricted content has been rebranded to 'age-restricted' in the discord client, perhaps we should define 'NSFW' or change the terminology to 'age-restricted'? If so, I have already forked this repo and am ready to make changes. Let me know!

...

chilly siloBOT
chilly siloBOT
#

perhaps there should be a section about what "approval" is, to avoid more confusion from users since i believe there's no formal approval process?

tried to clarify this with

Some scopes require approval from Discord to use, and there is no public application process.

could add more information tho


What does "applications.store.update" actually authorize, I cannot find an endpoint that the token can use: are you sure that is not behind approval?

yeah this scope does ...

chilly siloBOT
#

As an alternative, maybe consider rich embeds in the payload sent by bots not require the Embed Links permission at all:

  1. I've always found it a bit strange that a permission specifically referencing unfurling links would apply to the content provided in the payload.
  2. It's not great that sending a message with non-empty content and with an embed silently drops the embed but still allows the message to send.
  3. Very rarely do bots actually change the output of their replies if they don'...
#

I've always found it a bit strange that a permission specifically referencing unfurling links would apply to the content provided in the payload.

The embeds can contain unfurled links in the case of embed images, which I believe is the primary goal of this permission. The reason to disable this permission, is to prevent users from sending images via links, in my experience at least.

However, if that is the goal of applying this permission here, then maybe those images could be just ...

chilly siloBOT
#

I don't want my site linked from or embedded on discord. I don't want traffic to my site coming from there at all. How do I block my site from being linked on there? I know I can't stop people from trying to post a link to it on Discord, I'm hoping it's possible that if they try it doesn't allow it or posts a fake link or the link I choose (a redirect?) to somewhere other than my domain. I'd rather my site be secure. Discord is not secure.

I'm hoping there's a way that if I can't disallow...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

Result property is not set in constructor of exception, therefore it is always Result.Ok which prevents proper exception handling.

Steps to Reproduce

public partial class ResultException : Exception
{
        public readonly Result Result;

        public ResultException(Result result) : base(result.ToString())
        {
        }
}

Expected Behavior

Result property is set accordingly to exception type (result value)

Current Behavior

Result ...

chilly siloBOT
chilly siloBOT
#

Description

Running my 36k guild bot, infrequently I get warnings to the tune of

[serenity::gateway::ws]: Err deserializing text: Json(Error("invalid value: integer -1, expected u64", line: 0, column: 0)); text: {"t":"THREAD_MEMBERS_UPDATE","s":....,"op":0,"d":{"removed_member_ids":["..."],"member_count":-1,"id":"...","guild_id":"..."}}```

causing issues due to the library I'm using using an unsigned integer to represent this.

### Steps to Reproduce

Run a bot until you get it,...
chilly siloBOT
chilly siloBOT
#

Description

When you reply to a modal, it replies in the main channel you're in rather than where it was started, which proves to be an issue when it began in a thread channel but the user is using a side-by-side view of a thread and a channel.

Steps to Reproduce

Use the API to create a button inside of a thread that will open a modal, and then view the thread side-by-side with its parent channel. Program the Modal to reply with a message when it's submitted, and submit the modal. ...

chilly siloBOT
chilly siloBOT
#

I don't even get what was wrong with that particular change; I doubt many people relied on the interaction name payload in already existing messages

That's beside the point. Unless its a security threat or actively being abused then at minimum there should be some advance notice before a breaking change. Posting the changelog of a change that is breaking after making the change is basically the complete opposite of what is supposed to occur.

#

I don't even get what was wrong with that particular change; I doubt many people relied on the interaction name payload in already existing messages

The definition of a breaking change does not alter depending on the amount of people relying on current behaviour, the discord developers server demonstrated many people rely on the documented behaviour as it should not have changed before v11.

chilly siloBOT
#

Description

The API documentation states that the Global Rate Limit is 50 requests per second.

Here is a scenario that currently occurs occasionally in interaction with the Discord API using a global bucket rate limit with a 1 second expiry time. The endpoint used in this scenario does NOT provide rate limit headers (potentially intended) contrary to https://github.com/discord/discord-api-docs/issues/1808#issuecomment-658535754. The actual global rate limit bucket header ...

chilly siloBOT
#

3 Tips for Parents Who Want to Learn Quran For Kids
Your child may have started learning to read Quran, and if not then it’s time you introduced your little one to this great Islamic tradition of reading the holy book of God. The Arabic language can be difficult and it would help greatly if you had someone teach you what your child has been learning in his or her classes. Here are three tips for parents who want to **[learn Quran for kids](https://onlinemadrasa.org/online-quran-classes-for-k...

chilly siloBOT
#

In addition, please add how we determine which requests route to a bucket. The documentation states:

Per-route rate limits exist for many individual endpoints, and may include the HTTP method (GET, POST, PUT, or DELETE). In some cases, per-route limits will be shared across a set of similar endpoints, indicated in the X-RateLimit-Bucket header. It's recommended to use this header as a unique identifier for a rate limit, which will allow you to group shared limits as you encounter them.
...

chilly siloBOT
#

The permission to Manage N also includes the ability to Delete N. Any possibilities that gives the permission to Manage N can be undone. For example, if a user accidentally moves a channel to another category, this can be corrected by a reverse action. This applies to any action that depends on the permission to Manage N, except deletion.

The deletion of N cannot be undone. It seems to me that only those users/bots in which the server administration is 100% sure should have this permission. ...

#

Description

Channels have a position field which is supposed to reflect the visual position of a channel, see https://discord.com/developers/docs/resources/channel#channel-object

It seems like the position is incorrectly returned by the API for channels under specific circumstances, for example after creating a new channel under a category the new channel will have the highest position, no matter where it is visually placed.

Steps to Reproduce

  1. Check channel positions
    ...
chilly siloBOT
chilly siloBOT
#

Yes please. If this is going to be implemented, please make separating channel deletions from MANAGE_CHANNELS (Manage Channels) highest priority, as deleting a channel is the most destructive action, which involves completely wiping all of channel overwrites, followers (for news (announcement) channels), messages, and even threads in the channel in a single API request.

chilly siloBOT
#

Description

String options can have min_length be set to less than max_length

Steps to Reproduce

register a slash command with an option that has max_length set to less than the min_length. A payload has been provided below.

{
 "type": 1,
 "name": "str_length_go_brr",
 "dm_permission": true,
 "default_permission": true,
 "default_member_permissions": null,
 "description": "-",
 "options": [
  {
   "name": "option",
   "description": "-",
   "type": 3,
   "re...
#

The current requirement to modify the "slowmode" of a channel is the manage channel permission, which is an extremely powerful permission that lets you completely delete the channel and all of its content, permanently.

Slowmode is an extremely valuable moderation tool, that explicitly targets the message frequency in a channel. A logical and far more appropriate permission for managing this setting, is manage messages, which also allows users to bypass it as well.

I argue that the abili...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

The dm_channels.read scope could include a way for bots to send ephemeral messages inside a user's DMs.

Why

Currently the dm_channels.read scope is a very interesting scope. I personally can't think of a lot of use cases to use this scope. However, by allowing the bot to interact in said channel, some new uses can open up. Bots could actually interact with whatever content is being read, without having to open up a new DM channel or use other means of communicatio...

chilly siloBOT
#

Description

Http-only apps (apps, that don't have a bot user) are currently massively lacking behind when it comes to visibility and growth. When running a command from such an app and then clicking on the message author (as if you wanted to view the app's details) the info looks like this:

image

As viewable, neither the app's description nor the install button are shown altough...

chilly siloBOT
#

Currently, if a developer wants to dynamically display information under a bot's profile, they need to use the bots "status."

Allowing developers to edit the application description/the bots about me will give developers more flexibility in their bot.

Some usage examples:

  • Display stats such as servers, up time, last updated, and build version
  • "Fun" features like a small quote of the day under the bot description

Alternative:
Make the bots "about me" separate from the application descri...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hi! I've got a Discord application where I authenticated via OAuth2 with a redirect URI, got a bearer token, and can make API requests. However, it's hard to tell which API requests require a bot versus just the regular bearer token I have. I'm specifically trying to send a direct message via the API to a particular server I belong to, which is something I can do personally in the Discord app, but which I can't seem to do programmatically via the Discord API. Here's an example request that gi...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hello there, taking into account the bugs that exist towards Ephemeral messages disappearing if it's an old message in a channel.

I think it'd be quite ideal, to have interaction responses that instead of making an ephemeral, they cover the screen showing the message, with its content, embeds and attachments, similar to how Modals work.

That way if I want interactions that are done with the purpose of being informative, the user will get the message on screen and able to read and close ...

chilly siloBOT
chilly siloBOT
#

Description

Calling the DELETE HTTP method on /invites/:code provides no ratelimit headers in the response.

Steps to Reproduce

curl -i -H "Authorization: Bot $DISCORD_TOKEN" -X DELETE https://discord.com/api/v10/invites/[somecode] - assuming DISCORD_TOKEN is a variable in your shell, and [somecode] is a valid invite code.

Expected Behavior

The response includes x-ratelimit-[whatever] headers.

Current Behavior

The response does not include any ratelimit headers...

chilly siloBOT
#

There are three potential cases:

  1. It has a rate limit bucket that isn't being showcased.
  2. You hit a global rate limit, which should showcase a Retry-After header (of around 1 second).
  3. You were Cloudflare banned, which should showcase a Retry-After header (of around 50 minutes).

Rate limit scope isn't required for this to be a bug, but a missing Retry-After header would be.

_Related: https://github.com/discord/discord-api-docs/issues/5144_

#

Here is what I understand regarding this endpoint and returned headers:

  • There isn't any classic (user) ratelimit on this endpoint, because there isn't any major parameter (guild or channel id) that can be used. This explains why there is not any X-Ratelimit-* headers returned on success responses.
  • However, there is a shared rate limit (likely per guild or per channel) on deleting invites. You only get a X-RateLimit-Scope: shared and Retry-After headers when exceeding it.
    • T...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

I am trying to implement OAuth2 login on Android Webview. Once I login with valid credentials for DISCORD, the login will take place but it won't show the App Authorize page, instead it will log me out and would show login screen again. Please check the below video

Steps to Reproduce

  1. Open authorization link in webview with WebView.loadUrl(authorizationUrl)
  2. Log in with your credentials (using my phone number and password)
  3. It will redirect back to the login pag...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Buttons don't make intuitive sense in a modal for a user or bot dev, and will likely have terrible UX.

Checkboxes and Slideboxes should be the same component (boolean component), with a different style.

Don't know about the 2 select menus per row, there's a reason Discord didn't let us do that for messages and I assume it would be the same for modals.

chilly siloBOT
#

Description

When viewing the integrations page in server settings without webhook permissons it claims there is no webhooks for the application, while it should say you dont have perms to view webhooks for this application

Steps to Reproduce

Go to the integrations page minus webhook perms

Expected Behavior

The UI says you dont have webhook perms

Current Behavior

The UI says this app has no webhooks

Screenshots/Videos

![AReAz7z](https://user-images.githubuserconten...

chilly siloBOT
chilly siloBOT
#

Why did the request get rate limited?

In the following partial log (with a 1.01s wait time), we can see that the main issue occurs due to sending requests 1 - 10 ms faster than the Discord Server. This is why the rate limits typically occur near the start/end of rate limit buckets (with that implementation).

Request 50 429 PARSED HEADER &{0 0 0 0  true global} PARSED RETRY AFTER 1
        from 2022-07-07 19:46:43.3999559 -0500 CDT m=+5.352960901
 HTTP/1.1 429 Too Many Reque...
chilly siloBOT
#

Description

When you try to add a new file to a message in v10 of the api, using edit message, it removes all existing attachments. This is true, even if you aren't sending an attachments array in the payload at all.

This is a breaking change in v10 that was never explained or documented in the changelog. I don't think this change makes a lot of sense at all, since you are now required to know the entire existin...

chilly siloBOT
#

Payload with populated attachments array

--boundary
Content-Disposition: form-data; name="files[0]"; filename="image.png"
Content-Type: application/octet-stream

[image bytes]
--boundary
Content-Disposition: form-data; name="payload_json"
Content-Type: application/json

{"attachments": [{"id" : "994892044541644861"}]}
--boundary--

On v9 and v10, this adds the file and keeps the existing files on the message.

Payload without attachments array

Here, all I'm...

chilly siloBOT
chilly siloBOT
#

it's the only way to add the file description / alt text

It really shouldn't be the only way, either. Adding a file with a description shouldn't need to require fetching the message first, just so you can add the files you don't want to edit.

However, the main concern here is really that not specifying the attachments array at all, still behaves as if its now an empty list. In my opinion, omitting it, should be treated as unchanged, how it was in v9.

This change is currently ...

#

I don't disagree.

I brought up a related issue with it here in regards to editing an interaction response, as it doesn't even return the message when you create it, requiring an extra API call.

For the most part, you can use the response from the endpoint or cached message data to know the existing attachments, but there are exceptions such as older messages that are not cached or interactions as ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

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

This list is outdated or missing things that are still being returned during request.

Examples:
TEXT_IN_VOICE_ENABLED
ENABLED_DISCOVERABLE_BEFORE
THREADS_ENABLED
THREE_DAY_THREAD_ARCHIVE
NEW_THREAD_PERMISSIONS

I would update the data and make a PR but I'm not sure if this is being left out of documentation on purpose (unreleased features/temporary) as well as I'm not sure what'...

#

This log corresponds with the previous commit and showcases how global rate limit buckets either:

  1. Do not expire at the second despite being presented at the second (i.e Fri, 08 Jul 2022 10:26:16 GMT)
  2. Uses a different method of calculating the actual rate limit.

I am biased towards 1 because of the following information.

received 2022-07-08 23:34:34 +0000 GMT
        from 2022-07-08 18:34:35.0135301 -0...
chilly siloBOT
chilly siloBOT
#

Description

When mentioning a user in a slash command string option, it seems that Discord still uses the old mention formatting with the ! bang in front of the user ID: ``. It should have been updated to use the new format, which does not contain the exclamation mark.

Steps to Reproduce

Use a slash command that accepts string input. Mention a user inside of it. Printing the raw message content reveals that it still contains the ! bang.

Expected Behavior

The mention is fo...

chilly siloBOT
#

I don't think I understand the issue here. There's no summary of what you mean by this, and I don't think you reached any type of finalized point. It is just stated information surrounding behaviour you experienced.

It doesn't matter when Discord's actual buckets really reset. As long as you have a type of timed semaphore which guarantee that there is not more than 50 requests per second it doesn't matter much when the window opens/closes. No matter the drift in when you open/close the win...

chilly siloBOT
#

I don't think I understand the issue here.
— @Bluenix2

Information surrounding global rate limit handling is too ambiguous for a straightforward implementation.

It is just stated information surrounding behaviour you experienced.

See https://github.com/discord/discord-api-docs/issues/5144#issue-1291939218. Multiple tests are provided throughout the post. Surrounding behavior is included to help solve the issue.

As long as you have a type of timed semaphore which guar...

chilly siloBOT
chilly siloBOT
#

It's 2022, there are no endpoint

There is an endpoint in a way. Changes have been made to be able to delete the old default channels. So you can just clone and delete a channel to purge it.

That is not what this issue about, the discussion was a bout a bulk_delete of bunch of messages for valid usecases. Right now, you have to delete them 1 by 1 which means you subject to very strict API limitations and very easy bot ban (which are "always valid and final" and you cant even appe...

chilly siloBOT
#

Just so everyone understands why this limitation was added in the first place, there is an actual technical reason why Discord doesn't want you to prune large chunks of messages in channels (and can take actions against bots doing this).

In distributed databases (like the one used by Discord), this generates a large amount of tombstone records, which can cause big performance issues (for the history, the pruning of a large guild's default channel in early 2017 -just before this issue was c...

chilly siloBOT
#

(remember that people were pruning channels content mainly because the default channel was not deletable at that time).

Again, this fallacy being brought up just as an excuse. People will find a way to abuse anything. We arent talking here about channel deletion and recretation, we are talking about deleting big amount of messages in a bulk. For example, messages from particular bad actor throughout history of the server (ban option only allows to delete 24hrs long message) or multiple s...

#

Description

The API does not currently support pins in voice channels. This makes it the only existing message channel without support for pins, which I find kind of odd.

Steps to Reproduce

  1. Create a voice channel
  2. Send a message in the channel
  3. Try pinning it

Expected Behavior

The message is pinned successfully (I know this is currently unsupported). Or the error should be more clear.

Current Behavior

`{"code":50019,"message":"A message can only be pinned to th...

chilly siloBOT
#

I'm not speaking of an abuse (I don't think anyone said that pruning a channel content was an abuse by itself), but an actual technical limitation.

Of course, putting limitations will always disturb valid use cases, and this has to be balanced. In this case, Discord has to balance between "deleting millions of messages can cause database issues" and "people need to be able to delete messages in bulk for a couple of reasons". Allowing to bulk delete messages posted in the last 15 days cover...

chilly siloBOT
chilly siloBOT
#

Currently, the user data we get through RPC contains

  • user voice state
  • absolute user data (ID, username, avatar)
  • guild relative user data (only nick currently)
{
  "voice_state": {
    "mute": false,
    "deaf": false,
    "self_mute": false,
    "self_deaf": false,
    "suppress": false
  },
  "user": {
    "id": "190320984123768832",
    "username": "test 2",
    "discriminator": "7479",
    "avatar": "b004ec1740a63ca06ae2e14c5cee11f3",
    "bot": false
  },
...
chilly siloBOT
#

Description

The dev site states:
For security purposes, tokens can only be viewed once, when created. If you forgot or lost access to your token, please regenerate a new one.

However this is not true, due to behavior change several months ago tokens are no longer returned upon bot creation, the easy fix would be just to change this wording, however the behavior described makes sense, and is better than having to create a bot then "reset" the token just to have access to it for the fi...

chilly siloBOT
#

Did you test this at 50 requests per second?

<details>
<summary>I have done tests in the past, but now I did a completely over-the-top test towards the Discord API.</summary>

from typing import NoReturn, SupportsInt

import anyio
from wumpy.rest import APIClient


# 12 channels, spamming as many requests as it can which means we end up with
# bursts of 60 requests (more than the global limit of 50 rps)
CHANNELS = [
    878988417436905483, 878988447593930783, 87898...
chilly siloBOT
#

https://github.com/switchupcb/disgo/pull/14#issuecomment-1179632428 confirms the (possible) behavior of the global rate limit algorithm with a working global rate limiter implementation.

The following log corresponds with the previous commit and updates the global rate limit bucket by using the Discord Date as the single source of truth. An assumption is made that the Global Rate Limit is implemented (on Discord's end) using a server-based bucket algorithm where a 50-token bucket is ...

#

I suppose you can consider this issue reproduced by me.
— @Bluenix2

Thanks for confirming!

Generally speaking though, some libraries only handle this issue after Discord tells them.

https://github.com/discord/discord-api-docs/issues/108 states that "[libraries] should be aware that [they are] being rate limited on a given method, and not attempt to send any requests during a period that it should know would be immediately rate limited. Please refer to our new [docs on Rate Li...

#

Due to being unexpected. It's not acceptable for the documentation to be in a state where you have to do this. It's not acceptable on the library end because "err on the side of caution" implies that there are limits to (performance, etc). Falling back to sequential rate limiting may prevent errors, but as a user of a library I may or may not expect those errors and prefer the performance of consecutive requests.

This is partially Discord's fault, yes, but not all the blame can be put on D...

chilly siloBOT
#

Description

Making a POST request to /users/@me/channels/ with an invalid body data throws a Bots cannot use this endpoint

Steps to Reproduce

curl --location --request POST 'https://discord.com/api/v9/users/@me/channels' \ --header 'Authorization: Bot token' \ --header 'Content-Type: application/json' \ --data-raw '{ "data": { "recipient_id": user id } }'

Expected Behavior

Should returns
`{
"code": 50109,
"message": "The request bo...

chilly siloBOT
#

How often do you need to delete messages older than 15 days in bulk?

If it is not as often as X/Y then it should not need to be available

A fallacy. Thousands of people delete their messages every day via Discord client, including purging very old ones. The """"damage"""" you are talking about is being done every day on a way bigger scale than a few hundred bots will ever do.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Bot permissions are generally permanently granted unless they are manually changed in role settings. This is bad for security, since a lot of bots asks when added for permissions that can be dangerous if misused, like manage channels/roles. However, many bots use administrative permissions like these on an ad hoc basis, when a user makes a certain command or for a one-time automatic configuration for example.

To avoid bots from asking for too many permissions in the initial authorization, ...

chilly siloBOT
#

This is partially Discord's fault, yes, but not all the blame can be put on Discord. There are routes which do not produce ratelimit headers from what I remember, which I would advocate for being fixed. The documentation could be clarified about whether ratelimiters should treat the endpoint as unknown (sequential requests, going as safe as possible) or if it can treat the endpoint as falling under the global ratelimit (technically unlimited).
— @Bluenix2

Partial is an understatement...

chilly siloBOT
chilly siloBOT
#

I've been trying out some stuff and I now have a different implementation as a prototype:

class GlobalRatelimit:
    def __init__(self) -> None:
        self._lock = anyio.Lock()

        self._tokens = deque(maxlen=50)

    async def wait(self) -> None:
        async with self._lock:
            now = time.perf_counter()

            if self._tokens:
                await anyio.sleep(self._tokens[0] + 1 - now)

            self._tokens.append(time.perf_counter())
...
chilly siloBOT
chilly siloBOT
#

I was under the impression that this was meant to be constructive in solving some type of issue. Unfortunately, I now realize that I have wasted my time and this is just a place to complain - no one to blame but me. I will most likely not respond again.
— @Bluenix2

Lol. https://github.com/discord/discord-api-docs/issues/5144#issuecomment-1179633775 contains a working implementation of a Global Rate Limit Handler if you can read Go. However I'm about to add the per-route rate limit ...

chilly siloBOT
#

When you link to a message, it automatically switches channels when necessary and highlights the message. This can be super useful, both for users and for bots.

I think the same should be done for users, you could right click a user and get an option like Copy User Link just like with messages, and then send that to others, for which this user would pop up in their app (instead of opening the users profile in the browser / on a new tab).

This is different from mentions, since sometime...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Yep, better overall deep linking is sorely needed. There's so many links that do actually work but boot you out of discord for a split second for some reason. (worth noting that using the protocol link will avoid this for desktop clients but those have a whole set of bugs that I don't want to get in to).

Every link is checked anyways and most show a pop up, so the potential very miniscule slow down is a non-issue.

chilly siloBOT
#

Description

I'm getting error when trying to get messages from offset more than 5000. It can also be seen in Discord client when going to search area in DM and searching for messages from specific author then going to page more than 200 (beacuse 200*25=5000)

Steps to Reproduce

[GET] https://discord.com/api/v9/channels/{channel_id}/messages/search?author_id={author_id}&offset=5001
Of course you need to be authenticated.

Expected Behavior

Should return another 25 messages that...

chilly siloBOT
#

It would be nice to have the ability to enable AutoMod on certain inputs for commands, some commands that this could be useful for is /8ball, /poll, /report, etc.

Example of the docs for this (added filter to the end):

Application Command Option Structure

FIELD TYPE DESCRIPTION
type one of [application command option type](https://discord.com/developers/docs/interactions/application-commands#application-command-...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Proposal

Allow bots to trigger interactions of other bots just like users can

Why?

The restriction of not being able to trigger interactions blocks the possibilty of e2e testing for bots. We can do unit/integration tests for internal functionality, but we can't do end to end testing to verify that the bot actually works with Discord.

This worked with message commands as the "QA Bot" was able to just send a command via message and then check which actions the bot under test h...

chilly siloBOT
#
\* The proxy url only supports attachments which have a defined `width` and `height`, such as images and videos. For all other attachments, the proxy returns a `415: Unsupported Media Type` error.

\*\* Ephemeral attachments will automatically be removed after a set period of time. Ephemeral attachments on messages are guaranteed to be available as long as the message itself exists.

prevent those from being in the same paragraph

chilly siloBOT
chilly siloBOT
#

Thanks for the transparency on your roadmap. I've looked through documentation/developer server etc and today it seems there is no API for extracting Server Insights. Whilst the Server Insights UI is helpful I expect community managers of larger guilds would want a means to pull in the same data into their own dashboards, to combine with other data they may have (e.g. in Datastudio). The activity in Discord, is typically part of a multifaceted approach by a community or brand, so getting at l...

chilly siloBOT
#

Couple of things:

  • note isn't a type of callout
  • I don't think this case is encountered enough to make it so prominent (it could read as confusing if the dev doesn't have context)
  • I don't think adding the language of "available" guild makes sense since we just call it a guild object everywhere else.
The inner payload is a [guild object](#DOCS_RESOURCES_GUILD/guild-object) with the extra fields described in the table below.

> warn
> In scenarios 1 and 3, if there...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

So as guy who get what is going on - i want really know, what usual will receive? Better mods?
Free nitro? Its not what normal users need. New api? Its same shit js app. No need to change that was born dead. Or you help devs this way, modified protocol and etc. At first i feel this totally unethically made with unacceptable practice, then what i as user gain? Owerhed? Some new problems?

chilly siloBOT
chilly siloBOT
#

I have the same problem.
The limit is very little, in the case of having subcommand groups for example.

Since you have to be putting all the short descriptions and if it is not enough you are forced to create a subcommand with the same name but with something different.

For example command-name reached the limit by the group of subcommands so now you are forced to create a command command-name-2 in order to achieve your goal. Because you don't create another command with a different name if...

chilly siloBOT
chilly siloBOT
#

Description

Messaging a Slash Command mention to someone like /switches (``), then clicking it will run the bot in the DM, giving an "Unknown Channel" error.

Steps to Reproduce

✔Message a slash command mention to a friend.
✔Click it.
✔Run it.
❌Error.

Expected Behavior

Not be able to be clicked at all.

Current Behavior

Able to be clicked and ran in DMs.

Screenshots/Videos

![unknown](https://cdn.discordapp.com/attachments/997986430242525284/997986430330617986/unk...

chilly siloBOT
chilly siloBOT
#

Reminder that its only the name, description, and value properties of the command and its subcommands that count.

Though to be fair, I have a command with 2 subcommand groups each with 3 subcommands (and 18 total options) and I'm at 2526 characters.
This command looks quite large due to displaying subcommands, so collapsing subcommands might be a prereq for an increased character limit.

I have a proposal that may be rather unique to my command structure but I'm guessing its not so her...

#

That's a great idea! For my command structure you can see in the gist something like arguments which you can give more than 1 time would be great since I'm asking for ~20 different roles and I could do that with one argument which can take 20 roles or one argument which can be used a set amount of times... For people who do not use arguments that require 20 times the same input type/ the same argument, the limit could be moved to no "global" limits for top level commands and groups but the X0...

chilly siloBOT
#

Many applications and games use custom URI schemes to allow linking in-game content, joining sessions or calling certain actions.
From my testing however, when adding a link to an embed created by a bot account, only http:// and https:// protocols are actually carried over into the href property of the message, I could not get other URI protocols working.

Therefore I'm suggesting adding support for custom URI schemes, which would be rather simple to implement (simply allow any protocol to...

chilly siloBOT
chilly siloBOT
#

Description

Currently when you remove a bot from the integrations page the Audit log only shows the integration type (Twitch/YouTube or in this case discord)
This should be modified to show the integration name if it was a bot/application.

Steps to Reproduce

  1. Invite any bot to a server
  2. Go to server settings, Integration, Bots and Apps
  3. Select the bot, scroll down and click remove integration
  4. Go to audit logs

Expected Behavior

My suggestion: User#0000 removed an...

chilly siloBOT
#
Tin
[discord-api-docs] Branch forum\-channel/message\-counter\-update was force-pushed to `ab62522`
#
Tin
[discord-api-docs] Branch forum\-channel/message\-counter\-update was force-pushed to `e69960d`
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I would like to be able to upload RPC assets using an application's bot token, similar to how dispatch used to work.

Some background: I maintain elcord, a rich presence client for emacs. Elcord displays an icon for the current major mode for the buffer you have focused. There are lots of major modes, so many people submit PRs to add icons for their favorite major modes. This is fine, but it means I need to make sure the icons submitted are uploaded as R...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

The docs say that successfully creating an interaction returns a 201 CREATED response code. I have observed that this is not correct, and instead if returns a 200 OK.

[I] david@darvid-pc ~/scripts [3]> curl -v -d '{"name": "slash-example", "type": 1, "description": "Example slash interaction", "options": []}' -H 'Content-Type: application/json' -H 'Authorization: Bearer {{TOKEN}}' 'https://discord.com/api/v10/applications/{{CLIENT_ID}}/commands'
*   Trying 162.159.137.232:443...
...
chilly siloBOT
chilly siloBOT
#

I would like to see the possibility of a limit of how many characters you can type not just in individual text input components, but the entire modal. So, let's say, you have two text inputs, and their combined text should not exceed 16 characters. But you could for example put 16 characters in one text box and 0 in the other, or make it 9 to 7, or some other combination.

This can be useful when the different text boxes will later be combined in some way, and should follow a certain maximu...

chilly siloBOT
chilly siloBOT
#

Description

There seems to be an issue when you incorrectly create posts in a forum, using POST/channels/:channel.id/threads without specifying a message.

Steps to Reproduce

Make a request like this to POST/channels/{channel_id}/threads:

{
  "name" : "test from bot",
  "type" : 10
}

Expected Behavior

A 400 class error, indicating the incorrect usage of forum channels

Current Behavior

500: Internal Server Error

Screenshots/Videos

_No respons...

chilly siloBOT
#

Feature Description

Adds a new property to the ApplicationCommandOption structure that will only allow the user to send an option from the autocompleted list, like how choices currently work.

Example Use Case

A bot has commands that use internally stored IDs to manage information (warns, bans, kicks, quotes, tickets, etc...). These IDs can't be stored in a hard-set choice array, so autocomplete has to be used here. The issue is that currently, a user can enter something that ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

When the trigger_metadata field is not sent, but the trigger type requires it, the API returns an error saying a field named metadata is required, but it actually requires a trigger_metadata field.

Steps to Reproduce

POST https://discord.com/api/v10/guilds/:id/auto-moderation/rules

{
    "name": "test",
    "event_type": 1,
    "trigger_type": 1,
    "actions": [
        {
            "type": 1
        }
    ]
}

Expected Behavior

An e...

chilly siloBOT
chilly siloBOT
#

If this was added, I'd want it to be settable by developers to allow or not allow bot interactions (ideally with the default being off). While the use-case provided here would be nice, allowing all bots to interact with other bots could lead to abuse, spamming, or automation of intentionally-not-automated tasks. Filtering out the interactions from a bot would be trivial, but it could end up being a lot of unnecessary traffic (especially in a targeted attack).

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Why should the subcommand limit change?
Many developers have more than 100 commands and thus they will be forced to use subcommands to accommodate for those extra commands. But you can only have 25 subcommands per command and this forces developers to resort to stuff like this:
/image commands1 (command:avatar) /image commands2 (command:invert) /image commands3 (command:whatever) etc
Or
/image1 avatar /image2 invert etc
How on earth is the user supposed to know what category i...

#

You do not understand my suggestion properly,
The command option was merely one of the examples i provided - I also provided the option of using /image1 /image2 etc. That was not a suggestion, merely an observation and I will redact it to avoid confusion.

If a bot had 50 slash commands discord could calculate that each slash command could have 50 subcommands, 100 --> 25 etc. If the developer increase the number of slash commands they had to 100 the number of subcommands per command could...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

In addition to the above, https://discord.com/developers/docs/topics/gateway#rate-limiting can also be clarified.

Clients are allowed to send 120 gateway commands every 60 seconds, meaning you can send an average of 2 commands per second. Clients also have a limit of concurrent Identify requests allowed per 5 seconds. If you hit this limit, the Gateway will respond with an Opcode 9 Invalid Session.

Emphasis is placed on the fact that we can send an average of 2 commands per second...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

These are not actually described in the documentation but I have been able to deduce the types of rate limits Discord has: Global (Requests), Per Route (Requests), Per Resource (Requests), Per Resource Per Routes (Emoji Requests), Global (Gateway), Identify (Gateway).
https://github.com/switchupcb/disgo/pull/14#issuecomment-1191998174

Based on https://github.com/mennanov/limiters:
Global Rate Limit: Fixed Window
Per Route: Token Bucket
Per Resource: Token Bucket
Emoji: (D...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

In my application, I could only invite my bot once, when I decided to start tests on another server. The URL generator does not work. This problem appeared a long time ago (4 months ago).
(Perhaps mistakes were made when filling out the problem, since I live in Russia and do not know English well, and the translator may not give the correct translation. Thanks for understanding)

Steps to Reproduce

https://discord.com/developers/applications/963054686674493440/oauth2/ur...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT