PenguBot/bot-sapphire

todo: profiles and social features

Opened this issue · 3 comments

This issue is stating the requested things to be added in a PR to this repository.

TypeORM:

Profile Entity [One to One]:

  • Experience Points (Member and User)
  • Level (Member and User) [This can actually just get calculated from the XP, doesn't need an entry]
  • Unlocked Badges (array of varchar)
  • Selected Badge (varchar)
  • Profile Backgrounds (array of varchar)
  • Select Background (array of varchar)
  • Premium (boolean)
  • Reputation (number)
  • Snowflakes (number)
  • Tax Rate (number)
  • Emoji (Whichever data type is suitable for storing an emoji that user can select to display on their profile)

User Entity:

  • Daily Cooldown (Could also make a many to one entity for cooldowns)
  • Reputation Cooldown
    Please talk to @QuantumlyTangled before doing the currency setup.

Commands:

User Level:

  • daily: gain snowflakes every 12 hours
  • reputation: award a user a reputation point
  • snowflakes: check balance and tax rate
  • profile: show user profile
  • rank: show member profile in a server
  • leaderboard: show global or local leaderboard
  • background: manage background, select, list, choose
  • profile emoji: select an emoji for your profile

Server Level Management:

  • managexp: allow admins to change how much XP a member has on a server
  • levelup: allow admins to enable/disable level up messages, select a channel or DM option, etc.
    Idea: Profile management commands (background, emoji, etc.) could all be subcommands under a single command.

More details will be added as they're recognized and remembered, if you make a PR, please reference this issue. Thanks!

Soooo.... I'm stuck in a firetruck so might as well write some notes. /shrug

Economy should be a Entity on user containing balance and tax rate offsets.
Guild should also contain offsets that are additive to the user ones.

All of these offsets are based on the client storage tax base so that it can be dynamically updated for events and such.

And as is with the current balance implementation (which resides on the user Entity atm) we should emit specialized events each time any of the aforementioned values are modified.

Any input or suggestions?

Sounds good to me, would you be able to make the ORM side of things for this upcoming PR? As you probably understand the complexity of the economy the best.

Note: When #37 automatically closes this, please reopen it.