-
-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathindex.ts
93 lines (85 loc) · 3.9 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import { Client, IntentsBitField } from 'discord.js';
import {
handleGuildMemberUpdateEvent,
handleGuildUpdateEvent,
handleMessageUpdateEvent,
handlePresenceUpdateEvent,
handleRoleUpdateEvent,
handleUserUpdateEvent,
handleVoiceStateUpdateEvent,
handleChannelUpdateEvent,
handleThreadChannelUpdateEvent,
} from './handlers';
let eventRegistered = false;
export = async (client: Client, options?: { debug?: boolean }) => {
if (eventRegistered) return;
eventRegistered = true;
const intents = new IntentsBitField(client.options.intents);
/* HANDLE GUILDS EVENTS */
if (intents.has(IntentsBitField.Flags.Guilds)) {
if (options?.debug) console.log('channelUpdate event handler registered.');
client.on('channelUpdate', (oldChannel, newChannel) => {
handleChannelUpdateEvent(client, oldChannel, newChannel);
});
if (options?.debug) console.log('guildUpdate event handler registered.');
client.on('guildUpdate', (oldGuild, newGuild) => {
handleGuildUpdateEvent(client, oldGuild, newGuild);
});
if (options?.debug) console.log('roleUpdate event handler registered.');
client.on('roleUpdate', (oldRole, newRole) => {
handleRoleUpdateEvent(client, oldRole, newRole);
});
if (options?.debug) console.log('threadUpdate event handler registered.');
client.on('threadUpdate', (oldThread, newThread) => {
handleThreadChannelUpdateEvent(client, oldThread, newThread);
});
} else {
if (options?.debug)
console.log(
'channelUpdate, guildUpdate, roleUpdate and threadUpdate event handlers not registered (missing Guilds intent).',
);
}
/* HANDLE MEMBER EVENTS */
if (intents.has(IntentsBitField.Flags.GuildMembers)) {
if (options?.debug) console.log('guildMemberUpdate event handler registered.');
client.on('guildMemberUpdate', (oldMember, newMember) => {
handleGuildMemberUpdateEvent(client, oldMember, newMember);
});
if (options?.debug) console.log('userUpdate event handler registered.');
client.on('userUpdate', (oldUser, newUser) => {
handleUserUpdateEvent(client, oldUser, newUser);
});
} else {
if (options?.debug)
console.log('guildMemberUpdate, userUpdate event handlers not registered (missing GuildMembers intent).');
}
/* HANDLE MESSAGE UPDATE EVENTS */
if (intents.has(IntentsBitField.Flags.GuildMessages && IntentsBitField.Flags.MessageContent)) {
if (options?.debug) console.log('messageUpdate event handler registered.');
client.on('messageUpdate', (oldMessage, newMessage) => {
handleMessageUpdateEvent(client, oldMessage, newMessage);
});
} else {
if (options?.debug) console.log('messageUpdate event handler not registered (missing GuildMessages or MessageContent intent).');
}
/* HANDLE PRESENCE UPDATE EVENTS */
if (intents.has(IntentsBitField.Flags.GuildPresences)) {
if (options?.debug) console.log('presenceUpdate event handler registered.');
client.on('presenceUpdate', (oldPresence, newPresence) => {
handlePresenceUpdateEvent(client, oldPresence, newPresence);
});
} else {
if (options?.debug)
console.log('presenceUpdate event handler not registered (missing GuildPresences intent).');
}
/* HANDLE VOICE STATE UPDATE */
if (intents.has(IntentsBitField.Flags.GuildVoiceStates)) {
if (options?.debug) console.log('voiceStateUpdate event handler registered.');
client.on('voiceStateUpdate', (oldState, newState) => {
handleVoiceStateUpdateEvent(client, oldState, newState);
});
} else {
if (options?.debug)
console.log('voiceStateUpdate event handler not registered (missing GuildVoiceStates intent).');
}
};