-
-
Notifications
You must be signed in to change notification settings - Fork 11
Seniority
Seniority allows for the automated management of an activity-based role. User activity that meets certain set conditions is tracked through a point system. Some of the possible conditions include:
- message type (length, emojis, etc.)
- messages in specific channels
- activity over a period of time (this one is really just how you set up your point system)
A server-wide daily cap can also be set so that people do not "farm" points. To allow for role removal and addition, set a lower and upper point threshold respectively. The process can be automatic or manually called.
User point activity can be viewed by those with administrative roles. Users can also be exempt from role addition/removal by adding them to the blacklist.
-
Message Eligibility: Through
^seniority acceptable, you can find the settings to set up the filter parameters for eligible messages counting toward points. These includeminlength,minwords,togglecommands,toggleemoji,togglementions, andtoggleroomcodes. The purpose of these filters is to prevent point farming by excluding "spam" or meaningless messages from counting towards activity points. Finally, set the number of messages required to reach the maximum points for a channel through^seniority config messagecap <cap_amount>. Further details on eligibility and point cap are below. -
Channel Eligibility: To have a channel count activity, include it with
^seniority config channel <channel> <max_points_per_day>. The max_points_per_day parameter will be the maximum amount of points a user can gain in that channel through messages. -
Daily Cap: Set up your server's maximum point gain per day for a user through
^seniority config serverpointcap <cap_amount>. You should also set up the number of days to look back when computing points to grant/remove a role through^seniority config grantlookback <days>and^seniority config removelookback <days>respectively. For example, using 90 as the days parameter will mean that only the past 90 days worth of activity are used to calculate a user's points to check if they should receive/lose a role. -
Role Eligibility: Once you have decided the role you wish to be automated through Seniority, set it up with
^seniority config role <role> <remove_amount> <warn_amount> <grant_amount>. When a user's points falls below the remove_amount parameter, the role will be removed from them. When a user's points exceeds the grant_amount parameter, the role will be granted to them. The warn_amount parameter will allow you to see which users are near the grant_amount threshold, and such users can also be seen through^seniority grant listnear. See the "View Users Above/Near/Below Threshold" section for more details on viewing relevant users by point threshold. -
Automation: To have the role additional/removal process be automated, use
^seniority config toggleautogrant. You can also use this command to disable automation for manual role management through^seniority grant(discussed in the "Managing Users" section below). You should also set up an announcement channel through^seniority config announcechannel <channel>; it will be useful as you will be able to see a record of the role changes made automatically by Seniority. -
To view your server's Seniority configurations, use
^seniority printconfig.
-
Grant/Remove Role: If you have the role process automated, you do not need to worry about granting/removing the role from eligible/ineligible users. If you choose the manual route, use
^seniority grant grantnowand^seniority grant removenowto grant/remove the role from the eligible/ineligible users. -
Blacklist: If you would like to remove a user from the process (i.e. allow them to always have the role or never get the role permanently/temporarily), add them to the blacklist through
^seniority blacklist userid reasonwhy. To put them back into the process, use^seniority unblacklist userid. You can see all users on the blacklist through^seniority printconfig. -
View Users Above/Near/Below Threshold: You can see a list of users who are above, near, and below the specified point threshold through
^seniority grant listabove,^seniority grant listnear, and^seniority grant listbelowrespectively. -
User History:
^seniority userhistory <user> <days>is a helpful command that lets you view the point history for a user to see how active they are according to the parameters you set up.
sudo apt-get install libsqliteodbc