every-Bot / everyBot

A discordpy bot for all purposes
GNU Lesser General Public License v3.0
4 stars 3 forks source link

Standards for displaying to discord #41

Open Givo29 opened 3 years ago

Givo29 commented 3 years ago

So I've been working on updating the moderation module a little recently and I've realised that we don't have a standard for how we should display info in discord.

The two ways to send data to discord are through regular messages and rich embeds, which stand out more than normal messages. I've noticed lately that the way we're sending info to discord is a bit all over the place in this regard so I think we need to come up with some standard for when and why embeds should be used over regular messages.

Any ideas?

simbarb commented 3 years ago

I see two paths:

  1. All messages use embeds and build both a formatting guide for developers and some embed helper classes to maintain consistency across all modules.

  2. Most messages use regular text (not embeds) with embeds being used for settings, module menus, help menus, error messages and more interactive modules (text based games or something). As with the previous suggestion, formatting guides and helper classes be written so developers know when to use either message type and maintaining consistency and removing design overhead.

Probably the most important thing is to find a path to go down, doesn't have to be the above paths, define standards and start using them.

JBrummans commented 3 years ago

I like suggestion 2 more. Also maybe consider using replies when the bot responds.

Givo29 commented 3 years ago

I also prefer suggestion 2, I think using embeds for every response would be a bit overkill and may be distracting at times for other members in the server.

I do really like the reply feature, it stands out to only the person who ran the command, which is probably what we want for the most part and I think it may be the way to go for most of the responses.

Adding to the use case of the embeds, more public announcement type responses such as mute/ban/warn confirmations, user level ups (if/when a level module is eventually implemented) should be embeds or polls (if/when that is also implemented), these are all things that I think the public should be somewhat aware of, or at least make more sense to be more visible to everyone.

JBrummans commented 3 years ago

Bonus of the reply is if the bot doesnt respond instantly and other users post messages between the command and the response, the reply links it back to the original command by the user. Would also be good if multiple people spam a command at the same time its obvious which bot response if for which user.

Also agree with the use of embeds more for mod announcements or things that affect multiple users.

Givo29 commented 3 years ago

Would also be good if multiple people spam a command at the same time its obvious which bot response if for which user

Yes I've actually had this problem before, using replies would definitely solve this.

Would we use all replies?

JBrummans commented 3 years ago

I think general rule of thumb would be:

Some other suggestions:

Givo29 commented 3 years ago

Okay that sounds good to me, I think that will be the way to go.

We make a response function that can be called by cogs to control this standard

Do you mean somehow programatically figure out what the output should be? Or do you mean create some sort of helper function for embeds so they're all the same?

JBrummans commented 3 years ago

Lets drop that suggestion for now as it will add complexity.

What about colour for embeds. Any preference on that?

Givo29 commented 3 years ago

Okay.

Red should be reserved for errors, not that we would be using embeds for many errors, the only errors that should make use of embeds under this set of standards should be errors that potentially affect the entire bot/server that everyone should see.

Otherwise either either blue, black or green would be fine for general success messages, I think blue is a pretty common colour for this