File tree Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change
1
+ // @ts -check
2
+ const { DBuser } = require ( "../lib/database/database" ) ;
3
+ const { CronJob } = require ( 'cron' ) ;
4
+
5
+ /* eslint-disable */
6
+ const CSESOC_SERVER_ID = "693779865916276746" ;
7
+ // const TEST_SERVER_ID = "1220297696829509713";
8
+
9
+ module . exports = {
10
+ name : "ready" ,
11
+ once : true ,
12
+ async execute ( client ) {
13
+ /** @type {DBuser } */
14
+ const userDB = new DBuser ( ) ;
15
+ global . userDB = userDB ;
16
+
17
+ // Set up an automatic database check to see if there is any out of date roles.
18
+ const role_job = new CronJob (
19
+ '0 0 12 * * *' ,
20
+ async function ( ) {
21
+ console . log ( "Performing daily check of old roles at 12:00pm" ) ;
22
+
23
+ const old_roles = await userDB . checkTimeAssigned ( ) ;
24
+ for ( const removed_role of old_roles ) {
25
+ try {
26
+ const guild = await client . guilds . fetch ( CSESOC_SERVER_ID ) ;
27
+ const member = await guild . members . fetch ( removed_role . userid ) ;
28
+ const roles = await guild . roles . fetch ( ) ;
29
+ const role = roles . find ( r => r . name === removed_role . role_name ) ;
30
+
31
+ if ( member && role ) {
32
+ await member . roles . remove ( role ) ;
33
+ await userDB . remove_user_role ( removed_role . userid , removed_role . role_name ) ;
34
+ // console.log(`Removed role ${removed_role.role_name} from user ${removed_role.userid}`);
35
+ } else {
36
+ console . log ( `Could not find role ${ removed_role . role_name } or user ${ removed_role . userid } ` ) ;
37
+ }
38
+ } catch ( error ) {
39
+ console . log ( error ) ;
40
+ }
41
+ }
42
+ } ,
43
+ ) ;
44
+
45
+ role_job . start ( ) ;
46
+ } ,
47
+ } ;
You can’t perform that action at this time.
0 commit comments