#github-notifications

1 messages · Page 31 of 1

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

For the past months did I consider whether I should write this here or not, but after the info that the Discord.py Dev stoped his work because of recent events did I now decide to write this down.

It will be a long read, so I won't blame you, if you either stop midway or take breaks in-between.

For multiple reasons, including to have proof that I wrote this, will this be crossposted to a Gist and also a web-archive entry made.

Links are here and here.

Why this post? Wh...

chilly siloBOT
#

Small not to their credit; in the past year or so they have reached out to library developers, as Danny pointed out in his letter, so we do have a head start on working on newer features.

The issue is now becoming that we are largely working on these projects as a hobby in our free time. We have significant others, children, work, social obligations, etc that need to come first which makes it prohibitive to keep up with the pace of new features. It's very likely over the next year that new...

chilly siloBOT
chilly siloBOT
#

This was pointed out in the Gist of Rapptz where Discord seems to have a server for big bot devs to share sneak-peeks with them, but not with those that need to squeeze this API change into their libraries to even support it.
A fellow dev, who has a large bot even mentioned that they (Discord) no longer seem to invite devs to that server in those cases.

The reason they don't add new users to DInfra is because it's not used anymore. Library developers and large bot devs get access to h...

chilly siloBOT
#

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

Main issue with this is that the context menu is still really clunky for people needing to follow-up for more info. Right now I have a bot that binds reacts to messages in order to open forms, and I have an argument that accepts a message ID- but there's no real validation for this except through my own code. Having an option type that explicitly asks for a message/id (or even a channel-message combo id) an...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Apart from the fact that you can't verify some statements from Danny's gist, Danny is absolutely right. This is not a technical problem, not a problem of missing libraries or incomplete forks, these are all problems that the community will solve sooner or later or has already solved.

It's about the systematic ignorance of Discord's decision makers and the constant disregard for developers who voluntarily add tremendous value to this platform.

Sure, developers have a certain amount ...

chilly siloBOT
#

I'm using Discord since 2015 and i watched the development of Discord & API and i can state that, i had no idea that Discord is "listening" the Big Bot Developers rather than the Library Developers. The funny thing is Big Bot Developers are using the already exist Libraries like D.py, D.js, Eris and many more. Mostly they are not the one who implements Discord API features to Libraries/Bots. The sad thing is Discord is not giving a damn shit about this situation. I can understand the frustrat...

#

This PR adds Hata to community resources.

Hata is an async Discord API wrapper written in Python.

The library tries to do things differently than other Python wrappers - its main feature is supporting multiple clients with shared cache between them.

It also aims to be fully PyPy compatible for the best performance, and it supports the newest features natively like slash commands, components and context commands.

It properly handles ratelimits...

chilly siloBOT
#

Is Discord actively debating with Library developers about upcoming updates and features? Do Discord really listen the Library Developers as a primary feedback source for features? If Discord doing this, why many Library Developers are stating that Discord is not publishing or announcing changes and features on Discord API with them? Are Library Developers lying to us Or is Discord trying to get out of this situation by saying that it's listening to the library developers? Could you please en...

#

It's understandable Discord is not required to change everything according to feedbacks but the question is, aren't both Rapptz and @Andre601 mostly stating the facts about Discord and API Development? Discord released unfinished Slash Commands, have not so good Verification System (Identification must be provided. And i'm even not going to dig how Discord store or validate the datas they got) and now Message Intents that can and will break nearly all bots over 100 Servers. We just want Disco...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

This is how the REST API has always defined the range limits for Snowflakes across the board (0 >= Snowflake >= 9223372036854775807); this behaviour definitely isn't unique to this endpoint.
And honestly I think you might've misread the documentation a bit, all it says is "Because Snowflake IDs are up to 64 bits in size (e.g. a uint64)" where it's stating that snowflake IDs are up to 64 bits in size while giving uint64 as an example of an integer which is 64 bits which is honestly a bit misl...

chilly siloBOT
chilly siloBOT
#

See #336 and #339. I think b1nzy's "effectively unsigned" means that they are always >= 0, but the upper limit was always limited by Cassandra's use of signed ints.

HTTP Error 50035 : Invalid Form Body
NUMBER_TYPE_MAX in before : snowflake value should be less than or equal to 9223372036854775807.


So using `uint64` as an example is misleading, but I guess it's not completely wrong.
chilly siloBOT
chilly siloBOT
#

i agree with this, i have a verfied bot that has +200 server and it has a leveling feature, this will be closed by april 2022 because they are forcing developers to switch to "Slash Commands". the biggest bots like Dyno, Probot, MEE6 will get the intent instantly and these bots developers are not required to apply for this intents.

Applying for intents Issue

**the applying for intents is so bad, you can wait at least 8 months to reply to you either your bot has been accepted or no. ...

chilly siloBOT
#

Hey @Andre601 !

Thanks for the detailed post - it popped up in my Google news feed this morning so I'll add some input.

Discord is a great place to communicate with friends and as time has gone on, the service has gotten worse. In your post, you discussed how bot developers don't get the help and attention that they need. The features that they are adding actually can hurt developers more than help while Discord ignores feedback. I'm a game developer on Discord, my game is only small bu...

#

I agree.

The small talk with the devs is something positive, but stuff like having it that private (And maybe leaving out future library devs and not to mention the contributors to those libraries) plus having things like making devs signing a NDA (For those not knowing: NDA stands for "Non Disclosure Agreement" and is essentially a legal paper telling the signing person what they can and can't share from their meeting, work, etc. with outsiders. In this case what they can and can't talk a...

#

I started with my bot 3 years ago and it was out of passion for something I enjoyed. When it grew was I happy, because it brings joy to many other people.

Now when I look at the situation and see what I need to do now to continue, which is using slash commands, do I no longer see the fun in it and just more and more work to get stuff done.... This is no longer the platform I liked to chat on...

#

Library devs do get early access to use/implement upcoming features and provide feedback, Discord reads the feedback but they don't always make changes due to the feedback

The issue here is that only they get this access, so they will need to make the starting PR to their library.
Communities are a great thing to move things forwards. A lot of awesome open source projects probably wouldn't be where they are now without the constant inclusion of the community and their PRs.

But with D...

#

This hits the nail right on the head. With slash commands / interactions, bot development feels like it's heading towards being very business-like rather than something one human being is doing for other human beings. Even without considering whether the API is what it should be, as someone who makes stuff because my passion is to write software that helps other people, this is very demoralizing.

#

To be honest, with the way message intent works, will your Level system perhaps still work.

You still get the message event, but just the content is hidden/removed, so at most would you lose a way to check if the message contains bad words or similar to prevent leveling, but even then could Discord be nice enough to grant you this intent for the leveling thing..... if they're nice...

#

This hits the nail right on the head. With slash commands / interactions, bot development feels like it's heading towards being very business-like rather than something one human being is doing for other human beings. Even without considering whether the API is what it should be, as someone who makes stuff because my passion is to write software that helps other people, this is very demoralizing.

It truly is.
Now bots can have a unique personality through their commands. With custom pre...

chilly siloBOT
#

I still remember that one video about the introduction of Nitro, where Discord claims they will never put core features behind a paywall... Oh how fun where those times.

If you look at other companies besides Discord you see these things a lot.
You shouldn't focus that much on the past, pretty sure you've also claimed things and said things that at this moment aren't true.
Things change over time.

chilly siloBOT
#

Some data protection acts are necessary, as discord becomes more and more mainstream platform it needs these measures in place, but I think their solutions, their execution and communication is completely out of order. Everyone reading this has probably been on discord for multiple years, built a bot or two, and its us developers that have made its success. If there were no bots discord would be boring, and if there were no library developers there would be no bots. The developers are the hea...

chilly siloBOT
#

honestly having markdown for coloring text would be nice in general- it's one of those things that used to be everywhere in the form of bbcode, but it never quite made it to more modern platforms

either way, would definitely appreciate this as a way to show errors/etc, though i agree that it shouldn't be the only thing devs rely on for it
(as an example, one of my bots uses colored buttons in their intended ways- but i also have emojis on them to help with what they're for. the x is pre...

#

From my own experience by looking other bot devs comments about DInfra: It was a gigantic mess. Yes, it did have big bot developers there... but it was the developers of big bots at the time DInfra was created, so before it was abadoned you had a lot of devs that didn't even have a "big bot" anymore (stopped developing it, etc) and people that had a big bot now didn't have access to the DInfra server and didn't even know it existed.

Moving to Discord Developers was a good change in my ...

#

Just putting this out here... I found it hiding under some bushes. Goodluck mate. As always, discord is refusing to take accountability and just being fucking dumbasses.

I stand by you as many developers do, lets make our voices heard. If discord won't change, we'll just leave and eventually it'll bit them in the fucking ass.

As much as I appreciate your support and honesty do I not think that insulting them is the right way to go.
Sure, staff can be annoying at times, but remembe...

#

Honestly, this was both extremely truthful and untruthful. Discord HAS recently started taking more feedback from library developers and larger bot developers. I understand everyone's frustrations with Discord's implementation of suggestions but unfortunately they have to manage their budget effectively, meaning that they made need to cut costs on features in order to make better ad campaigns and things of the such.

Their new changes may be unwanted and were deemed as useless by a lot of t...

#

I’m sorry but being nice has gotten us nothing but being ignored for months. They’ll likely ignore this thread officially too. If you have issues with my posts, you’re more than welcome to delete them.

Secondly, I appreciate whomever for owning up to screenshooting them and verifying where it came from but don’t play that card when you’re violating that staff members trust by passing those screenshots around as well. You can’t act like an angel when you caused chaos from this. I got send ...

#

have not so good Verification System (Identification must be provided

In my opinion: Bots that don't require privileged intents shouldn't be restricted by the max 100 guild limit.

The 100 guild limit hinders viral growth, and Discord is already limiting stuff anyways, so the impact that a bot without privileged intents is already smaller anyways.

The guild limit should be increased to 10k or something, this gives Discord more free time and less verification requests to go thru. If ...

#

I’m sorry but being nice has gotten us nothing but being ignored for months. They’ll likely ignore this thread officially too. If you have issues with my posts, you’re more than welcome to delete them.

Still no reason. Anger is not the way, or otherwise violent protests would've won things by now.

The fact Ian even acknowledged the post is imo enough to proof that Discord is aware of it. But making responses can be dangerous, especially when you represent a company through it.
With o...

#

@aasmart I understand, I have no motivation to seek out this person’s server just to read through the chats. I personally hate the direction they’re going, as do others. However, I also have my own reason on why I’m being an asshole after discord has constantly made life hell for developers. Again, you don’t have to agree with how I’m going about this but my opinion is still valid. I understand that Ian doesn’t represent discords views as a company— however why did he speak on this personally...

#

We didn't know about it either @MeguminSama . Looks like Big Bot Developers (who are using the Libraries from Library Developers which they do not have any word on Discord Infastructure ) are more welcome than actual maintainer and implementer of this infastructure changes.

It is just that Discord can find bot developers more easily than lib developers, I don't think this is a hunt made by Discord to hurt library developers.

As far as I know (I may be wrong!), there are more big bot d...

#

Honestly, this was both extremely truthful and untruthful. Discord HAS recently started taking more feedback from library developers and larger bot developers. I understand everyone's frustrations with Discord's implementation of suggestions but unfortunately they have to manage their budget effectively, meaning that they may need to cut costs on features in order to make better ad campaigns and things of the such.

The question here is what features people actually want.
Take server fol...

#

Honestly, this was both extremely truthful and untruthful. Discord HAS recently started taking more feedback from library developers and larger bot developers. I understand everyone's frustrations with Discord's implementation of suggestions but unfortunately they have to manage their budget effectively, meaning that they may need to cut costs on features in order to make better ad campaigns and things of the such.

The question here is what features people actually want.
T...

#

Their new changes may be unwanted and were deemed as useless by a lot of their community, it's ultimately a choice made by the company's managers who feel like the changes were just.

I think discord has been focusing more on opening up the platform to new users which of course makes sense, but it also feels like they are somewhat not giving enough attention to the current userbase.

#

Their new changes may be unwanted and were deemed as useless by a lot of their community, it's ultimately a choice made by the company's managers who feel like the changes were just.

I think discord has been focusing more on opening up the platform to new users which of course makes sense, but it also feels like they are somewhat not giving enough attention to the current userbase.

Well... Not really. It seems like they're making the platform seem more friendly and appea...

#

Whats the alternative? This system makes it harder for malicious bots to exist, so makes sense.

The true malicious "bots" are the self-users and self-bots which still exist to this day. Like discord implemented the intents to "fight" this, while completely forgetting that like 90% of scams still happen through user bots which (obviously) don't use bot accounts but user accounts which by extension already have those intents because user.
So in the end did they apply a filter that stops o...

chilly siloBOT
#

What i ask here is the fact that we need a message from discord maybe an empherall message from discord, about not Dming bots senstive content like images, whenever the app is rebooted, or maybe every once a while a message can be sent talking about not sending bots private information that you wouldn't want a stranger to see

Also maybe on a bot's profile, could we get privilleged intents, and if possible give a list of other non privilleged intents that a bot developer likes to use?
we a...

#

I would really like something like this. Lots of users dm bots random stuff that the dev could see while they don’t know someone can. Personally I think warnings would do a better job at protecting privacy as the message content intent doesn’t prevent actual malicious developers from getting the intent through adding some basic automod and waiting for discord to reply to the ticket.

chilly siloBOT
chilly siloBOT
chilly siloBOT
#
  1. The admin of the server can restrict which roles are able to use slash commands.
  2. If your bot is admin you can set that yourself before initializing the command.
  3. You can specify default_permission: false on the application command structure when creating the command. per the Discord API Documentation so that it cant be used until you send the [permissio...
#

Could you add your message input component to your list? This is an extremely important addition that you have said you're adding, and I don't see a reason for it to be missing from this list.

_Originally posted by @Caglar1881 in https://github.com/discord/discord-api-docs/discussions/3581#discussioncomment-1251234_

chilly siloBOT
chilly siloBOT
#

I'm building a bot for managing class servers. It has 16 commands and counting, two of which are enabled for general use (non-admins). In its current form, the common user's slash command list is covered with disabled commands that even the server owner would rarely have to use. Things like /invite-campaign, which posts a message to every class channel, don't need to be displayed to every user.

Displaying a disabled command makes sense in some contexts, but for a bot like mine or carl-bo...

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

The slash commands list on a server can get very cluttered. It will likely get even bigger as more bots implement slash commands in preparation for the intents change.

My proposal is to have an option for a different prefix to slash commands, chosen either by the bot, the server, or a combination of the two. So for example, I (as a server owner) set "Bot A" to use the ! prefix. So if someone presses !, I will only see the commands for Bot A, making it easier to find what I need

The ...

chilly siloBOT
chilly siloBOT
#
Discord utilizes Twitter's [snowflake](https://github.com/twitter/snowflake/tree/snowflake-2010) format for uniquely identifiable descriptors (IDs). These IDs are guaranteed to be unique across all of Discord, except in some unique scenarios in which child objects share their parent's ID. Because Snowflake IDs are up to 64 bits in size, they are always returned as strings in the HTTP API to prevent integer overflows in some languages. See [Gateway ETF/JSON](#DOCS_TOPICS_GATEW...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description
When mentioning multiple channels after each other in a string type argument, the spaces between the mentions get removed.

Steps to Reproduce

  • Run a slash command with a string type argument with channel mentions:
    ex "/test string:#channel1 #channel2 #channel3"
  • View the data sent to the bot, or copy the tooltip from the slash command "user ran /command" thing
  • Observe that there are no spaces between mentions

Expected Behavior
The spaces betw...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I think you just demonstrated why they haven't included it.

It becomes the responsibility of the developer to make sure it follows accessibility standards.

i mean, there are plenty of things that already aren't incredibly accessible. for example i'm not sure how accessible the button colors themselves are, even though they're still part of the app- not to mention the number of emoji that not even perfectly sighted people can see against the background (the default twemoji tm and a...

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

Guys, it's a joke. He probably meant it as a joke. Just because discord struggles in some aspects does not mean they don't have a sense of humor. No matter what someone's going to take it the wrong way, and I'm here to tell you, you took it the wrong way.

It's a joke, then it's probably a joke? Make up your mind dude. Irregardles of whether it's a joke or not it's still a very poor use of words to describe your library developers; it is impossible to deduce tone from that text, so for yo...

chilly siloBOT
chilly siloBOT
#

This would lead to two API calls: one to check if you can DM a user, and one to actually send the DM.

Currently, you have both features in a single API call: you send the DM, and if you got a 403, that means you are not allowed to send DM.

I don't see how this proposition would be useful unless you have a very specific use case where you want to check if you can DM a user without actually sending a DM.

chilly siloBOT
#

Well then at that point you’d also be rate limited for sending too many
test dms and deleting them, and then sending another message…

On Wed, 1 Sep 2021 at 7:18 pm, Simon Beal @.***> wrote:

Discord gives you an API ban if you get too many 403s. Whilst my bot
doesn't normally send many DMs, it wouldn't be too awful to have a user bot
farm killing off bots by getting them to DM you and blocking them on repeat


You are receiving this because you commented.
Reply to this em...

chilly siloBOT
#

Description

If I try to add a permission-override to a channel that is in a category which limits access to a role that doesn't include the bot, the action gets denied, even though the channel in question does NOT sync with the category (and thus does not have the permission-override for a role that limits access to a certain role) as well as the bot has explicit View Channel permission via a permission-override.

Steps to Reproduce

  1. Invite a bot which has the server-permi...
chilly siloBOT
#

I know (I co-develop one of these), I used the example of an average bot.

My point is that we should let Discord handle abuse on the platform (I'm sure they have a lot of tools for this task and they will easily detect something like your scenario).

You came to the wrong conclusion: if flood-DM is a real issue that gets bots blocked from the API, the solution is not to create an additional endpoint, but to have Discord fix this issue (eg. fix the root issue -detect and ban bot farms-, r...

chilly siloBOT
#

The API ban is if you hit 25,000 errors per 10 minutes!!
If you send 40+ invalid DMs/seconds, then you are definitely doing something wrong.

About bot farms, it's something that should be handled by Discord's own anti-abuse protections.
Btw, the global rate limit is 50 reqs/s, so even in the case of a bot farm that would be able to flood you for 10 minutes without triggering a red flag on Discord, you have chances of being saved by that rate-limit.

So, this is a non-...

chilly siloBOT
#

OMG WORD CHOICE IS SO BAD AHHHHHHH, YOU KNOW WHAT I MEAN BUT NEED TO CRITIQUE MY WRITING AHHHHH

Yeah I see why you can't pick up the joke now. Here's a better rephrased version of that:

He sent that as a joke. He meant it as a joke. He was joking around. "No, unless you want me to." Common joke. Even the "insult" part, a joke. 75% of jokes in 2021 can be taken as insults by someone who's giving it a negative tone. People who have had trouble with something will give it a negative tone.
...

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

A category system in slash commands would be good, where we can select a bot, and select a category, and it will only display commands which are in that category. Such as if we select dank memers slash commands, and select economy category, then it will only display those commands, which are registered under the economy category by the developer. Koz we need to move all commands to slash commands because of the intent and there are bots with hundreds of commands. So to find one command of eve...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Not sure if this is a bug or feature request, sorry

Description

My bot has a button that ends up being spammed a lot by users. The server owner isn't doing anything malicious, just the users spam it a lot. I've implemented my own guild-level ratelimit, so that when it is being spammed, users are told ephemerally to slow down, rather than carrying out the actual task. The message is sent via POST /webhooks/{application.id}/{interaction.token}

However, the problem is that ephemer...

chilly siloBOT
#

Are there any plans to incorporate a "subcommand autocomplete" of some kind when improving the UX? So for example if a command is /one two three, you can just start typing /three and it'll pop up with the /one two three? (This doesn't seem to work right now but would be really awesome for grouping related commands as subcommands)

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Why are no localization features listed? The issue for slash command localization was closed without enough discussion. Before slash commands, users would have to manually set their locale for my bot, but now if I want to integrate my bot into slash commands to make the experience more fluid, I can't because all of my command descriptions will be shown as raw strings.

Best-case scenario for slash-commands specifically, Discord queries my bot to determine what to display for a specific user...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

So I mentioned this in the discord-api discord and they suggested posting it here...

So right now Discord simply POSTs to the exact same interactions endpoint URL you provide, and all information is in the JSON body. I think it would be a good idea if Discord were to append REST-style information to that URL, for example, POST {interaction_url}/commands/examplecommand when someone uses /examplecommand. This has the following advantages:

  1. It will make it nicer and more straight-forwa...
chilly siloBOT
#

Background Story

With the introduction of application commands (former: slash commands) interactions have been implemented. Those interactions need to be answered in 3 seconds which makes absolute sense because the user needs some sign of life from the bot. This deferring system has been copied to components that are also based on interactions.

The current problem

The major difference between deferring an application command or a component is, that deferring an application comman...

chilly siloBOT
chilly siloBOT
#
628

As I integrate selection menus into more facets of the bots I develop, I've noticed that their current behavior has become a hindrance for what I assume are relatively common use cases.

I propose that they send a select interaction even if the user has already selected the respective option (alternatively, send a "deselect" interaction instead).

An example use case is role selection or any other case where the options of a selection menu are treated as toggles.

Additionally, while t...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Threads are a great feature, and have tons of potential for use in ticketing bots, verification bots, and bots that needs to prompt users for information. However private threads are currently locked behind a level 2 nitro boost, and for smaller servers, that effectively means a $45/month paywall. Additionally, if someone decides to unboost a server, that could break bots that are using them. There are some solutions such as using direct messages and things like that, however this doesn't fit...

#

I think there is some misunderstanding here:

application command interactions can only be deferred one way: DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE, which sends a "bot is thinking" response.

component interactions can be deferred in the above way, but you can also choose to use DEFERRED_UPDATE_MESSAGE, which acts as an "acknowledge" and allows you to use the interaction token later. it is intended to let you edit the message with the component later, but you aren't required to do that....

chilly siloBOT
#

It's not a perfect idea, I will concede that. But again, I think the positives far outweigh the downsides, and you have to consider to some extent not what people might do, but what they will actually do. I don't see it as malicious. The vast majority of people aren't going to cough up the money (for me, around $45 USD a month) to boost up to level two anyways, so I don't see how Discord would necessarily be losing out here from a profit point of view.

chilly siloBOT
chilly siloBOT
#

users don't have to guess at what a prefix is for a bot

As I said, the list when pressing / could still have the full list of commands for all bots

How does discord surface these other prefixes to users

Could be some indication on the profile or in the / list or just up to the server owners.

And doing this makes it far less likely for users to find a command they are looking for using discovery.

Yes, that's why / would still have the full list.

chilly siloBOT
chilly siloBOT
#

It’s an extra call when you want to do something that takes more than 3 seconds. You gotta use a type 7 or a type 6 if you ever want to edit the message later and not see an interaction failed. The issue is type 6 clears the loading state so people can click the button again. The current hacky solution would to do a type 7 disabling the button, and then another patch request to be what the final content is.

#

I'll support better permissions controls to guild managers, I think these have missing for a while.

  • Ability for server admins/mods to manage slash commands
  • Ability to manage command permissions with channel-level granularity

I would also like to be able to make sure same as bot owner that my bot will respect VIEW CHANNEL permission. If no VIEW CHANNEL, my bot would ignore it. Currently only way is to just simply give no answers at all which gives user "unnecessary error message" `Thi...

chilly siloBOT
#

@ghostdevv That's what I said.

So for your concern, which was that someone could potentially access a restricted command before you have time to overwrite the permissions, by setting defualt: false you can resolve that concern because nobody will be able to access in that time between setting the command and updating the permissions.

Apologies if I was not very clear.

chilly siloBOT
chilly siloBOT
#

Currently, you can only get these fields through the GET/users/:user_id endpoint. This makes it nearly impossible for a moderation bot to keep track of these fields, since it requires to fetch each and every user it sees.

An alternative is to add previous state to the update event, which would solve this problem as well. I have an existing feature request for this with #3272

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I have found it incredibly tedious how permissions are handled with slashcommands in regards of trying to mention and ping a role.
The problem is that the initial reply to a slashcommand will ignore the bots permissions and instead default to the public role.
This means the bot is only able to ping a role that is allowed to be pinged by the public role.
You can't defer and then mention the role either, because its considered an edit and doesn't ping.

The only alternative is therefore to...

chilly siloBOT
#

Theres two ways that this feature can be implemented, either add a new property to the embed, something like timestamp_style OR allow parsing of the timestamp format in the footer text (https://discord.com/developers/docs/reference#message-formatting-formats). Right now the timestamp defaults to the relative format which is great in itself, but for more details dates (like logs), this is lackluster.

I currently have people set their timezone(or default to EST) for my bot's timestamp form...

chilly siloBOT
chilly siloBOT
#

There's a reason why it's called a slash command. Very straightforward. Perhaps it could just be a command explorer UI that has your suggestion placed. I don't see a specific reason though, you could still click the bot's avatar in the left side of the UI to start at the first command of the app and different prefixes could cause a misunderstanding since it's not uniformed. And I also agree with ckohen's statement regarding people using the wrong prefixes.

chilly siloBOT
chilly siloBOT
#

It would be amazing to have API events for when users get moved, disconnected, moved into audience, or are invited as speaker in a voice channel or stage. Currently it's impossible for bots to monitor this behaviour, meaning when staff in a server abuse these permissions there's no feasible way to track down who's doing this.
I saw there was an older issue regarding audit logs which was closed because it would cause too much stuff in the audit logs. But I think a gateway event would solve th...

chilly siloBOT
#

Voice state updates do indeed only show the actual change between voice states. Audit logs do indeed show Disconnects and the user that performed the action. Audit logs will also show channel moves, but not from which channel. I guess this could be figured out by combining audit logs and gateway events but that doesn't seem the easier either.
The main issue in my case however is that there's no events nor audit logs for moving someone to the audience in a stage or inviting someone to speak. ...

chilly siloBOT
#

Hello,
I'm here to report a potential bug associated with meta tags and embeds displaying in Discord.
Any website that is using ArvanCloud cloud cdn, their embed or media cannot be previewed(embedded), it is only about the Discord and none of other platforms have this problem(like WhatsApp, Facebook, Instagram, Twitter and..), it means the websites are sending the preview and required values needed for a display to everyone, but the Discord is not getting it either or it gets but doesn't di...

chilly siloBOT
chilly siloBOT
#

Description

If a mention or emoji is added to a slash command through the suggestions above the text box, all other message content gets removed.

Steps to Reproduce

Start a slash command (testing with built-in slash commands is easiest), add a message. Start a mention. Choose a suggestion above the text box. Observe.

Expected Behavior

The mention is added to the end or the message.

Current Behavior

The mention replaces the entire message argument, the slash command it...

chilly siloBOT
chilly siloBOT
#

Description
Slash commands which accept channel options will show private category channels in the selector UI.

Steps to Reproduce

Register a slash command that uses a channel option
Create a private category channel
Acting as a user without access to the private channel, enter the slash command that uses a channel option

Expected Behavior
The private channel should not appear in the menu

Current Behavior
The private channel appears in the menu

**Screenshot...

chilly siloBOT
#

Description

I registered a slash command with an integer argument with the following options:

"choices": [
	{ "name": "first",  "value": 1 },
	{ "name": "second", "value": 2 },
	{ "name": "third",  "value": 3 },
],

if I run a command and select one of those options, then copy paste the command text from the popup and try to re-run the command, it prompts me to select an option again instead of filling in the value.

Steps to Reproduce

  • Register a command...
#

His Problem is very similar to mine, but I still keep receiving a 401

const args = JSON.stringify({
  access_token: token,
});
const response = await fetch(
  `https://discord.com/api/guilds/${this.guildID}/members/${userID}`,
  {
    method: "PUT",
    headers: {
      "Content-Type": "application/json",
      Authorization: `BOT ${this.bot_token}`,
    },
    body: args,
  }
);

the bot is inside the server and has CREATE_INSTANT_INVITE turned on.

#

Description
So, I am basically creating a popup that asks to the user to authorize discord access, and then I retrieve a code, with this code I get the token, and then I make another api call ("PUT") to join this user to the server, and it responds me with an 401 unauthorized, I've looked the token itself and it responds me with everything correct

{
    "application": {...},
    "scopes": [
        "guilds.join",
        "identify",
        "email"
    ],
    "expires": ...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

Sending an incorrect model type for slash commands throws a 500 server error.

Steps to Reproduce

Send the following payload to an application command create endpoint:

[
   {
      "name":"search",
      "description":"asdf",
      "options":{
         "name":"keyword",
         "description":"asdf",
         "type":3,
         "required":true
      }
   }
]

Expected Behavior

400 bad request, with some error text regarding a MO...

chilly siloBOT
chilly siloBOT
#

@spiralw ah I see, thanks for letting us know.

@advaith1 Thanks for the suggestion. While I do agree with you at the moment because these are experimental features, I strongly believe that a stable api should have a fixed structure. Any changes to it should be first included in the changelog and deployed as beta first. It just feels more standard and robust that way. That way, it becomes a responsibility of the api devs to duly let us know how we can use their api to its fullest.

chilly siloBOT
#

Hi !

Reactions to the original message from which any thread is opened are not passed back to the thread and live towards that. Yet it is the same message as an object that is used. Wouldn't it be possible to forward the reactions?

Concrete situation :
I run a discord guild to alert people to the restocking of items on multiple online sellers.
I have created a few channels for the different categories and in each we post the most interesting drops for each item. We would like to set u...

chilly siloBOT
#

@Hyperclaw79 Discord can add/change fields that are not intended to be used by bots at any time (the gateway being common between bots and official clients -even if they are a few differences implemented). Except these fields will never be documented, and you should therefore always write your code so it accepts additional/unknown fields.

(change in existing documented fields is another thing)

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

Right-click to Invite

Now that Context Menu commands are a thing and also, the bot OAuth2 opens directly in the client now, I think it would be really helpful to include an Invite option to the Bot's context menu.

Currently, I have it as a context menu command, but it feels counter-intuitive for the users to go to Apps > Invite to invite the bot, rather than finding it on the root level itself.

The invite could also use a different style to make it easier to notice.

Here's a moc...

chilly siloBOT
#

It would be amazing to have API events for when users get moved, disconnected, moved into audience, or are invited as speaker in a voice channel or stage. Currently it's impossible for bots to monitor this behaviour, meaning when staff in a server abuse these permissions there's no feasible way to track down who's doing this.
I saw there was an older issue regarding audit logs which was closed because it would cause too much stuff in the audit logs. But I think a gateway event would solve th...

#

Voice state updates do indeed only show the actual change between voice states. Audit logs do indeed show Disconnects and the user that performed the action. Audit logs will also show channel moves, but not from which channel. I guess this could be figured out by combining audit logs and gateway events but that doesn't seem very easy either.
The main issue in my case however is that there's no events nor audit logs for moving someone to the audience in a stage or inviting someone to speak.
...

#

Description

Hello 👋

I am hoping to request the addition of a new request to be sent whenever a guild/server adds the slash application(non-bot).

Why This is Needed

I was looking to somehow determine when the application is invited, so I could register all the guild-specific commands for them because at first these would not exist.

Alternatives Considered

  • /register global command to enable guild commands. However, i feel thats a bit worse UX ...
#

There was a proposal for customizing prefixes for the Interactions API (topic #3744) which had a flaw pointed out regarding the UX suffering from it.
I do feel like there's room for improvement in the slash command interface though, especially when several bots register slash commands in a server and those in the latter half of the alphabet get pushed all the way down. Something that the old format of using prefixes didn't suffer from. For example take a bot currently sporting the prefix ;...

#

I agree that this seems like a very valid solution for things like ticket system bots and modmail, especially since those are very valid usecases to have a closed environment for talking in.
I also think this could make for a very good usecase of allowing message content to be read by the bot without the need for a privileged intent, to make the user experience better. They could even implement it as a special subclass of threads to make it happen without the worry of people abusing it, by o...

#

Something which would help balance things out:

  1. Only X number of private threads can be active at once if they're created by a bot.
    OR
    Rate limit the private thread creation by bots.
  2. Only Admins, irrespective of Join Private Thread perms, should be allowed access to these threads. That way server owners can't abuse it by giving that perms to everyone.
  3. [Optional] Only users with 2FA enabled can join these threads.
#

1 Seems like a good idea. Base the maximum amount on the server's member count to prevent a large server from constantly capping out.
2 Seems like a terrible idea, with ticketing systems being the example it would be great if the one that opened the ticket can view it too. And the ticket could be "admin x was abusing power" and then admin x can go and close the ticket saying it's a BS complaint.
3 Please don't lock more stuff behind 2FA, it should be a choice to use and will drive away user...

chilly siloBOT
#

It's nice to see this idea is getting some traction, honestly with Skye's post which most people had upvoted (despite me responding to her point) I assumed it had died there. I think the first option would be the best, although it wouldn't surprise me if there are already thread limits in place to stop people from just creating a ton of threads, as remember it can be done by anyone and not just server admins.

chilly siloBOT
#

To be honest I think this suffers from the same problem as #3744, as the purpose of application commands is that it should be intuitive to the user, and especially on mobile, people won't want to type in /; or other special characters. I believe there is a psuedo-workaround, as you could prefix bots with /yourbotname_command , but doesn't really work from a UX perspective either. I just hope Discord improves their command menu, and I could see why people would want workarounds for it.

chilly siloBOT
chilly siloBOT
#

This is technically correct, but doesn't seem necessary to document? It will be about 140 years before we create any snowflakes that reach anything near the upper limit, so it's not like you are ever going to receive a snowflake that large and need to know how to handle it.

This seems like an edge that's only really hit if you're trying to do so, not in the "normal course of operations". This can be reopened if there's a real need to document it, but I'm not sure there is.

#

Yes, but that max snowflake constant is not a necessary thing to have. Snowflakes are generated by Discord; you aren't going to receive ones that are currently out of bounds.

More so, if we decide to change database infra and can then support larger snowflakes, this would be incorrect (though still not really useful).

I'm not doubting the validity of the information, but I think it's unnecessary complexity.

#

Snowflakes are generated by Discord; you aren't going to receive ones that are currently out of bounds.

Snowflakes can be generated by users. For example, the after/before/around value in a message pagination does not have to be the exact snowflake of a message; it can be synthesized to represent a date and time. The lower bound may be useful for getting the first message in a channel (or you can use the channel ID) and the upper bound may be useful for getting the last message in a chan...

#

you can use last_message_id for the last message in a channel

You have to track messages to know the last id, so you would have the last message anyway, if you cached it, and if you even tracked messages. Some users may not do that.

the channel id for the first message in a channel

And yes I listed this.

That's not the point, though. I'm just giving an example of where users input snowflakes instead of receive them.

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

Description

Add a option to let users select multiple options when the command has options, like select menus just as command option choices, this would allow for better options for both the user and developer.

Example

A automod punishment setup command.
/setautomod

punishments being a string field with choices (delete message, send note, log in log channel, add punished role, kick user, ban user, mute user) and min values of 1 and max values of 7 (for 7 choices)

This wou...

chilly siloBOT
#

Description

Android client does not recognize slash command with non-English name.
English name and non-English option name works btw.

Steps to Reproduce

  1. Register your slash command with non-English name.
  2. Send command in chat.

Expected Behavior

Android client must recognize command like PC/Web client.

Current Behavior

Android client does not recognize command. The sent command is recognized as a regular message.

Screenshots/Videos

**First...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I think slash commands don't really have much to do with message components.

Example use case: My bot generates a private room on my server for the user to send their information, including their birthday.

Here I would love to have a component that just allows me to get a Date directly from the user interacting with the question sent by the bot (ie: "What's your birthday?") currently we make the user type it out, in the near future we are just asking for age ranges though we lose infor...

chilly siloBOT
#

Description

Creating an instant invite in some guilds returns a HTTP 204 with no content instead of 200 with the invite object. Additionally, the server I tested on has a valid vanity (returned in the guild object), but reports invalid invite when trying to use it.

The owner of the guild also told me that clicking buttons in the guild does nothing at all (not even This interaction failed), however, I am not able to verify this myself, since he cannot create an invite for me.

**...

#

A guild-specific issue, no screenshots/videos and the mention of interactions is all a bit worrisome. There's little to go off of if this apparently can only be reproduced with a specific server, which also an invite obviously cannot be generated for.

Guild ID included since I assume it's a bad API code change so that whoever handles this issue can get what commit etc is running on the guild process. I assume this is happening to more than 1 guild, since changing response type is unlikel...

chilly siloBOT
#

Description
When using message commands on a channel you don't have permission to send messages in, the API errors out "Missing Permissions". I've discussed this with some other people, and it seems to be a bug and not an intentional feature.

  1. Have a bot with a message command
  2. Have a channel where you don't have send message permission in that channel
  3. Use a message command on a message in said channel
  4. (see picture)

In the developer console:

**...

chilly siloBOT
chilly siloBOT
#

One thing that I've noticed is that it's referred to as GUILD SCHEDULED EVENT everywhere such as prefix to related gateway events, audit log events, and fields. The only place it is just referred as guild-event is some of the related endpoints like GET /guild-events/{event.id}. So, I'm kind of confused why the structure is named GUILD EVENT and not GUILD SCHEDULED EVENT

Initially I had written it as GUILD EVENT before I knew about the scheduled part. It's something I'm will...

chilly siloBOT
#

Description
When I select a voice channel in a channel option on iOS, it actually sends a text channel with the same name

Steps to Reproduce

  1. have a command with a channel option
  2. have a text and voice channel with the same name
  3. on iOS, run the command twice, picking the different channels with the same name

Expected Behavior
it sends the channel you selected

Current Behavior
it sometimes selects a different channel with the same name

**Client and System Information...

chilly siloBOT
chilly siloBOT
#

Really disappointed that #3235 haven't got proper attention. While huge amount of people who make bots don't develop frameworks/libraries for them, people who do make libraries/frameworks still dragged down because of that.

When discord makes changes, it is particularly hard to track individual bits. E.g. when structure of message changes, you should not only modify mapping for message itself, but also modify various edit/create methods.

It is very error-prone since every change must be...

chilly siloBOT
chilly siloBOT
#

Description

The /guilds/:id/bans endpoint headers are inconsistent. From my testing the bucket seems to have a 1/60s rate while the headers imply it's 5/60s. Only the limit header is wrong. Here's an example after firing only a single request on an unused token:

x-ratelimit-limit | 5
x-ratelimit-remaining | 0
x-ratelimit-reset-after | 60.000

Steps to Reproduce

Fire a GET to /guilds/:id/bans, limit will return 5, remaining will be 0.

Expected Behavior

...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

It should be possible to at least fetch an ephemeral reply.

POST /interactions/<interaction_id>/<interaction_token>/callback always returns a 204, ideally this would just return the Message object to us like POST /channels/<channel_id>/messages does, but that isn't the case currently.

For a regular response you can instead use GET /webhooks/<application_id>/<interaction_token>/messages/@original to fetch it, but this doesn't work for ephemeral messages - the API will return `Disco...

#

I would like to see this feature, too. Although a user could suppress it themselves when they no longer see the need for it, allowing the application more fine-grained control of the message history would help make for a cleaner UX in some scenarios.

For instance, a simple ephemeral confirm/deny button dialog prompt could self-destruct once an answer is provided with no more interaction from the user.

#

Dropping my thoughts here as well:

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

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

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

chilly siloBOT
#

So my personal opinion as a user and bot dev is that ephemeral timeouts or deleting ephemeral messages isn't a great UX pattern to encourage. Timed messages are easy for a user to miss, and they aren't forgiving if a user takes a certain amount of time to read and comprehend a message (especially common if it isn't in their native language). Since ephemeral messages are unique to a user, we also lack tools to alert the user what happened to the disappearing message they had just been lo...

#

I have multiple points about this topic:

  • Be able to close on interaction complete. (User clicks a button, interaction closes, users doesn't have to close the msg themselves, saves the bot having to edit the msg on completion).
  • Towards users auto close on the expiration time. (No need for them to see an interaction that they can't use anymore).
  • API response when interaction gets closed before or on the expiration time. (to be able to get feedback and on the bot side taking the steps t...
#

Yes, I believe the main issue is ephemeral message build-up. I see no reason to delete a single ephemeral message . I think you hit the nail on the head with missing response types. The response types we have now are not ideal for things that already have an obvious user feedback and IMO thats why we are trying to work around it like this.

Oh, and the A11Y / I18N reasoning is a very strong defense against doing this.

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Just becaus you can't imagine a way that doesn't mean it's not a needed thing.
Example:

My bot has a message with a button in a server channel where no one is writing in. Clicking it spawns an ephemeral message that tells the user to read the DM I've just sent to him. It'd be good to be able to delete the ephemeral message as soon as the user interacts with the DM I sent.

No one else is writing in the channel with the first button. It's basically a fixed message in a fixed channel. Use...

chilly siloBOT
#

Ultimately, ephemeral messages are not intended to be used that way in my opinion. For one thing, sending a user a dm is an act of acknowledgement, a response, user feedback. Discord currently doesn't have a way to say, "hey, i've acknowledged this interaction some other way than these few predefined methods" and that's a recurring theme which I hope is being worked on.

Another thing to consider is why send a DM at all? If you want the message to persist, that's understandable, but if you...

chilly siloBOT
#

Another thing to consider is why send a DM at all?
Well, yes, this in some way a legacy thing coming from the years of operating this bot when we had no other choice.

I initiate a private flow in DMs that requires to user to talk back to the bot one or multiple times, choose options, etc. Still, it's not solvable through interactions, due to missing ephemeral inputs (forms, multi-line-text).

However, even if we get something like multi-line text-input, I'm not sure if I should move t...

chilly siloBOT
chilly siloBOT
#
  • [x] I'd like to suggest a checkbox message component...

How does it benefit bots?
Certain bots require certain settings to be configured. Some bots allow the user to change/toggle these settings by commands but adding a checkbox component will make it easier for the user to toggle these settings.
Other than the use for toggling settings it can be used for many functionality in bots i.e. polls/votes, lists, etc... there are several use cases for a checkbox component.

Possible ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

It’s not just ephemeral message build up, though build up is (with my user hat on) somewhat annoying for some interaction patterns. I don’t see how a Notification Center-like affordance would be a net benefit since it seems like that would involve pulling the responses out of the channel where the user issues the command, but maybe I’m not imagining the right thing. In any case that’s not the only issue.

There are two scenarios where I’ve wanted this, though the second one will go away onc...

chilly siloBOT
#

You both bring up excellent points.

I'm even getting a very much more visible "notification"

Yeah, again that problem of a much more visible response than a message but you have to send a message thing 😢

I don’t see how a Notification Center-like affordance would be a net benefit since it seems like that would involve pulling the responses out of the channel where the user issues the command

Yeah, I don't like bringing it completely out of the flow, but something other than a...

chilly siloBOT
#

Description

I tried to set outgoing webhook as the mechanism for "Receiving an Interaction" in

Applications > My App > General Information > INTERACTIONS ENDPOINT URL

According to Discord API documentation, I have to "ACK a PING message" as below

{
    "type": 1
}

I am pretty sure that my outgoing webhook responses a valid JSON as the response message for ACK but once I click Save Changes button the UI always shows me

Validation errors:
int...
#

I wasn't entirely sure where to post this so I thought asking the question here instead was best.

When registering slash commands and setting permissions for only specific roles to use them, when viewing the server with that role, you still can't use them which I guess makes sense but the opposite is also true - You can still use them even when viewing with a role that doesn't have permissions to use the slash command. I figured this would be useful for checking that the commands are actua...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

The protocol tests were a success, even if it is not fully standard, it would bring many improvements in speed, not only for the client who expects the speed of light, but for the api that someone must pay the costs of the machines.
QUIC-Graph3
I hope they can match using it so that the client and the api server can work at the speed of light.

chilly siloBOT
#

All channel inputs in slash commands are validated by the API itself, you don't need to worry about the user sending in an invalid channel.

They can't be filtered though. API will check the channel exists, but not if the user can manage it (if user has specific permission in a given channel), or even if the channel is disabled in bot settings itself (in my bot, you can set permission to use command per channel per role, and that can't be done in API nor I saw any plans on adding that).
...

#

I don't understand how that downgrades the experience. You can still do any amount of validating in your code and if it considers it invalid input, you can respond with an ephemeral error. That's a way better user experience for me. Plus, you are guaranteed whatever argument you are checking is the right type because of the API validation mentioned.

Please don't do this, but just to point out that slash commands can only ever expand on message commands, you could totally make a `/command ...

chilly siloBOT
#

Checkboxes would be really nice! I had thought about suggesting this a few times but never did so for a few reasons. Here are a couple of considerations to have though.

  • Are checkboxes per user or is state synced across all users
    • If its per user, can state be stored? Select menus already struggle from this and I think Discord would be unlikely to implement state storage if its user side
  • Much of the functionality, if not all, of a checkbox can already be achieved using a button a...
#

View as role is completely client side, and I don't think the client recalculates application command permissions when you enter / exit view as role. It seems reasonable that it isn't the case currently anyways, since in that very same article it mentions the things view as role applies to and there is no mention of application commands.

image

However, I think its is possible this ma...

chilly siloBOT
#

view as role is intended to fully act like you only have the selected role

I'd actually have to completely disagree with this, anything that involves interacting with the API is unaffected by view as role (and that's a lot).
Here's some pretty big examples:
Search
Sending messages with role / everyone / here mentions
Sending messages with links that embed
Sending messages with external emoji / stickers
The voice restrictions mentioned in the article
And plenty more

Interestingl...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I don't understand how that downgrades the experience. You can still do any amount of validating in your code and if it considers it invalid input, you can respond with an ephemeral error. That's a way better user experience for me. Plus, you are guaranteed whatever argument you are checking is the right type because of the API validation mentioned.

Please don't do this, but just to illustrate that slash commands can only ever expand on message commands, you could totally make a `/co...

chilly siloBOT
#

Hello, I think that interactions lacks of a mention option where you could, same as inline replies, mention the user that executed that interaction.

For example, if I do /ping command, app would answer with @Koyamie used /ping instead of Koyamie used /ping.

My use case is that for some of my commands I like to mention the user, it is better to distinct the executed command when there is a lot of messages in a channel but I don't like having 2 times the username in the answer.

W...

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

My bots slash commands do not appear on new servers anymore. It has been multiple hours. I have tried rejoining the bot. I have also tried ctrl+R. Even restarted the bot. Nothing.

The commands work fine on other server, where the bot has been for multiple years and on some newer ones, but recently I have noticed hight bot removal from new servers and found out, the commands do not appear.

I have created my own server to test this and the commands seem to not appear even after 24h,

Th...

chilly siloBOT
chilly siloBOT
#

It seems fixable in the current permissions system, at least from my perspective. At the moment, if a server owner does not want application commands being used in a channel, they can negate Use Application Commands, where that prevents the App menu from showing up entirely in that channel, independent of send messages. So as long as the API 403s any requests to use a message command where they lack the Use Application Commands permission, there shouldn't be a problem.

chilly siloBOT
#

So far in the api i've found no way to access the about me text of the user, if i make a request i get a simple object, something like this

{
  "id": "194216450322464768",
  "username": "Reki Nano Godspell",
  "avatar": "a_2755b47fcd49853bc9921eb240c7cf32",
  "discriminator": "4208",
  "public_flags": 768,
  "banner": "a_78a9fd5e36fb1f6a52d58253407fba95",
  "banner_color": null,
  "accent_color": null
}

but no about me item, is there any way that this could be added? ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Right, that's my point. In the past they've said we can't get the message in the response when responding via the gateway because HTTP bots wouldn't get the same (can't respond to a response). So this being an HTTP only thing breaks that consistency.

Also worth mentioning, you'd need to include more than just the name if this was implemented

chilly siloBOT
chilly siloBOT
#

Rich Presence assets are cached for 10 minutes. Just upload it once, wait ~12 minutes, and then refresh the page and it should be there. I wish that the dev portal bypassed the cache, but it doesn't.

Likely, when you uploaded the same asset twice the server accepted both (after all, there wasn't another asset with the same ID), then added them both. When you tried to delete one, the server realized that it had messed up somewhere and returned an error.

chilly siloBOT
#

Most of the problems vis a vis sensitive data being a privileged intent could be solved by informing the user of any recently added bots' privacy policies and ToS. Here is my suggested implementation:

Privileged intents can only be used to get sensitive data of bots they have authorized. I suggest a page where you can then unauthorize any bots that you have authorized.

When a user joins a server with a bot, an additional page of membership screening is added, requiring users to authoriz...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

By the number of confused reactions, here are some proof-of-concept images that might help you imagine this:

#

By the number of confused reactions, here are some proof-of-concept images that might help you imagine this:

chilly siloBOT
#

I think there's more value in describing the commands in a human way than a machine telling you the name + parameters (which, others have pointed out, sort of exists with the command browser). It also allows nuance between a ban command for a modbot and a bot that has a ban command that bans someone in an external environment, like a Minecraft server.

chilly siloBOT
#

There's a couple of aspects here that I really like, namely making privacy info more accessible to users
The current system is lacking, and requires finding the bot on the internet (or on the oauth page if you're lucky) and i think this should definitely be improved.
Maybe instead of providing all bot and their privacy policies and tos, listing bots with privileged intents and giving links to polices in the membership screen, and a seperate screen (that has to be sought out) with all bots? ...

chilly siloBOT
chilly siloBOT
#

Most of the problems with bots accessing sensitive data could be solved by allowing the user of a bot to accept the privacy policies and ToS of any bots they might use before being allowed access to the bot or any servers that use the bot. Here is my suggested implementation:

Privileged intents will only be allowed to get sensitive data of users who have authorized the bot (otherwise it gives a 403). I suggest a settings page where you can then unauthorize any bots that you have previously...

chilly siloBOT
#

It'd be nice to be able to select only specific to activity types that we want to receive in PRESENCE_UPDATE events, and ignore other updates.

I was looking for a way to find all members that are currently streaming on Twitch without receiving the whole mass of activity updates on large servers. I'd like to avoid the big amount of traffic that is usually coming with enabling presence updates, but I am still interested in activities of type 1, and would like to drop other types (except ...

chilly siloBOT
chilly siloBOT
#

Currently with Select options we can only specify an emoji to go next to the text. I think it would be nice if we could also put a color instead of an emoji and we'd get a circle (or other shape) of the color next to the text. Currently I'm using emoji for a color role select (see the image below) and I'm using emoji to maintain those circles. I think the colors could get use beyond that as well with things like statuses and the like where you don't need an image necessarily to convey somethi...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I would really appreciate it if you guys (Discord staff) could do some work for transparency sake by keeping us updated here about recent updates regarding your plans.

Like, if it wasn't for a recent PR I saw would I not know about channel-specific args yet and not everyone can or will check this discussion every second day to see if there is a change.

Posting a new reply to tell everyone here what you've recently implemented would help us all to prepare for it quicker.

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Please, we dramatically need this. It should be easy to not display slash commands at all for a bot that has no view channel permissions for the current channel, and not allow the bot to post content on a channel it has no send messages permissions if it has been invoked on that channel. The current implementation bypasses all permission systems!

chilly siloBOT
chilly siloBOT
#

Description

When defering the reply to a slash command or button press it's not possible to edit in an attachment like an image. This is bad for a few reasons:

  • The 3 second timeframe is often too short to fetch images or videos from an API and upload them to discord.
  • Using ephemeral messages is only possible in reply to slash commands or button presses, so there is no possible workaround to do this (e.g. with regular messages you could just send another regular message to ...
chilly siloBOT
#

Having a custom error message would be nice. Something like This interaction failed. <error message>, this way users can see if their input is invalid or the bot's logic did not accept their command. This is much better for usability than just a this interaction failed or an ephemeral message

<img width="928" alt="Screen Shot 2021-09-19 at 9 31 08 AM" src="https://user-images.githubusercontent.com/65673396/133935317-ff176732-9888-442a-be29-628b2ca4ee56.png">

chilly siloBOT
chilly siloBOT
#

Couple of things here

  1. If it was easy to not display slash commands in the list, don't you think disabled commands would be hidden already?
  2. The current implementation does not bypass all permission systems, it respects a different system than the one you are used to. That being either a bot implemented system or the Use Application Commands permission. Anyways this is clearly on the roadmap to be changed.
  3. A bots permissions should have nothing to do with application command...
chilly siloBOT
#

Your current policy is to deprecate or disable the ability to read messages to bots, and use application commands instead. We're left with the commands permission and nothing else. You say there will be a revamp of the permission system, but it's not implemented right now.

Ok, if we need to change our mindset, please consider how Discord will provide a solution to this scenario:

  • Some multi-purpose bots have some nice features, but guild owners decide they should be enabled only on a s...
chilly siloBOT
#

I don't really see how you're changing your mindset there. Here's an example of a different mindset: A completely new permissions system where the developer can set sensible defaults for who can use what commands and where and then server mods have the end configuration in a completely new UI that has up to command level granularity instead of just application wide.

I assume properly displaying disabled commands is being worked on along with the movement of subcommands to a nested menu. An...

chilly siloBOT
chilly siloBOT
#

Description
When 'link' an image attachment in an embed in ephemeral messages with attachment://, the image is not displaying (we see the "poop" remplacement image).

Steps to Reproduce
Send a message with an image-attachement (named image.jpg) and with an embed that has an image value attachment://image.jpg.

Expected Behavior
The image is correctly visible inside the embed.

Current Behavior
We can see a "poop" image that means the image cannot be l...

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

Now that autocomplete is happening, it would be nice to be able to also return an extra set of options for users to fill out. This could be useful for a custom command system where users can make a custom command that takes arguments, or it could also be used for something like a settings command where an autocomplete can be used to let the user select the option, then the type for the value could be dynamically filled in. This could be something along the lines of

{
  type: 8,
  da...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Look like it can be an int (and I assume number, only tested int vs string).

image

Of note, the empty state doesn't send an interaction on the int type. Another thing, anything that would be an invalid integer (say letters) put in the option prevents the interaction from being sent. I think it would be desirable to possibly accept a string so named integer options can be accepted,...

chilly siloBOT
#

This is my personal opinion but, everyone requiring to accept the ToS on membership screen every time a new bot is added seems like a bad user experience.

What I suggest instead is to simply make the intents user specific. For example, take the message content intent. Users can use a command to open the ToS screen (I'll add an example design later) for the bot and opt-in. After that, the bot will have access to the message contents from that particular user.
This way it would be more cont...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I couldn't find the Q&A that mentioned some answers about this but I would like to discuss what solutions are being thought about currently.

Context

Now that message-based commands are going to be kind of killed (mentions still work) and developers are kind of being forced to migrate to slash commands (which I'm not against), there needs to be a viable solution before it becomes something that developers need to take car...

chilly siloBOT
chilly siloBOT
#

Description

When I sent Wrong Update presence payload to gateway says Unknown op code, even op code is correct.

Steps to Reproduce

Expected Behavior

  1. Connect to gateway
  2. Send a identify payload
  3. Send Update presence payload, but miss some fields. ex:
{
  "op": 3,
  "d": {
    "status": "online"
  }
}
  1. Observe

Current Behavior

Connection closed: code = 4001 (private use), reason = Unknown opcode..

(I use [...

chilly siloBOT
#

I have more complete thoughts on this elsewhere, but I dislike the idea of using the user's in-Discord locale for this. I use ja_JP in Discord because I'm already familiar with the English descriptions of most of the UI so it's nice for learning. I wouldn't want this to be en_US because I want a 24-hour clock, and Discord doesn't let me directly use en-US-u-hc-h23.

Unfortunately the solution I m...

chilly siloBOT
#

Tried to launch Discord today and its reporting that a new update is out; 0.0.16.
KDE was able to the update to /home/*USER/.cache/kioexec/krun/21950_0/stable, but when trying to launch the installer. it reports "Package not found"
The stable package is indeed there but i just have to manually install it
any idea if this an an issue on the distro side using Pop OS 21.04 with KDE plasma 5.21.4
Kernel 5.13

#

Honestly I see your point, I don't like that discord is forcing us to use something that feels it's missing some features that should have them.

I don't catch why wouldn't you like the bot to use the user's locale for interaction descriptions and etc, I understand that you are already familiar with the UI english and wanted to have it japanese to learn but it seems like an extreme case and it kinds of doesn't include that the idea of interactions is that they are part of the UI and not...

#

Description

When replying to a message context menu interaction, on the iOS client the resulting message will render without any attachments or rich embeds.

Steps to Reproduce

  1. Register a message context menu application command.
  2. Reply to an incoming interaction for the registered command with a rich embed.
  3. Compare the result on the iOS client and the Android / Desktop client.

Expected Behavior

The iOS client correctly displays the rich embeds and attachme...

chilly siloBOT
chilly siloBOT
#

Since the Discord community become a lot bigger recently. I really think that Discord need some ability to:

  • first: having an official plugin and theme support (a lot of security will need to be done to prevent security issues (i.e.: CSP, API restriction for plugins, etc...))
  • second: Allow third party clients. It still needs a lot of change in the API on the server to prevent unexpected case and abuse, but it would be very nice for the community since it will allow client in CLI, with GT...
chilly siloBOT
chilly siloBOT
#

Since @IanMitchell showed us multi attachment support will be added to the client, I see no reason to keep this undocumented any longer.

I'm not sure if documenting the uploading mechanism only under Create Message makes sense, maybe a dedicated section outside of endpoint docs would be better. I do think it makes sense to just link to the specific section rather than duplicating it 3 times.

#

To add to the above comment: the support server have been repeatedly warned by Discord's TnS about various behaviour such as sharing NSFW works outside NSFW channels. The administrators of the server have also worked on banning every single moderator, helper, booster and anyone affiliated with the discord.py server (source: I am a discord.py helper) img

There is no NSFW content in outside of NSFW channels. The Administrators banning Alts (Alts are agains...

#

Discord has an option for guild owners to provide a language. Until now it has been reserved for discovery usage, this should just be simply allowed for all servers to set and provided to bots as well on the interactions that are sent. guild_locale User specific locales are a bit extreme and privacy issues. If you are on a server for let's say Español users the chances are you also speak it and therefore the responses bot sends you should be understood as well. This entirely solves guild le...

#

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

chilly siloBOT
#

ApplicationComamndOptionType: DATETIME

This is something that I've been wanting to see for a while now, because I see so many practical uses. Let me get the first of uses that I currently can think of:

  • Moderation bots
  • Giveaway bots
  • Poll bots
  • Any functionality/dependency requiring a time window, range and/or set event
  • Support bots

What is this?

The DATETIME option type for application commands would enable bot developers to give users the capability of specifyi...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

i dont know the backstory of the community, or their conflict with anyone but from a technical standpoint the lib seems ok?

Indeed it is, above is just drama from the past.

I've been in the guild for a long time and I've been very active for about a year so I can say that none of the above points are valid for the past year, except for dpy mods being banned.
I don't know what happened years ago and I don't care, but if the owner doesn't want them in the server then that's her...

chilly siloBOT
#

I don't see why would someone start criticising on a lib or a support guild for that lib, 'cause of its few anime examples. Even tho the lib and support guild are like that you still can understand it and use it, so I don't see a problem other than just hating on it cus you don't like anime or "childish" examples or design.

have a weird support server that contains daily drama and rudeness directed at users of other libraries and other questionable content.

I've been in the support g...

chilly siloBOT
#

I personally dislike anime, but let's not judge on personal or past issues if those issues aren't ongoing. github is not the place for that.

personal disclaimer i'd never heard of this lib or visited it's discord before today after seeing the PR. I'm not one to follow the herd so no thumbs down or witch hunt on my part for issues I've never experienced.

I do advise though that they set up a separate discord for the support of the lib. nothing wrong with them choosing an anime theme.

chilly siloBOT
#

Yeah, sad thing is, on Discord most people especially other programmers (talking from my own experience) tend to judge stuff based on the way it look, but not its content or work put in it. From what I've personally seen, most people do hate on Hata only because of its anime structure and examples since they don't like those personally. I agree with you on the theme part, people can choose whatever theme or thing they want and develop it based on it, difference and uniqueness is what makes al...

chilly siloBOT
chilly siloBOT
#

This PR thread alone says all I need to know. I don't think the drama or unprofessionalism is in the past as some people are claiming.

We need development resources and communities who engage with its users, encourage debate (debate, not arguing, very different things) over features and are generally supportive of efforts of other developers and other resources.

From what I can gather from this thread alone, Hata as a community severely lacks the above. Its core community appear to get ...

#

from a technical standpoint the lib seems ok?

Just want to point out that the entire source of asyncio is copy pasted into various portions of their codebase. It's very slightly modified, which is somehow even worse.

https://github.com/HuyaneMatsu/hata/tree/master/hata/backend
https://github.com/HuyaneMatsu/hata/blob/master/hata/ext/asyncio/asyncio.py

I think this should speak to the technical mess that the library is. Although it may work, there seem to be lots of bizzare deci...

#

from a technical standpoint the lib seems ok?

Just want to point out that the entire source of asyncio is copy pasted into various portions of their codebase. It's very slightly modified, which is somehow even worse.

https://github.com/HuyaneMatsu/hata/tree/master/hata/backend
https://github.com/HuyaneMatsu/hata/blob/master/hata/ext/asyncio/asyncio.py

I think this should speak to the technical mess that the library is. Although it may work, there seem to be lots ...

#

To add to the above comment: the support server have been repeatedly warned by Discord's TnS about various behaviour such as sharing NSFW works outside NSFW channels. The administrators of the server have also worked on banning every single moderator, helper, booster and anyone affiliated with the discord.py server (source: I am a discord.py helper) ![img](https://camo.githubusercontent.com/a27ac139f7f6ff102c9ac77bd02336d038f8020d90bafe3a2b2b852d9a8280ba/68747470733a2f2f692e696d6775722e63...

chilly siloBOT
#

Here's my take on "interaction internationalization/localization".

There's a few things to consider here: localization of interations when they displayed in the client; bots being able to localize interaction responses as appropriate; and users being able to type in whatever language they want.

First I think I'd like to make an initial suggestion about how users should communicate what locale they wish to interact in with the bot.

I've seen a lot of comments here and on discord abou...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

This is another long feature request.

It would be nice if you could attach guilds to teams. Team members and whitelisted testers get access to a school hub-type server that contains all those guilds that you have access to. You can attach your testing servers to the team, which could enable features like those described in #3355 (maybe you can even attach whitelisted testers to managed roles!), and would not count as a guild with respect to verification (which would prevent the inorganic...

chilly siloBOT
chilly siloBOT
#

Description
The new icon and unicode_emoji properties introduced in #3847 should be marked as optional, in addition to nullable. The API may omit one or the other, depending on the server conditions.

Steps to Reproduce

  1. Call the API
  2. Observe that icon and/or unicode_emoji may not be present in certain instances

Expected Behavior
Either icon and unicode_emoji should always be present, or the documentation should be updated to reflect their opti...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

Emoji roles aren't being updated when you edit them

Steps to Reproduce

Add a role to the emoji's whitelist with

PATCH /guilds/{guild.id}/emojis/{emoji.id}
{"roles":[....]}

Then try to remove the role from the whitelist

PATCH /guilds/{guild.id}/emojis/{emoji.id}
{"roles":[]}

Expected Behavior

The emoji should be available to everyone after removing every role from the roles param

Current Behavior

The HTTP response ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

With this, I feel like radio buttons/toggles should be heavily considered alongside the possibility of adding a checkbox component. Checkbox components sound like they could work similarly in mind with how select menus currently perform. Maybe this should be added like a JSON field style for a component so that you can stylize the way a button can appear as a checkbox, radio button, regular button and/or toggle?

#

I feel like cooldowns are a very big aspect of developing commands for bots on this platform now.

The ability to add our own cooldowns for how many X given seconds a command can be used per user (with given permission overrides as of the v2 system) would be an extremely beneficial way for server owners to avoid spam of slash commands as-is, as well as bot developers avoiding unnecessarily high HTTP requests.

chilly siloBOT
#

Document new GUILD_JOIN_REQUEST_DELETE event

Questions to staff:

  1. This event is not bound to any intent. Shouldn't it be bound to GUILD_MEMBERS?
  2. Since this event is not used by the client and not yet documented, could it be possible to change the name of the event? Its kinda confusing as there are no relevant *_CREATE event. I just seems out of place

Event example

![image](https://user-images.githubusercontent.com/29100934/134764341-c9555836-e49a-4d72-b779-34c0f3...

chilly siloBOT
chilly siloBOT
#

Description

Discord uses the user-agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0 to proxy image requests to be embedded in messages.

From personal experience, this is quite confusing to any website owner trying to determine the source of a large amount of image requests. It's also not how any similar image proxying service (such as for email) handles this sort of thing - for example, Gmail uses `Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko ...

chilly siloBOT
#

Discord is the only service I know of that uses a weird browser UA for proxying images like this.

Slack appears to use the user agent Slack-ImgProxy 0.19 (+https://api.slack.com/robots) and not a random browser UA.

Since the Firefox version given in the UA is also quite old, it's not going to be uncommon for website owners to see this UA as potentially malicious (especially when there are thousands of requests from it a day) and block it from accessing the site, hindering Discord users.

#

Since the Firefox version given in the UA is also quite old, it's not going to be uncommon for website owners to see this UA as potentially malicious (especially when there are thousands of requests from it a day) and block it from accessing the site, hindering Discord users.

+1 to this, this is what we ended up doing until we started getting (seemingly unrelated) reports of images not loading on Discord. If there was a line in the UA explaining that it was Discord, this wouldn't have be...

chilly siloBOT
chilly siloBOT
#

Description
When I have a string option and I enter numbers separated by commas, the first comma is always replaced by a dot.
It seems that the error does not occur in the API, but in the client that converts it when sending it.

Steps to Reproduce

  1. Have a string option
  2. Enter some numbers separated by commas (ej: 1,2,3) without whitespaces.
  3. Send the command and check the received interaction or the sent command info.

Expected Behavior
Doesn't convert the first...

chilly siloBOT
#

This only affects people whose discord language is set to a language which uses a comma as a decimal separator. This issue was reported in ddevs on 30th august and was apparently logged as a bug. No idea what happened afterwards and it seems like it's not fixed.

I can also reproduce this when using discord in French.

ddevs conversation is around here:
<#788586647142793246 message>

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Some of this involves people trying to interpret how the API engineers at Discord are handling the processing of application commands, the way the UI/UX displays them and schemas interacting with the backend structure. I don't think any of us should be trying to argue "this should be easy" or "it isn't easy" because we quite honestly have no clue. It would definitely be nice, however, to have disabled commands outright hidden instead of greyed out.

chilly siloBOT
#

I don't think any of us should be trying to argue "this should be easy" or "it isn't easy" because we quite honestly have no clue

I thought I remembered a dev saying that it isn't easy but couldn't find the quote, regardless Mason did end up specifying what advaith wrote above in the last DDevs stage event, so that's a concrete answer.

chilly siloBOT
#

Given that a typical server has 50 roles (My guild has 500+ members and 57 roles) and Discord has 37 permissions, the maximum number of items in the selection component seems too small.

Given this, I think a maximum number of 50-75 is reasonable.

I'm trying to implement a role selection menu and a permission selection menu, but it's very frustrating that I can't implement it due to limitations, even though discord has selection menu feature.

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Kryptonite Chic

On Mon, Sep 27, 2021, 8:30 PM Lala Sabathil @.***>
wrote:


You can view, comment on, or merge this pull request online at:

https://github.com/discord/discord-api-docs/pull/3878
Commit Summary

File Changes

chilly siloBOT
#

Description

Seems like the API does not accept the unicode entity for role icons in the emoji name.

We have to send the discord assigned name of the unicode emoji.
I.e. thinking without colons.

Otherwise the API just resets the role icon.

Steps to Reproduce

Send a patch payload which sets the role unicode emoji icon:

{
  "unicode_emoji": "🤣"
}

Expected Behavior

The API sets the icon to 🤣

Current Behavior

The API resets the prev...

chilly siloBOT
#

Our API only supports emoji in unicode characters as syntax.

This is no longer true due to guild sticker tags

Role icon unicode emoji also currently require and return the name.

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.

Given the above I believe there might be some sense in reopening this?

chilly siloBOT