#github-notifications

1 messages ยท Page 30 of 1

chilly siloBOT
#

So I recently discovered that a patch request with a user token could be used to change a bots about me, I have not tried this yet but merely observed it. I was just wondering if there is an api route for changing the description that used a bot token instead. Also if you could get a users about me with the users endpoint.

chilly siloBOT
#

Hello There! I'm Developing a Bot With Select Menu and I Found out That it is Impossible to Disable a Menu Option, That Would Be Useful to Indicate that The Max Level of Something is reached and Other Stuff, The Same Way as Disabling a Button("disabled": True), It Would Be Confusing That Nothing Happens On a Click or The Option Randomly Disappears for an User.

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

When a lot of bots delete messages they need to inform users why their messages was deleted (so they know their message contained a blocked word, or why it broke the rules). I think it be useful add an object in the delete message endpoint called show_user_auditlog_reason, when the property is true an ephemeral message will be sent in the channel the message was deleted from containing the X-Audit-Log-Reason for the deletion, and the text of the deleted message. This would also force the ...

chilly siloBOT
#

Hey all, an update on plans for the API. We've reviewed a lot of your survey responses and messages in DDevs #message-intent. We appreciate your candid feedback and want to offer a peek into more interactions improvements the team is working on.

Developer improvements

  • [ ] New option types
    • [x] Floating-point number
    • [ ] Attachment
    • [ ] Autocomplete - choices populated dynamically by the applicaiton
  • [ ] Multi-line command text input
  • [ ] Age-gated commands - a way to...
#

Hey all, an update on plans for the API. We've reviewed a lot of your survey responses and messages in DDevs #message-intent. We appreciate your candid feedback and want to offer a peek into more interactions improvements the team is working on.

Developer improvements

  • [ ] New option types
    • [x] Floating-point number
    • [ ] Attachment
    • [ ] Autocomplete - choices populated dynamically by the applicaiton
  • [ ] Multi-line command text input
  • [ ] Age-gated commands - a way to...
chilly siloBOT
#

Description

If bot can have localized text, it'll be good.

Register texts

From developers portal, like this:
image

How to show

Like timestamp format:

Example

(When texts are registered like image above)
-> `MyBot help` -> 1d 2h 3m

Why is this needed

Many bot has language settings, but some users cannot find another language (ex: Defau...

chilly siloBOT
#

How about an option to allow a user to submit multiple inputs (such as choices for a poll command). This would be better than having a whole bunch of options to add them or parsing a string.

Also a text input interaction would be handy. This would allow you to have users respond to something on the request of the bot without re-running a command or using the intent.

chilly siloBOT
#

Imo the one thing that needs to be looked into is being able to delete ephemeral messages.

Since interactions last only 15 minutes, couldn't Discord store ephemeral messages for 15 minutes then delete it from the system? that would be better than the current system. (unless there is some infrastructure issues with doing that)

#

Select Menus can have emojis to represent each item which helps, but they're static. You could upload an emoji to a guild the moment you need it, but rate limiting happens and it's not the most efficient way of handing things. Allowing the use of images would prevent the need to do that and allow bots to have any image they want.

Example Usage

(This is the thing that brought up this request haha)

If I were searching a iOS tweaks catalog, I could use the same wrench emoji over an...

#

It would be really nice for our use-case to be able to receive a slash command and not need to reply to it. Our bot currently deletes and re-sends user messages with a webhook, and this creates a lot of message deletes.

Being able to receive messages through an interaction and re-send them without having to delete the original message would be a big improvement over what we currently do; however, right now we would have to send an ephemeral message to the user, or have the client show them...

chilly siloBOT
#

Allowing developers to specify a regex and maybe even a character length for the string option which can be used for client side and api side validation would be quite useful.

As for user experience, a 'replay' button for slash commands they send would be quite nice, essentially just resending the command with the exact same arguments.

chilly siloBOT
chilly siloBOT
#

I would assume this is based off https://github.com/discord/discord-api-docs/discussions/3540 as well?

I'm really pleased to see that a lot of concerns from this discussion have been identified or at least match what appears on the list. There are a few bits which are missing however these are of no suprise, such as pattern matched content, the scope issues and the 100 server limit.

Hopefully we'll be able to get these into the conversation at the live event this evening, especially the...

chilly siloBOT
#

Top 3 seem good however I think the bottom one might be better as just one argument whch contains a list of flags as choices, and that argument can be specified multiple times, such as /ban user:@user modifier:purge modifier:nolog modifier:sendreason. This fixes two problems with one: Additional modifier flags, and multiuse arguments.

Basing that argname:argvalue layout on how Discord formats commands on clients, I only know this because people have managed to execute commands and it f...

#

One thing that definitely needs to be improved is slash commands in dms, cause of how channel selection is for example (ie listing literally every channel in every guild the user has access to in no specific order), they just don't work well and fail most of the time. Would be a good idea for developers to be able to specify if commands are 'dm only' or 'guild only'.

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
#

Please a way to gate command visibility to certain users, roles, channels etc

Example:
Currently, any user can see mod commands when they hit slash. Not good UX wise :).

Example Two:
Only show restart and eval commands to me

Example Three:
Some commands only visible in #bot-spam

Four:
Only people with the role id 12345689 (role called regular) can use x command

chilly siloBOT
chilly siloBOT
#

the server doesn't use default_auto_archive_duration, that's something clients send us, so I'm pretty sure the field is still required, and if it's optional then it'd just default to 24hrs

I tested this before opening a PR and omitting the auto_archive_duration parameter does default to 24h, regardless of the channel's default_auto_archive_duration. I believe this is a bug with the API, however, the field can still be omitted and form a valid request.

chilly siloBOT
#

When creating stickers using my bot I noticed that it's no longer possible to create Lottie stickers in servers that aren't verified or partnered. I've also cross checked this in my Discord client via the server settings of a verified server, where I'm staff in, and asked a friend who is staff in a partnered server, with both servers having access to Lottie stickers, whilst normal servers not having access to them.
This PR adds a small note to document this behavior since this could cause co...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

But a in-bot made slowmide system will require the bot to listen to the interaction/message and answer it to tell the user that there is a slowmode on whatever command he is using.

If there is a slowmode on slash commands, like channels message slowmode it won't require the bot to send any messages, the user just won't be able to send the interaction command.

#

bot developers can always configure their own ratelimiting system

This is true, but it's rather limited. You're forced to either reply to every single command spammed command, or let the interaction fail. There's no clean way to ignore it. Plus, this would allow client-side enforcement of cooldowns which would be very helpful, especially for some users who don't realize they are on cooldown.

#

Iโ€™ve already moved to slash commands and thereโ€™s a major issue Iโ€™ve been facing recently with optional parameters. I have a command with 2 optional parameters and nothing else and, since theyโ€™re both optional, people paste what they want after the command without associating it with any of the parameters which doesnโ€™t get sent to my bot. Could you replicate the behavior of mandatory options where pressing space brings up the first argument in the list?

chilly siloBOT
chilly siloBOT
#

Related to this: a question that was asked in the live Q&A was how do two bots with similar commands resolve which slash command is being run? The answer in the moment was "you choose the bot you're using while you type the command", but there needs to be a way to copy paste a command where it also copies which bot you want to use, whether that's for your own use or for "giving" command usage to someone else for them to paste and run it.

chilly siloBOT
#

Can you give a guarantee here that those changes will be available BEFORE the restrictions happen?
I don't want to have hope only to get disappointed... again.

Like if you manage to add the important stuff (age-gated commands, multi-line support and managing slash commands more properly) before 6 months are left will I be willing to say you did a good job here... Otherwise... no.

chilly siloBOT
chilly siloBOT
#

I would suggest the use-case is logging in a means that isn't "terrible to look at" (my staff team's words, not mine) when reviewing a chain of logs. Not all of us are comfortable or find ease reviewing a thousand embeds at a time. It's wasted "real-estate" in the sense of screen space. As a compact-mode user, I (and most of the moderation teams I work with) find it much easier to scan through a few hundred logs at a time in our large guild for content that needs action, rather than scrolling...

chilly siloBOT
#

will it ever be possible for one application to see what commands a user runs for a different application? right now, if i run commands on one bot in my server, I can have my own bot see that I ran a command and perform some actions related to that. I don't need the bot to support whatever I'm doing with it; I also don't need to hack my client to locally tell my bot what commands I'm running. Is such a workflow at all being considered in respect to slash commands?

chilly siloBOT
chilly siloBOT
#

This.

Feels weird that there are already plans and even timelines for when the message intent gets priviledged, but the alternative - whoops, not even alternative at this point - only other option seems to be so unfinished.

Additionally, it also seems that not every feature they planned "exists" yet. TMK context menus are not even public so far, and forms probably don't even exist yet.
This means that the workflow of rewriting your bot to interactions early is completely broken, as y...

chilly siloBOT
chilly siloBOT
#

Currently, context menu items are defined as "context menu commands" and share an interaction type with slash commands (application command type). My proposal is to make context menus their own interaction type.

As of now, context menu "commands" are essentially just a single-argument slash commands which is a rather unfitting and underwhelming feature. All context menus could be replaced by slash commands that have a single argument such as "message" or "user", so really these context men...

chilly siloBOT
#

We have no current plans to split out context menus to a separate model or endpoint. The data being configured largely overlaps and shares the same infrastructure and purpose, making it prime for the application command primitive model.

As of now, context menu "commands" are essentially just a single-argument slash commands which is a rather unfitting and underwhelming feature. All context menus could be replaced by slash commands that have a single argument such as "message" or "user", ...

#

We have no current plans to split out context menus to a separate model or endpoint. The data being configured largely overlaps and shares the same infrastructure and purpose, making it prime for the application command primitive model.

As of now, context menu "commands" are essentially just a single-argument slash commands which is a rather unfitting and underwhelming feature. All context menus could be replaced by slash commands that have a single argument such as "message" or "user", ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I'm not sure about what you mean by the second question, as for the first, iirc, Mason had mentioned in the Developer Q&A that top level commands only will show up on opening the command explorer and as you type the top level command, the sub commands will appear in the autocomplete menu (_the new one that is pinned in #stage-discussion channel).

#

How about an option to allow a user to submit multiple inputs (such as choices for a poll command). This would be better than having a whole bunch of options to add them or parsing a string.

Also a text input interaction would be handy. This would allow you to have users respond to something on the request of the bot without re-running a command or using the intent.

For the use case you mentioned, Discord will be releasing a new interaction type called Forms (somewhere in Future...

#

Imagine a discord server with thousand of bots using slash commands, if you type /, it could be hard to find the bot that you want to execute a command to, specially when you don't know the bot commands. If that happens, you could just use @Bot at the beginning of your message, then it would show all commands that belongs to that Bot, and using something like @Bot help, would execute the help (or any other) command from that bot.

This doesn't remove the possibility to use /, it's j...

#

Related to this: a question that was asked in the live Q&A was how do two bots with similar commands resolve which slash command is being run? The answer in the moment was "you choose the bot you're using while you type the command", but there needs to be a way to copy paste a command where it also copies which bot you want to use, whether that's for your own use or for "giving" command usage to someone else for them to paste and run it.

If I remember correctly, copying the command...

chilly siloBOT
#

Regular messages can't be moderated either since they can be deleted right after being sent (for example, a bot that DMs you something and then deletes it, or even in a regular channel). There's nothing necessarily preventing them from temporarily storing ephemeral messages for a limited time frame (such as 15 minutes) so attachments and reporting could work with them. They just chose not to. Should be noted that other services, e.g. Slack d...

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

I added some notes about the differences between the referenced message object structure when compared to the regular message object structure.

  • Referenced messages don't have a guild_id or member field, even in guilds
  • Referenced messages can't be nested
  • Thread starter messages have an empty string as the content and an empty array for the mentions, but the data can be found in the referenced_message object.
chilly siloBOT
chilly siloBOT
#

Description

The post method for sending webhook messages works fine using thread_id=.

However, neither the edit or delete functions. Adding a query string to both seems to be ignored.

Steps to Reproduce
Use query string on edit and delete webhook message endpoints, containing a valid thread channel id.
Expected Behavior

Webhook message is edited or deleted.

Current Behavior

Create message works fine. Otherwise, nothing happens. Message is not modified or deleted.

*...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

giving bots the ability to send ephemeral messages in like every senario could be a big fuck up since many people can abuse them. The ways to abuse the power to send messages which aren't stored in discord database shouldn't be discussed because it would give ideas to people, and someone asked this thing to mason too and he directly [rejected](#788586647142793246 message) it
his words to be exact

We very explicitly do not wa...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I'm assuming trying to add members when you don't have permission to due to this would result in a 401/403 error, which would be considered an "invalid request" (limit of 10k/10 minutes I believe). If this is true, it would mean that bots/libraries would need to cache this field and check permissions based on it. How can developers test that their applications are properly handling this since the threads developer beta has ended?

chilly siloBOT
#

pรก 6. 8. 2021 v 19:23 odesรญlatel Henry Hiles @.***>
napsal:

Perhaps the upcoming context menus for bots could give a nice solution to
this?

โ€”
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/discussions/3581#discussioncomment-1140559,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATLZK3U6OWWJ3UFNLOEW7O3T3QSDZANCNFSM5BQB3H5A
.

chilly siloBOT
chilly siloBOT
#

Description

If you edit a message's buttons and replace one button with another, the new button will still show loading

Steps to Reproduce

  1. On a button press, edit the message and put a different button in the same spot
  2. Either don't respond to the interaction or wait a few seconds so you can see the issue.

Expected Behavior

The loading state is removed since the button is different

Current Behavior

The loading state persists until the interaction is ...

chilly siloBOT
#

As you may all know, a ping badge is the little red circle that appears on a discord server, in a dm, or on the discord application on your devices' homescreen when you or your role gets pinged in a server.

As of today, after reading a ping from a server, the ping badge does not go away. I've tried activating the server's "mark as read", but that still does nothing. The only way this can be fixed is by refreshing the application CTRL+R on my windows 10 device.

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

can reproduce, also

  • looks like the API doesn't send deprecated/auto-only regions anymore, only the 13 in-client regions
  • that includes VIP regions, so the Get Guild Voice Regions route seems to be equivalent to the List Voice Regions route now
  • the API now lets you set a guild's voice region to any region (except Staff Only, so 29 options), including VIP regions and deprecated/auto-only regions
  • setting a channel's voice region is still limited to the 13 in-client regions plus so...
chilly siloBOT
#

Note

I'll use the term "application" throughout this post to refer to both setups with and without bots.

The idea

There should be an API-Endpoint that allows applications to define slash commands as guild-only similar to the current system but without the need of defining a guild id.

Maybe the URL could be like this:
https://discord.com/api/v8/applications//guilds/commands

Reason

Developers may only want to provide slash commands on a guild-level, which requires them t...

#

Not a fan of this idea.
Rich presence is pretty much pointless with the "About Me" addition. Only real benefits, if at all, would be the buttons and maybe the time of how long the presence has been active.

For the buttons would it perhaps be an idea to have them displayed when a Policy and/or TOS URL where defined in the application dashboard.
Would give devs an easier way to share the important legal stuff.

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

After a short discussion (#3562), it seems that the tags field can be any
string of text and is used in some way to power the autocomplete/suggestion popup.
The client using/displaying emoji names for the tag is just a good way of generating
a relevant keyword from a user, using the emojis as a pictorial aide, and is thus
not part of the API's concerns.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

With text-based commands, if I want to quickly clear my message box so I can send a message, I can send a badly formed or incorrect command, and the bot will tell me the syntax is incorrect.

With slash commands, errors are shown in the command description box, and do not allow pressing enter to clear the message box.

Steps to Reproduce

Type a slash command incorrectly; for example, don't specify a required option.

Expected Behavior

The slash command i...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
It would be great to be able to silently create a thread using bots. By that I mean not having a system message (THREAD_CREATED, type 18) sent into the parent channel upon creation.

Why This is Needed
My usecase is a read-only support channel that serves as a FAQ channel using buttons. If the user still needs help after reading it, they can click an addtional button to create a thread and explain their problem The issue is that every time someone clicks the button, a ...

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

This is a pretty hefty docs overhaul to support new types of application commands: USER and MESSAGE.

TLDR: New context menu commands on users and messages are types of application commands. I've renamed the "Slash Commands" section to "Application Commands" and refactored the documentation section into:

  • Data models
  • General application command info
  • Slash command info
  • User command info
  • Message command info
  • Endpoints

TODO:

  • [ ] Check for broken links
  • [ ] Ch...
chilly siloBOT
chilly siloBOT
#

Description
An endpoint to fetch the members in a voice channel, or a way to get the member count of a voice channel without needing all members in a guild cached.

Why This is Needed
My bot has a feature which requires the member count of a voice channel. I also do not want to cache members at all. Because of this, I'm unable to fetch the member count of a voice channel without fetching the guild's entire member list every time, which is inefficient, and a bad idea in general.

...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

What expected here is since slashcommand supposed to be an interaction back to the user, the text expected or at least should be sent back to the user on the text channel ephemeral or not, not just stored to someone backend. I surely can cut off the length in my code. But what is the point of long input that are 90% expected to be send to any text channel which past the length of text limit and expecting the developer itself to make a note on it? And it doesn't even documented if that reall...

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

We have no current plans to expose slash commands outside of the WYSIWYG editor since much of the slash commands functionality relies on its tech.

I had no idea this was the case. As a programmer, I intensely hate WYSIWYG editors and I always turn that setting off. It's not mentioned anywhere that the Markdown option is considered "legacy" or a good candidate for removal. Once you remove the "legacy textbox", will I have the option to continue writing my messages in Markdown without any ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

It'll get refreshed next time a client queries for commands, but there's a rate limit on it, so it's possible that a user could have a command rejected a couple times until a rate limit is lifted.

That's all behind the scenes semantics though. The TLDR is that if you update a command, you can be sure that you will receive interactions payloads that reflect the updated command.

#

Having the ability to choose a style (similar to the Delete Message and Invite items in the images below) and icon displayed next to your context menu command (either an emoji or from a limited icon set, discord has many icons that could be useful) would allow application developers to improve user experience and make bots/guilds with many context menu commands easier to navigate.
image ...

chilly siloBOT
chilly siloBOT
#

Description

The interaction resolved data structure has 2 asterisks next to the messages property, but the explanation for it is for the channels property.

Expected Behavior

There should either be no asterisks or 3 asterisks with an explanation for it.

Current Behavior

There's 2 asterisks which leads to the explanation for the channels proper...

#

Currently, only CHAT_INPUT (aka slash) commands can accept options.
That means, the only input a message command that appears in the context menu can get is the message it was used on, the guild it was used in and the user that used the command.

Now in my opinion, that is a lot of missed potential. I can't find many ideas of how I could use those types. One idea I can see is eg. an /avatar command. You could easily implement that as a user command, and it would be good for UX.

...

#

We can't do regexes because a pathologically bad regex can freeze the regex engine in the browser.

What if the regex verification was done server-side?

What's the point? You can just do it in the bot then. I'm pretty sure the entire point of the verification is to not let users send the command if it doesn't match the regex, and having to verify it on the server would cause users to feel like there's lag probably.

chilly siloBOT
#

Want to add on to this - as much as I like the idea of popout boxes that appear, I think there's a lot of potential in a simple hover options feature for context menu buttons. For one, it would be click-only for the user and allows the usage of simple options without adding complexity to the interaction on the application or client side.

I believe the hover options feature is most implementable at this point, but the popout boxes described above would be nice as well.

chilly siloBOT
#

As it stands right now, all context menu commands simply appear beneath Apps. I think it would be much better if they were placed under Apps > Application Name > Commands. This would declutter the Apps panel and potentially allow the total amount of context menu commands to be increased in the future without the drawback of the apps panel being cluttered.

If this is already planned, great. If not, it'd be a great change in my opinion.

chilly siloBOT
#

Somebody posted this in Discord server which I believe is from the Figma concept

image

That would be perfect. It's unlikely that you have enough bots (that have context menu support) to make the top level menu too big, so it wouldn't make anything too big.

Also like OP said, this would allow bots to have much more than the tiny number of five options. We can have 125 thousand sla...

#

Commenting on this thread to hopefully remind the others who have commented on it that this PR is still un-merged. I would also like to vouch for the addition of Orca into the community resources file. Maintainers are super helpful and responsive to any problems that arise, and the API is very nice to work with. I am sure others in their Discord server could vouch for it as well.

chilly siloBOT
chilly siloBOT
#

Bump. Been a few years lads. Hope everybodyโ€™s been making it through this stuff alright. Working from home is an absolute pain.

Anyways, this was supposed to ship with audit logs but it never was. Then Jake noted it would be worked on later in 2019. Then 2020 happened, so fair enough on a delay. But itโ€™s 2021 now :) any update?

#

Bump. Been a few years lads. Hope everybodyโ€™s been making it through this stuff alright. Working from home is an absolute pain.

Anyways, this was supposed to ship with audit logs but it never was. Then Jake noted it would be worked on later in 2019. Then 2020 happened, so fair enough on a delay. But itโ€™s 2021 now :) any update?

chilly siloBOT
chilly siloBOT
#

Description

There is two bugs currently that I found with ephemeral messages.

  • If you only change the state of a component on an ephemeral message, the gateway will send you a MESSAGE_UPDATE that clears out all of the embeds.
  • You cannot clear out the components on an ephemeral message without editing either the content or embed too. (Errors out with a 400 - Cannot send an empty message while non-ephemeral messages do not)

Steps to Reproduce

  • First bug, create a...
chilly siloBOT
#

Description
When bulk overwriting global/guild commands with a slash and a user command with the same name, the API is responding with an error: Application command types are immutable

Steps to Reproduce
Make a request to /applications/{application.id}/commands, with a slash and a user command with the same name.

Expected Behavior
The API should overwrite the commands without responding with an error, according to the docs: `Your app can have a global CHAT_INPUT and U...

chilly siloBOT
chilly siloBOT
#

I agree with @HanabishiRecca here - having separation between the UI string and the system identifier is highly desirable, especially considering the various limitations imposed on them.

Going beyond just the menu entries themselves, a split like this would be nigh required if Discord implements a way to nest context menu options, since they'd likely be sharing groups with other command types.

chilly siloBOT
#
chilly siloBOT
chilly siloBOT
#

Description

As marked in the JSON what structure in the documentation is this exactly?
The closest I could find was https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure
But it is missing the value key and the description isn't marked as optional therefore I am not sure if the documentation is just wrong or if this is something else.
Invoked command: /test True

{
   "version":1,
 ...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

If you cause a bad request error when posting to create interaction response the interaction popup never fails, this is reproducible for me when sending a type 4 response with an empty message so that I get HTTP Error 50006 : Cannot send an empty message.

https://user-images.githubusercontent.com/19510831/129101654-a4a20468-d171-4ab6-8118-373eddfd8ec2.mp4

This application command never shows the interaction failed message. Reloading breaks the client for some unclear amount of ti...

#

Now that I've played with slash commands, there's another caveat to this issue - casing is normalized for context command names, which is extremely undesirable if it's meant to be a UI string. What I mean by this is that if I have a name that is, say "Do thing", it becomes normalized to "do thing", which is just plainly inconsistent with Discord's own casing of other context menu items.

chilly siloBOT
chilly siloBOT
#

I'd like to introduce a concept I've dubbed the "Clipboard" Button.

I picture it working similarly to the Current Link button in which you would provide a String of text that would be copied to the users clipboard whenever they clicked it.

I see this being especially useful for quickly copying useful information, especially from embeds on mobile!

As I picture, it would be implemented as a new button type into the existing action row, (again very similar to how link buttons currently...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
The API and the client allow slashs commands with more than 50 000 chars in a signle string value

Steps to Reproduce

  • Select any slash command where there is a string option
  • Press "F" for a few seconds, or paste a lot of text (don't work with copy/paste if you paste something bigger than 2k or 4k chars)
  • send the slash command

Expected Behavior
The API or the client shouldn't accept sending the slash to the API/bot.

Current Behavior
The API i...

chilly siloBOT
#

My bot has a translations system in which users can select a language for the bot's messages. The help command includes descriptions of the command, in the selected language.

It would be nice if there was an implementation of this. Specifically, if we could easily define possible choices for command descriptions (maybe based on a key) and update the selected key per-guild, so that all commands are in the same language.

#

Text input interaction would be really good to have, currently one of the main things about why I don't want to migrate to slash commands just yet (although my bot has a branch with slash command support, I didn't include it in public version).

One of commandos features is that when user provides invalid input (like channels that user can't manage or generally any input that cannot be filtered by slash command arguments right now), it asks for input. A way is to resort to normal message se...

#

From the Q&A transcript:

Q: Will there be a way to localize slash commands? Having slash command names, descriptions, and arguments in only one language is hard to users who don't speak English.

Absolutely. As I said at the top of this, I know that a lot of our development community is not English as their first language, and we know that the majority of the people who use Discord is not English as their first language, either. There's a lot of places in the world other than just Engl...

chilly siloBOT
#

Interactions are strongly typed, and cause much less burden on Discord than text messages.

This is absolutely a nullified statement, because we receive message events anyway just without content, and Discord will have to do processing anyway to identify if the mention is present in the message. I wouldn't hesitate to say a content matching process is present on messages anyway, for emojis, timestamps, mentions, channel mentions etc are pulled out and processed at some stage.

chilly siloBOT
#

If the user has highlighted a section of text and used a context menu command on it, having that information exposed to the bot could be useful. My current use case is for a database-search bot, and it would be very natural (and obviate the need for message intents) if a user could simply highlight a search term in somebody's post, and ask the bot to run a query on that.

This seems like a natural functionality to give to context menus, and it mirrors how context menus traditionally work acro...

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

From the Q&A transcript:

Q: Will there be a way to localize slash commands? Having slash command names, descriptions, and arguments in only one language is hard to users who don't speak English.

Absolutely. As I said at the top of this, I know that a lot of our development community is not English as their first language, and we know that the majority of the people who use Discord is not English as their first language, either. There's a lot of places in the world other than just Engl...

chilly siloBOT
chilly siloBOT
#

You can send a regex as a type and have a type alias so people know what they need to input example: you send a command option with type as url regex and type alias as URL so people using your command must specify a url when inputting in that option and if they specify something that doesn't match the regex they will get This option must be a valid {typeAlias}

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Certainly some bots act on message content, like auto-moderators, is that what you mean? Because I would hope that such bots were approved for the message content intent.

In their blog post did they have a section about mod bots and it more or less states that bots that log events like message edits or deletion for moderation purposes are pretty much 100% approved for the intent. The bot just needs a logical reason for the intent and logging edits/deletion of message content is one.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
context-menus doesn't emit interactionCreate when you interact with context menu which is on user in a voice channel but if I
do the same with member lists or directly click on user in text channel it works.

Steps to Reproduce

  1. user must join voice channel
  2. right click on user is in voice channel
  3. go to APPS section and select a interaction

Expected Behavior
Should emit interactionCreate event

Current Behavior
Does not emit Interact...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hi there,

So, indeed, as you said @jhgg, it was a permissions issue, but having battled with this issue basically since I opened this GitHub issue I conclude this is probably still a valid issue to remain open. It took ages for me to work out View Channel is a prerequisite in addition to Connect, which was not clear when dealing with cate

It would be good to get some additional documentation on the Voice docs page about the prerequisite checks required, before attempting to establish a ...

#

Certainly some bots act on message content, like auto-moderators, is that what you mean? Because I would hope that such bots were approved for the message content intent.

You did not quote me, but I assume you were referring to me

I was talking about any applicable reason a bot would want to pick up on text cues from people just in normal conversation, which would not make the bot applicable for the intent but would be good to have some pattern matching logic to be able to con...

chilly siloBOT
#

I haven't had a chance to do a full code review, but at a glance, it looks sufficient. One important distinction between this library and my own is that this runs on a more vanilla implementation of Lua + LuaRocks while mine relies on the more esoteric Luvit runtime. (Think browser JS vs node JS). There are advantages and disadvantages here, but I have definitely seen people look for a vanilla Lua library in the past. I think a disadvantage here is that it doesn't run natively on Windows, but...

chilly siloBOT
#

Description

PUT/applications/{application.id}/commands and its guild counterpart are not idempotent.
This can cause errors when bulk overwriting global commands which haven't changed (I have not personally encountered this but it has been reported by other people in the discord developers server so I thought I'd mention it).

Steps to Reproduce

Perform the request and look at the version field before and after.

Expected Behavior

That the PUT request is idempot...

chilly siloBOT
chilly siloBOT
#

While all these new interaction features are nice, and the majority of users do have a client that is new enough due to them being enabled in a/b experiments, thereโ€™s still a lot of people who refuse to update their mobile clients. They end up with a client months old that donโ€™t have support for these new interactions.

Some people simply donโ€™t know how to update, or others are intentionally not updating because their client mods (although breaking the discord tos) havenโ€™t updated to the la...

#

I use an old version of the Discord Android mobile app - without client mods - because new versions of the app have many regressions that Discord has failed to fix for over a year. I understand that new features are missing, and it is frustrating that I can't use them; I also sometimes get hit by antispam because the old version of the app does things differently than the new one. However, it is my choice as an user to not update if the new version introduces bugs that I don't want to have.

#

Then maybe somehow send a message to every old client letting users know that buttons and slash commands donโ€™t work properly on their client if a button is shown? Iโ€™ve had a lot users complain that my bot โ€œisnโ€™t workingโ€ because they couldnโ€™t see the interaction buttons from my regular prefixed commands. This resorts me to use reactions and avoid any of the new features that are much cleaner and easier to interact with (buttons have ratelimits per interaction, and can allow you to send epheme...

#

That'd be a good idea. I'm not sure how feasible it is, but showing a "this message contains elements that your client is too old to display" would be really nice.

Iโ€™ve had a lot users complain that my bot โ€œisnโ€™t workingโ€ because they couldnโ€™t see the interaction buttons from my regular prefixed commands. This resorts me to use reactions

As a bot dev, it's not up to me to fix other people's issues caused by them using an old version of the client (or client mods, or whatever it may be...

chilly siloBOT
chilly siloBOT
#

It would be nice if bots had the possibility (i.e. the permissions) to retrieve the information about their own integration from the integrations of a guild (https://discord.com/api/v9/guilds/{guild.id}/integrations/{application_id}).
without having the MANAGE_GUILD permission.

Example:
I want my music bot to send a setup message to the person who added it (if they allow direct messages from server members) when it is added to a server. But to get this I need the user who added the...

chilly siloBOT
#

Description

The API docs say at https://discord.com/developers/docs/topics/gateway#etfjson that Snowflake IDs are transmitted as 64-bit integers over ETF.

If this is intentional, should the docs be updated to say as such?

Steps to Reproduce
Receive an INTERACTION_CREATE event from a context menu command on a message, and the keys in data.resolved.messages are string snowflakes rather than integers.

Expected Behavior

These keys should be 64-bit integers as cur...

chilly siloBOT
#

I'll highlight two of the reasons why we still aren't using slash commands for our bots.

  • Permissions
    I've seen permissions mentioned and I am unsure what you guys plan to do with them, but the fact that you can only assign permissions to a top-level command, and not to the subcommands is a major deal-breaker for us. A lot of our commands have a user aspect and a moderator aspect, such as a command to list server events. Everyone should be able to do that, but ideally, we'd only like sta...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I believe a more elegant solution to the above suggestion, would instead be an optional content object that contains the field's data with no content being essentially a "linebreak"

[
  // Row 1
  {
    content: {
      name: "name",
      value: "value"
    },
    inline: true
  },
  {
    content: {
      name: "name2",
      value: "value2"
    },
    inline: true
  },
  // line break
  {
    content: null,
    inline: false
  },
  // row 2
  {
    content: {...
chilly siloBOT
#

I'd like to introduce a concept I've dubbed the "Clipboard" Button.

I picture it working similarly to the Current Link button in which you would provide a String of text that would be copied to the users clipboard whenever they clicked it.

I see this being especially useful for quickly copying useful information, especially from embeds on mobile!

As I picture, it would be implemented as a new button type into the existing action row, (again very similar to how link buttons currently...

chilly siloBOT
#

See the problem with that is the changes of the current way to how it is handled.
having true, true, false, true would end up like:

field field
field
field

and your changes will show up as

field field
field field

Now if you were to override that, it would result in the same problem we currently have because the flexibility of getting an embed with the fields looking like:

field field
field
field field

is practically impossible.

The API can just...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

When creating a thread with or without a starting message and providing no auto_archive_duration, this setting will default to 1440 no matter what the channel's default_auto_archive_duration is set to.

Steps to Reproduce

  1. Change a channel's default_auto_archive_duration to something other than 24 hours (1440)
  2. Create a thread on that channel through either the /channels/{channel.id}/messages/{message.id}/threads or the `/channels/{channel.id}/thre...
chilly siloBOT
chilly siloBOT
#

This is really important. I understand that these messages are not stored, but please give us

  • a timeout option that we can send with ephemeral messages that makes the receiving client auto-dismiss it after X seconds
  • the ability to delete them manually using the interaction endpoint. This could be realized by sending an event to the receiving client to inform them about this.

I have a use case where users click a button, and get an ephemeral messages like "Please check your DMs". Afte...

chilly siloBOT
#

Dropping my thoughts here as well:

This is really important. I understand that these messages are not stored, but please give us

  • a timeout option that we can send with ephemeral messages that makes the receiving client auto-dismiss it after X seconds
  • the ability to delete them manually using the interaction endpoint. This could be realized by sending an event to the receiving client to inform them about this.

I have a use case where users click a button, and get an ephemeral messa...

chilly siloBOT
#

Description
Application managed Group DMs cannot contain messages with attachments.

Steps to Reproduce
1. Create a group DM with the gdm.join oauth2 scope.
2. Attempt to send an attachment in that new group DM in the client.
3. Observe the network tab to see the http response.

Expected Behavior
The message is sent and the attachment appears.

Current Behavior
The API returns a 403 with the following response: `{"message": "Missing Permissions", "code": 50...

chilly siloBOT
chilly siloBOT
#

Many bot developers want to know why my bot was kicked.
So I suggest a survay for bots like deleting server.
If dev can know reason of kicking, it will make community better.

Survay is like these selections:

  • Not so much functions
  • Commands are messy
  • A lot of paywalls
  • My language wasn't supported
  • Bad response
#

Description

For https://discord.com/developers/docs/resources/guild#create-guild , one of the notes says:

This field `region` is deprecated and will be removed in v9 and is replaced by rtc_region.

... the docs are for v9 but still have the field.

Steps to Reproduce

Go to the documentation site and read.

Expected Behavior

Documentation does not document removed fields.

Current Behavior

Documentation does document removed fields.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Please add one single line of text to the OAuth2 URL Generator portion
of the OAuth2 page.

To invite a bot: click "Bot" under scopes, then choose what permissions
your bot needs, and copy the generated url.

Users should not have to google & check youtube to find
out how to do such a simple thing.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

it would be nice to allow users to specify a Date or time delta. Discord already has a date picker (though possibly not a date & time picker) would be fantastic if we could use that.

Why This is Needed

Lots of commands schedule things it'd be very useful for those. For example I have a command to create events for a specific date. Right now users have to type out the time zone, which is super unfriendly.

Alternatives Considered

Right now we can allow...

chilly siloBOT
chilly siloBOT
#
| [Application Command Create](#DOCS_TOPICS_GATEWAY/application-command-create)       | new [Application Command](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/) was created                                                  |
| [Application Command Update](#DOCS_TOPICS_GATEWAY/application-command-update)       | [Application Command](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/) was updated                                                      |
| [Application Command Delete](#DOCS_TOPIC...
chilly siloBOT
#

I agree with @HanabishiRecca here - having separation between the UI string and the system identifier is highly desirable, especially considering the various limitations imposed on them.

Going beyond just the menu entries themselves, a split like this would be nigh required if Discord implements a way to nest context menu options, since they'd likely be sharing groups with other command types.

#

Now that I've played with context commands, there's another caveat to this issue - casing is normalized for context command names, which is extremely undesirable if it's meant to be a UI string. What I mean by this is that if I have a name that is, say "Do thing", it becomes normalized to "do thing", which is just plainly inconsistent with Discord's own casing of other context menu items.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hi, can you add some more transparency on boosts added/removed?
Maybe an event for boost added/removed? OR some options to see how many boosts any member has and sine when they're boosting a particular server?
Right now there is literally no way to see if someone removes 1 out of 2 or more boosts and bots have to see number of boosts from message content (another deal breaker) maybe that's why there are very few bots that can do stuff related to boosts (like BoosterBot).

chilly siloBOT
chilly siloBOT
#

Question here would be, how discord should handle this and how the info should be forwarded.
Like removing a bot is the same as kicking a member.

And for the form eould I have those suggestions:

  • Commands/Features don't work
  • Doesn't have the advertised features
  • Bot shows as offline
  • Spams chat/Unwanted responses
  • Bot is no longer needed
  • Other

Perhaps dev could add their own options to select.

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

Description
Disabled components' custom_id is checked for duplication with other components' custom_id, meanwhile it should not be (and was not before either).

Steps to Reproduce
Create a message with at least 2 components sharing the same custom_id. All or all except one should be disabled.

Expected Behavior
The disabled components' custom_id is ignored by the API when checking for duplication.

Current Behavior
We receive: 400 Bad Request
Error code: 5...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Seeing that attachments will be an option for slash-commands, are there any plans to make bots able to put videos in embeds instead of just images? It has been a requested feature for quite some time and I'm thinking this would be a good opportunity to add it. Especially since it's already possible with Webhooks. It would greatly improve the usability of a lot of bots. Right now people can only send a video with embeds below it.

chilly siloBOT
#
- "Send Messages in Threads", which will allow users to send a message in a thread. The "Send Messages" permission will have no effect in threads, users **must** have "Send Messages in Threads" to send a message in a thread. This allows for setups where a user can participate in a thread, but cannot send a message in the parent channel (like a thread off an announcement post).
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

The VIEW_CHANNEL permission has no effects on bots.

Steps to Reproduce

  1. Create a channel where the bot don't have the VIEW_CHANNEL permission.
  2. Make the bot list all channels of the guild.
  3. The channel is visible as well as all its metadata.

Here is a quick example with Discord.js :

import {Client, TextChannel} from 'discord.js'

const token = /* BOT TOKEN HERE */;
const guildId = /* GUILD ID HERE */;
const privateChannelId = /* CHANNE...
#

It would be really helpful if an announcement channel publishes notices of API deploys, as long as they have changes. This way, we roughly know when a bug gets fixed (yes I know deploys take time but a rough estimate is helpful), and when breaking changes are introduced to the API. Even if the change isn't breaking, it's still helpful to know it so we can prepare.

#

It's a shame that channel description can't be used to store private information. For example, I would have liked to add an unlisted link reserved for users in that specific channel.

That being said, if this is a feature, then it should be clear that all channels name and description must be considered public. Because for now, it's really misleading and can trick users to leak private information:

Allow members to view this channel by default. Disabling this for @everyone will make th...

chilly siloBOT
chilly siloBOT
#

Thanks for the feedback, but this is not a level of transparency we are able to accommodate at this time. We ship to production multiple times per day across various services and teams. The noise of such releases is not generally actionable to third party developers, and the majority of deploys do not cause noticeable issues. We do try to minimize bugs by deploying code to production slowly and monitoring for issues, and our teams have rollout plans to ensure if issues are encountered we roll...

#

Thanks for the feedback, but this is not a level of transparency we are able to accommodate at this time. We ship to production multiple times per day across various services and teams. The noise of such releases is not generally actionable to third party developers, and the majority of deploys do not cause noticeable issues. We do try to minimize bugs by deploying code to production slowly and monitoring for issues, and our teams have rollout plans to ensure if issues are encountered we roll...

#

This exact issue has been closed as a won't fix many times.

But although this can't be fixed by the API side, it wouldn't hurt to forward this to the appropriate team to add a notice in the channel settings under the channel's description field to say that although the channel is hidden, the description could technically be retrieved by users who don't have access to it, therefore no private data should be stored in it.

chilly siloBOT
#

Hello, this is an idea I came up after migrating some of my commands to slash commands.

I am using webhooks interactions and do not have a cache to works with and some of my commands provide a "random" option to pick up a random guild member (often related to social interactions and fun commands).

Could it be possible to have a parameter when fetching/listing/searching guild members so that we can retrieve a random one?

Thanks

chilly siloBOT
#

I honestly don't really see this becoming a feature, however if I may give a suggestion:

I think your best way of achieving this would be to pick a random date between when the guild was created and the current date, using that to generate a (nonexistent) user ID and then using that in the fetch guild members endpoint as either a 'before' or 'after' option. It's not perfect (especially for guilds with growth spikes) but I suspect it's the closest you'll be able to get without fetching the ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hello. It would be cool if you could color parts of a message a bot sends. I know that you could use codeblocks, but they arenโ€™t super flexible. It would be cool if you could have the ability to color parts of a message, just like the timestamp works.
Timestamps currently look like this: , for example . What if you could do the same for coloring text? Discord could add a couple colors we can choose from, just like the buttons, so the messages stay relative clean.

An example could be t...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

As far as the documentation goes, english is the only supported language for application commands right now. Discord has said slash commands should match ^[\w-]{1,32}$, and this can match non english alphabets depending on regex engine and flags. Discord haven't stated what regex engine nor what flags they're using so who knows if being able to create commands you cannot select is a client issue or an api bug.

In the dev Q&A they suggested they're looking at localization for applicat...

#

As far as the documentation goes, english is the only supported language for application commands right now. Discord has said slash commands should match ^[\w-]{1,32}$, and this can match non english alphabets depending on regex engine and flags. Discord haven't stated what regex engine nor what flags they're using so who knows if being able to create commands you cannot select is a client issue or an api bug.

In the dev Q&A they suggested they're looking at localization ...

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

I just want to preface this by saying if this is a duplicate of another discussion, I apologize. The closest thing I could find was this one.

As it stands right now, application commands (Slash commands, Context menus) have a very primitive permissions system.

With slash commands (and to an extent context menus) you're limited to either setting it to be disabled globally, or updating the command retroactively to allow ...

chilly siloBOT
#

It would be great if only the available slash commands were listed in the popup after typing /. Currently every single slash command is listed regardless of what's enabled or disabled, which will cause the bot to hang on the command with "[XYZ bot] is thinking..." because it can't respond because it's disabled through its own settings.
Plus slash commands shouldn't be used in channels the bot can't see. Currently if a bot can't view a certain channel will still respond to slash commands pr...

chilly siloBOT
chilly siloBOT
#

Description
The GET /sticker/{id} endpoint returns a 401 Unauthorized when not providing a valid bot token, which is inconsistent with GET /sticker-packs (which returns even more information) as it doesn't require any type of authentication.

Steps to Reproduce
Make requests to both endpoints stated above with and without authorization

Expected Behavior
Either both endpoints require authorization or nether do

Current Behavior
One endpoint requires authorizat...

chilly siloBOT
#

The reason I have removed the regex is because it's ambiguous without more information. Regexes are implementation dependent and not unicode aware by default in some engines.

This description is more accurate in these cases because, by providing the category of character or the character itself, people can construct matching rules to suit their system. I for one use regex alternatives and this documentation is much more informative.

Secondly "lowercase matching this regex" is wrong. Y...

chilly siloBOT
chilly siloBOT
#

Hello. Looking at making the Message Content a privileged intent, developers need a good way to ask users for input. I'm making a game in discord using embeds, custom emojis and buttons and I allow users to create worlds. The user needs to name their world. It would be cool if we could ask users for text inputs via a component, just like the select menu component. When discord announced Bot Developer Verification, they hinted to a feature like this. I attached a screenshot under here.
![imag...

#

The term "character" is overloaded and is generally not recommended so if anything this wording is worse than the previous regex. If you wanted to elaborate on the regex accepting code points outside of the ASCII range you could have just mentioned that the regex is Unicode compatible. However, this has been tried before (https://github.com/discord/discord-api-docs/pull/2901).

chilly siloBOT
#

The term "character" is overloaded and is generally not recommended so if anything this wording is worse than the previous regex. If you wanted to elaborate on the regex accepting code points outside of the ASCII range you could have just mentioned that the regex is Unicode compatible. However, this has been tried before (#2901).

I specifically want to avoid \w because it expands in a non unifo...

#

I specifically want to avoid \w because it expands in a non uniform way across engines.

My point is that mentioning it is Unicode compatible should be enough. There are many languages that support Unicode aware regex (Perl, Rust, Python, C#, etc.) and others that don't. Just adding that modifier is enough to show the intention. Unfortunately, JavaScript is again the weakest link since it's...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

The 15-minute timestamp check when rendering the loading message is broken on iOS; it always shows the "This interaction failed" status instead of the "Bot is thinking" status, whether the message is old or was just sent.

Steps to Reproduce

  1. Respond to an interaction with type 5 (defer)
  2. Look at the sent message on iOS

Expected Behavior

It shows the "Bot is thinking" status if the message is less than 15 mins old, and the "This interaction failed" status ...

chilly siloBOT
#

Discussed in https://github.com/discord/discord-api-docs/discussions/3581

Originally posted by typpo August 4, 2021
Hey all, an update on plans for the API. We've reviewed a lot of your survey responses and messages in DDevs #message-intent. We appreciate your candid feedback and want to offer a peek into more interactions improvements the team is working on.

Developer improvements

  • [ ] New option types
    • [x] Floating-point number
    • [ ] Attachment
    • [ ] Auto...
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
chilly siloBOT
chilly siloBOT
#

Description

When creating a new private thread and setting invitable to false in the payload, the created thread has invitable set to true.

Steps to Reproduce

  • Create a private thread
  • In the payload set invitable: false

Expected Behavior

The created thread has thread_metadata.invitable set to false

Current Behavior

The created thread has thread_metadata.invitable set to true

Screenshots/Videos

(I know, I know...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
When trying to fill a optional option from a slash command with only one optional option, it will not get automatically focused as it used to do like IOS or the Desktop Client.
Option will also not be focused if the command has both a required and optional option.

Steps to Reproduce

  • Type fully any slash command with a single optional option (STRING | INTEGER | USER | CHANNEL | ROLE | MENTIONABLE | NUMBER)
  • Type anything after to try to fill the option

**Ex...

chilly siloBOT
#

Description
I'm authenticating users in my website via Discord and the flow is the following:
/login page --> redirect to discord oauth2 --> redirect to /callback route of my site

90% of the times the users logs in correctly but 10% of the times I get a 401 error when trying to retrieve the user data with the /users/@me endpoint. See code below

Steps to Reproduce
Here is all my code:
frontend

// /login route of my website, js code
    sessionStorage.setItem('callb...
chilly siloBOT
#

I'd love to have a custom option for on-message interactions, as it would allow us to much more easily get and use user input.

For example, right now If I want to edit a message based on user input, there's a couple ways to do it. Either get the message somehow by forcing the user to run a slash command with message ID and channel, then running a get message function, that returns the message you want to edit. That's not super user friendly, especially if they don't know how to grab the me...

chilly siloBOT
chilly siloBOT
#

I'm a little confused about what you mean by storing info on discord, since error messages would have to be ephemeral (you don't want everybody knowing that you made a typo in your command), and therefore nothing should be stored on discord, and client updates shouldn't hinder adding a new feature. Also, this isn't about error handling it is about command argument validation, ie making sure that the user enters something that the bot can understand

chilly siloBOT
#

This is currently holding me back from going too deep with threads.

I love the potential threads provide, but as stated above, creating a thread in a channel intended to be read only isn't super viable right now with the thread created message.

Public channels are also affected, as not all use cases for threads require everyone in the channel to be made aware a new thread was created. I'm all for less noise!

chilly siloBOT
#

Now, I know that this suggestion would be a burden to implement on discord, but hear me out:

Currently if discord bots want to listen for update events and also do an action with the old information they have to cache all of the old information themselves. This is not an issue for user update, guild update, member update, channel update, thread update because that information is already cached anyway as it's required for operational purposes and the amount of those objects is pale by compa...

chilly siloBOT
#

This can all be handled by the bot itself with better cache management, though. I'd argue that actions occuring on the message update event that require the previous version of that message are absurdly rare. So, you're asking Discord to re-engineer a process in a very costly way, to use up additional bandwidth for everyone to basically double the size of all message update events received, for something that serves a very limited purpose and can already be handled by better cache management ...

#

additional bandwidth for everyone

This is untrue since message intents will not contain any user data, and you can simply turn the events off. It is almost impossible to handle message updates with cache if your bot just started and has an empty cache, you also cannot expect bots to keep track of all messages ever sent in a server. Your "cache management" solution is unfeasible in a lot of cases that you don't seem to consider.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I can only agree with MrAugu on that topic. It definitly makes more sense this way even if it means an increased payload size.

Another possible solution in my opinion is (like Augu mentioned above) to only receive the modified fields of the old message so you can compare it to the new message. This would result in a lower payload size so Discord would also be satisfied :) .

Using partials doesn't help since you need to fetch the message and since the messageId of oldMessage and newMess...

chilly siloBOT
#

About an hour ago the CDN started blocking requests that don't specify an User-Agent header. That's fine and all, but it wasn't announced anywhere. It wasn't possible for devs to update their bots for this change, and it still is not possible now without trying to figure out themselves what the issue is.
This is not okay! Please announce your breaking changes!

chilly siloBOT
#

Description

Add COMMAND Application Command option type which only accepts global/guild interaction commands of the same bot.

Why This is Needed

Commands for disabling commands are very common in bots today, but there is not a proper way to inform the user what they can or cannot input so by adding a option like that will improve UX

Alternatives Considered

Use String option type and parse and validate it on our side.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

or idk, maybe the API response can be a bit more, eh, descriptive? for now the api response after the interaction has failed just contains your payload and the interaction id (cannot use it to trace down the error or for that matter, where the slash command was ran) and the interaction token (same goes for this, cannot use it in debugging), so i guess it would be a bit more, eh, good? if they kind of, maybe add the guild id or the command id in the API response. I also don't really see how a...

chilly siloBOT
#

Hi,
It would be really awesome if discord could support sending msgpack instead of json if the client want it.
(Would be optional to avoid breaking existing implementation of the api)

MessagePack in a lot of languages is faster, lightweight and doesn't need a gzip compression. That would probably increase performance for both client and server.
In terms of sizes, it would be the same than gzip compressed json, but that requires one more step for serialization/deserialization. And that ...

chilly siloBOT
#

Description
CDN is returning 403 errors when loading user or server banners.

Steps to Reproduce
Make your client load a user or server banner (opening a user profile or server for which you don't have the banner cached).

Expected Behavior
The banner loads.

Current Behavior
Banner doesn't load and network request shows 403 response from CDN.

Screenshots/Videos
N/A

Client and System Information
Canary 94572 (ee28662) Host 1.0.37 Windows...

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

I think this is pretty unlikely to happen. Effectively what you're asking for is to create public chats that no one knows about, and I don't hiding discussion is a good thing to have. On top of that the only way for folks to discover there is new content here is to go to the threads popout in the top right, which really just isn't the right UI for this. There'd be no way for the parent channel to get marked unread either so you know there's something new!

#

Description
When using the UI to create an event if you press the "Create Event" button it fires the API request POST /guilds/{id}/events however that returns a 404 even though the UI shows the option. I believe this is an error with the API where its not accepting events. However it could be an issue with the UI where it is showing events when it shouldn't?

Steps to Reproduce

  1. Find a guild where you can see "Events" option in the channel list
  2. Open the devtools and watch ...
#

create public chats that no one knows
No, I'm trying to create chats only relevant people are made aware of the existence of, being the user and the support team in my usecase. I don't need others to "discover" the ticket, especially in a support server where most people are here to get help, not to help.
There'd be no way for the parent channel to get marked unread either so you know there's something new!
I'm sorry but I don't exactly get what you mean here, my issue is the unrea...

#

I am developing a new "framework" around slashcommands to make the DX with discord.js a lot better, one thing I have noticed is you can't seem to set the slash command permissions when you set the slashcommands, which is creating a lot of extra http requests and extra work - would be great to be able to set the permissions for a slash command at the same time as creating it

Also if I am not mistaken the way slash commands are now it can create a security problem. If I want everyone except ...

#

Noooot really, I don't want the unread but sometimes there's no staff online so the community helps itself yknow.. private threads would prevent that. Don't take this as a complaint, but you know they're paywalled. Support servers struggle to have a good retention and sadly the same thing applies with boosting, level 1's possible, level 2's almost impossible ๐Ÿ˜”

That's why I made the feature request at first. I know a ghost unread isn't the end of the world, but as yall like to mention, "it...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Currently there is no information regarding the way the community resources section of the docs is managed. Now that the bot api is changing quite rapidly, in preparation for the message intent, it is likely that the ecosystem will change a bit and it would be a good idea to add some guidelines for developers.

As it stands there are at least four libraries on the list whose status may need to be reviewed and amongst those there are libraries that have been archived, namely disco and Sword...

chilly siloBOT
#

Finally, there are benefits to being listed that make development of new features easier for those libraries.

I don't think this is true. Even the basic "does it increase traffic to our library?" can't be answered since they use noreferrer links so GitHub can't track traffic from the docs page.

I'm not sure exactly how this works or if everyone is given the same information. With that being said, developers whose libraries ar...

chilly siloBOT
chilly siloBOT
#

I think this is pretty unlikely to happen. Effectively what you're asking for is to create public chats that no one knows about, and I don't hiding discussion is a good thing to have. On top of that the only way for folks to discover there is new content here is to go to the threads popout in the top right, which really just isn't the right UI for this. There'd be no way for the parent channel to get marked unread either so you know there's something new!

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

What is this feature useful for? I'm unsure exactly why it's needed? It promotes the kind of servers that encourage spamming invites in every server to try and get a higher role or other benefits. Its useful for tracking which invite people came from for moderation purposes but simply disabling invite generation and posting only one makes it redundant. I have yet to see a scenario in which this feature is needed that doesn't promote breaking of TOS or at least common decency

#

It's a link. it can be shared so any place it's posted is just the source. a person could copy that link and post it to a forum. The value of being able to vaguely gauge where people are joining from is not particularly valuable seeing as the most use the feature is going to get is from server promoting spamming. This is also voided by big communities (big enough to want to track their invite usage) usually having a discord.gg/name link that gets used instead of regular invites. So it doesn...

#

@CEbbinghaus maybe you don't see a need, but as someone who runs many discord servers, this would be very useful.

  1. I want to see where users are coming from. Knowing how many times a code was used tells me nothing.
  2. I want to know when a spammer creates an invite link to invite their bot swarms.
  3. I want to utilize specific links to different platforms. Being able to see what users came from where is helpful

Again, maybe you see no need, but myself and many others would fin...

#

the most use the feature is going to get is from server promoting spamming

as @ b1naryth1ef said above:

Invite spamming and TOS abuse are an entirely separate problem outside of the implementation of this feature.

a person could copy that link and post it to a forum

yes, but they need to have the link in the first place to post it. if i give you an invite link and you post it to a forum, i can see that everyone that joined from that link joined from you - see the classic "invi...

#

it feels like it incentivizes a reward system based on invite usage. It's certainly the reason I initially wanted this feature months/years ago, but now I see less of a need.

It's certainly important information knowing where users are joining from but it's not necessarily a good idea to make it part of the API.

An alternate approach that I think would solve the problem quite well is to add it as an insight to community servers:
![image](https://user-images.githubusercontent.com/31423...

#

Are you literally trying to argue against digital/online marketing, tracking, and analytics? The fact that it's Discord is irrelevant to the fact that communities are nothing without members and community organizers want ways to better understand where their audiences are originating from. It's no different than Google Analytics on a website. Good luck, but I don't think arguing against a multi-billion dollar industry is going to play out well.

The fact that a feature can be abused does...

#

@mikeyb I see tracking invite usage as a very valuable feature that should be added for sure.
But I disagree that the best way to add it is to make it publicly available for any bot to query and abuse. (afaik Server insights aren't open to bots)

The ideal solution would both provide you with the information you need while not allowing Spammers to abuse it.

Is having the data visually laid out in the Insights panel not a suitable solution?

and small communities (or communities th...

#

I tend to be bad at wording things so apologies if it came across as being against the idea completely.

The fact that a feature can be abused doesn't mean it's not a feature worth implementing; but rather that it should be implemented carefully and with possible exploitations taken into consideration when developing it or the systems that surround it. Games can be hacked, doesn't mean games shouldn't be created... just means methods like single point of authority and other anti-cheat te...

#

Is having the data visually laid out in the Insights panel not a suitable solution?

For small servers, that'd probably be great... unfortunately, they don't have access to insights. Likewise, larger servers and especially those owned/operated by companies often like to generate their own reports or have numbers on a centralized dashboard (eg. Grafana) to monitor all of the various social networks they're on.

#

Not sure how many large companies run discord servers but I'm pretty sure grafana doesn't have a discord plugin

It's not difficult to create a custom Grafana plugin. If anything, the most hindering aspect is that there's not an API available and one would have to resort to using bots to archive what data is available though that API or scraping. The latter of which is likely against Discord's TOS; neither of which provide information about where users are originating from.

chilly siloBOT
#

Possibly a Bot Intent that has to be requested, such as with the Verified bots right now?

... member join events are behind a priviledged intent though?

grafana doesn't have a discord plugin

I don't think that's the important bit -- I know that Python Discord for example uses Grafana to keep track of some statistics.

Besides, if Discord could predict all benign uses of their product and implement them all, there wouldn't be much need for an API. Just saying "Discord should j...

chilly siloBOT
#

Description
When a guild with 250 roles (excluding a nitro booster role) is boosted, the user boosting the guild gets a 500: Internal Server Error message.
A new role for the nitro boosters is not created, however the boost is added to the server. The boost message is also not sent.

Unimportant Note: The client also does not display the booster badge for this user/member in the member list.

Steps to Reproduce

  • Boost a guild with 250 roles (excluding the nitro booster role...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

How exactly could it break the TOS?
The only way for bots to fetch invites (or get the invite events) is if they have the proper permissions for them.

and to add if they officially added a field for it in the GUILD_MEMBER_ADD event it would mean less requests to their API and Developers don't have to store invite information to match the current invites against.

Is it possible?: yes, but it's not really feasible to do at scale (which is an issue)

chilly siloBOT
#

It promotes the kind of servers that encourage spamming invites in every server to try and get a higher role or other benefits.

Already existing API features serve this possible purpose better than the requested one. No point to discuss it here.

Its useful for tracking which invite people came from for moderation purposes but simply disabling invite generation and posting only one makes it redundant.

No, I need multiple invites and I want to know which one has to be invalidated a...

chilly siloBOT
#

I develop a C++ API library called Discord++: https://github.com/DiscordPP
And I was wondering what I need to have it added to the community resources list: https://github.com/discord/discord-api-docs/blob/master/docs/topics/Community_Resources.md#libraries
Getting my library added has something I've been stressing about for a good while and I figured I should just reach out and ask instead of just letting the question burn a hole in me.

I've also been wanting to have someone who knows w...

chilly siloBOT
chilly siloBOT
#

I'm having the same problem.
I use python, flask

flask code :
`from flask import Flask, request, render_template, redirect, session
from oauth import Oauth

app = Flask(name)

@app.route("/")
def index():
return redirect(Oauth.discord_login_url)

@app.route("/login")
def login():
code = request.args.get("code")
access_token = Oauth.get_access_token(code)
user_json = Oauth.get_user_json(access_token)
username = user_json.get("username")

r...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Added my C++ library, Discord++, to the list of community libraries.

One of the core tenants of my library is modularity. Core functionality like the HTTP and WebSocket gateway modules can be swapped out to make use of different dependencies (though currently there aren't extra options) and plugins can be added seamlessly.

To this effect, my ratelimiting implementation is in a plugin: https://github.com/DiscordPP/plugin-ratelimit/blob/master/discordpp/plugin-ratelimit.hh
*I plan to add...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I would like to improve on this suggestion by adding the following:

There is currently no option to select the acceptable range of integers for the .addIntegerOption() on the SlashCommandBuilder().

The ideal option would be to have an extra method on the integer to select ranges of integers that are acceptable for the option. The method should default to the full range when no ranges are provided. The builder should provide warnings when integer ranges overlap in some method to the deve...

chilly siloBOT
chilly siloBOT
#

"SlashCommandBuilder", "addIntegerOption", and "addStringOption" are not part of Discord's API, I think those are part of discord.js which is unofficial and not made by Discord, so that wouldn't make sense in this repo (your comments already don't really make sense here, as discord.js design is irrelevant)

I beg to differ. This is a feature that must first be implemented on the API side. Afterwards, it will be made available on the builder side. Check out the response from the Discord.js...

#

I think advaith may have been referring more to renaming the discussion.

Yes the feature has to be implemented by discord, but those names aren't Discord created. Everything you've said about the builder erroring are things that would need to happen once discord implements the feature and discordjs adds support for it.

What we're asking for here is some extra minimal validation (that doesn't take the client too long to do) of integer, and possible string option types.

#

I think advaith may have been referring more to renaming the discussion.

Yes the feature has to be implemented by discord, but those names aren't Discord created. Everything you've said about the builder erroring are things that would need to happen once discord implements the feature and discordjs adds support for it.

What we're asking for here is some extra minimal validation (that doesn't take the client too long to do) of integer, and possible string option types.

Great...

chilly siloBOT
#

In fact, now only two button styles are available to developers. This is a standard (style: 1, 2, 3, 4) that differ only in color. And the second is the link button. It seems to me that it would be more reasonable to make two styles and allow developers to choose colors in a separate parameter. But you can also do it with pre-prepared colors (for example: 1-blurple, 2-gray, 3-green, 4-red, etc.)

chilly siloBOT
#

What is this feature useful for? I'm unsure exactly why it's needed?

Gonna officially retract most of my previous statements since enough people have voiced some very valid reasons why it should exist.

this is already possible - just in a hacky way

Last I checked and tried (2018) it was only possible by querying every invite and checking which one had increased. Not particularly Reliable and prone to mistakes. If there is another way it would be nice to know.

The most effici...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Apologies. It is indeed fixed as of a couple of days ago.

On Fri, Aug 27, 2021 at 2:01 AM bsian03 @.***> wrote:

This was fixed in the last API deploy (along with some other fixes
confirmed by the API team)

โ€”
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/issues/3700#issuecomment-907046061,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A...

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

Discord does not, and likely never will send old data. It is up to the library/bot to implement a runtime cache to handle old data. Several libraries already do this and if the bot is online and has the old data cached, it can be referenced.

And at discord's scale and due to eventual consistency, this would fall apart and lead to progressively inaccurate past states being sent depending on which server happens to process the update and if there were updates before that one.
If someone edi...

chilly siloBOT
chilly siloBOT
#

It clearly states it's curated around

libraries that conform to our API's standards around authentication and rate-limiting

It doesn't even mention if the full API is implemented as being a condition to be in the list. Not sure why you'd assume since a library is archived that it would no longer meet their standards of rate-limiting and authentication. Whether it implements parts of the API that a user needs is up to them to figure out, not saying whether that is good or bad, but these...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Related: #3724

Today, owner of discord.py - Danny left development.
Danny said:

I do not believe in waiting on promises for something to be better, when historically these promises have been empty. I do not think the situation will radically improve by April 2022 and do not think this change is worth the everlasting impact it will have on the ecosystem. ...(omission)... My involvement in discord.py and the API was always fuelled by passion and hope. These recent changes have drained me com...

chilly siloBOT
#

This pull request aims to add hikari to the community resources.

Hikari is a new, powerful, static-typed Python API for writing Discord bots. We provide a flexible way of making bots with different options like a rest based bot (interactions server), gateway based bot or only a rest application if you are working on a dashboard or similar.

Rate limiting implementation: https://github.com/hikari-py/hikari/blob/master/hikari/impl/buckets.py

chilly siloBOT