Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XP/Level system #87

Open
ElementalMP4 opened this issue Jun 6, 2021 · 3 comments
Open

XP/Level system #87

ElementalMP4 opened this issue Jun 6, 2021 · 3 comments
Labels
EPIC Big Features Feature

Comments

@ElementalMP4
Copy link
Collaborator

Server admins will be able to enable/disable the system
Members can check their own XP and level with a command, as well as viewing a leaderboard (or maybe top 10) for the server
Admins should be able to choose role rewards when a level is reached
XP cards could be shown with an image instead of an embed or text message

@Montori Montori added EPIC Big Features Awaiting Specs Specifications need to be defined for this issue labels Jun 6, 2021
@ElementalMP4
Copy link
Collaborator Author

Here I have made a 1st iteration design spec for the Level system:

Feature Functionality
• When a message is received, the user’s experience will randomly increase by 5-15 points.
• Users may check their experience/level/guild rank with a level command.
• Users may see the top 10 most active members of a server with the top or leaderboard command.
• Admins may add and remove xp from users using the addxp and remxp commands.
• Admins may choose which channels will not gain xp using the noxp command.
• Admins may set all xp levels back to zero with the resetxp command.
• Admins may choose perk roles with the perk command.

Backend Requirements
• New database entity called LevelConfig which will contain the noxp channels for the guild, the perk levels and their roles, and the guild id.
• New database entity called UserExperience which will contain the User ID, the Barista Server ID, the chosen colour by the user (or the default) and User experience. Levels should be calculated upon request.
• New entity methods should include methods to return calculated level, next level, rank and xp to next level.
• When the user requests their level using the level command, they should be given an image which will show their profile picture, along with their rank, level and experience information, server boost status and chosen background colour. An external API will be used for the image (https://vacefron.nl/api/)
• A service should be made which will automatically check for a level configuration in the server the message is from, and if one exists, the user’s experience should be incremented.
• All levelling routines and commands should use methods from this service to get and set persistent data. Levels and ranks should not be calculated in the commands.

Please read and comment on anything you think should be changed, or that you think is incredibly stupid.

@ElementalMP4
Copy link
Collaborator Author

UPDATES:

  1. Generate XP cards in house (HTML/SVG renderer?)
  2. Add an option to import MEE6/Arcane levels during setup and later on

ElementalMP4 pushed a commit that referenced this issue Apr 13, 2022
are still needed and output formatting is not done (#87)
ElementalMP4 pushed a commit that referenced this issue Apr 13, 2022
@ElementalMP4
Copy link
Collaborator Author

TODO:

  1. Implement the design codec sent in ze-talk
  2. NOXP channels/roles
  3. Web-viewable leaderboard
  4. User customisation

@ElementalMP4 ElementalMP4 removed the Awaiting Specs Specifications need to be defined for this issue label Apr 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
EPIC Big Features Feature
Projects
None yet
Development

No branches or pull requests

2 participants