learn-english-community / learn-english-bot

Discord bot for the Learn English Community.
https://discord.com/invite/smTpJWf
MIT License
6 stars 3 forks source link

Create leader board and weekly winners feature #34

Open JuniorJairo opened 1 year ago

JuniorJairo commented 1 year ago

Stop using Amari bot features, create a general "exp" leader board and a weekly leader board that shows the users with highest "exp" generated on the period of one week.

christolis commented 1 year ago

That's a brilliant suggestion! This could effectively help us deal with issue #30, as that is the only reason we need to use a feature from the Amari bot. Having our own system allows us to track all that necessary information we need from Amari by ourselves instead of using third-party bots.

We could also integrate it with our internal points system in a way. However, since that would interfere with the streaks functionality (meaning that someone could maintain their streak by just chatting), we have to give very few points to members just by chatting, and we should award points every time a member sends a fixed number of messages instead of just one (e.g a member gets 2XP for sending 25 messages, with a cooldown of 5 minutes). What do you think?

JuniorJairo commented 1 year ago

Just create two types of XP to not cause conflict: "Streaks XP" and "General XP".

christolis commented 1 year ago

Just create two types of XP to not cause conflict: "Streaks XP" and "General XP".

Hmm, well it's not a bad idea to allow members to have multiple types of XP points, although I have a feeling it might make the user interface more intricate. Giving a few points to members by following the system above is a bit more effective, if we get the values right.

This is just me slightly going on a tangent here, but we can notify members in chat every time they get XP points using an ephemeral message (a message that is only visible to them, with the "Dismiss message" text button). Think about a message that would say something like: "+2XP for being active!". Since understandably many members wouldn't want to see that after a while, we could include a context button with the title "Don't show again" or something similar.

I'd love to know your thoughts! 🙌