#github-notifications

1 messages ยท Page 29 of 1

chilly siloBOT
#

Description

The introduction of Slash Command Permissions #2737 brought user and role based permissions. However, the only way to currently achieve channel-specific granularity is to sacrifice a role to a specific command. This is the only way (I can see) to be able to force a single command, from a single app, to run in a single channel.

You can do this by using a channel override for that role that has use slash commands and adding that role to be the only allowed users of that ...

chilly siloBOT
#

Description

The related emoji field on a sticker seems to require the emoji to be between 2 and 200 characters in length.
However, there's a discord built-in emoji (:v:) whose length is only 1 character. If you pick that emoji as the related emoji, you're going to get an Invalid Form Body error.

Steps to Reproduce

  • go into guild settings
  • go into the stickers tab
  • create a new sticker
  • put some name in
  • upload some image
  • choose :v: as the related ...
chilly siloBOT
#

Description

Steps to Reproduce

  1. Send reply with Button
  2. Click button
  3. Observe

Expected Behavior

message_reference has channel_id, like:

{
  // ...
  "pinned": false,
  "message_reference": {
    "message_id": "860263541588099124",
    "channel_id": "756477702030098513",
    "guild_id": "715540925081714788"
  },
  "mentions": [],
  // ...
}

Current Behavior
message_reference doesn't have channel_id, like:

{
  //...
#

Description

With an OAuth login via Discord it is possible to obtain the email address of the Discord user despite the lack of the email scope

Steps to Reproduce

  • If not already done, create a Discord app ( https://discord.com/developers/applications/ ).
  • Select the app and select OAuth2 in the left menu.
  • If not already done provide a redirect URL.
  • Select the URL and select only "Identify" scope
  • Copy the generated Link
  • Login with the copied URL
  • Login to the ...
chilly siloBOT
chilly siloBOT
#

Curious what your use case is @muddyfish

I definitely could use it because of sending users messages via webhook. I have a resend feature on my swear word blocking bot, that sends a users message again but with all the curses blocked out, 4k messages definitely couldn't do that unless this was applied. And things like tupperbox for example who make fake users, also uses webhooks. Bit complicated.

chilly siloBOT
#

It would be useful if we could include another option type in Select Menus for the user to write any value.

Use case: for my bot, the user can customize the nickname it gives to users. On the bot, we have different "templates" they can pick and choose and combine them. To be more user-friendly, I would like to use a Select Menu with the most common templates, but at the bottom have a text field where they can write a custom template if needed.

I've seen this type of select menu across m...

chilly siloBOT
#

It would be great if there was an option to synchronize role permissions in a channel according to category, but NOT SYNCHRONIZING EVERYONE ROLE. It would be much easier to configure other channels and not need to edit channels all the time.

For example, I create a main server channels category, in the category, permissions are enabled for only admins to send messages, but if I create a channel in this category called suggestions and I want everyone to also send messages there, the cha...

#

Why should banners be linked to verification status?

I imagine that many bots could use this feature to break the terms of service. For example: Nitro Rewards server advertising bots with a super flashy banner with a server advertising or else a bot inviting the user to an NSFW server with a banner with explicit content

Releasing custom banners only for verified bots would better filter out bots that really want to make proper use of the feature.

chilly siloBOT
chilly siloBOT
#

Found out a bot can send a guild sticker inside the guild it belongs to.

Message Object:

{
    "content": "test",
    "sticker_ids": [
        "859934445338624001"
    ]
}

When sending nitro stickers or guild stickers from another guild
Error Object:

{
    "message": "Cannot use this sticker",
    "code": 50081
}

Don't know if this is intended.
New OP Status Code: 50081 | Cannot use this sticker

chilly siloBOT
#

Why should banners be linked to verification status?

I imagine that many bots could use this feature to break the terms of service. For example: Nitro Rewards server advertising bots with a super flashy banner with a server advertising or else a bot inviting the user to an NSFW server with a banner with explicit content

Releasing custom banners only for verified bots would better filter out bots that really want to make proper use of the feature.

It wouldn't make sense to...

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

There is the chance that Bots may only use the applications.commands scope in the OAuth Link and perform various stuff through things such as HTTP webhooks or similar.

This has the unwanted downside that the Bot account itself, which is still added to a Server, may appear as offline, causing confusion since why is the bot offline?

Idea
There should be a way, like a heartbeat endpoint for slash-commands only, to make the bot account appear active.
Perhaps Discord could send a hea...

#

When it comes down to slash-commands can we see one particular issue, which is, that you can't be sure if a Bot actually has Slash-commands.

One may argue that you can just type / and see if the bot appears in the suggestions.
This is alright, but in cases where there are more than 50 applications with slash-commands (i.e. on bot lists where you would like to test a bot first before adding it) is this not the most reliable way of doing so.

Having a small indicator to show that a bot ...

chilly siloBOT
#

Just going to say, if your "bot" is definitely only ever going to be used for Slash Commands and you are able to receive interactions over HTTP instead of the gateway, just don't make a bot for the application.

I've done this with one of my slash command applications that runs on Cloudflare Workers and no bot appears in the member list, when the "bot" is clicked on for a slash command usage message it just shows the same popup that a webhook would show. Just name and profile picture, no ro...

#

Hi discord devs & folks!

If their was a way to add a copy button โบ๏ธ to types of buttons, it would be cool ๐ŸŽ‰!
If the copy button was clicked, then discord should copy a specific text ๐Ÿ“‘ provided by the dev ๐Ÿ‘จโ€๐Ÿ’ป of the bot.
But yeah, this would require discord some permissions to get the text copied.

I came to this feature, as I was gonna add userid, chanid, roleid, serverid commands to my bot. And I thought of a button, so that the user could just click on the button to get the `...

chilly siloBOT
#

Description

Right now, it's unclear which types of messages are affected by rate_limit_per_user and which aren't. This makes it hard to implement bots that enhance or interact with the slow mode feature built into discord. For example, a bot that reminds you when your slow mode timeout is about to expire (for 6hr+ slowmode channels), or a bot that tracks how often moderators use their permission to violate slow mode. However, it's easy to get false positives if you include messag...

#

Slash command options give users a clear way to navigate bot complexity when the source of that complexity is multiple inputs per command. But what if you want to build a bot that appears to have only one input per command, based on free-typing and natural language processing?

The current approach doesn't seem to work as well because you have to have an option that appears after you type your command which doesn't do anything except reiterate what the command does.

To be concrete, sup...

#

this is a regression from (A) which non-slash command bots can already do.

I wouldn't say comparing client UI and sending a message is apples to apples, let alone regression; they're not really comparable.

Furthermore, I can see how in some situations having the inline tooltip seems a bit redundant, but I'd personally favor consistency over UX for some semi-specific scenarios

#

Description

The GUILD_MEMBER_ADD gateway event is sometimes sent more than once when a member joins a guild.

Steps to Reproduce

I couldn't find a way to reproduce this behaviour, but all guilds I've seen this issue occur on are community servers. That could just be a coincidence though.

Expected Behavior

The GUILD_MEMBER_ADD event should only be sent once when a member joins the guild.

Current Behavior

The GUILD_MEMBER_ADD event is occasionally sent ...

chilly siloBOT
#

Description
When I patch a message, the allowed_mentions property is resetted/deleted if I don't send it in the body again. On the other hand, when I update only the content property, the components property doesn't change (as it should)

Steps to Reproduce

  1. create a new message using
    POST /channels/{channel_id}/messages { "content": "test ", "allowed_mentions": {"parse": [] }, "components": [] }
    --> the user should not be mentioned

  2. update the message using
    ...

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

Description

When a channel has 10 webhooks, editing existing webhooks will cause the API to error. (The client does not handle/display the error.)

Steps to Reproduce

  • Make a channel have 10 webhooks
  • Try to edit one (name/icon)

Expected Behavior

it works

Current Behavior

400

{
    message: "Maximum number of webhooks reached (10)",
    code: 30007
}

Screenshots/Videos

![image](https://user-images.githubusercontent.com/11778454/124339317-...

chilly siloBOT
chilly siloBOT
#

I don't quite see how comparing the system time to Discord's time is bad practice. Sure, I've had clock skew of upwards of half a second on Windows, but that's Windows. NTP should get system time somewhat close to Discord's time -- close enough that even if your clock is ahead, network latency (you -> Discord) will be greater of the two. Additionally, you can check for major clock skew by consulting the Date header in the response.

In exchange, with retry_after, you're losing however m...

chilly siloBOT
#

In private threads, slash commands can be used, but if the bot is not in the thread, it will not be able to read/manage messages.

If the bot has access to the parent channel, it can reply to the interaction and ping itself, adding itself to the thread. However, this is annoying to handle and it would be nicer if Discord did it automatically, treating using a bot's command as mentioning the bot.

Alternatives possible currently (suboptimal ux):

  • just break when the bot isn't in the thre...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

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

Originally posted by davfsa April 8, 2021

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...

chilly siloBOT
#

Hey there,

Obtaining the emoji ids of external/custom reactions can be a hassle especially if your bot doesn't have read/edit access on certain channels or even doing it manually so it can be kind of annoying/impossible to get the following:

emoji: name, id, isAnimated via a given message from the reactions

What I suggest is adding the option to allow Shift + Right Click and then Copy ID to copy the selected emoji's
<Optional animated : Optional name : Snowflake id>
or so...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Custom Emojis have a role parameter which contains an array of role-ids which can use the Emoji. There are a couple of bots exposing that feature to users, allowing them to restrict their emotes to their level roles/boosters/patreons(not sure if that's okay, but I've heard it used in that way)/โ€ฆ.

A user of my iteration for this has now asked me if it'd be possible to have the same functionality with stickers. Given that they look the same but bigger, this sounds like something that shoul...

chilly siloBOT
#

Description
When setting min_values to 0 and max_values to 1, the user has to select one option.

Steps to Reproduce

  1. Send a select menu with the following data:
{
  "type": 3,
  "min_values": 0,
  "max_values": 1,
  "options": [{
    "label": "1",
    "value": " ",
    "default": true
  }, {
    "label": "2",
    "value": " "
  }, {
    "label": "3",
    "value": " "
  }, {
    "label": "4",
    "value": " "
  }]
}

Expected Behavior
...

chilly siloBOT
#

Regarding the availability of X-RateLimit-Reset-After, we opted not to use that field as it is redundant when you are already computing against reset time, and as A5rocks points out (and our experimentation indicates) clock drift is less of a problem than dramatic and inconsistent latency on API requests return time, particularly for users without good internet. So respectfully to other library authors, this makes me hesitant to call using the Reset-After approach anything but the bad practic...

chilly siloBOT
chilly siloBOT
#

We know there is this one feature in stickers called related text which brings up some particular sticker if that related word is typed. It would be nice if the same could be done for slash commands as well, like making some purge command with a different name (say "clear") show up in the command explorer on typing /purge.
This would be a lot helpful for people who do not have an idea about what command name to use and do not want to search through all commands of all bots.

chilly siloBOT
#

Description
Originally posted on https://github.com/discordjs/discord.js/issues/6022
When entering anything that's not a number id, the API times out, instead of throwing an error/ignoring the id. The bot disconnects and reconnects before throwing the timeout error.

However, it works if I enter an invalid number ID.

Steps to Reproduce
Using discord.js v12.5.3 and nodejs v14.15.5 (I imagine its the same with other versions as well)

// doesnt work
guild.members.f...
chilly siloBOT
#

Description
When interacting with components with an application created webhook where the application does not have a bot, if there is not a registered interactions url the loading state will persist forever.

Steps to Reproduce

  1. Create an application, but don't make a bot.
  2. Use the oauth2 webhook.incoming scope to generate a webhook.
  3. Send a message with components using the provided webhook url.
  4. Interact with a component.

Expected Behavior
The component sh...

#
#

Currently selects have a limit of 25 options. This is an issue for me because I want to use selects to choose roles and channels. I think there should be either an option for selects of roles/channels that bypasses the 25 limit, or just have higher limit in general.

Use case: I have an interactive setup for a certain feature that I want to be able to use slash commands for without depending on a bot user. This means that my current method of prompting for a message won't work.

#

That I don't know. Someone from Discord would have to comment on the specifics, but the gateway has always behaved like this where there are no specific error messages for invalid data, just the generic ones listed here; 4001 or 4002 probably apply here. When you say "respond with error code 400", that is an HTTP construct and does apply here since there is no HTTP request here.

chilly siloBOT
#

Description

There is a typo in the COMPONENT_LAYOUT_WIDTH_EXCEEDED response.

Steps to Reproduce

  • Create a message and ensure there is content and two drop-downs in the same row
  • Read the error message

Expected Behavior
The error message would read "The specified component exceeds the maximum width" or "The specified component exceeded the maximum width".

Current Behavior
The error message reads "The specified component exceedes the maximum width" - "exc...

chilly siloBOT
chilly siloBOT
#

Currently, the Create Message endpoint accepts the nonce field and includes it in the sent message, but the Execute Webhook endpoint does not accept the nonce field.

The nonce field is useful for matching new messages with stored unsent messages. It would be useful for applications that use webhooks to send messages to channels. The messages can be matched using the content, but this is not fully reliable due to Discord's message normalization, which is likely why the client sends the ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Verified bots could still change their banner after being verified(same as avatars) and it's not like Discord would go through ever single bot to make sure they have a TOS appropriate one.

So you would be back at square one.

And I don't think they want to lock features behind verification like that.

That's a flaw on Discord's too low of a bar on verification. Does verification even mean anything if being verified doesn't put developers in a position of trust? Instea...

chilly siloBOT
chilly siloBOT
#

We display a label for that button and indicate "What type of text you are gonna copy?"

The problem comes from the fact that, while claiming to be copying one thing, you could end up copying something completely different. That could be bad.

Something on the top of my head is a hypothetical bot outputting shell scripts. It could claim to copy that super helpful script everyone needs, but it sneakily adds in an rm -rf /* when using the copy-button (or whatever the windows-equivalent ...

chilly siloBOT
chilly siloBOT
#

Description
When starting a message with //, the mention popups (user & channel) don't show when typing @ or #

Steps to Reproduce

  1. Type // in the message bar and a space
  2. Type an @ and observe that the mentions menu doesn't appear

Expected Behavior
The mentions menu appears

Current Behavior
Nothing pops up

Screenshots/Videos
https://media.discordapp.net/attachments/842535039412862998/861257231760752680/Screen_Shot_2021-07-04_at_4.4...

chilly siloBOT
#

Summary

The upload limit for stickers is incredibly tiny, 500 KB for an APNG file is nothing. For reference, emojis have a limit of 256 KB and but can only be up to 128x128 in size.

I am scrambling trying to make the file less than 500 KB whilst also making sure that it looks relatively good considering how it will be viewed. Is this limit set as to encourage Lottie images?

chilly siloBOT
#

The nonce field is used for optimistic message sending, something that I don't think webhooks even care about. The nonce is not stored anywhere, and is only used to match a MESSAGE_CREATE event with a pending http request. Additionally we also use the nonce to dedupe retried messages within a small time window.

Given this context, I'm not sure why nonce would need to exist on webhooks. The use-case you provide seems to be trivially accomplishable by recording the message id.

chilly siloBOT
#

If Discord is going to implement dedicated read-only mode (currently done by bots with channel overrides), it would be better to not only disallow sending messages but also sending DM, reacting even with existing reactions and connecting to voice channels. So just like for members who did not pass Membership Screening, but also effective to members with roles.
A new permission should be added for this purpose, like "Switch members to read-only mode" (SWITCH_TO_READONLY).
If a member was s...

#

The nonce field is used for optimistic message sending, something that I don't think webhooks even care about.

Sorry if I wasn't clear; this is my use case. The application in question uses a bot and sends messages using bot-created webhooks (like many others).

The use-case you provide seems to be trivially accomplishable by recording the message id.

not sure how the ID is relevant here? since that's only generated when the message is sent

chilly siloBOT
#

If you send a nonce, you can store the nonce before sending it to Discord, thus having an unlimited time between requesting a message send and waiting for a message create. if you rely on the message ID, it is possible that you get the message create before getting the message ID back, which can cause issues if you start waiting for a message with a certain ID after you already received it.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Right now, the /profile endpoint is unavailable to bots (or, at the very least locked behind OAuth) and that's fine. It makes sense, but /profile contains the ability to pass a very useful query string, that is ?with_mutual_guilds=true.

As it says on the tin, this allows people to see their mutual guilds with someone else if any. Though, as previously stated, this is unavailable to bots under normal circumstances. But this comes in very useful in any situation where the need to se...

chilly siloBOT
#

As discussed in #2644, applications managed by a team omit most scopes since they are not bound to a specific user; currently, this is not documented.

Proposed preview:
image

A Bearer token is also returned by the scopes applications.builds.read, applications.builds.upload, applications.entitlements, applications.store.update, however I opted to omit these, as they are ...

chilly siloBOT
chilly siloBOT
#

Description
If a bot does not have the Manage Messages role permission, no gateway events are thrown if a private thread that the bot is a member of gets deleted. This seems to be the case regardless of any other combination of permissions (Manage Threads, Use Public Threads, Use Private Threads and others).

Steps to Reproduce

  1. Grab a bot with whatever setup of permissions it may already have
  2. Revoke the Manage Messages permission from the bots role
  3. Create a pr...
chilly siloBOT
chilly siloBOT
#

Currently, when a Slash Command option is set to CHANNEL (Type 7), it will display every channel of every type in the UI when the command is called, so including Text & News Channels, Voice & Stage Channels, and Categories. If a command only works on specific channel types, this creates a hassle for both the user and the developer: the user has more options to scroll through which may get slightly confusing and overwhelming, especially at a large channel count, and the developer has to add ex...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I don't quite see how comparing the system time to Discord's time is bad practice. Sure, I've had clock skew of upwards of half a second on Windows, but that's Windows. NTP should get system time somewhat close to Discord's time -- close enough that even if your clock is ahead, network latency (you -> Discord) will be greater of the two. Additionally, you can check for major clock skew by consulting the Date header in the response.

In exchange, with retry_after, you're losing how...

chilly siloBOT
#

I'm enjoying Select Menus, but ran into the remarkably short length limits.

For each option, label is limited to 25, and description to 50.

To put that into perspective, the label limit is shorter than most things in Discord: channel names, role names, server names, usernames, and nicknames.

That's unfortunate, because those are the sorts of things bots will want to include in Select Menus.

Could the limits please be increased to accommodate more use cases?

chilly siloBOT
#

Description
Hi. I was creating a Discord bot using Discord.js. But today, my bot just stopped working. I know that I definitely should contact Discord.js first in normal cases, but I don't think that this is Discord.js's problem. My app id is 858668862941560883 with the public key 2342f7030c9eed7461fbde4e9ed88ad661ef827bb35d35008285046cc6f8f59f. I tried running the bot but had no response at all. So I tried regenerating the token, but that still didn't work. Searching this problem, I...

chilly siloBOT
#

you leaked your token in that video so reset that asap before someone abuses that

also this is behaving like you are running into the daily login limit (1000 identifies in 24h). enable debug logs to see if that's the case or not, as d.js will refuse to identify to the gateway then (doing so would trigger a token and limit reset).
Check your logs on what caused your bot to reconnect so many times, fix it and then trigger the token reset by disabling this d.js behavior or use another lib th...

chilly siloBOT
chilly siloBOT
#

The behavior that we (and you) see, outside of potential moderation issues, is people putting really sensitive, personal information in their bios. We aren't comfortable with that data being scraped.
authorization model is still a server owner accepting on behalf of everyone in the server. (...) same level of a field directly asking "Please tell me personal information about yourself".
(...) the case for things like duplicating bios on other sites isn't something we need to support....

#

The behavior that we (and you) see, outside of potential moderation issues, is people putting really sensitive, personal information in their bios. We aren't comfortable with that data being scraped.
authorization model is still a server owner accepting on behalf of everyone in the server. (...) same level of a field directly asking "Please tell me personal information about yourself".
(...) the case for things like duplicating bios on other sites isn't something we need to supp...

#

I absolutely agree, things should definitely not be easier which is why it is nice to see that's not available for bots out of the box. the only problem is, as you mentioned:

made easy for them and leave the door wide open for more, less intelligent malicious users.

gating that behind both verification AND privileged intents would be good enough to weed out the "less intelligent", it kind of defeats the purpose of building up trust to get to that level if the API still treats the a...

chilly siloBOT
#

The behavior that we (and you) see, outside of potential moderation issues, is people putting really sensitive, personal information in their bios. We aren't comfortable with that data being scraped.
authorization model is still a server owner accepting on behalf of everyone in the server. (...) same level of a field directly asking "Please tell me personal information about yourself".
(...) the case for things like duplicating bios on other sites isn't something we need t...

chilly siloBOT
#

Discord should prompt a message to not put out sensitive bio and stuff like that to prevent this in the first place however there are many reasons discord does or doesn't do stuff so I'll respect their decisions.

in my opinion bots just shouldnt have access to the about me. It literally says About ME. so while some poeple feel like filling it with eggplant or amogus emojis I think the majority of users uses it for what its made for: giving a bit of info about yourself like pronouns, age, p...

chilly siloBOT
chilly siloBOT
#

Hey hello there!

I would like to know If I can add via PR, a new example to handling the signed interactions via webhooks for clojure, the reason is the current example is very specific for ring users and depends on a binary installed on your server to work, which limits a lot where you can spin your bot/app server.

I made this simple function using a java library wrapped in clojure functions that receive fou...

chilly siloBOT
#

Currently there is no way to reply to a button click without transforming the button style for everyone, or to reply with a new message to the interacting user. Often a new message is not necessary though, take for example reaction roles. After the button is clicked, the roles are given. There is no need to send a success message. Ideally the button would change styles just for that one user, which currently is not possible.

I would propose to implement a feature, where a button changes s...

chilly siloBOT
#

I wanted to do a discussion regarding API, and came here instead of https://dis.gd/feedback, because on feedback it might end up somewhere, where it will never be seen or take a long time until it gets seen by atleast someone.

So, not sure how many know about the issue with "spam bots" or "scam bots", well basically user bots that join servers DM users phishing stuff. That's the issue.

Now, these user bots can access the API and let's say a server puts members in a place that can't se...

#

This would require making message components stateful, which isnโ€™t something we want to do. In the future weโ€™d like to explore having Forms as a solution for stateful interactions, but thatโ€™s down the road a bit.

You can kind of replicate this behavior with ephemeral messages though! Applying that as a change on top of an existing message is interesting, but I think it would lead to consistency issues for users

#

This would require making message components stateful, which isnโ€™t something we want to do. In the future weโ€™d like to explore having Forms as a solution for stateful interactions, but thatโ€™s down the road a bit.

You can kind of replicate this behavior with ephemeral messages though! Applying that as a change on top of an existing message is interesting, but I think it would lead to consistency issues for users

chilly siloBOT
#

I understand that the permanent change of the buttons style would require the message component to be stateful. But what about just the temporary style change (or even any kind of volatile response, like a checkmark animation or a confirmation popup for a few seconds) ?
The problem with doing the response as an ephemeral message is that it sticks for quite a while or untilthe user clicks it away. It is the current solution I use, but I don't feel like it's optimal. Multiple clicks will very ...

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

When attempting to patch a guilds vanity url, sometimes the error will be
{"message": "Invite code is either invalid or taken.", "code": 50020}
While other times
{"code": 50035, "errors": {"code": {"_errors": [{"code": "GUILD_INVALID_CODE", "message": "Invite code is either invalid or taken."}]}}, "message": "Invalid Form Body"}
The latter seem to happen on URLs that have been disallowed by discord, would it be possible to get some clarification on when the second error will occur.

chilly siloBOT
chilly siloBOT
#

Sorry for the spurious issue, but there are no issues enabled on the repo in question.

Is the open source program still running? I see hundreds of unmerged PRs of people attempting to add their servers to the list.

https://github.com/discord/discord-open-source/pulls

This includes my PR I just submitted:

https://github.com/discord/discord-open-source/pull/397

If the program is no longer active, that's fine, but in that case please update your docs to not encourage people to add...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

The select component options display opens and remains open after the in app notification link has been tapped on and has navigated the user to another channel/guild.

Steps to Reproduce

Open the select component options display.
Tap on an in app notification before the select component options open animation begins.

Expected Behavior

Either:
The select component options should not display when an in app notification is tapped on.

Or:
The in app notification link...

chilly siloBOT
#

This pull request adds an info block to all endpoints that support the X-Audit-Log-Reason header, and removes the explicit parameters for those that had them documented.

This is based on the list of events that are classed as arising from "admin actions"; however, it may not be exhaustive. Feedback and review on potentially missing endpoints would be very much appreciated before merging.

Fixes #3165.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

It would be nice if the guild preview endpoint could return stage instances for the guild.

My bot uses this endpoint to display info of public guilds but prevents showing any that aren't considered public since the endpoint returns data about any guilds the current user is in.

I currently use the DISCOVERABLE feature to check if a guild is actually public to prevent leaking information about guilds my bot is in that aren't public but if a server has a public stage, they do not get s...

chilly siloBOT
chilly siloBOT
#

You can disable the premium only command ("default_permission":false) and then enable it for the premium guild using the everyone role ID for that guild (basically the same as that guild ID)

That still does not solve the slash command organization. What he means is something like this:

Administration:

  • /warn
  • /ban
  • /kick
    Fun:
  • /meme
  • /dog
  • /cat

Of course, this would mainly be a visual request. However, it could potentially include the ability to sync permission...

chilly siloBOT
chilly siloBOT
#

I wanted to submit a library I'm familiar with, which is aoi.js, to be in the list of community libraries.

These two files are what aoi.js request and handle system are.
They are also handled by discord.js hence preventing any future rate limit:

chilly siloBOT
#

The webhooks update event provides a guild ID and channel ID, but doesn't tell you which webhook was updated. It also doesn't specify if it's possible for multiple webhooks to be updated at once.

This data can be found if your application caches webhooks by fetching the channel's webhooks and comparing the data, but not all applications might find caching all webhooks to be practical. Other update events, such as guild/c...

chilly siloBOT
#

The reason for this (and the guild integrations update event) is really for the client to reload the webhooks/integrations in the UI. We did this somewhat as a quick hack to simplify the protocol.

It would be interesting to know under what circumstances this information is relevant to bots. I don't think that a bot should attempt to maintain a mapping of active webhooks. We do not send this info in GUILD_CREATE for example, so it isn't really state that a bot could start out with that nee...

#

The reason for this (and the guild integrations update event) is really for the client to reload the webhooks/integrations in the UI. We did this somewhat as a quick hack to simplify the protocol.

It would be interesting to know under what circumstances this information is relevant to bots. I don't think that a bot should attempt to maintain a mapping of active webhooks. We do not send this info in GUILD_CREATE for example, so it isn't really state that a bot could start out with that nee...

chilly siloBOT
#

My bot caches a full list of webhooks in a guild, because it needs to use webhook specific features (custom username/avatar, emojis from servers bot isn't in).

My current solution is to download a full list when I don't have any, and then use that until one of my webhooks has moved or gets deleted, and then downloading the list again. This generally means you don't need continuous updates, except for the case when a user moves a webhook and you can't know where it is until you post a messa...

chilly siloBOT
#

Some routes don't return rate limit headers (Such as when creating webhooks), and some people (including myself) have been confused with the Header Format section stating "For every API request".

In additional context, creating a webhook for a channel does not return with rate limit headers, and some bots (such as NQN) may need to create webhooks for every channel, and since they that end point doesn't return with rate limit headers, they can't respect the rate limits put in place, so they...

chilly siloBOT
chilly siloBOT
#

This PR:

  • Adds instructions for CMake/Make build tools.
  • Add more details regarding how to retrieve the SDK binary file and attach it.

It would be nice to actually do this, since I've seen users who also use CMake as their build tool, and to shed some light to beginners who are using this as a learning resource. The latter might be quite unusual - there are good C++ developers (I'm sure including Danny) who know the stuff already, but here it is anyways.

chilly siloBOT
#

In the docs section of the Application Command Interaction Data Resolved Structure, it is stated that "Partial Channel objects only have id, name, type and permissions fields". However, looking up at the Channel Object reveals that there is no "permissions" field, but only a "permission_overwrites".

Steps to Reproduce

None

Expected Behavior

The documentation is coherent.

Current Behavior

The documentation isn't coherent.

Screenshots/Videos

None

*...

chilly siloBOT
chilly siloBOT
#

Description

Add alternative text for embeds when user disabled "Show website preview info from links pasted into chat"

Why is this needed

Many bots are using embeds for response, but user cannot see embeds if they disabled "Show website preview info from links pasted into chat".
So user will see like this:
image

You can send message with content like this:
![image](http...

chilly siloBOT
#

Description

Add alternative text for embeds when user disabled "Show website preview info from links pasted into chat"

Why is this needed

Many bots are using embeds for response, but user cannot see embeds if they disabled "Show website preview info from links pasted into chat".
So user will see like this:
image

You can send message with content like this:
![image](http...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Manually moved issue #2920

Description

The permissions system needs 3 additions:

  • Hidden option which completely removes the command from the command selection (instead of grey it out)
  • Option to globally hide/show members by id (instead of doing it per guild)
  • Option to (globally) show/hide a command by Discord guild permission (eg. on all servers where ppl. got "Manage Server" they are allowed to use command x

Why This is Needed

While implementing permissions i...

#

Manually moved issue #2877

Description

Add eg. in the Dashboard the ability to customize the interaction failed message. This allows developers to provide more information or links where the user can get help.

This also applies to "Invalid interaction application command". A user didn't know what happened, except knowing that some issue occurred indicated by the text color and exclamation mark

Why This is Needed

Currently, the "This Interaction failed" message isn't...

chilly siloBOT
chilly siloBOT
#

I'm having trouble following this, can you elaborate more? The description really confused me.

  1. Manage messages has no relation to threads, so I don't really get why that is called out
  2. The description makes it seem though that manage messages is really important to this particular bug, but then says "regardless of any other combination of permissions (Manage Threads, Use Public Threads, Use Private Threads and others)."
    But if that were the case I don't get why the bug wouldn't just b...
chilly siloBOT
#

Can confirm the issue the author describes:
I just made a private thread, added my bot to it, and deleted the thread but no gateway dispatch of any kind got sent after the delete occurred. No member(s) update, no thread delete. The bot even sent a message in the channel right before that. Retried multiple times and got the same result. After I granted the bot a role with manage messages, it properly received the thread delete.

I also managed to consistently receive MESSAGE_CREATEs for a...

chilly siloBOT
chilly siloBOT
#

The rate limiting code seems good. I have a couple questions about other stuff in the repo:

  • This seems to be a general C bot API for a few services (Discord, GitHub, Reddit). Is the non-Discord code still supported? It's there, but all the documentation references Discord examples. Is the intent to keep this as a generic multi-API bot library?

  • I see Slash Commands and interactions are on your roadmap. Is there an ETA on their implementation? While we've not taken an official stance ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

The diff is so large that it doesn't like me commenting on lines directly, so sorry for not having links ๐Ÿ˜„

I think Application Command Interaction Data Option Structure at the bottom of Slash_Commands.md can be removed, since the Interactions Data structure has all the relevant fields now (thanks for that).

In that table, we can also note the interaction type that the field is valid for. A fourth column that is just a list of types, like what we do for PATCH channel

![image](h...

#

Of course, appreciate the feedback!

  • Yes in the long-run we want Orca to be a multi-API bot library. But at the moment non-Discord code is undocumented for lacking many critical components users would expect of their API, once those are covered they will be added to the docs.
    Not sure if relevant, but here is a reddit search bot demonstrating cross-interfacing between Discord and Reddit APIs: bot-reddit.c
  • Fair point. ...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

In the given sample program https://github.com/msciotti/discord-game-sdk-test-apps/tree/master/cpp-examples/example-presence tried adding following code in the main.cpp before UpdateActivity to set the game launch link
state.core->ActivityManager().RegisterCommand("chrome.exe https://google.com"); and
state.core->ActivityManager().RegisterCommand("https://google.com");

Neither of above command worked to reflect the game launch link in the users rich presence status. Does the registerComm...

chilly siloBOT
#

Perhaps you'd like to be more specific... but otherwise,

  • bots can send a message component inside a DM, AFAIK, there are no restrictions.
  • I recall a bug wherein buttons don't show up in DMs, so check if you're up to date.
  • not sure what "message" therein means, but if its an error, its because you need to respond back to any interaction.
  • it's possible to send a message with components in a DM if the "command" was triggered in a guild.
#

coughs I think we can get about me/status of user without the need to share guilds and bots with them. By just getting an id of a user, we can make a request to get their tag (username#tag) and use it to make a friend request (and while the request is not being accepted, we can click pending requests and click on their profile to see their status and about me. So how is security being maintained here?
Bots can't do anything with your data, it's indirectly a user behind the bot who wants to...

chilly siloBOT
chilly siloBOT
#

Currently, the Create Message endpoint accepts the nonce field and includes it in the sent message, but the Execute Webhook endpoint does not accept the nonce field.

The nonce field is useful for matching new messages with stored unsent messages. It would be useful for applications that use webhooks to send messages to channels. The messages can be matched using the content, but this is not fully reliable due to Discord's message normalization, which is likely why the client sends the ...

#

The nonce field is used for optimistic message sending, something that I don't think webhooks even care about. The nonce is not stored anywhere, and is only used to match a MESSAGE_CREATE event with a pending http request. Additionally we also use the nonce to dedupe retried messages within a small time window.

Given this context, I'm not sure why nonce would need to exist on webhooks. The use-case you provide seems to be trivially accomplishable by recording the message id.

chilly siloBOT
chilly siloBOT
#

Description
When you cancel the session through tapping on "Cancel, and return to discord" hyperlink, it takes you to a "Successfully page", and the post code returns 200, instead of 400 like it does when you for example cancel a twitter connection. It'll return to this page, https://i.imgur.com/P4VGbV4.png

Steps to Reproduce

  • Head over to billing settings
  • Click on, "Add payment method"
  • Select PayPal
  • On browser click on "Cancel, and return to discord inc"
  • Observe...
chilly siloBOT
#

Upvoting this! In our usecase we require our members to link their Discord account with their account in our organisation, and until that doesn't happen the member will be unable to type in any guild channel. In order to force an update of their roles we would like to use a slash command in DMs where the user indiicates the guild in which they want them updated once they have linked their accounts together.

chilly siloBOT
#

Description
When responding to a select interaction with a message it doesn't reset the state for the user.
(but responding with type: 7 it does reset the state for the user, but you can't respond with a message)

Steps to Reproduce

{ "type": 4, "data": { "content": "test", "flags": 64  } }
  • For a message response (doesn't reset the state)
{ "type": 7 }
  • For the state to reset.

Expected Behavior
Both should reset the state for the us...

chilly siloBOT
#

I've built a visualization and code-generation tool for Discord slash commands!

To my knowledge it's the most robust slash command builder out there. This tool helps to generate and visualize how slash commands will show up in your Discord server. Allows for full UI based Slash command creation, with access to the underlying code for further development and modification.

Current features:

  • Can register guild-specific and global commands
  • Handles complex option configuratio...
#

May I ask, why does this tool require users to link their discord account?

@webtax-gh
As it's written in the description:

* Can register guild-specific and global commands

* For registered Autocode users, will register the commands upon save and generate event handler files for commands as needed as well!

I guess that's why.

My worry here is that registering the commands for a user would require the user to provide a bot token. IMO it's not th...

chilly siloBOT
chilly siloBOT
#

I'd like to add here that stickers should be handled in a manner more like emojis in more ways than one. I've found that if we're looking to track stickers at all, we have limited access to sticker info, like which guild a sticker's originating from. Ideally, a list of stickers would be provided at GuildCreate event, as is provided with emojis. This would then allow us to track/limit stickers in a guild to allow only stickers uploaded to the guild, rather than limiting both external emojis ...

chilly siloBOT
chilly siloBOT
#

As for bios, we absolutely hear the moderation use cases, but we're not comfortable making those accessible right now.

The behavior that we (and you) see, outside of potential moderation issues, is people putting really sensitive, personal information in their bios. We aren't comfortable with that data being scraped.

[...] Presence information that shows what you're doing or short-lived custom statuses just isn't at the same level of a field directly asking "Please tell me per...

#

I think we can get about me/status of user without the need to share guilds and bots with them. By just getting an id of a user, we can make a request to get their tag (username#tag) and use it to make a friend request (and while the request is not being accepted, we can click pending requests and click on their profile to see their status and about me.

this is not true.

Everyone is able to view your bio, even without being your friend or sharing a server with you. Just your name an...

chilly siloBOT
chilly siloBOT
#

We'll serialize the banner image hash on the user object so that bots can start passively getting that field.

As for bios, we absolutely hear the moderation use cases, but we're not comfortable making those accessible right now.

The behavior that we (and you) see, outside of potential moderation issues, is people putting really sensitive, personal information in their bios. We aren't comfortable with that data being scraped.

Privileged intents are great, but the authori...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

On Android, after having already selected an option on a dropdown, editing the contents of the dropdown such that the old value is no longer valid, the text stays

Steps to Reproduce

  • On a dropdown, select an option
  • Edit the dropdown so it has different default items

Expected Behavior

  • Update the text of all dropdowns to the default option/placeholder on an edit which changes it

Current Behavior

  • It doesn't change

**Sc...

#

Description

On Android, a select with 25 options doesn't show correctly, instead repeating some options from earlier.

Steps to Reproduce

  • Send a select menu with 25 options
  • Open it

Expected Behavior

  • Each option is shown in order exactly once

Current Behavior

  • Some get shown multiple times

Screenshots/Videos

On android: https://cdn.discordapp.com/attachments/471069217391771649/864925905118167050/Screenshot_20210714-18463...

chilly siloBOT
#

Description

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

The name key can also appear when a channel gets updated.

Steps to Reproduce

  1. Change the name of a channel
  2. Fetch the audit log

Expected Behavior

In the Object Changed column it should say guild or channel. (and maybe webhooks and other things with names. Haven't tested that)

Current Behavior

In the Object Changed colum...

chilly siloBOT
chilly siloBOT
#

GraphQL!

A lot of companies are switching from using REST APIs to using graphql and I think it's time for Discord to switch too. I see a lot of pros of using graphql. Maybe this could be released in API version 10 or something like that. Some pros of using graphql:

  • Save bandwidth by only requesting data that is needed
  • Run multiple queries or mutations in one request
  • and many more!

I don't know why Discord isn't already using GraphQL like [some other companies](https://docs.g...

#

While cool, I think the chances of this happening are pretty much zero. GraphQL would take a lot of work from the entire company to ship, from infra to developers working on well-known GraphQL gotchas like caching and loading strategies. It's really hard to justify that investment, and would delay us from shipping other cool features for you all instead!

#

While cool, I think the chances of this happening are pretty much zero. GraphQL would take a lot of work from the entire company to ship, from infra to developers working on well-known GraphQL gotchas like caching and loading strategies. It's really hard to justify that investment, and would delay us from shipping other cool features for you all instead!

chilly siloBOT
chilly siloBOT
#

Description:

The oauth scope, applications.commands.update was moved to a client credentials only scope as seen in issue #2443. However, a better alternative would be to add it back as a regular oauth scoped and make it more descriptive during the authorization flow since there are genuine use cases for it.

Why This is Needed:

Registering and managing application commands is more of a one time process, it is not something that developers should really have to write a lot of...

chilly siloBOT
#

Here it states that bots are able to change channel overwrite permissions for other users, given that they either have an overwrite with MANAGE_ROLES allowed in the channel, or have the permissions they are attempting to change allowed for themselves.

While the former case works, the latter doesn't seem to.

To reproduce:

  • Make a new server and clear all default permissions except VIEW_CHANNEL.
  • Cr...
chilly siloBOT
chilly siloBOT
#

Slash commands were officially announced to the public on 24 March 2021, but they're still disabled by default for a lot of users.

Could Discord please provide some indication of when they expect the feature to be enabled by default for all users?

As it stands, short of asking users to enable the feature, bots either need to implement both classic commands and Slash Commands, or just stick with classic commands. Otherwise,...

#

The unfortunate part of this is that the toggle is all-or-nothing. I don't want the markdown preview, but I can't have slash commands without it, so I've opted to keep it off unless I specifically want to use a slash command.

There was some discussion over at https://github.com/discord/discord-api-docs/issues/2368 about letting individual features of the new text box be disabled, but that discussion died quickly -- and in any case, I wouldn't expect Discord to find it worth the effort.

chilly siloBOT
chilly siloBOT
#

Description

Community update crosspost messages' message_reference object now is missing guild_id, which does not comply with docs (which says that crossposts always have guild_id) and also breaks the SYSTEM tag on these messages in the client, showing a SERVER tag instead.

Steps to Reproduce

  1. Have a channel that has received Community Update crossposts (not just the setup message)
  2. Fetch the message via the API, or observe the SERVER tag in the client

Expected Be...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I was thinking there could be some method to indicate the reason for the permission when a user is adding a bot via the oauth bot scope. This can be useful for the user to tick off the permissions that they think isnt useful for them. 1 potential way of this could be to set reason for each permission ( or permissions that were ticked) in the oauth2 tab of the application, and then those reasons are saved and showed again whenever any oauth link is used. Other method could be to use url parame...

chilly siloBOT
#

I ran into this issue today, except it's a required user option and a non-required integer option. The required user option works fine on its own, but if you try to specify the second option it tries to read the rest of the message string as part of the user option value, which is invalid.

https://streamable.com/vb14t4

I have the same issue if the user option is not required. Seems like so long as is specified before another option it will try to interpret other options as part of the u...

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

The documentation doesn't make it clear when the THREAD_MEMBER_UPDATE event is sent. The description of the event says that it's sent when the client user's thread member object is updated, but there aren't any fields in the object that can change. The ID and user ID can't be updated, the join timestamp has other events that are fired when it's modified, and bots can't use notification settings mea...

chilly siloBOT
chilly siloBOT
#

i guess there was a thing for it which would throw a pop up when someone would do for lets say my bot has a prefix b! so, if i person would do b!race then it would pop up all the command beginning with race or related words, but the problem i had with that was that it was too annoying, it basically would throw a pop up for example if i do /[\w]{0,}[\W]/ feel free to tell if its wrong it would throw a pop up, and also tbh, i don'...

chilly siloBOT
#

Description
The uploaded files for stickers are not validated correctly. To demonstrate this, I have uploaded a zip file with the file extension changed to png.

Steps to Reproduce

  • Rename a small zip (or possibly other file) to .png.
  • Upload it as a sticker.
  • Downloading the uploaded file from the cdn can verify that it is indeed the same file uploaded.

Expected Behavior
The uploaded file's content is validated correctly and restricted to allowed types.

**Curre...

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

Hidden option which completely removes the command from the command selection (instead of grey it out)

The commands are actually supposed to be hidden instead of being greyed out iirc, for now they just grey out and it will probably be seen to in the future. As for the other stuff, we really need them, this will solve a lot of issues.
And I had considered the fact that using Discord permissions might interfere with role and user perms, modifying the roles that can use it could just pro...

chilly siloBOT
chilly siloBOT
#

This PR should help eliminate a small amount of confusion when trying to use ephemerals, followups, and ACK.

The first followup response after you defer(ACK), has a few special rules to be aware of. The flags property of 64 can not be changed. If you ACK with a flag of 64 then your response will also be ephemeral. If you defer, without a flags property of 64 you can not then respond with a ephemeral response.

chilly siloBOT
#

The problem is that it might be possible that the bot you expect to respond to the reaction will be there in the other server. So this will become a problem, and those webhooks are type 2 (Channel Follower) which have no link to an application by any means (as per my theory). So it would be pointless for them to be able to create message components which have no endpoint to send the interaction to.

#

Rather than a big info block, let's just restructure this a little:

Create a followup message for an Interaction. Functions the same as Execute Webhook, but wait is always true. The thread_id query parameter is not required (and is furthermore ignored) when using this endpoint for interaction followups.

flags can be set to 64 to mark the message as ephemeral, except when it is the first followup message to a deferred Interactions Re...

#

To be fair, I upvoted this suggestion for two use cases. One is auto moderation that has some sort of response. Typically these responses are automatically deleted by the bot after a short period of time, meaning the user may not have a chance to fully understand what it is saying, imagine if the clyde messages disappeared after 5 seconds or something. The other has actually been replaced already by buttons!

I think that second one brings up a good point though. As we get more interaction ...

chilly siloBOT
#

Hello, While writing an application that uses the Discord OAuth2, I found a documentation or API bug. In docs https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes says that if we use scope "identify" it returns /users/@me without email but it returns with email (screenshot in attachments). In the screenshot you can see the scopes I use and the response from the Discord API. I used 9 version API.
![image](https://user-images.githubusercontent.com/12517122/126216433...

chilly siloBOT
chilly siloBOT
#

Description

When receiving INTERATION_CREATE / Webhook events for select menus, if the min_values is set to 0 and you trigger a menu with no choices, after a few attempts you stop getting the values array in the data

Steps to Reproduce

  1. Send a select menu with min_values set to 0
    Example:

Example JSON message to replicate this with

{
  "content": "Pick me!",
  "components": [
    {
      "type": 1,
      "components": [
        {
          "t...
#

Yeah, the reasoning in https://discord.com/developers/docs/topics/threads#additional-context-on-the-the-threadlistsync-and-threadcreate-dispatches more or less covers it I think. That basically our clients use the thread_member_update event to sync notification settings, they only load that for active threads, so something like unarchiving a thread needs to sync whether the client has joined that thread or not, which is why you get it.

I get for bots though it doesn't provide as much value...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
Slash commands go into an infinite sending state when using them in an archived thread.

Steps to Reproduce

  1. Have a server with threads enabled
  2. Create a thread
  3. Manually archive it as a moderator
  4. Use a slash command in it, observe how it goes into an infinite sending state and never times out

Expected Behavior
The slash command should send the interaction and un-archive the thread.

Current Behavior
The slash command goes into an i...

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

Description

I suggest to add all embed markdown functionality to newly added bot bios, and maybe users. With also ignoring markdown symbols in the bio. Since bios are pretty small, but people still want to use some markdown there, and sometimes that could be a problem. As a solution to that, the easiest way is to use this rendered thing (screenshot) as marker on how many symbols you may use in the bio.

![image](https://user-images.githubusercontent.com/42876964/126319009-cde4f761-16...

chilly siloBOT
#

Currently the Application Command Option Type User only allows you to select users you share a server with. I think it would be better if it allows you to provide any user.

Why:
There is the API endpoint GET /users/$id this endpoint allows you to get every user without any limitation.
Also I think its better for some commands eg /ban currently bot devs have to add a different option like user-id which takes a string when you want to ban someone you don't share a server with but thi...

chilly siloBOT
#

Description
Typing out a slash command that is disabled and then on pressing space or an up or down arrow key when it is the only one in the autocomplete menu (or the other commands in the autocomplete menu are disabled as well) , the command shows up as selected and the list of its options show up along with the list of choices per option as well.

Steps to Reproduce
Go to a guild where a disabled slash command exists that you cannot use but can see as disabled
Type /
Make s...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hรฉ Kimonoy, ce dรฉpรดt est spรฉcifiquement destinรฉ aux problรจmes d'API Discord - les bogues d'applications et de clients doivent passer par DTestersย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  . https://discord.com/invite/discord-testers
How can I report the bug?

chilly siloBOT
#

Description
The create sticker endpoint (ie. POST /guilds/{guild.id}/stickers) responds with 500: Internal Server Error when the Content-Type for the file parameter/part is not set.

Steps to Reproduce

  • Create a request with a multipart/form-data body.
  • Do not set Content-Type for the file paramater/part.
  • Send this request to the create sticker endpoint.

Expected Behavior
The api responds with a json error such as 50046: Invalid file uploaded .

**...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Not sending the description results in the http error,
HTTP: 400 BadRequest. Error message: The browser (or proxy) sent a request that this server could not understand.

However, not sending the name or tags results in the http error,

HTTP: 400 BadRequest. Error message: Invalid Form Body
name: "This field is required"
tags: "This field is required"

The expected behaviour should be a similar error being sent for description since it seems to be required.

chilly siloBOT
#

Description
When updating a thread channel's Slowmode to Off/0 it doesn't send the rate_limit_per_user field, unlike the parent text channel.

Steps to Reproduce
Listen for the THREAD_UPDATE event and see the field isn't included.

Expected Behavior
The rate_limit_per_user field to be sent when it's set to Off/0

Current Behavior
The field is missing when updating Slowmode to Off/0

Client and System Information
OS: Windows 10
API & Ga...

chilly siloBOT
chilly siloBOT
#

This is kinda related to a discussion that I created once here.

Though, it is different. So there was this one user that was banned. However, they're still on the server and that's what I need an explanation for.

They were banned, they are on the ban list, however they are still on the server. If you click on them and check for Mutual Servers, you will also see that they still have the same server in common that they're banned in.

The banned user was also able to send messages.

...

chilly siloBOT
#

Description
I have a server separated by categories. Some categories have bots and that bots can see a channel by role.
The problem is, now with the slash commands (that are awesome), the bot ignores if its role has not permision to see the text channel, anyways if you write "/" the bot commands works.
I propouse that the bots respects if you allowed a role to see the channel (or something like that) to enable it's slash command.
(Sorry for my english, if you need a more clear expla...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

There seems to be an endpoint to get a list of thread members, but this requires the guild members intent. I think there should be a way to get a specific thread member similar to how you can get a specific guild member. This can be useful to check if a user has joined a thread or not.

Correct me if I'm wrong, but I don't think there's currently a way to check this since according to #3485, thread members aren't sent when connecting to the gateway. On top of that, thread member updates aren'...

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

I recently ran into an issue where I had already used my phone number to register an account and was required to send a phone number to chat in a chatroom. Since that number was associated with a different account I was unable to chat.

Instead of an API Freature Request I suppose this is a protocol feature request - do account associations.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
Link message buttons are blurred out and unclickable while "lurking" in a server (not completed membership screening/verification requirements)

Steps to Reproduce

  1. Create a server with membership screening
  2. Send a link button
  3. Join the server (on an alt)
  4. Don't complete the screening, and observe how you cannot click on link buttons

Expected Behavior
You are able to click on the link buttons, they don't trigger anything on press (and you can...

chilly siloBOT
chilly siloBOT
#

Description

Hello ๐Ÿ‘‹๐Ÿป

After an oauth connection with the identify scope I try to update the username of the user as shown here: https://discord.com/developers/docs/resources/user#modify-current-user with a PATCH request on :

/api/users/@me

I have no error but the user object returned has the same username than before.

Steps to Reproduce

1 - Get the user access token with the identify scope
2 - Do a PATCH request on /api/users/@me with this token ...

chilly siloBOT
chilly siloBOT
#

Sometimes people need to delete the message a component was on. However, there is no good way to do this.

At the moment I can think of three work-arounds, all flawed:

  • Use a bot account to delete the message.
    This does not work because not every application using interactions has a bot account too.
  • Store the interaction token for the old message.
    Requires state + tokens expire.
  • Respond with type 6 or 7, and then use the delete original message route.
    This is su...
chilly siloBOT
#

In specific circumstances (please see reproduce section) establishing the start of a voice connection with the gateway appears to be failing without any additional information.

As per the official Connecting to Voice documentation a client should send an Op 4 Gateway Voice State Update and then wait for two response messages, a Voice State Update event and a Voice Server Update event. The documentat...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hey Folks, we have been using discord API in our company. We have been loving the experience till now. We are currently working on an app where users can sign in using OAuth and retrieve their messages from all their servers

We found out that guilds/{guild.id}/channels endpoint gives 401: Unauthorized in response. Upon looking, it was mentioned in one of the forums that the endpoint is not supported for OAuth2 an...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

@ajpalkovic Thanks for the reply, that makes sense to me. Just so I'm understanding, there aren't any new thread-specific message types besides THREAD_STARTER_MESSAGE that I need to handle for this use-case, correct? So for my purposes, the list of message types that could possibly be slow-mode-affected (but aren't guaranteed to be) is DEFAULT, REPLY, and ``THREAD_STARTER_MESSAGE`?

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

eh, i mean, if i am interpreting it right, you want an event to emit when a person removes a reaction, which already exists with the name MESSAGE_REACTION_REMOVE and it does return with who removed the reaction but doesn't provide who originally reacted.
the first reaction in the console below was put by me and then removed by me, the second one was put by me bot and removed by me
![image](https://user-images.githubusercontent.com/72088954/126872479-83025b9c-99ba-411c-a55e-6796fa3b2c74.pn...

chilly siloBOT
chilly siloBOT
#

Currently the reason for a ban isn't included in the GUILD_BAN_ADD event.
So to get the specific reason you need to make a request to the GET Ban route.
It would be way better to include this also in the GUILD_BAN_ADD event to get the reason directly instead of making another request to Discord REST API.

The new payload could be:

FIELD TYPE DESCRIPTION
guild_id snowflake id of the guild ...
chilly siloBOT
#

It would be super interesting if there was a field with the ISO8601 timestamp of the moment the user was banned in Discord's ban information, it would help a lot in commands such as ban information or even to filter bans that occurred in x moments.

Currently the API only provides the following fields:

{
 "user":  "Banned user",
 "reason": "Ban reason lul"
}

I suggest implementing a field (banned_at) with the ISO8601 timestamp of the moment the person was banned, exa...

chilly siloBOT
#

add a "persistent" field to selects that if checked would have the client store the users selection, and only send an event of it was changed. This would be useful for bots granting roles, as users could quickly see what roles they had selected and the bot would only have to respond to an event when they changed. Another possible use is for storing users settings (like data collection opt outs) if the select is stored the user will always know what they selected.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
When responding to type 7 and providing an attachment, instead of overriding the old attachment, a new attachment is added to the message. This seems to ignore the 10 files/message limit typically imposed by other means of sending a message with an attachment.

If I'm not mistaken, this discussion is partly related.

Steps to Reproduce

  • Invoke interaction
  • Respond with Type 7
  • Supply an attachment ...
#

The new attachment is appended to the message.

This is the correct behavior for a patch with an attachment. To remove attachments you need to use the attachments parameter which is currently unsupported. Adding attachments to this interaction type is also not officially supported yet. I also reported this limit not being enforced a while back when support for attachments was added to the api, but it seems not be a priority.

chilly siloBOT
chilly siloBOT
#

Note: this is a continuation of #2452

The Problem

At the moment, it is really hard to do advanced validation of commands, and still imply that the command failed.
Although introducing a regex option would help, i still doesn't fully solve the problem.

The Scenario

I want to make a music bot, that plays music from youtube. Here is the structure for my command: /music name:string
When the user runs the command, I want to be able to tell the user if the bot was able to find the ...

chilly siloBOT
#

Description

We need a "GuildOnly" option for global slash commands, which would disable global slash commands from being used in DM channels.

Why This is Needed

Many developers want to be able to disable global slash commands in DM channels, but keep them open for @everyone in guilds. Currently, if you want achieve this, you have to:

i) Set DefaultPermission to false when creating your slash command
ii) Loop over all of your guilds and edit the command permissions to en...

chilly siloBOT
#

i) Set DefaultPermission to false when creating your slash command
ii) Loop over all of your guilds and edit the command permissions to enable it for the @everyone role
This is not the only ways to prevent slash commands from being used in DMs. You can just check the raw interaction object to see if it contains a guild_id, if it doesn't, it probably got used in DMs. (some libraries also have methods to check if the command is used in a dm. DiscordJS has interaction.inGuild() for ex...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

Issue with the character counter in the multiligne code block . In the multilinge code block, the tabulation character ("\t") is count as only one but before sending the message the tabulation is replace by multiple space so it create a issue and a error message is show.

Steps to Reproduce

To recreate the bug you need to open something where you can write multiple tabulation. (you can't go directly in dicord because a tabulation is 2 space and not a real t...

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

Description

  • Unable to scroll all the subcommands available for main command.

Steps to Reproduce

  • Get any slash command that have 25 options, try to scroll down all available subcommands. The slash command structure is :
Main Command
    --sub command
    --sub command

Expected Behavior

  • It should be able to scroll all available subcommands under the main command name

Current Behavior

  • Subcommands only stop at subcommands no. 7 and ...
chilly siloBOT
chilly siloBOT
#

I would like to use buttons inside of embeds. More specifically, buttons disguised as Markdown links. Clicking a link would do the same thing as clicking a button.
This could be done by adding a new pseudo protocol, let's call it interaction:// for the following example
Now with this you could then create an inline "Button" with the custom_id "example" like so:
[This is my button](interaction://example)
When clicked it would act exactly the same as a regular component button ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Wondering if there's any updates on this since the threads developer beta is ending.

The developer beta had a good purpose, but it doesn't make sense to shut it down. Not everyone is building features for threads within a month of them being released. The same goes for any other nitro/server boost only features.

The threads developer beta proves that there's a good way to let developers use premium features without it being abused. Limit the member count of the guild, making abusing free pr...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

The API does not appear to provide a way to edit a message previously sent by a webhook in a thread through thread_id parameter.

Steps to Reproduce

  • Send a message with a webhook and specify a thread_id.
  • Make note of the message ID and thread ID.
  • Try to edit the webhook message with Edit Webhook Message endpoint.
  • For good measure, try to add thread_id query parameter to the URL.

Expected Behavior

Message is successfully edited.

**Cur...

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

its not really an extension as the labs contains a reworked version, you cant have both at the same time

Fair point

Sorry i went off total nuget and i have one other package lol, labs comes in the meta package just like dnet and sub components for certain scenario, the total downloads are 16k yes

Yeah, I think the number of the real downloads is important so the core package.
Because the others are downloaded additionally

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

According to current API docs, executing a webhook can post in an existing thread, but as far as I can see cannot start a new one.

I'm requesting ability for a webhook message to create a new thread.

Use case, which echoes user documentation for threads: having announcements posted which automatically create a thread to discuss that specific announcement.

chilly siloBOT
chilly siloBOT
#

It would be a nice addition if message and reaction collectors could be built in as part of bot interactions. For example, you could create a message collector, the bot would show something like is listening... until you send a message. This could be accompanied by filters, timings, etc. The same would go for reactions.

This lowers the reliance on message content, especially now that message content is becoming a privileged intent. It would make input collection for developers much easi...

#

Description

Creating an event through the Event Channel doesn't successfully work. It's stuck on the preview your event page.

By checking the requests, it seems that a POST request to https://discord.com/api/v9/guilds/{guild-id}/events returns 404 Not Found.

Steps to Reproduce

  1. Click on the Events channel in your discord server.
  2. Click on Create Events.
  3. Fill in an Event Topic, Start Date, and Start Time.
  4. Click on Create Event.

Expected Behavior

Af...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

It would be helpful to allow bots to have access to messages that mention them, because they can provide a bit of a middle-ground between message commands and slash commands. They don't bring the security concerns of message commands because a user has to explicitly mention the bot, and they still allow more control over commands than is available with slash commands.

Other than that, I imagine developers could use messages like this to build something other than commands, without needing ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

The message content intent impacts (almost) everyone. The feature set of interactions is already decent, but there are common requested features which need to be realized to fully switch to interactions for most bots.

Similar to the Slash Commands master feedback list it makes sense to provide a list of features which will be realized until the intent will be required.

With the help of this list developers will be able to plan the migration to Interactions where they already can include upc...

chilly siloBOT
#

Description

Slash command argument inputting glitches with IME.
@advaith1 told me please report it on github so I reported here.

Steps to Reproduce

  • Type slash
  • Enable IME
  • Type something and convert

Expected Behavior

It will be
/nick new_nick:ๅ็„กใ—

Current Behavior

ๅ็„กใ—/nick new_nick:ใชใชใ—

Screenshots/Videos

https://user-images.githubusercontent.com/59691627/127618170-6a22b040-3154-44b2-97ad-dfb6beb42158.mp4

**Client and System Info...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Here's an example from my use case: my regular commands have an argument where you can specify a user (ID/mention) or string. If the option is a user, the bot will use an option saved for that user in our database. Otherwise, the string passed in will be used.

The current closest thing that's available would be to use a string type and parse out user mentions like in regular message content.

chilly siloBOT
#

Hi everyone! We have an important update to share.

As the popularity and number of Discord bots grow, it's important to keep our users and developers safe and healthy. This means from time to time, like any maturing platform, we need to update our policies to reflect the current needs of the ecosystem.

In April of 2022, message content will become a Privileged Intent. Like other privileged intents (Presence and Guild Members), it will require approval and affect only verified bots.

...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I'm proposing a message component where users can input raw text. This could be useful for things like interactive setups where you want users to input certain text as you go along. Somewhat related to this, see #3357

This would be a great addition to have because of the intents change. This way, bots can still accept certain user input without compromising the privacy of having bots reading messages.

#

Description

The hello payload in the voice connection is incorrectly documented. This either means the documentation was wrong for 4 years, or that there was a breaking change on voice v1/v2. Neither is good.

Steps to Reproduce

Connect to voice, on version 1/2.

Expected Behavior

The hello payload is {"heartbeat_interval":55000}.

Current Behavior

The hello payload is {"op":8,"d":{"v":1,"heartbeat_interval":55000}} for v1 or `{"op":8,"d":{"v":2,"heartbea...

chilly siloBOT
#

Something that would be really nice for bot developers would be internationalization support on interactions for individual users. For example, slash commands could then have numerous names with one for each language. Depending on what language the user has set on discord, it would show the corresponding name. Then when the interaction is used, discord could send the language in the payload so the bot would respond in the correct language.

chilly siloBOT
#

Description
The action_type field in an audit log entry is sometimes null. Based on some discussions, it was suspected that there was a race condition leading to a malformed record.

Steps to Reproduce
This seems to happen fairly randomly, but has been happening since March 30th, 2020 (or earlier). I don't have consistent steps to create an audit log entry with action_type of null, but an existing entry with action_type of null will consistently return the same value.
...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

Not all and commands appear when typing "/". Only 4 appear.

Steps to Reproduce

  • Type "/".
  • Observe the results and scroll through them.

Expected Behavior

All available commands are shown for all the bots.

Current Behavior

  • Only 4 results show while the other bot shows them all.
  • When typing "/vo" they appear. However there's a maximum of 7 results.
    In the second image below, "Guacamayo" bot should have more results starting with "/vo...
chilly siloBOT
#

I'm using discord.js to set commands, however the issue is from the Discord app.
The following commands are from discord.js. Sorry if it isn't helpful.

What I belive caused the issue was that I ran:
client.guilds.cache.get(guildID)?.commands.set(all_commands_array);
Then changed some commands and ran client.guilds.cache.get(guildID)?.commands.set(all_commands_array); again.

I fixed the issue doing :
client.guilds.cache.get(guildID)?.commands.set([]);
and then
`client.guilds...

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

Imo a much-needed feature.

As much as people want to deny to have anything to do with NSFW can we not deny the fact that NSFW exists on Discord and people will use and offer NSFW commands just because they can, so having a way to tell Discord to only display the command in NSFW labeled channels would be a good way to only show those commands to those people that are allowed to.

#

On Sat, Jul 31, 2021 at 6:14 PM Andre_601 @.***> wrote:

Imo a much-needed feature.

As much as people want to deny to have anything to do with NSFW can we not
deny the fact that NSFW exists on Discord and people will use and offer
NSFW commands just because they can, so having a way to tell Discord to
only display the command in NSFW labeled channels would be a good way to
only show those commands to those people that are allowed to.

โ€”
You are receiving this because ...

#

My bot has several commands that allow to define multiple users through mentions.
While Slashcommands offers a user argument is it imo really limited by only allowing a single user instead of multiple.

Most people that use my bot enjoy the fact that they f.e. can hug or pat more than one user, as it allows them to "Spread happiness and love to multiple people" to quote one user.
So having this limitation is extremely annoying and can, such as in the above case, destroy the fun because no...

#

I just drop in here to provide some reasons as to why I currently won't switch to Slash commands and, given the planned deprecation, most likely will discontinue my bot if these problems/features haven't been added yet to Slash commands.

  • Slash commands don't support new lines yet.
    I was told that a fix is on the way and should be implemented within the next 3 months(!!!) If this really takes this that long will I already have lost a 3rd of the supposed time we have to move.
  • No opti...
chilly siloBOT
#

Another thing I'd add to the list is since slash commands is being pretty much needed for bots, why have a separate scope for it.
All bots would need applications.commands now so it doesn't make sense to require 2 scopes for the bot to function in the server.
And there currently isn't a way to tell which servers have the scope added until you make a request(I've already brought this point up with Ian but most likely doesn't hurt to be posted publicly)
Imo keeping the scope will just c...

chilly siloBOT
#

Description

  • A link, similar to the current thread/channel link, that once clicked by the user will add them to the linked thread. This can be triggered by buttons (such as a "Join the Conversation" button), hyperlinks, or any other linking method

Why This is Needed

  • It can be used for members to quickly and easily join threads without the need of pinging them and cut down that extra click to easily join the conversation occurring in a thread.

Alternatives Considered
...

chilly siloBOT
#

I would like to go into detail on why I believe this entire idea is just not ready to happen so soon and I would also like to give an alternative idea that could be far better.

  1. You are forcing all the bots to have the same prefix with slash commands. In case you don't know, there's a good reason why all the bots have different prefixes, to avoid interference and confusion in servers with more than 1 bot.
    1.1. Your answer to that is an UI that only shows 10 commands for a command search...
#

I do agree with @Andre601 but one issue with slash commands is, The api would sometimes fail or crash in the process plus discord need to remove option to remove slash commands on bot invite since it breaks bots quickly, we are forced to use the same prefix, this is the dumbest decision by discord, why? Discord Developers ain't getting updates at all sometimes the message would fail but when discord says screw this and forces all developers to be in slash commands is the dumbest decision and...

#

The scope mostly serves to allow applications to provide commands without the use of a bot. A way to set required scopes would be nice.

Downside of the scope is, that bot accounts may show as offline if the bot is Rest-only, which can give the impression that they are not active and therefore broken/discontinued.
Maybe have a heartbeat-like setup for applications.commands only bots would be a way to go?

#

One more thing I'd like to mention.
With the current setup for slash commands it's not possible to limit a bot to a certain channel.
Example: Dank Memer's slash commands only be used in #dank-memer channel etc.

It's not possible to do it via permissions due to the way interactions work, it would require all bot developers to add a system for servers to configure the bot/application to only respond in x channel
Which is a shit setup and gives less control to the actual servers.

W...

chilly siloBOT
#

Certain people and bot lists find it really cool to grab my bot ID (which is same as my client ID) and generate their own invite link which lacks scopes.

Some people only add applications.commands and the complain why my bot is giving them the same error message for all commands telling them to add the bot (and somehow fail to understand it). It would be nice if we could force the bot scope when adding a bot with commands. The reverse of this is also useful as someone added it with only b...

chilly siloBOT
#

Description
When typing quickly, slash commands with a shorter name will be selected automatically
For example, the command /use is being selected when I type /user

Steps to Reproduce

  1. Create a slash command with any name (eg user)
  2. Create a slash command whose name contains the start of the other slash command name (eg use).
    Note: in my case, this has a string argument, but I don't know if that's required to reproduce the issue.
  3. Type the name of the longe...
chilly siloBOT
#

I got this error
`TokenError: Invalid "code" in request.
at Strategy.OAuth2Strategy.parseErrorResponse (/home/runner/botlist-7/node_modules/passport-oauth2/lib/strategy.js:358:12)
at Strategy.OAuth2Strategy._createOAuthError (/home/runner/botlist-7/node_modules/passport-oauth2/lib/strategy.js:405:16)
at /home/runner/botlist-7/node_modules/passport-oauth2/lib/strategy.js:175:45
at /home/runner/botlist-7/node_modules/oauth/lib/oauth2.js:191:18
at passBackControl (/home...

chilly siloBOT
#

Description
Threads slash command's title field has no limit of any type allowing to send one with a name longer than the limit of a channel name which returns an invalid form body error

Steps to Reproduce
Type /thread name: [Text of over 100 characters] message: [anything]
Try to send it

Expected Behavior
Command doesn't get sent since the name is over the limit

Current Behavior
Command gets sent and a an error is returned

Screenshots/Videos...

chilly siloBOT
#

I think this is a great change, and if this means that slash commands and message components will have a higher priorty for releases, then I'm all for it.

I think the change is great, especially because only ~10% of bots (speculation) have the commands that truly need the message content to do their fancy stuffs. However, the other 90% of bots really just serve commands (again, speculation).

I think libraries are going to have all the support, at least the major ones, way before this c...

chilly siloBOT
#

Maybe a guild-dashboard for bot-specific settings (i.e. what channels commands can be used in, which should be active/inactive, etc) could be an idea to set a new prefix for a bot and its command.

In general should Discord try helping the devs in managing their commands. If we're supposed to use THEIR slash commands should they at least give a way for the end user to choose where what command should be used.

I mean, we already have a dedicated place for bots, which is the Interactions s...

chilly siloBOT
#

Bots already have a dedicated page, which is under the Interactions section of a Guild, and I think it would be beneficial to have a tab there to edit and customize the settings of slash commands a bot offers.

The reason behind this is somewhat simple: Control

A server owner or staff member may not want commands to be executed in all channels, and while there is the Use Slash commands permission, is it more an all-or-nothing solution. You either can enable all commands of a bot or non...

#

I feel like that the bot scope should also include the rights/settings for the applications.commands one.

Why?
Well, with Slash commands becoming pretty much mandatory for verified bots in 2022 is the applications.commands scope a pretty much-required scope, so why not just include it into the default bot scope?
I can imagine many devs out there having an old bot invite somewhere that they forgot about and that still only has the bot scope, and with Discord not offering an automa...

#

I've submitted the exact same thing in the survey, posting it here for the world to see and maybe comment on:

<hr />

As I said I understand "why" discord is making these changes -- that is, I understand what problem is being solved there, and I agree that it is a problem and that it needs solving. But I do not understand/agree with the chosen general direction of the solution.

The overall strategy that Discord seems to be executing is that all interactions with bots have to conform t...

#

Can agree with most parts, most prominently that the 100+ guild requirement and the separation of small bots not requiring approval for anything is annoying.
Sure, Discord has this for all those private bots that are on your own servers and only used for QoL stuff, but it's still quite annoying to have such a separation.
We "big bot devs" need to follow the rules while the smaller bot devs can just say - excuse my language here - "Fuck you all!" and do whatever, only to then be surprised wh...

#

Like it sure is an interesting idea, but it would then require bot devs to understand stuff like glob patterns or regex (if that would be used) and not everyone understands this...

It's a sketch of an idea ("Come up with...", "something like") that I provided just to demonstrate that there's leeway in design space. But if the core principle of "interactions are interactions" stays in place, then all of this is moot anyway.

chilly siloBOT
#

Library support will absolutely be an issue. As someone who is essentially a solo dev for a library, the time frame in which

I do think this will be an issue with solo-devs and their libraries. I don't know of a good way to handle this, but it's something that can and will affect some people. I can hope all I want for people to help out by contributing more, but I know that's just wishing on a star which is not a solution. My main focus is with using big frameworks or libraries, such as ...

#

Library support will absolutely be an issue. As someone who is essentially a solo dev for a library, the time frame in which they plan to add new features which are intended to make the change "palatable" will easily wear down people like me who have no help vs an entire team of engineers working on new features.

I agree. Discord is pushing out more features than what people can handle.
And a few people such as MinnDevelopment are already burned out from past events and such and retired...

chilly siloBOT
#

May I add, would you consider this intent to be pushed back another 6, 8 months to make room for these updates to take place?

Or, better yet, Discord releases the toolings we need first, maybe take the 9 months to 'complete' their slash and message components, then give a 6, 8 month notice for the intent to be enabled for verified bots?

Do you think this would be a viable alternative to what we have now?

chilly siloBOT
#

Hey yall, moosh here.
Just putting my 2 cents in - In short, I don't feel like this change is ready to happen yet, even in April 2022. I feel like this is a problem that needs solving (message privacyt, BUT -

I feel like interactions as a whole are still half baked. Slash commands don't support variadic arguments, which is a huge deal, because the best solution for now is to slap an absolutely massive amount of optionals in the arguments list. That looks bad, and can be confusing.

Mu...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Just a thought, but wouldn't it make sense that if you press Tab multiple times it would delete the current option if the current option has an empty string and replace it with the next option in the list? This would allow a user to easily tab to a single option later in the list without then having to go back and delete all of the empty options.

chilly siloBOT
#
**Hold on a second!**

You are about to grant a bot read access for ALL messages in your Server!

Bots cannot read messages in your server by default and clicking "I understand" will allow this bot to do so.
This means that the bot will be able to read every message you send in your server, including those about which Wumpus is the best one (It's clearly shiny Wumpus!).

It's recommended to first read the [Privacy Policy]({bot_policy_url}) of the bot to see if...
chilly siloBOT
chilly siloBOT
#
**Hold on a second!**

You are about to grant a bot read access for ALL messages in your Server!

Bots cannot read messages in your server by default and clicking "I understand" will allow this bot to do so.
This means that the bot will be able to read every message you send in your server, including those about which Wumpus is the best one (It's clearly shiny Wumpus!).

It's recommended to first read the [Privacy Policy]({bot_policy_url}) of th...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I like Slash Commands. I like Interactions. I'm excited for the future. But I'm concerned with how quickly this was rolled out and how lacking communication on what we can expect has been. Slash Commands and Interactions are not ready for the primetime, and us bot devs are not stuck waiting for our libraries to implement features that don't even fully exist yet.
Here's my current list of concerns and grievances.

  • No Union type arguments. I can't make a /help [string or channel], for inst...
chilly siloBOT
#

Currently caching data received from the API is pretty hard to cache effectively. Of course there is gateway events that update the client about certain changes, but not only do some bots not even connect to the gateway, but there's also certain things that don't have gateway events that would inform the client about changes. Therefore there is no way to check if the cached data for those things is still up to date, or if it has changed already, without making a new request and checking the c...

chilly siloBOT
#

I think that the "check this box to allow this bot to view messages" fundementally won't work, sure you're giving the user the 'choice'. However it's firstly the illusion of choice as a large majority of bots will request this solely for prefix commands, and secondly most users won't likely understand how bots work and what the potential for abuse is, and people have the tendency to give bots way more permissions than they need (eg administrator)
It's a nice idea, however I don't think it ad...

chilly siloBOT
#

I thought I'd put my 2p in here both from the perspective of a bot developer using a 3rd party library and as a user of slash commands (and pulling some feedback from users of my bot too).

I will start off by repeating some of the points from earlier comments to get that out of the way:

  • I agree with the intent here to protect user privacy and I do agree with the underlying problem and solutions of restricting it by an intent. - I think the 100 server limit is very double-standard and ...
#

This issue has been discussed multiple times:

The old stance on the names:

Our API only supports emoji in unicode characters as syntax. Colon based formatting is a client construct (clients convert colon based formatting into unicode characters) that our API doesn't understand or deal with, so it has no place in our API docs.

Guild stickers have changed this as their tags now accept a "Discord name of a unicode emoji".

If this is to kept as it is then we should really get a li...

#

Finish the job before forcing me to use the half baked toolset

100% agree, but to be very honest, the way this feature seems to be, I don't think it can quite replace prefix commands in every extent. Slash commands were meant to use built in commands only for a long time, just like for example in Minecraft. And now pushing every single command from every single bot onto there is gonna get messy anyway. In my opinion part of the concept really needs to be reinvented.

chilly siloBOT
chilly siloBOT
#

According to https://support-dev.discord.com/hc/en-us/articles/4404772028055, access to message content, embeds, attachments, and components will soon be restricted. Presumably, mentions, mention_roles, and mention_channels will not be restricted since I don't see anything about these in the article.

My library (Discordia) provides mention data in a way where message content is parsed for all relevant <> bracket style mentions including users, roles, channels, emojis, and d...

chilly siloBOT
chilly siloBOT
#

That happened to me yesterday. I spend almost a whole day trying to find out why Discord was not caching my images, and it just started to work suddenly.

Before it started, I received a response saying that I was being Rate Limited.
I suspect Discord banned me for a day.
If that's possible, we should be able to check somewhere if we're blocked or not

Error: You are being rate limited. (discord/channels@0.0.3/messages/create)
    at IncomingMessage.<anonymous> (/opt/node_modules/...
chilly siloBOT
#

Really loving the Integrations so far, especially as a bot creator!
I would like to suggest this option and would appreciate any feedback on it.

Currently, we can have only one Select per action row in a View.
However, in case of small labels (and no descriptions), two Selects next to each other might look better.
Here is a basic draft of what I'm talking about:
inline_selects

O...

#

A better example of how annoyed I got was I have a /devtool stop command and I kept typo-ing /devtool s stop because Discord put my S in the argument when I intended, incorrectly, to do /devtools stop [...]

This concerns me, because I have separate commands /stat and /stats, and this is going to cause immense pain if this is true.

This isn't speculation, this is an experience I had

chilly siloBOT
chilly siloBOT
#

I had similar experiences with Discord's /nick command.
Like I have a bot on my server that uses text commands (not slash commands) with a / prefix and it offers a /nickname <user> --random option to randomize a user's nickname...
But because Discord offers a /nick command, and because the client is shit at understanding what commands I actually want to use, did it think I meant /nick and auto-splitted the input right after that. So /nickname became /nick name at the end...

...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
Slash command options do not have a length limit like messages (2000/4000). As long as you keep pasting and editing the option to add more characters it will accept it, and the API will process it.

Steps to Reproduce

  • Create a slash command that takes a string
  • Paste in 1000 random characters as the argument.
  • Backspace until the cursor is back inside the argument and you can add more text in.
  • Paste another 1000 characters.
  • Rince and repeat the ...
chilly siloBOT
#

I remember the biggest deal with slash commands was supposed to be serverside and clientside validated arguments - what's the point of that, when there's so many arg types that the only way to implement is through a string arg you parse yourself? Even a regex arg type would be amazing, if we could filter user input that way.

I'd like to mention discords own new built in /thread command fails clientside validation and has to hit the server before failing. It presents the need for restrict...

chilly siloBOT
chilly siloBOT
#

The limit is really very prohibitive for no reason and impacts my bot. Some suggestions/ideas if discord is seeing this:

  1. Add a bulk route which takes in the maximum amount of emojis in a server, and ratelimit it the way it is now.

or

  1. Allow verified bots to fill a form showing the use case and get ratelimits increased.

or

  1. Just remove the prohibitive ratelimits for verified bots.
chilly siloBOT
chilly siloBOT
#

default_permission is a command property, but permissions are per-guild. I'm making a system where a global command defaults to requiring a Discord permission, but server admins can optionally set mod roles to override that. I'd like to set command permissions if the admin sets mod roles, but I can't change it to being disabled by default on the guild, so I can't. I'll just make it check the member's roles when the command is used, but that's suboptimal UX.

chilly siloBOT
#

Description

I'm using Discord API to get user avatar. Once I've logged in user, I exchange code to get token. During exchange, I get an error :
{"error": "invalid_request", "error_description": "Invalid "code" in request."}

My code is :
`
var params = new URLSearchParams(location.search);
if (params.has('code')) {
var xhr = new XMLHttpRequest();
xhr.open("POST", "https://discord.com/api/v8/oauth2/token", false);
xhr.setRequestHeader('Co...

chilly siloBOT
#

Few things here:

  1. You posted your token. Either reset your token or expect your account to be banned as someone out there will definitely abuse that.
  2. This really isn't the place for these questions. The best place would be the DAPI server which has channels for these kinds of questions.
  3. The 400 error you are getting means something on your end is incorrect. Not a bug with dapi. Refer to 2.
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Myself and a few others noticed when implementing both the deaf and mute properties that these are not sent in GUILD_MEMBER_UPDATE. I have not been able to get these fields to be included in the json Discord sends with the members intent. It does not fire when someone either deafens/mutes themselves or gets server muted/deafened. It also doesn't seem to be included when someone is muted/deafened and something else causes the event to fire.

I have noticed that these fields are includ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

My project lacord is a discord api client for lua built on top of the lua-http framework.

Relevant parts of the implementation in regards to ratelimiting:

Calculation of delay when we run out of requests:

Handling 429s:

The project offers almost full coverage of api methods, and transparently supports interactions and slash commands over the gateway. I also have a webserver built in as a low level way to receive slash commands over outgoing webhook. I also provide a sister ...

#

Proposal
In light of messages becoming a Privileged Intent next year, it might be useful for users to be able to pass one of their own messages as an option to a Slash Command.

Use Case 1
Someone might be organising a tournament. They want people to register their intent to participate in the tournament. So, they write an announcement message, and then have a bot reply to their message with two buttons: 'Attend' and ...