File tree Expand file tree Collapse file tree 2 files changed +49
-6
lines changed Expand file tree Collapse file tree 2 files changed +49
-6
lines changed Original file line number Diff line number Diff line change 1
1
const { Events } = require ( "discord.js" ) ;
2
2
3
3
const CSESOC_SERVER_ID = "693779865916276746" ;
4
- const REPORT_CHANNEL_ID = "1225243371036082187 " ;
4
+ const REPORT_CHANNEL_ID = "1270283342176059443 " ;
5
5
6
6
module . exports = {
7
7
name : Events . GuildMemberAdd ,
@@ -13,11 +13,22 @@ module.exports = {
13
13
// Get report channel
14
14
if ( member . user . bot || member . user . system || member . guild . id !== CSESOC_SERVER_ID ) return ;
15
15
16
- userDB . user_join ( member . id ) . then ( ( joinType ) => {
17
- if ( joinType === "rejoin" ) {
18
- const reportChannel = member . guild . channels . cache . get ( REPORT_CHANNEL_ID ) ;
19
- reportChannel . send ( `${ member . user } (${ member . user . tag } ) has rejoined the server.` ) ;
20
- }
16
+ // Get old user info before joining
17
+ userDB . get_user_info ( member . id ) . then ( ( user_data ) => {
18
+ userDB . user_join ( member . id ) . then ( ( joinType ) => {
19
+ if ( joinType === "rejoin" ) {
20
+ // Fetch the channel to output details
21
+ const reportChannel = member . guild . channels . cache . get ( REPORT_CHANNEL_ID ) ;
22
+
23
+ // Fetch formatted date values from joining and leaving events
24
+ const joinDate = user_data . joinDate . toLocaleDateString ( "en-AU" ) ;
25
+ const leaveDate = user_data . leaveDate . toLocaleDateString ( "en-AU" ) ;
26
+
27
+ reportChannel . send (
28
+ `${ member . user } (${ member . user . tag } ) has rejoined the server. [Last in server: ${ leaveDate } , Last joined: ${ joinDate } ]` ,
29
+ ) ;
30
+ }
31
+ } ) ;
21
32
} ) ;
22
33
} ,
23
34
} ;
Original file line number Diff line number Diff line change @@ -250,6 +250,38 @@ class DBuser {
250
250
return type ;
251
251
}
252
252
253
+ async get_user_info ( userid ) {
254
+ const client = await this . pool . connect ( ) ;
255
+ let info = null ;
256
+
257
+ try {
258
+ await client . query ( "BEGIN" ) ;
259
+
260
+ const query = "select * from users where userid = $1" ;
261
+ const values = [ userid ] ;
262
+ const result = await client . query ( query , values ) ;
263
+
264
+ if ( result . rows . length != 0 ) {
265
+ const row = result . rows [ 0 ] ;
266
+
267
+ info = {
268
+ userId : row [ "userid" ] ,
269
+ joinDate : row [ "joindate" ] ,
270
+ leaveDate : row [ "leavedate" ] ,
271
+ userLeft : row [ "userleft" ] ,
272
+ } ;
273
+ }
274
+ } catch ( ex ) {
275
+ console . log ( `An unexpected error occurred: ${ ex } ` ) ;
276
+ } finally {
277
+ await client . query ( "ROLLBACK" ) ;
278
+ client . release ( ) ;
279
+ // console.log("Client released successfully.")
280
+ }
281
+
282
+ return info ;
283
+ }
284
+
253
285
// Adding a user role
254
286
async add_user_role ( userid , role ) {
255
287
const client = await this . pool . connect ( ) ;
You can’t perform that action at this time.
0 commit comments