File tree 2 files changed +51
-0
lines changed
2 files changed +51
-0
lines changed Original file line number Diff line number Diff line change
1
+ {
2
+ "name" : " invite-tracker-bot" ,
3
+ "version" : " 1.0.0" ,
4
+ "description" : " " ,
5
+ "main" : " index.js" ,
6
+ "scripts" : {
7
+ "test" : " echo \" Error: no test specified\" && exit 1"
8
+ },
9
+ "keywords" : [],
10
+ "author" : " " ,
11
+ "license" : " ISC" ,
12
+ "dependencies" : {
13
+ "discord.js" : " ^12.0.2" ,
14
+ "dotenv" : " ^8.2.0"
15
+ }
16
+ }
Original file line number Diff line number Diff line change
1
+ require ( 'dotenv' ) . config ( ) ;
2
+ const { Client, MessageEmbed } = require ( 'discord.js' ) ;
3
+ const client = new Client ( ) ;
4
+ client . login ( process . env . BOT_TOKEN ) ;
5
+ const guildInvites = new Map ( ) ;
6
+
7
+ client . on ( 'inviteCreate' , async invite => guildInvites . set ( invite . guild . id , await invite . guild . fetchInvites ( ) ) ) ;
8
+ client . on ( 'ready' , ( ) => {
9
+ console . log ( `${ client . user . tag } has logged in.` ) ;
10
+ client . guilds . cache . forEach ( guild => {
11
+ guild . fetchInvites ( )
12
+ . then ( invites => guildInvites . set ( guild . id , invites ) )
13
+ . catch ( err => console . log ( err ) ) ;
14
+ } ) ;
15
+ } ) ;
16
+
17
+ client . on ( 'guildMemberAdd' , async member => {
18
+ const cachedInvites = guildInvites . get ( member . guild . id ) ;
19
+ const newInvites = await member . guild . fetchInvites ( ) ;
20
+ guildInvites . set ( member . guild . id , newInvites ) ;
21
+ try {
22
+ const usedInvite = newInvites . find ( inv => cachedInvites . get ( inv . code ) . uses < inv . uses ) ;
23
+ const embed = new MessageEmbed ( )
24
+ . setDescription ( `${ member . user . tag } is the ${ member . guild . memberCount } to join.\nJoined using ${ usedInvite . inviter . tag } \nNumber of uses: ${ usedInvite . uses } ` )
25
+ . setTimestamp ( )
26
+ . setTitle ( `${ usedInvite . url } ` ) ;
27
+ const welcomeChannel = member . guild . channels . cache . find ( channel => channel . id === '640340055201939456' ) ;
28
+ if ( welcomeChannel ) {
29
+ welcomeChannel . send ( embed ) . catch ( err => console . log ( err ) ) ;
30
+ }
31
+ }
32
+ catch ( err ) {
33
+ console . log ( err ) ;
34
+ }
35
+ } ) ;
You can’t perform that action at this time.
0 commit comments