Repository navigation
Expand file tree
/
Copy pathdiscord-client.js
More file actions
66 lines (59 loc) · 1.83 KB
/
Copy pathdiscord-client.js
File metadata and controls
66 lines (59 loc) · 1.83 KB
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
// discord-client.js
// Singleton accessor for Discord client instance
// Allows other modules (like intervention-planner) to access the client without circular imports
/** @typedef {import('discord.js').Client} Client */
// ============================================================================
// USAGE
// ============================================================================
//
// In index.js (after creating client):
// const { setDiscordClient } = require('./discord-client');
// setDiscordClient(client);
//
// In any other module:
// const { getDiscordClient } = require('./discord-client');
// const client = getDiscordClient();
// const guild = client.guilds.cache.get(guildId);
//
// ============================================================================
/** @type {Client | null} */
let discordClient = null;
/**
* Set the Discord client instance
* Should be called once in index.js after client creation
*
* @param {Client} client - Discord.js Client instance
*/
function setDiscordClient(client) {
if (discordClient) {
console.warn('[DiscordClient] Client already set, overwriting...');
}
discordClient = client;
console.log('[DiscordClient] Client instance registered');
}
/**
* Get the Discord client instance
* Throws if client hasn't been set yet
*
* @returns {Client} Discord.js Client instance
*/
function getDiscordClient() {
if (!discordClient) {
throw new Error('[DiscordClient] Client not set. Call setDiscordClient() first.');
}
return discordClient;
}
/**
* Check if Discord client is available
* Useful for graceful fallbacks
*
* @returns {boolean} True if client is set
*/
function isClientReady() {
return discordClient !== null && discordClient.isReady();
}
module.exports = {
setDiscordClient,
getDiscordClient,
isClientReady,
};