#github-notifications

1 messages · Page 26 of 1

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

After testing this, I started receiving a 429 but having the headers say that I'm still good to go. Probably a bug in their code that isn't returning the right headers, but this did cause an issue where the body's retry_after was different from the header's x-ratelimit-reset-after. Looks like all the libraries should add checks if this ever happens, or at least always use the body's retry_after. I was using the header which caused my lib to go into a loop of retrying at whatever the `x-...

chilly siloBOT
#

Description

Two endpoints are returning incorrect headers for their ratelimit

  • DELETE-/channels/:channelId/messages/:messageId (messages of under 10 seconds)
    -> Messages under 10 seconds should have no ratelimit (return no headers) or at least be 3/1 (i think)

  • PATCH-/channels/:channelId w/ name and topic
    -> Editing a channel's name/topic should have it's own bucket, but returns just the default 10/15 bucket

Steps to Reproduce

  • `DELETE-/channels/:channelId/me...
chilly siloBOT
#

Description
When a text file is uploaded, the content_type in the attachment object has charset=ascii, such as text/markdown; charset=ascii. This likely causes emojis to not render properly in the file preview: they might show as 👀 or just Could not render this file preview..

Steps to Reproduce

  1. Upload a plain text file such as markdown or json
  2. Look at content_type in the attachment object in the message object

Expected Behavior
A Unicode charset, suc...

#

Description

Hello, I have a problem with discord.py. When I want to find information about server in embed, informations are incorrect. Such a bad members number or server owner isn't found.

Steps to Reproduce

Fix guild some guild commands, mainly server owner and members command.

Expected Behavior

I expect, that this problem will be fixed. :D

Current Behavior

Screenshots/Videos

discord.py ![image](https://user-images.githubusercontent.com/438...

chilly siloBOT
#

Description

For non-slash commands, the user has been able to delete the message invoking the command, slash commands actually make this easier because if you delete the invoke it also deletes the response. Currently, this is only possible for users with the MESSAGE_MANAGE permission, but granting that permission to a user isn't really a good idea so it would be useful to add separate permission to just delete your own invocations.

Why This is Needed

  • If you have multiple ...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

When adding choices to command options, if the type is set to 4 (integer) and a choice has a value that happens to be the same length as an ID (channel, role, user, etc.), then selecting that option and sending the command results in the error "Application command interaction option values must be of type string, integer, or boolean".

Ran across this while tinkering with commands to add roles. Role type doesn't support choices to filter down to specific roles, ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
This issue suggests add more verified properties to user informarion api, which can retrive via oAuth2 authorization.

For example:

{
  "id": "80351110224678912",
  "username": "Nelly",
  "discriminator": "1337",
  "avatar": "8342729096ea3675442027381ff50dfe",
  "verified": {
    "email": true,
    "phone": true
  },
  "email": "nelly@discord.com",
  "flags": 64,
  "premium_type": 1,
  "public_flags": 64
}

Why This is Needed
Currently, Discord's user api o...

chilly siloBOT
chilly siloBOT
#

Description
The width and height properties on the Attachment object may be omitted in certain cases (for example, if the attachment is a PDF. The documentation currently marks these as nullable, not optional.

Steps to Reproduce

  1. Look at the docs.
  2. See that the properties are marked as nullable.
  3. Receive a message with an attachment, such as a PDF
  4. See that the properties are not null, but rather, omitted

Expected Behavior
The fields should eith...

chilly siloBOT
chilly siloBOT
#

If you want to ensure users on your server have a verified phone number, you can set your server's verification level to Highest. In doing so, Discord prevents anyone who doesn't have a verified phone number from sending messages, unless you give them a role.

That said, I'm not really against this idea, as technically someone can already know whether you have a verified phone number: If a server's veri...

chilly siloBOT
chilly siloBOT
#

Description

Allow the bot to manage reactions in the DM.
That is, delete user reactions, etc.

Why This is Needed

Some bots use a reaction controller that only works on a server where the bot can manage messages.
For example, using the command !help. There is a reaction forward, backward, etc. When clicked, the user's reaction should remove

Expected Behavior
Reactions should remove in DM

Current Behavior

Reaction doesn't remove in the DM.

chilly siloBOT
#
jb3

Looks like we're experiencing similar problems with USER_UPDATE events now on a different client in the same server.

Both with members intent enabled and disabled no USER_UPDATE events for avatars/usernames arrived at the client.

Client ID for missing user events: 528937022996611082
Session IDs: f41258240bc80ab89b2099e5f44b254a, 83a4ae4268c927e4e6c8de2cb3f48412, 42ff2bf7b3d622cb33684c824d976ed0, 311d1d20afd6fe107b7fcf5c89ec51a4, 41d3f89dac2b0ba6d0d805b4197b957d

chilly siloBOT
#

Description

Allow the bot to manage reactions in the DM.
That is, delete user reactions, etc.

Why This is Needed

Some bots use a reaction controller that only works on a server where the bot can manage messages.
For example, using the command !help. There is a reaction forward, backward, etc. When clicked, the user's reaction should remove

Expected Behavior
Reactions should remove in DM

Current Behavior

Reaction doesn't remo...

chilly siloBOT
#

Just doing some housekeeping as I cross-reference open issues.

This issue is tied to this PR: https://github.com/discord/discord-api-docs/pull/2737

Will close this issue once that PR gets merged (which is just me slacking, sorry).

There's a lot of discussion here, but I think the crux of it has actually been brought out by others. Tying commands to roles and users is more in line with how people run servers, and is generally more flexible than tying to Discord permissions. Creating...

chilly siloBOT
#

We have no plans to allow users to delete bot messages as they are not the poster of the message nor have moderation capabilities. This is no different than prior to slash commands, where using a command could result in a bot reply you could not delete.

But previously as a bot developer you could listen for the user deleting the invoke and then delete the response, which came in quite handy, now as we migrate to slash commands we can't do that anymore as the user can't deter the invoke

#

It is not possible to defer the choice of ephemeral or channel message as we must render a placeholder loading message at time of interaction response. You must decide if you want to render the message publicly or privately, and followup on that accordingly. While we could allow you to move a message between the two in theory, ephemeral messages take a different route for message sends (and are not persisted) and insertion into a fast-moving message list may result in unexpected placement in ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I don't believe we will ever document and maintain an emoji list given it is an open Unicode standard. Our emoji shortname list is derived from https://github.com/joypixels/emoji-toolkit so you could rely on this open source library for a mapping of short name to unicode. There is one open bug we account for though, so check their open issues (number 35).

I'm fine with not having a maintained list of all the emojis (and there is less of a need now that we know what package you are using, w...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

@msciotti Thanks, though the credit for the UI mockup goes to @Maanex :)

I feel I should point out that simply adding a way to tie individual slash commands to roles and users with overrides won't be enough for the majority's use case (although useful in its own right). One should not preclude the other, and being able to define our own permissions for our bots would be incredibly useful.

I don't think this issue should be closed once that PR is merged, since the proposed solutions in...

chilly siloBOT
chilly siloBOT
#

many of the sorts documented in this PR are not consistent or partially correct. one should only assume a sort exists based on pagination support of an endpoint. any other sorts you may appear to see should not be trusted to always return with that sort.

if an endpoint supports pagination with before, then you can assume a descending sort
if an endpoint supports pagination with after, then you can assume an ascending sort
if an endpoint supports both before and after, then it dep...

#

I think merlinfuchs' proposal which rxdn posted in https://github.com/discord/discord-api-docs/pull/2737#issuecomment-808521557 would be the best solution:

default_permission should take a permission bitmask integer, not true or false. This would allow for commands to be restricted to users with certain permissions, without having to add all users and roles individually for each guild.

that way it still keeps the flexibility and possibility for overrides set by server admins, but also a...

chilly siloBOT
chilly siloBOT
#

Description
There should be an option to upload assets directly from a file, instead of having to manually upload them to the developer portal.

Why This is Needed
It can be annoying to upload many different assets, and also it may not be possible in some cases. As an example, a music player that uses Discord SDK (like FooBar) cannot put album art as the LargeImage since assets need to be pre-uploaded.

Alternatives Considered
Another possible solution...

chilly siloBOT
chilly siloBOT
#

I absolutely agree with @advaith1 here, a simple boolean value is simply not enough to use the full potential of slash commands. Whether it be Nihlus' proposal to handling permissions or simply allowing a bitfield as the default_permission, I don't mind, but the current solution is more limiting than it has to.

This issue / feature request was not about allowing commands tied to individual roles or users, this issue was specifically directed at slash commands being regulated by discords al...

chilly siloBOT
#

I can still reproduce the issue easily, and I have had a ticket open with support (10238951) where devs claim it would have to do something with using youtu.be links instead of youtube.com, sorry, but they are incorrect, and I had a hard time trying to convince them, but no matter what I say, they keep pushing the youtu.be thing.

Dear devs,

for some reason, the same message being sent through the api as channel/private message DOES get the thumbnail embed, while the webhook message does...

chilly siloBOT
chilly siloBOT
#

I have also noticed that sometimes sending an image link on its own, through a webhook will embed that image for a second and then the image embed will disappear. Seems to be a client-side thing?

edit: yep, exactly what they say here #1821 (comment)

never had the issue you described, what we experience here is the thumbnail never showing up when posting website links like youtube/twitter

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

I suspect an internal error is occurring here, and it looks like we apply ban before removing the member. in the next deploy we've inverted the logic to remove the member before banning them, thus in an internal error at least the user will have been removed first.

Does this change affect the order in which the GUILD_BAN_ADD and GUILD_MEMBER_REMOVE gateway dispatches get sent?

chilly siloBOT
chilly siloBOT
#

Thanks for the feedback. I think this would be better suited for https://feedback.discord.com since this feedback is related to the product itself rather than API/bots.

That's like saying I should've not posted it in the first place.
From sll places is the feedback page imo the worst option since your chances at getting your feedback seen is similar to getting struck by lightning.
If you don't have a large fanbase that likes your feedback or shares it to everyone is the chance of getting i...

chilly siloBOT
#

Description

I would like to continue the discussion in #2723 and request a standardization of what Unicode Emojis the API accepts as valid.

Why This is Needed

After looking at what Discord uses internally in the client (thanks to @Emzi0767's extraction of the internal list) they all seem to use Variation Sector 16. This differentiates them from Twemoji, which is where Discord seems to get all the emoji ...

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

I understand the original intent of the feature request, yes! What I'm saying is, at this time, we do not have plans to allow assigning discord-specific permissions to individual commands.

The solution that we have now shipped is the system we believe in moving forward.

That's not to say we will never allow discord permissions to operate this way, but it is not currently planned. Though it is noted, so I can promise we won't forget about it.

chilly siloBOT
#

We have no current plans to change this behavior. It is not feasible to serve the entire member list of every guild to bots, and as guild sizes continue to grow it is unlikely we will support this operation over gateway forever. If you haven't already, I would recommend taking steps to move to persisting and caching data. Having stale data is generally considered OK, and you can update data as you need to instead.

#

While we could improve documentation to note that you may receive a 429 earlier than you expect, there's not much we can really do here to improve the developer experience around rate limits. We want to give flexibility to update a route more frequently, while also protecting our infrastructure against abuse. While we could reduce the entire endpoint to 2 per 10, I suspect that would be much less well received.

If you receive a 429 -> use Retry-After header to determine when to retry the r...

#

We shipped out a change today which should improve bucket tracking for shared bucket routes like this. The bucket key will now be distinct when applied to differing routes. This doesn't explain why you encountered a 429 on this PATCH route, and while there is a shared bucket being used it is still a unique count per route. It could be due to your time being off, which is why we now include a Reset-After header.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
The embeds sent by my bot are sometime randomly missing the attached images. It seems to work like 98% of the time and it actually sends the embed with the proper images (thumbnail and image). However in some rare cases the images just don't show up at all. (see screenshots) Other users also report that they don't see them, I also tried looking at the posts through my phone app and they don't show up. So it shouldn't be a client issue (unless all clients are affected).
I...

chilly siloBOT
chilly siloBOT
#

Description
--as the title suggests--
maybe this could be done by adding everyone who is in the allowed_mentions or by creating an entirely new field

Why This is Needed
For example, if you have a /warn @user command for moderators on a server, the response could be ephemeral and only visible to the moderator who executed the command and the user who has been warned.

This way, the bot does not need the bot scope (e.g. to send a DM to the warned user), making interactions...

#

Thanks for the reply @night, however that does not answer the core question - what should library developers do in the event we hit a sub-request limit.

The least we could benefit from is a different bucket value for when a request goes through a sub-request limit... Even then, we'd have to re-do our internal handlers to see if this ONE route gets one of these params, and give them a separate handler... Not really feasible (as such ratelimits can come and go, as it have been said before), ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Thanks for the feedback. Unfortunately due to how application commands are stored on our infrastructure there is not a way to retrieve all created application commands, and you will need to query for your application's commands on each specific guild.

When an integration is removed from a guild its application commands, webhooks, and bot user are all cleaned up. This ensures that there are not orphaned commands laying around.

#

This API behavior does not appear to cause any issues, and looks to be working as intended. The API doesn't validate what bits are stored in allow vs deny since we have a defined pecking order for applying them: https://discord.com/developers/docs/topics/permissions#permission-overwrites

As for the client audit log, the API appears to generate an accurate view of the state change (it logs both the old and new value for deny/allow). The client is likely misrepresenting that state change and...

#

Description
When responding with type 5 to a slash commands you see the xxx bot is thinking... thing. If the bot doesn’t follow up in the 15 minutes it will show forever which can confuse new bot developers and users.

I want it to be like "this slash command timed out" after 15 minutes even if the bot responded with type 5 to be less confusing.
Why This is Needed
It would be better for users and less confusing.

Alternatives Considered
Just not responding with t...

#

Okay, would it be possible to get an error or warning response from the api in such cases? (or does that already exist and I am just missing it?)
Because to my code it looks like the message sent properly without issues, but the image isn't there. And the only workaround I see is fetching the message after sending it and checking the image data to ensure that hight and width are not set to 0. If they are, resend it.

#

We are currently aware that channels and topics are shown both in API responses and in some parts of our gateway events for channels you do not have permission to view. For technical reasons it currently has to be this way, and topics and channel names are currently considered non-private information as a result. We do have some plans to possibly address some of these things in the future, but I do not have a timeframe of when we might get around to it.

#

Thanks for the feedback. I don't believe we will build something like this as it would be quite complex to reason about on clients from a UX/API perspective. Our path forward on providing derivatives is to encourage use of sub commands, which are more explicit in nature.

If having multiple values accepted for your command is a must, you could still accept a string input and perform validation/parsing on your bot (like a normal content command message would).

#

This should not be closed without at least a minimal awareness update. Why not just add a few words saying "💡 These headers are not private"

We had a channel that is focused on collab editing a Google sheet that was on the channel description (shared by unlisted so I don't need to collect emails of their RL gmail).

Even as a dev, I was completely unaware that it was public. Name? Figured maybe. Description? Thought no way. If a dev wouldnt think that , and we're here with others thinki...

chilly siloBOT
chilly siloBOT
#

Also sorry, I just realized what you meant by transient images. While that might be the case for the twitch stream previews of meee6 it is not all the case with the images I am sending with my bot. Those have been sitting there for a longer time. Some of them are even hosted in by discord itself.

The example above for Event Announcements is being set up through discord, it even does a test embed for the person that set up the announcement to confirm it is working, so the image with the im...

chilly siloBOT
#

If a client has no access to an entity's guild, generic endpoints (guild get, channel edit, reaction add for example) promote missing access over missing permission. This is a great design to tell the client that it was removed from the guild and it should not try to execute more requests towards it.

Based on this standard webhook endpoints (and some other) misbehave, since they promote missing permission over missing access. Promoting the correct error code is important to avoid unnecessa...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

Please add a function with which you can select which /slash commands you can use in a channel ... (for example in a list)

Why This is Needed

If you have 2 different /slash commands you cannot set which of the two you can use in the channel. You can only set whether you can use /slash commands.

If you have a /clear command and a /ping command you can only use both or neither.
This becomes a problem when you have a channel in which you are not allowed to ...

chilly siloBOT
chilly siloBOT
#

Relevant or not, if it's data that's being returned to developers, that means developers need to account for it. If nothing else, the specification should clarify that values can be returned by this API that are un-documented.

Yes, but you should also build your systems to be forward compatible: you do not want your code to immediately break if they add more values in the future.

chilly siloBOT
chilly siloBOT
#

Description

Neither the patch PATCH /guilds/:id/welcome-screen nor the get GET /guilds/:id/welcome-screen request return the property enabled which signifies if a welcome screen is currently enabled on the guild.

Why This is Needed

The welcome screen data is simply not returned in invite payloads if the welcome screen is disabled. However, the get request still returns the currently entered data, despite the welcome screen being disabled at the time. The patch request r...

#

Description

Currently, the welcome screen data returns a flattened emoji structure with emoji_name and emoji_id. I suggest the addition of the (currently missing) emoji_animated property.

Why This is Needed

On the library level, we would like to construct a valid emoji instance with its corresponding methods from API data whenever possible. This data currently forces us to introduce a breaking change for our emoji structure(s) making the animated property nullable, if...

chilly siloBOT
#

On the library level, we would like to construct a valid emoji instance with its corresponding methods from API data whenever possible. This data currently forces us to introduce a breaking change for our emoji structure(s) making the animated property nullable, if it arrives via welcome channel data.

Are you not already handling the fact that "animated" is never included in the partial emoji object attached to MESSAGE_REACTION_REMOVE and MESSAGE_REACTION_REMOVE_EMOJI events in your emoj...

chilly siloBOT
#

Description

Slash commands should be able to know who is the guild owner. Whether this is a "Add Guild" interaction type (which isn't a great fit for slash commands imo), or a flag on a member when they are the guild owner.

Why This is Needed

Slash commands (especially games and the like) may find it valuable to give guild owners different treatment. For example, if I were to implement a basic D&D clone, I need a way to choose the game master: and choosing the guild owner bei...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
When a command is disabled for @everyone the command is still able to be used.
The command shows up as greyed out on desktop, but when typing the full command out it works as if the command wasn't disabled. I'm guessing this has something to do with validation.
A command that's disabled with a role id or a user id rejects the command when typing the full command out and using it.

Steps to Reproduce

Create a global command with default_permission as `T...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Good point. In my humble opinion, I don't think Slash commands should provide this functionality.

If lots of bots adopt this functionality, it will not be possible for server staff to delegate permissions to non-owners.

Your suggestion makes sense for smaller servers, but encourages a bad path for larger servers which may have: a "dummy account" that owns the server, and a "top admin" role for multiple pseudo-owners.

#

This feature request seems like a more specific version of https://github.com/discord/discord-api-docs/issues/2324#issuecomment-761139882.

With that feature, bots can configure themselves to restrict access based on a channel's NSFW status.

The only drawback is that this would require the bot scope, to listen for channel create/update events, and grant/remove command permissions based on channel NSFW-ness.

Alternatively (which wouldn't require the bot scope), you could create a `...

chilly siloBOT
#

I may be missing something, but I don't see a mention of channels in the overwrite / permission system? It (or at least both the comment linked and #2737) seems that the permission / overwrite system only works for roles and users?

As mentioned by https://github.com/discord/discord-api-docs/pull/2737#issuecomment-807667047:

I was under the impression that we might get the ability to disable specific slash commands in specific channels, is that still planned or just not happening?

chilly siloBOT
#

The only way to do it now is giving a specific role permission to use a command +a channel override to allow that role to use slash commands just in that channel. So that means you would have to dedicate a role per command for fine-grained results.

The current system is less of a problem when you bundle a bunch of commands under a role, but it would be nicer to see if the command permission could have a 'channels' array field included for explicit true/false like roles and users.

chilly siloBOT
chilly siloBOT
#

I'm unsure if this is intentional or a bug - I've been trying to access the API using Google App Script and I'm having some issues.

Trying to get user data from https://discord.com/api/users/${id} returns the error code 1020 - I have good reason to believe this may be caused by Cloudflare.

Strangely, http://discordapp.com/api/users/${id} works perfectly fine and as expected. (Note Discord.com vs Discordapp.com)

Some other occurrences:

  • api/users/@me works with both `dis...
chilly siloBOT
#

It is really sad how developers can still be clueless about IPv6 when they say things like "There are much more important things to work on". It is in fact due to these developers that IPv6 after 20 years still struggles go. Because they choose tools that don't support IPv6 (e.g: load balancer) and when asked they blame it instead of just changing the tool.
Some of them say: "Ohh there isn't much thing that supports IPv6 yet" while Google, Youtube, Netflix, Facebook, Cloudflare, etc are 100%...

chilly siloBOT
chilly siloBOT
#
54D

Description

Retrieving Partnership or Discovery requirements fails and returns error code 500 on Discord client. Consequently, the information shown in partner program and discovery tabs in server settings are wrong.

Steps to Reproduce

In Discord client:

  • Open server settings
  • Navigate to Partner Program tab
  • Navigate to Discovery tab

Expected Behavior

Requirements are retrieved correctly.

Current Behavior

Attempting to retrieve requirements for ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Discord traffic between clients and server is currently IPv4-only which imposes a couple of issue to both users and ISPs providing broadband services in general.

IPv6 exists for over 20 years and is the standard Internet Protocol since 2017 according to IETF. The amount of services and content with IPv6 support is fairly significant to mentioned some as: Google, Youtube, Netflix, Facebook, Cloudflare, etc with 100% services available in IPv6 and responsible for a significant amount of netw...

chilly siloBOT
chilly siloBOT
#

If the everyone role is not meant to support slash command permissions then i think that the desktop client not grey out commands that are disabled with the everyone role, because it will lead to confusion as developers might not test the commands fully as they'll expect it to work fully if it seems like it's working?
I only found that it doesn't work because someone in d-devs said it didn't work for them which lead me to test it on android (it seems android doesn't grey out commands?),...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

After sending a DeferredChannelMessageWithSource, a followup message with only an embed will keep the "Bot name is thinking" message.

Steps to Reproduce

  1. Send a DeferredChannelMessageWithSource (Type 5) as response to a slash command.
  2. Send a followup message that only contains an embed.

Expected Behavior

The "Bot name is thinking" message will go away.

Current Behavior

The "Bot name is thinking" message stays until the client reloads.

...

chilly siloBOT
#

You should not use followup messages in this case cf. https://discord.com/developers/docs/interactions/slash-commands#interaction-response

After receiving an interaction, you must respond to acknowledge it. You can choose to respond with a message immediately using type 4, or you can choose to send a deferred response with type 5. If choosing a deferred response, the user will see a loading state for the interaction, and you'll have up to 15 minutes to edit the original deferred response...

chilly siloBOT
#

You should not use followup messages in this case cf. https://discord.com/developers/docs/interactions/slash-commands#interaction-response

After receiving an interaction, you must respond to acknowledge it. You can choose to respond with a message immediately using type 4, or you can choose to send a deferred response with type 5. If choosing a deferred response, the user will see a loading state for the interaction, and you'll have up to 15 minutes to edit the original deferred re...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

This PR adds my Python library, flask-discord-interactions, to the Interactions section of the Community Resources page.

This library allows users to declare commands and then set an interactions route in a Flask app. It handles registering commands, receiving and verifying incoming webhooks, returning a response, and sending outgoing webhooks. It also includes some data models to make working with channels, members, and roles easier.

While there are already many Python libraries list...

chilly siloBOT
chilly siloBOT
#

https://github.com/discord/discord-api-docs/issues/2410#issuecomment-816330225 is pretty awesome!

The slash command interactions support fetching a previously created message:

/webhooks/<webhook_id>/<webhook_token>/messages/@original
/webhooks/<webhook_id>/<webhook_token>/messages/<message_id>

And slash command message posting is based on webhook infrastructure.

I'm hoping that the implementation of these endpoints has paved potential future support of Webhook Rep...

chilly siloBOT
#

Description

The documentation for external IP discovery in the API docs lists a completely different packet structure to the one all libraries are sending. Sending the documented structure causes no reply to arrive from the voice server.

The documented structure is 74 bytes long, but says to send a length minus four:

Field Description Size
Type Values 0x1 and 0x2 indicate request and response, respectively 2 bytes
Length Message length excluding Type and...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

Depending on the parameters passed, the ordering of the result from the get channel messages route differs.

Steps to Reproduce

  1. get lucky (you need two messages with the same timestamp)
  2. get the channel history starting from an id a few before / after them
  3. observe how firstly changing the limit to exclude one of the two changes the ordering
  4. observe how if you use the later one in the after, the other shows up again

Expected Behavior

If I...

chilly siloBOT
chilly siloBOT
#

Description

When replying to a slash command with create interaction endpoint, /api/v8/interactions, the endpoint randomly replies with a 404 error. When it does, the message is still delivered to its recipient but is marked 'ephemeral'.

I can say with absolute certainty these commands are being responded to in well under the 3 second time limit.

Steps to Reproduce

Post slash command interactions to /api/v8/interactions.

For example this one returns as 204 empty con...

chilly siloBOT
chilly siloBOT
#

We have 8 for ROLE input which is really helpful. But there could also be an option to select multiple roles under single option in the command and give the devs an array of the roles selected.

This helps to reduce the number of choices for a commands (like having 3 choices with ROLE toget 3 role choices) and rather have the liberty to choose how much roles for the choice (or even have a cap which can be set by the dev for the command). This will help out in many setup commands as...

chilly siloBOT
#

Description
Bots should be able to send slash commands. They should be able to provide arguments and use them like any other user. If this is implemented slash command should also whitelist/blacklist bots to use it.

Why This is Needed

I want to test my bot which is purely slash-commands based. Currently, I’ll have manually test every feature for a regression after a refactoring or whatnot.

Alternatives Considered
There ...

chilly siloBOT
#

Description
In DMs, channel options show all channels from all guilds. However, when sending the command with a selected channel, it errors "A channel id specified is invalid".

Steps to Reproduce

  1. Make a slash command with a CHANNEL option
  2. Try to use it in DMs

Expected Behavior
Since channels are required to be in the same guild as the command is being used in, it would make the most sense to disable commands with required channel options in DMs (since they cannot b...

chilly siloBOT
#

Description
I have found a few cases where the API will include invalid role ids in the member object. Note the server does have ~90,000 members and ~80,000 when the roles were deleted so I'm assuming its something to do with how large the server is and the API failing to remove the ids.

Steps to Reproduce

I have been unable to replicate this, I just know it's occurring in my server.

GET /guilds/437808333295058955/members/554679497409167360

{
    "roles": [
     ...
chilly siloBOT
chilly siloBOT
#

It's fairly likely your bot or someone else added the role to a member during the role deletion. When we delete roles we iterate over members to remove the role, and then delete the role. This is typically fast enough in most guilds, but for large guilds iterating over members to remove the role can take some amount of time. You can use the API to remove the missing roles from any users you've encountered.

chilly siloBOT
chilly siloBOT
#

I think that they should provide their own hosting

Which is far harder than you might think.

which integrated the best way with their api

There are plenty of community-made bindings to their API already. There's bound to be one that you'll enjoy using. If you don't like the community offerings, Discord also provides documentation to build your own: https://discord.com/developers/docs

but keep the f...

chilly siloBOT
#

Bro I said keep the fees nominal which means that all the charges divided + a little profit too. I am just saying to not take a big sum of profit so it would be a lot more nominal. I never asked them to not to charge them for the service implementation, I just asked to take minimal profit so we all can happily host on it!

I think you misunderstand. If Discord were to host on someone else's servers, they would not be able to make a profit (or even break even) unless they charged the same ...

chilly siloBOT
#

Bro I said keep the fees nominal which means that all the charges divided + a little profit too. I am just saying to not take a big sum of profit so it would be a lot more nominal. I never asked them to not to charge them for the service implementation, I just asked to take minimal profit so we all can happily host on it!

I think you misunderstand. If Discord were to host on someone else's servers, they would not be able to make a profit (or even break even) unless they charged the...

chilly siloBOT
#

As with many here, my frustration around this issue similarly dates back to Nov 2019, when I implemented a means via one of my guild's websites for boosters to create their own role or emoji, and wanted to give both benefits to those who used both of their nitro boosts on the guild. After all, the information was accessible to the user via {guild}/premium/subscriptions, so why should it not be available to bots?! (as also noted in #1714). I was - and still remain - baffled.

I can app...

chilly siloBOT
#

The simple answer, @HilbertGilbertson, is that initially they didn't expose the endpoint to bots due to worries. And they haven't had the chance to revisit or prioritise a change to that policy.

To change that policy, someone inside Discord would likely need to write a proposal weighing up the pros and cons, and share that with their team. That takes time.

This task is likely on their radar, or in their backlog, and they simply are busy with other things!

I don't know if "number of ...

#

The simple answer, @HilbertGilbertson, is that initially they didn't expose the endpoint to bots due to worries. And they haven't had the chance to revisit or prioritise a change to that policy.

To change that policy, someone inside Discord would likely need to write a proposal weighing up the pros and cons, and share that with their team. That takes time.

Since this GitHub issue is still open, this task is likely on their radar, or in their backlog, and they simply are busy w...

#

And... how are we obstructing them from doing anything right here, again? Who said that your "number of excited users" criterion is why we advocate for this feature?

I don't really understand your question.

All I'm saying — there's probably no point in saying it — is that all we can do is be patient, respectful, and hope that eventually they get around to the things that we as individuals want.

We are all often passionate about the things we want, I just wanna remind folks that our...

#

And... how are we obstructing them from doing anything right here, again? Who said that your "number of excited users" criterion is why we advocate for this feature?

I don't really understand your question.

All I'm saying — there's probably no point in saying it — is that all we can do is be patient, respectful, and hope that eventually they get around to the things that we as individuals want.

We are all often passionate about the things we want, I just wanna remind ...

chilly siloBOT
#

All I'm saying — there's probably no point in saying it — is that all we can do is be patient, respectful, and hope that eventually they get around to the things that we as individuals want.

Surely this goes without saying when it comes to any issue, and hence I am left wondering what exactly the point of your interjection was. I can well appreciate that there are processes behind every decision and that good things come to those who wait. I don't think anyone here is suggesting that t...

#

I genuinely believe that the potential for good here outweighs the potential for bad.

Maybe I can help explain some of the feelings about this.

Discord has created an excellent carrot-on-a-stick :carrot: in the form of server levels. It's heavily incentivized to get boosts, and more boosts = more nitro/individual boost sales. Server owners also can incentivize boosting a server to the members to offer the members extra perks as well, which almost does Discord's work for them: the server...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

The documentation for membership screening state that giving the user a role will bypass membership screening. It is not stated what happens if you give the user read and write permissions to a temporary client. In practice, giving the user permissions breaks the Discord client.

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

Steps to Reproduce
Some of these steps may be overly specific

  1. Create a hidden channel with no default read/write permis...
chilly siloBOT
#

Yes member.pending is true. We have a workaround of giving a role but
wanted to file a bug. The api docs are not clear wether giving permissions
is the same as giving a role or not. The bug can not be triggered except
via api so I posted here.

On Sat, Apr 17, 2021 at 5:30 PM Advaith @.***> wrote:

Is member.pending true? If so, then it might just be a client bug,
instead of an API bug (client bugs can be reported with the form
https://dis.gd/bugreport or in DTesters
<https:...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
Save/set nickname on guild members even when username is exactly the same.

Why This is Needed
Currently the behaviour when trying to set a nickname that's the same as the username the API responds with an OK code, making it apparent that the nickname has been set. Unfortunately, if the username is equal to the nickname then it is not set, and if the user changes their username, so does their display name in the guild. It also seems pretty inconsistent that the nic...

chilly siloBOT
#

@sudofox I mean anonymously server boosting a guild, not retracting a boost. You cannot do that now.

The point @sudofox was making, @erkinalp, was that anonymous boosting would seem counter to the core design of nitro boosting, and that your suggestion (including even removing the Nitro Booster integration role) appears in conflict with this feature request.

If you would like nitro boosting to be anonymous (and the Nitro role to be removed etc) perhaps you should submit your own sepa...

chilly siloBOT
chilly siloBOT
#

I believe you're mixing up different levels of anonymity?

Boosting anonymously is never going to directly lead to someone not being able to get whether you paid something. I (personally) do not see a use case where anonymous boosting is useful.

After all, if you're boosting a server, you probably approve the community and think that nobody will witch hunt you for doing so. Anonymous boosts make no sense in that case: if you feel unsafe in a community but are boosting it, what's up w...

chilly siloBOT
#

I've added D++ (DPP) here.
This is my C++ library which is open source and intended to replace aegis in my own bots.

You can find examples of rate limit code here: https://github.com/brainboxdotcc/DPP/blob/master/src/dpp/queues.cpp#L226
This library respects all rate limits from the X-RateLimit headers including special case for global rate limiting.

You can find examples of slash command/interaction code here: https://github.com/brainboxdotcc/DPP/blob/master/src/dpp/slashcomm...

chilly siloBOT
#

It would be good to see if we could fetch how many servers a bot is in, as it would help discord bot lists to verify whether the bots send correct server number, also helpful for others in verifing the same, because there's no proof whether the bot status shows correct number of servers or not.

This information can be seen when adding the bot, but this can't be fetched since discord redirects browser to login page, so It seems as our code can't read the number of servers a bot has.

chilly siloBOT
#

As of now Moderation bots make their own warning stuff, it's good, but not good if there's multiple moderation bots on a server, because each bot has its own database of warned users.

So if discord makes warning api per server which could be configurable (like number of warning per user to get banned/kicked, etc)
It would be great for all bots to maintain the warnings of a user. (Incase a mod bot goes offline, another mod bot can be used just in case, which would continue the warnings of ...

chilly siloBOT
chilly siloBOT
#

@night I am aware of the response, I just hadn't had any time to get back to it yet.

Your statement doesn't seem to be entirely correct though; for example in Get Channel Messages, the returned messages are always in descending order, no matter whether you use before or after. I'm not sure about other endpoints, this might actually be the only enpoint that even supports bi-directional pagination.
Additionally, the order for Get Pinned Messages should definitely be documented a...

#

Description

PATCH /guilds/{guild.id}/voice-states/{user.id} and PATCH /guilds/{guild.id}/voice-states/@me both return 500s when "channel_id" isn't included in the payload.

Steps to Reproduce

Make one of the following requests with the IDs and token placeholders subbed out for actual values

curl --request PATCH \
  --url https://discord.com/api/v8/guilds/{guild_id}/voice-states/{user_id}\
  --header 'Authorization: Bot {bot_token}' \
  --header 'Content-Type...
chilly siloBOT
chilly siloBOT
#

An option to boost anonymously by default

While it's fine that you've got your own ideas for how Nitro Boosting should have been implemented differently, the concerns you're expressing are far outside of the scope of this issue. If I were to put Discord's current implementation in terms of anonymity and self-expression, as the functionality stands right now, we could say that this issue is requesting an API change from getting

User#1234 really likes the Foobar server

to

...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

You should really find another place to express this particular view. This card is not about anonymous boosting. It's about getting the number of boosts, per user, programmatically, information which has never been private in the first place. If you think that Discord should add "anonymous boosting" then by all means, put in a feature request! I won't stop you.

However you are at this point distracting from the purpose of this issue. Such a change to the API would not make any previously p...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

And I am trying to explain you all that retrieving them at human scale and rate and bot scale and rate are not the same things. You get a significant hit in your second order privacy in the latter case.

I don't see what that has to do with this issue. In any case, you initially used this thread to propose even deprecating the Nitro Booster integration role - are you really going to suggest that wasn't outside the scope of this issue?! Evidently you have a gripe about boosting and priva...

chilly siloBOT
#

Description
Non-text channel /messages route return an empty array instead of erroring as it is impossible to send messages in those channels.

Steps to Reproduce
Make a request to this endpoint using a non-text channel id: https://discord.com/api/v8/channels/{non-text channel id}/messages

Expected Behavior
Give an error (kind of what it does when trying to create a message in a non-text channel).

Current Behavior
Returns a 200 OK with an empty array as the bod...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

I noticed that the name argument in docs for ApplicationCommand and ApplicationCommandOption now requires to match ^[\w-]{1,32}$. I've been using diacritical marks (like óąśłżź etc.) in my commands before this was introduced, and even today the commands still work even if there's a diacritic in it (even though it doesn't match the regex). Is this a intended change, or is this a mistake? For now the only problem is with docs since the API is still accepting diacritic...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

There should be a field called "reactions" (Array) in the request body (application/json). In this, we should be able to pre-add reactions to messages. This means messages will come with reactions, once they are posted.

Why This is Needed

I think this is needed because adding reactions to messages takes some time which may not be the best thing for most bots. People want a faster experience when dealing with reactions. And, developers use reactions to re...

#

This appears to appeal to a button use case. There is a button feature coming soon that they have expressed to be the intended path forward for this.

What would be the point of reactions then?

exactly. Using reactions as buttons is not the use case and Discord has stated in the past they dont really intend for bots to use them as such. These new buttons they working on (despite not being Adaptive Cards) will fill this need.

They are there as a reaction... instead of spamming...

#

This appears to appeal to a button use case. There is a button feature coming soon that they have expressed to be the intended path forward for this.

What would be the point of reactions then?

exactly. Using reactions as buttons is not the use case and Discord has stated in the past they dont really intend for bots to use them as such. These new buttons they working on (despite not being Adaptive Cards) will fill this need.

They are there as a reaction... ...

chilly siloBOT
chilly siloBOT
#

On Sat, 24 Apr 2021 at 01:11, Souji @.***> wrote:

this seems to be a rather unfortunate extension of (an outdated version
of) discord.js, working around a lot of the functionality the library
already provides instead of using the rate limit and rest handler that
already exists.

You may be right but this may just fit to combine certain groups mainly
government agency that looks to unite their already existing task force.
Which may be a suitable solution

You are r...

chilly siloBOT
#

Description

When editing a message (notably embeds) with attatchements and removing the field that contains it (e.g. removing a thumbnail where an attatchment was used to create the image) the attatchment ends up outside the embed as the field for it no longer exists. This also works in the opposite direction where a message was created without any attatchments and then a field is added that requires an attatched image / file and it won't show. The ability to edit the attatchments in a...

chilly siloBOT
#

This is not an API bug, this is caused by the client: it removes all invalid characters first (as the settings page says, emoji names can only contain alphanumeric characters and underscores), and then adds underscores if the name is less than the minimum length of 2 characters. The client could handle this better but client bugs/feedback does not go in this repo.

chilly siloBOT
#

image

As you can see in the image above, my alternative account is not in any servers, besides "dendo's server" which is owned by my main account dendo#6341 .

I logged into the alternative account and opened the DM-s with my main account and it said "35 mutual servers" and it showed two server icons, it showed the icon of the "Dendo Studios" server (owned by me) and the "uwu" server...

chilly siloBOT
#

Description

Right now picker suggests all available channels when you define command option with type: 7 (CHANNEL).
For my case I only need voice channels (and I suppose there are cases where developer might want to allow you to choose only text ones).
So when someone choose text or category channel I must handle that and return an error.

It should be possible to restrict channel picker to different types of guild channels.

There are few options:

  • different option t...
chilly siloBOT
#

Bit dumb but i might have found a way to sort of achieve this.
You can mention voice channel just like a text channel with <#id> but when you click on it you get automatically connected to that voice channel.
And the bot would be able to detect that

Few ways i thought this might be useful

  1. give the bot a category that it can create voice channels in and then make the category only visible for people with a certain role.
    Then when a user calls a command the bot can create a channel c...
chilly siloBOT
#

Not actually a feature request, just asking that those responsible make sure to comment on #2490 whenever there are (semi-)major changes to slash commands. I at least (and probably others) can't afford to fully watch this repo, and instead just watch that issue. Because there was nothing there about e.g. the new permissions (#2737) I'm half a month late to even finding out about them. Much appreciated!

chilly siloBOT
chilly siloBOT
#

Description

Currently, when a message is sent using the create message endpoint it does not include the guild_id field, even if the message was sent in a guild.

Why This is Needed

It is needed because when using a library, if the developer uses the returned value it may be confusing and pretty hard to get the guild_id the message was sent in, as only the channel id is needed to send a message.

**Al...

chilly siloBOT
#

this seems to be a rather unfortunate extension of (an outdated version of) discord.js, working around a lot of the functionality the library already provides instead of using the rate limit and rest handler that already exists.

The main library of discord.js doesn't work with slash commands (yet). SupaBotBase is much more than just using the websocket to get the slash command event. It's loading the commands, registering/changing them, parsing arguments (even for normal commands), etc.

#

Description

If you try to add a user to the Application Whitelist, it returns a 404: Not Found error, also the already added members list won't load.

Steps to Reproduce

To reproduce, go to the Discord Developer site, go to Application Whitelist, and you will see the list of already added members won't load, and adding people returns the 404: Not Found error.

Expected Behavior

The already added members list should load and show up, adding members shouldn't return a e...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Just want to cover this because I don't think it was that explicit.

The fact that there is an endpoint inaccessible to bots that has this information means that any malicious use of this information is already possible by simply loading the data client-side or self-botting (yes, this is against ToS but abusing the data would be as well so why wouldn't they do this too?)

Effectively that means that malicious users already have access, yet legitimate users do not - which seems crazy...

chilly siloBOT
#

Object.values(webpackJsonp.push([[],{[''] :(_,e,r)=>{e.cache=r.c}},
[['']]]).cache).find(m=>m.exports&&m.exports.default&&m.exports.default.getCurrentUser!==void
0).exports.default.getCurrentUser().flags=-33

if you put this in the browser console, your profile will have all the badges

chilly siloBOT
chilly siloBOT
#

Ah, I believe there is a misunderstanding of what the field represents.

  • The nullity of the field determines whether or not your hand is raised.
  • The value of the field determines how you are ordered in the list of raised hands.

Regarding timestamps in the past; the current behaviour by API is to just set it to the current time. This is done to accommodate clients with misaligned clocks, not to mention latency.

chilly siloBOT
chilly siloBOT
#

Description
Hey folks - I'm running a bot that seems to always receive a guild delete event with a specific guild id every time my bot boots up.

The guild id in question is 800383417526779944 if you want to look it up on your end. I'm suspecting perhaps the guild was banned (my bot received some ...disgusting requests from them), so I'm guessing that's why we keep getting an unavailable event, but I don't believe we need to receive notice every time we boot.

**Steps to Reproduce...

chilly siloBOT
chilly siloBOT
#

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

Guild Create

This event can be sent in three different scenarios:

When a user is initially connecting, to lazily load and backfill information for all unavailable guilds sent in the Ready event. Guilds that are unavailable due to an outage will send a Guild Delete event.

Guild Delete

Sent when a guild becomes or was already unavailable due to an outage, or when the user leaves or is remove...

chilly siloBOT
#

This is expected behaviour for the guild. As you suggested it's in a partial state right now, and to simplify some of the logic: cannot remove the guild from the list of guilds, so we instead send a DELETE event to make sure the client is in a proper state. The state is temporary (but expected) and will eventually self resolve with a few weeks.

Thanks for the clarification, glad to hear it's temporary and will self-resolve.

chilly siloBOT
#

adding an explicit permission/server intent to disallow their access to the endpoint (as with the likes of 'View Channels' for instance) which would be disabled by default for all existing bots

Yes, I defended that, with an additional guild-granular ability to hide boosts on the user's side. But that per-user setting is crucial, otherwise millions of users will leave Discord, observing that their payment history is open to uncontrolled data mining by bots. There is a reason many people...

chilly siloBOT
#

@erkinalp I'd like to make you aware that your continued not-relevant comments here are disrupting this thread. While it may seem that we are against your ideas and your principles for privacy, we aren't. The reason why you continue to receive a negative response is that you're posting them in the wrong place.

We understand that you have issues with the core design of Discord Nitro and Boosting, which makes information like whether or not a user has Nitro and how long they've had it availa...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

While skimming through docs I didn't find a way to get current list of voice states for guild/channel on demand.
Only viable solution that probably exists is to track voice states of users in every guild your bot joined.
That also means you can't just use VOICE_STATE_UPDATE event but handling GUILD_CREATE events also required.

Thus, I suggest adding ability to get voice states without tracking them from beginning.

However, there are definitely some compl...

chilly siloBOT
#

To make migration easier, there is a guide in docs/topics/Threads.md that aggregates all the information about threads in one place for you!

We wanted to give app developers at least 2 months heads up so you all can update your bots and be ready to go whenever we do ship threads. Please keep in mind that bots on older API versions will receive NO gateway events for threads, or messages in threads, so updating is important!

I'll be around for questions today, and I plan to keep this o...