@fluxerjs/core 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Channel-OSOB6ELO.mjs → Channel-TWPDKW2P.mjs} +1 -1
- package/dist/{ClientUser-RNDKHQ3Z.mjs → ClientUser-2K2BACK7.mjs} +1 -2
- package/dist/{Guild-GOQZ7XP4.mjs → Guild-CMZGA6DW.mjs} +3 -1
- package/dist/{GuildMember-BJJNCL6W.mjs → GuildMember-DW2N6ITI.mjs} +1 -2
- package/dist/{Message-QXPHQOVC.mjs → Message-G2QIKZQK.mjs} +1 -2
- package/dist/MessageReaction-XRPYZDSC.mjs +7 -0
- package/dist/{Webhook-AG6QFM2I.mjs → Role-SVLWIAMN.mjs} +3 -3
- package/dist/{Webhook-2RHBXH7R.mjs → Webhook-2MQESB7Z.mjs} +1 -1
- package/dist/{chunk-J3EIGOXQ.mjs → chunk-4GCZFOS5.mjs} +20 -6
- package/dist/{chunk-PO5JZQVN.mjs → chunk-CO5EL5LH.mjs} +71 -14
- package/dist/{chunk-WYSHH4LR.mjs → chunk-CZIO2D7F.mjs} +72 -6
- package/dist/chunk-HBF5QEDH.mjs +42 -0
- package/dist/{chunk-NISGA2YZ.mjs → chunk-JVEOQFUX.mjs} +1 -4
- package/dist/chunk-SQVCCSNN.mjs +41 -0
- package/dist/chunk-TJVZEILY.mjs +120 -0
- package/dist/{chunk-T2NSVWBH.mjs → chunk-ZGMM6IPQ.mjs} +3 -1
- package/dist/index.d.mts +374 -61
- package/dist/index.d.ts +374 -61
- package/dist/index.js +1001 -409
- package/dist/index.mjs +505 -192
- package/package.json +27 -8
- package/dist/Channel-2WNJ445K.mjs +0 -17
- package/dist/Channel-BEZOW4VC.mjs +0 -17
- package/dist/Channel-DPLLHL7Y.mjs +0 -19
- package/dist/Channel-HM2UY4DN.mjs +0 -17
- package/dist/Channel-IKL3SJXN.mjs +0 -17
- package/dist/Channel-KILNV5V3.mjs +0 -17
- package/dist/Channel-KOTARBSF.mjs +0 -17
- package/dist/Channel-ON7O3D3M.mjs +0 -17
- package/dist/Channel-TOAQGSRX.mjs +0 -17
- package/dist/Channel-VENHOL7S.mjs +0 -17
- package/dist/Channel-YVGPVOVB.mjs +0 -17
- package/dist/ClientUser-6HBAPU6H.mjs +0 -8
- package/dist/ClientUser-ALGC4FNY.mjs +0 -8
- package/dist/ClientUser-J6HQVSDJ.mjs +0 -9
- package/dist/ClientUser-LLL6WX35.mjs +0 -8
- package/dist/ClientUser-N7ZXYAQ3.mjs +0 -8
- package/dist/Guild-36EGAAEW.mjs +0 -8
- package/dist/Guild-5UBZNIGD.mjs +0 -9
- package/dist/Guild-CA3W6DOD.mjs +0 -8
- package/dist/Guild-GIXJJBFM.mjs +0 -9
- package/dist/Guild-NHNQ5TIA.mjs +0 -8
- package/dist/Guild-S436SLOP.mjs +0 -9
- package/dist/Guild-WAFXK2EX.mjs +0 -9
- package/dist/Guild-XPOMHZZG.mjs +0 -9
- package/dist/Guild-ZOFF5LFR.mjs +0 -8
- package/dist/GuildMember-FX2JAWES.mjs +0 -8
- package/dist/GuildMember-K5FLBNHV.mjs +0 -8
- package/dist/GuildMember-RGVPVUAG.mjs +0 -9
- package/dist/GuildMember-UBNHZBCO.mjs +0 -8
- package/dist/GuildMember-UU26WJGN.mjs +0 -8
- package/dist/GuildMember-XF7K2R45.mjs +0 -9
- package/dist/Message-23Z3RPCZ.mjs +0 -9
- package/dist/Message-33APPS76.mjs +0 -9
- package/dist/Message-6RSAGIRP.mjs +0 -8
- package/dist/Message-OXTQHFCF.mjs +0 -8
- package/dist/Message-PZUU7ZFR.mjs +0 -9
- package/dist/Message-R7GZYIQQ.mjs +0 -8
- package/dist/Message-W624MHJF.mjs +0 -8
- package/dist/Message-XB5WNMHL.mjs +0 -9
- package/dist/Message-ZCS7IGJX.mjs +0 -8
- package/dist/Webhook-NUQCJAWZ.mjs +0 -7
- package/dist/Webhook-TGAZZRQQ.mjs +0 -7
- package/dist/chunk-2FIZRRSO.mjs +0 -88
- package/dist/chunk-3CNUPFDI.mjs +0 -59
- package/dist/chunk-4DBGMFOQ.mjs +0 -14
- package/dist/chunk-5HQRX3KJ.mjs +0 -70
- package/dist/chunk-62S4AB2S.mjs +0 -54
- package/dist/chunk-6CEMF2LO.mjs +0 -14
- package/dist/chunk-6EBNOON4.mjs +0 -86
- package/dist/chunk-72OY7B3D.mjs +0 -72
- package/dist/chunk-7FYM4D2E.mjs +0 -50
- package/dist/chunk-7GZN6JXT.mjs +0 -50
- package/dist/chunk-7H3TKJUT.mjs +0 -53
- package/dist/chunk-7SIS5CUA.mjs +0 -14
- package/dist/chunk-BGJSL6JI.mjs +0 -14
- package/dist/chunk-BUEXP5SZ.mjs +0 -70
- package/dist/chunk-BYTAODAO.mjs +0 -70
- package/dist/chunk-CQ5ZVTLX.mjs +0 -71
- package/dist/chunk-DJBCSVZX.mjs +0 -102
- package/dist/chunk-DLROMCIJ.mjs +0 -50
- package/dist/chunk-DPZHAYCK.mjs +0 -71
- package/dist/chunk-E75ZVY3I.mjs +0 -14
- package/dist/chunk-EF32ILJL.mjs +0 -102
- package/dist/chunk-F2EEQP5O.mjs +0 -86
- package/dist/chunk-FK5X6HFL.mjs +0 -111
- package/dist/chunk-FNFID6QB.mjs +0 -45
- package/dist/chunk-G4L7WAJS.mjs +0 -64
- package/dist/chunk-GUNWHOQO.mjs +0 -42
- package/dist/chunk-IPHFDI2L.mjs +0 -68
- package/dist/chunk-JJHZBWZM.mjs +0 -118
- package/dist/chunk-L25ON7WB.mjs +0 -52
- package/dist/chunk-LBBIQOSH.mjs +0 -53
- package/dist/chunk-LVMFPATK.mjs +0 -54
- package/dist/chunk-NOLYW3V4.mjs +0 -140
- package/dist/chunk-OHIHIQAS.mjs +0 -102
- package/dist/chunk-P4IRDGB4.mjs +0 -43
- package/dist/chunk-PYYXC7US.mjs +0 -76
- package/dist/chunk-QDCFQF6J.mjs +0 -36
- package/dist/chunk-QDNFJVVE.mjs +0 -70
- package/dist/chunk-QXJNV5EJ.mjs +0 -110
- package/dist/chunk-RXHJYGSJ.mjs +0 -53
- package/dist/chunk-SW6KNICI.mjs +0 -52
- package/dist/chunk-TE5IC7IP.mjs +0 -36
- package/dist/chunk-TMDZALIN.mjs +0 -110
- package/dist/chunk-WFONGZGK.mjs +0 -42
- package/dist/chunk-WZVY7DA6.mjs +0 -44
- package/dist/chunk-XTDZQD4A.mjs +0 -110
- package/dist/chunk-XXCBJJZE.mjs +0 -88
- package/dist/chunk-YKP7JHV2.mjs +0 -102
- package/dist/chunk-YSKZR66G.mjs +0 -102
- package/dist/chunk-ZHRQQZ4X.mjs +0 -102
- package/dist/chunk-ZMIMAMO2.mjs +0 -14
package/dist/index.mjs
CHANGED
|
@@ -1,30 +1,36 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ClientUser,
|
|
3
|
+
User
|
|
4
|
+
} from "./chunk-4GCZFOS5.mjs";
|
|
1
5
|
import {
|
|
2
6
|
Webhook
|
|
3
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ZGMM6IPQ.mjs";
|
|
8
|
+
import {
|
|
9
|
+
Message
|
|
10
|
+
} from "./chunk-CO5EL5LH.mjs";
|
|
4
11
|
import {
|
|
5
12
|
CategoryChannel,
|
|
6
13
|
Channel,
|
|
7
14
|
DMChannel,
|
|
8
15
|
GuildChannel,
|
|
9
16
|
LinkChannel,
|
|
17
|
+
MessageManager,
|
|
10
18
|
TextChannel,
|
|
11
19
|
VoiceChannel
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import {
|
|
14
|
-
Message
|
|
15
|
-
} from "./chunk-PO5JZQVN.mjs";
|
|
20
|
+
} from "./chunk-CZIO2D7F.mjs";
|
|
16
21
|
import {
|
|
17
22
|
Guild
|
|
18
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-TJVZEILY.mjs";
|
|
24
|
+
import "./chunk-HQMYRYMY.mjs";
|
|
19
25
|
import {
|
|
20
26
|
GuildMember
|
|
21
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-JVEOQFUX.mjs";
|
|
22
28
|
import {
|
|
23
|
-
|
|
24
|
-
} from "./chunk-
|
|
29
|
+
Role
|
|
30
|
+
} from "./chunk-SQVCCSNN.mjs";
|
|
25
31
|
import {
|
|
26
|
-
|
|
27
|
-
} from "./chunk-
|
|
32
|
+
MessageReaction
|
|
33
|
+
} from "./chunk-HBF5QEDH.mjs";
|
|
28
34
|
import {
|
|
29
35
|
Base
|
|
30
36
|
} from "./chunk-XNS4O6QJ.mjs";
|
|
@@ -33,8 +39,120 @@ import {
|
|
|
33
39
|
import { EventEmitter } from "events";
|
|
34
40
|
import { REST } from "@fluxerjs/rest";
|
|
35
41
|
import { WebSocketManager } from "@fluxerjs/ws";
|
|
36
|
-
import { Routes } from "@fluxerjs/types";
|
|
42
|
+
import { Routes as Routes3 } from "@fluxerjs/types";
|
|
43
|
+
import { Collection as Collection3 } from "@fluxerjs/collection";
|
|
44
|
+
|
|
45
|
+
// src/client/ChannelManager.ts
|
|
37
46
|
import { Collection } from "@fluxerjs/collection";
|
|
47
|
+
import { Routes } from "@fluxerjs/types";
|
|
48
|
+
var ChannelManager = class extends Collection {
|
|
49
|
+
constructor(client) {
|
|
50
|
+
super();
|
|
51
|
+
this.client = client;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Fetch a channel by ID from the API (or return from cache if present).
|
|
55
|
+
* @param channelId - Snowflake of the channel
|
|
56
|
+
* @returns The channel, or null if not found
|
|
57
|
+
* @example
|
|
58
|
+
* const channel = await client.channels.fetch(channelId);
|
|
59
|
+
* if (channel?.isSendable()) await channel.send('Hello!');
|
|
60
|
+
*/
|
|
61
|
+
async fetch(channelId) {
|
|
62
|
+
const cached = this.get(channelId);
|
|
63
|
+
if (cached) return cached;
|
|
64
|
+
try {
|
|
65
|
+
const { Channel: Channel2 } = await import("./Channel-TWPDKW2P.mjs");
|
|
66
|
+
const data = await this.client.rest.get(
|
|
67
|
+
Routes.channel(channelId)
|
|
68
|
+
);
|
|
69
|
+
const channel = Channel2.fromOrCreate(this.client, data);
|
|
70
|
+
if (channel) this.set(channel.id, channel);
|
|
71
|
+
return channel;
|
|
72
|
+
} catch {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Fetch a message by ID from the API.
|
|
78
|
+
* @param channelId - Snowflake of the channel
|
|
79
|
+
* @param messageId - Snowflake of the message
|
|
80
|
+
* @returns The message, or null if not found
|
|
81
|
+
* @deprecated Use channel.messages.fetch(messageId). Prefer (await client.channels.fetch(channelId))?.messages?.fetch(messageId).
|
|
82
|
+
* @example
|
|
83
|
+
* const channel = await client.channels.fetch(channelId);
|
|
84
|
+
* const message = await channel?.messages?.fetch(messageId);
|
|
85
|
+
*/
|
|
86
|
+
async fetchMessage(channelId, messageId) {
|
|
87
|
+
try {
|
|
88
|
+
const { Message: Message2 } = await import("./Message-G2QIKZQK.mjs");
|
|
89
|
+
const data = await this.client.rest.get(
|
|
90
|
+
Routes.channelMessage(channelId, messageId)
|
|
91
|
+
);
|
|
92
|
+
return new Message2(this.client, data);
|
|
93
|
+
} catch {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Send a message to a channel by ID. Works even when the channel is not cached.
|
|
99
|
+
* Skips the fetch when you only need to send.
|
|
100
|
+
* @param channelId - Snowflake of the channel (text channel or DM)
|
|
101
|
+
* @param payload - Text content or object with content and/or embeds
|
|
102
|
+
* @returns The created message
|
|
103
|
+
* @example
|
|
104
|
+
* await client.channels.send(logChannelId, 'User joined!');
|
|
105
|
+
* await client.channels.send(channelId, { embeds: [embed.toJSON()] });
|
|
106
|
+
*/
|
|
107
|
+
async send(channelId, payload) {
|
|
108
|
+
const body = typeof payload === "string" ? { content: payload } : payload;
|
|
109
|
+
const { Message: Message2 } = await import("./Message-G2QIKZQK.mjs");
|
|
110
|
+
const data = await this.client.rest.post(Routes.channelMessages(channelId), { body });
|
|
111
|
+
return new Message2(this.client, data);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
// src/client/GuildManager.ts
|
|
116
|
+
import { Collection as Collection2 } from "@fluxerjs/collection";
|
|
117
|
+
import { Routes as Routes2 } from "@fluxerjs/types";
|
|
118
|
+
var GuildManager = class extends Collection2 {
|
|
119
|
+
constructor(client) {
|
|
120
|
+
super();
|
|
121
|
+
this.client = client;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Fetch a guild by ID from the API (or return from cache if present).
|
|
125
|
+
* @param guildId - Snowflake of the guild
|
|
126
|
+
* @returns The guild, or null if not found
|
|
127
|
+
* @example
|
|
128
|
+
* const guild = await client.guilds.fetch(guildId);
|
|
129
|
+
* if (guild) console.log(guild.name);
|
|
130
|
+
*/
|
|
131
|
+
async fetch(guildId) {
|
|
132
|
+
const cached = this.get(guildId);
|
|
133
|
+
if (cached) return cached;
|
|
134
|
+
try {
|
|
135
|
+
const { Guild: Guild2 } = await import("./Guild-CMZGA6DW.mjs");
|
|
136
|
+
const data = await this.client.rest.get(
|
|
137
|
+
Routes2.guild(guildId)
|
|
138
|
+
);
|
|
139
|
+
const guild = new Guild2(this.client, data);
|
|
140
|
+
this.set(guild.id, guild);
|
|
141
|
+
return guild;
|
|
142
|
+
} catch {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
// src/errors/FluxerError.ts
|
|
149
|
+
var FluxerError = class _FluxerError extends Error {
|
|
150
|
+
constructor(message) {
|
|
151
|
+
super(message);
|
|
152
|
+
this.name = "FluxerError";
|
|
153
|
+
Object.setPrototypeOf(this, _FluxerError.prototype);
|
|
154
|
+
}
|
|
155
|
+
};
|
|
38
156
|
|
|
39
157
|
// src/util/Events.ts
|
|
40
158
|
var Events = {
|
|
@@ -42,6 +160,7 @@ var Events = {
|
|
|
42
160
|
MessageCreate: "messageCreate",
|
|
43
161
|
MessageUpdate: "messageUpdate",
|
|
44
162
|
MessageDelete: "messageDelete",
|
|
163
|
+
MessageDeleteBulk: "messageDeleteBulk",
|
|
45
164
|
MessageReactionAdd: "messageReactionAdd",
|
|
46
165
|
MessageReactionRemove: "messageReactionRemove",
|
|
47
166
|
MessageReactionRemoveAll: "messageReactionRemoveAll",
|
|
@@ -50,25 +169,284 @@ var Events = {
|
|
|
50
169
|
GuildCreate: "guildCreate",
|
|
51
170
|
GuildUpdate: "guildUpdate",
|
|
52
171
|
GuildDelete: "guildDelete",
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
172
|
+
GuildBanAdd: "guildBanAdd",
|
|
173
|
+
GuildBanRemove: "guildBanRemove",
|
|
174
|
+
GuildEmojisUpdate: "guildEmojisUpdate",
|
|
175
|
+
GuildStickersUpdate: "guildStickersUpdate",
|
|
176
|
+
GuildIntegrationsUpdate: "guildIntegrationsUpdate",
|
|
56
177
|
GuildMemberAdd: "guildMemberAdd",
|
|
57
178
|
GuildMemberUpdate: "guildMemberUpdate",
|
|
58
179
|
GuildMemberRemove: "guildMemberRemove",
|
|
180
|
+
GuildRoleCreate: "guildRoleCreate",
|
|
181
|
+
GuildRoleUpdate: "guildRoleUpdate",
|
|
182
|
+
GuildRoleDelete: "guildRoleDelete",
|
|
183
|
+
GuildScheduledEventCreate: "guildScheduledEventCreate",
|
|
184
|
+
GuildScheduledEventUpdate: "guildScheduledEventUpdate",
|
|
185
|
+
GuildScheduledEventDelete: "guildScheduledEventDelete",
|
|
186
|
+
ChannelCreate: "channelCreate",
|
|
187
|
+
ChannelUpdate: "channelUpdate",
|
|
188
|
+
ChannelDelete: "channelDelete",
|
|
189
|
+
ChannelPinsUpdate: "channelPinsUpdate",
|
|
190
|
+
InviteCreate: "inviteCreate",
|
|
191
|
+
InviteDelete: "inviteDelete",
|
|
192
|
+
TypingStart: "typingStart",
|
|
193
|
+
UserUpdate: "userUpdate",
|
|
194
|
+
PresenceUpdate: "presenceUpdate",
|
|
59
195
|
VoiceStateUpdate: "voiceStateUpdate",
|
|
60
196
|
VoiceServerUpdate: "voiceServerUpdate",
|
|
61
197
|
VoiceStatesSync: "voiceStatesSync",
|
|
198
|
+
WebhooksUpdate: "webhooksUpdate",
|
|
199
|
+
Resumed: "resumed",
|
|
62
200
|
Error: "error",
|
|
63
201
|
Debug: "debug"
|
|
64
202
|
};
|
|
65
203
|
|
|
204
|
+
// src/client/Client.ts
|
|
205
|
+
import { formatEmoji, parseEmoji } from "@fluxerjs/util";
|
|
206
|
+
|
|
207
|
+
// src/client/EventHandlerRegistry.ts
|
|
208
|
+
var handlers = /* @__PURE__ */ new Map();
|
|
209
|
+
handlers.set("MESSAGE_CREATE", async (client, d) => {
|
|
210
|
+
const { Message: Message2 } = await import("./Message-G2QIKZQK.mjs");
|
|
211
|
+
client.emit(Events.MessageCreate, new Message2(client, d));
|
|
212
|
+
});
|
|
213
|
+
handlers.set("MESSAGE_UPDATE", async (client, d) => {
|
|
214
|
+
const { Message: Message2 } = await import("./Message-G2QIKZQK.mjs");
|
|
215
|
+
client.emit(Events.MessageUpdate, null, new Message2(client, d));
|
|
216
|
+
});
|
|
217
|
+
handlers.set("MESSAGE_DELETE", async (client, d) => {
|
|
218
|
+
const data = d;
|
|
219
|
+
const channel = client.channels.get(data.channel_id) ?? null;
|
|
220
|
+
client.emit(Events.MessageDelete, {
|
|
221
|
+
id: data.id,
|
|
222
|
+
channelId: data.channel_id,
|
|
223
|
+
channel
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
handlers.set("MESSAGE_REACTION_ADD", async (client, d) => {
|
|
227
|
+
const data = d;
|
|
228
|
+
const { MessageReaction: MessageReaction2 } = await import("./MessageReaction-XRPYZDSC.mjs");
|
|
229
|
+
const reaction = new MessageReaction2(client, data);
|
|
230
|
+
const user = client.getOrCreateUser({
|
|
231
|
+
id: data.user_id,
|
|
232
|
+
username: "Unknown",
|
|
233
|
+
discriminator: "0"
|
|
234
|
+
});
|
|
235
|
+
client.emit(Events.MessageReactionAdd, reaction, user);
|
|
236
|
+
});
|
|
237
|
+
handlers.set("MESSAGE_REACTION_REMOVE", async (client, d) => {
|
|
238
|
+
const data = d;
|
|
239
|
+
const { MessageReaction: MessageReaction2 } = await import("./MessageReaction-XRPYZDSC.mjs");
|
|
240
|
+
const reaction = new MessageReaction2(client, data);
|
|
241
|
+
const user = client.getOrCreateUser({
|
|
242
|
+
id: data.user_id,
|
|
243
|
+
username: "Unknown",
|
|
244
|
+
discriminator: "0"
|
|
245
|
+
});
|
|
246
|
+
client.emit(Events.MessageReactionRemove, reaction, user);
|
|
247
|
+
});
|
|
248
|
+
handlers.set("MESSAGE_REACTION_REMOVE_ALL", async (client, d) => {
|
|
249
|
+
client.emit(Events.MessageReactionRemoveAll, d);
|
|
250
|
+
});
|
|
251
|
+
handlers.set("MESSAGE_REACTION_REMOVE_EMOJI", async (client, d) => {
|
|
252
|
+
client.emit(
|
|
253
|
+
Events.MessageReactionRemoveEmoji,
|
|
254
|
+
d
|
|
255
|
+
);
|
|
256
|
+
});
|
|
257
|
+
handlers.set("GUILD_CREATE", async (client, d) => {
|
|
258
|
+
const { Guild: Guild2 } = await import("./Guild-CMZGA6DW.mjs");
|
|
259
|
+
const { Channel: Channel2 } = await import("./Channel-TWPDKW2P.mjs");
|
|
260
|
+
const guild = new Guild2(client, d);
|
|
261
|
+
client.guilds.set(guild.id, guild);
|
|
262
|
+
const g = d;
|
|
263
|
+
for (const ch of g.channels ?? []) {
|
|
264
|
+
const channel = Channel2.from(client, ch);
|
|
265
|
+
if (channel) client.channels.set(channel.id, channel);
|
|
266
|
+
}
|
|
267
|
+
client.emit(Events.GuildCreate, guild);
|
|
268
|
+
if (g.voice_states?.length) {
|
|
269
|
+
client.emit(Events.VoiceStatesSync, { guildId: guild.id, voiceStates: g.voice_states });
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
handlers.set("GUILD_UPDATE", async (client, d) => {
|
|
273
|
+
const { Guild: Guild2 } = await import("./Guild-CMZGA6DW.mjs");
|
|
274
|
+
const g = d;
|
|
275
|
+
const old = client.guilds.get(g.id);
|
|
276
|
+
const updated = new Guild2(client, g);
|
|
277
|
+
client.guilds.set(updated.id, updated);
|
|
278
|
+
client.emit(Events.GuildUpdate, old ?? updated, updated);
|
|
279
|
+
});
|
|
280
|
+
handlers.set("GUILD_DELETE", async (client, d) => {
|
|
281
|
+
const g = d;
|
|
282
|
+
const guild = client.guilds.get(g.id);
|
|
283
|
+
if (guild) {
|
|
284
|
+
client.guilds.delete(g.id);
|
|
285
|
+
client.emit(Events.GuildDelete, guild);
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
handlers.set("CHANNEL_CREATE", async (client, d) => {
|
|
289
|
+
const { Channel: Channel2 } = await import("./Channel-TWPDKW2P.mjs");
|
|
290
|
+
const ch = Channel2.from(client, d);
|
|
291
|
+
if (ch) {
|
|
292
|
+
client.channels.set(ch.id, ch);
|
|
293
|
+
client.emit(Events.ChannelCreate, ch);
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
handlers.set("CHANNEL_UPDATE", async (client, d) => {
|
|
297
|
+
const { Channel: Channel2 } = await import("./Channel-TWPDKW2P.mjs");
|
|
298
|
+
const ch = d;
|
|
299
|
+
const oldCh = client.channels.get(ch.id);
|
|
300
|
+
const newCh = Channel2.from(client, ch);
|
|
301
|
+
if (newCh) {
|
|
302
|
+
client.channels.set(newCh.id, newCh);
|
|
303
|
+
client.emit(Events.ChannelUpdate, oldCh ?? newCh, newCh);
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
handlers.set("CHANNEL_DELETE", async (client, d) => {
|
|
307
|
+
const ch = d;
|
|
308
|
+
const channel = client.channels.get(ch.id);
|
|
309
|
+
if (channel) {
|
|
310
|
+
client.channels.delete(ch.id);
|
|
311
|
+
client.emit(Events.ChannelDelete, channel);
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
handlers.set("GUILD_MEMBER_ADD", async (client, d) => {
|
|
315
|
+
const { GuildMember: GuildMember2 } = await import("./GuildMember-DW2N6ITI.mjs");
|
|
316
|
+
const data = d;
|
|
317
|
+
const guild = client.guilds.get(data.guild_id);
|
|
318
|
+
if (guild) {
|
|
319
|
+
const member = new GuildMember2(client, data, guild);
|
|
320
|
+
guild.members.set(member.id, member);
|
|
321
|
+
client.emit(Events.GuildMemberAdd, member);
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
handlers.set("GUILD_MEMBER_UPDATE", async (client, d) => {
|
|
325
|
+
const { GuildMember: GuildMember2 } = await import("./GuildMember-DW2N6ITI.mjs");
|
|
326
|
+
const data = d;
|
|
327
|
+
const guild = client.guilds.get(data.guild_id);
|
|
328
|
+
if (guild) {
|
|
329
|
+
const oldM = guild.members.get(data.user.id);
|
|
330
|
+
const newM = new GuildMember2(client, data, guild);
|
|
331
|
+
guild.members.set(newM.id, newM);
|
|
332
|
+
client.emit(Events.GuildMemberUpdate, oldM ?? newM, newM);
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
handlers.set("GUILD_MEMBER_REMOVE", async (client, d) => {
|
|
336
|
+
const data = d;
|
|
337
|
+
const guild = client.guilds.get(data.guild_id);
|
|
338
|
+
if (guild) {
|
|
339
|
+
const member = guild.members.get(data.user.id);
|
|
340
|
+
if (member) {
|
|
341
|
+
guild.members.delete(data.user.id);
|
|
342
|
+
client.emit(Events.GuildMemberRemove, member);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
handlers.set("INTERACTION_CREATE", async (client, d) => {
|
|
347
|
+
client.emit(Events.InteractionCreate, d);
|
|
348
|
+
});
|
|
349
|
+
handlers.set("VOICE_STATE_UPDATE", async (client, d) => {
|
|
350
|
+
client.emit(Events.VoiceStateUpdate, d);
|
|
351
|
+
});
|
|
352
|
+
handlers.set("VOICE_SERVER_UPDATE", async (client, d) => {
|
|
353
|
+
client.emit(Events.VoiceServerUpdate, d);
|
|
354
|
+
});
|
|
355
|
+
handlers.set("MESSAGE_DELETE_BULK", async (client, d) => {
|
|
356
|
+
client.emit(Events.MessageDeleteBulk, d);
|
|
357
|
+
});
|
|
358
|
+
handlers.set("GUILD_BAN_ADD", async (client, d) => {
|
|
359
|
+
client.emit(Events.GuildBanAdd, d);
|
|
360
|
+
});
|
|
361
|
+
handlers.set("GUILD_BAN_REMOVE", async (client, d) => {
|
|
362
|
+
client.emit(Events.GuildBanRemove, d);
|
|
363
|
+
});
|
|
364
|
+
handlers.set("GUILD_EMOJIS_UPDATE", async (client, d) => {
|
|
365
|
+
client.emit(Events.GuildEmojisUpdate, d);
|
|
366
|
+
});
|
|
367
|
+
handlers.set("GUILD_STICKERS_UPDATE", async (client, d) => {
|
|
368
|
+
client.emit(Events.GuildStickersUpdate, d);
|
|
369
|
+
});
|
|
370
|
+
handlers.set("GUILD_INTEGRATIONS_UPDATE", async (client, d) => {
|
|
371
|
+
client.emit(Events.GuildIntegrationsUpdate, d);
|
|
372
|
+
});
|
|
373
|
+
handlers.set("GUILD_ROLE_CREATE", async (client, d) => {
|
|
374
|
+
const data = d;
|
|
375
|
+
const guild = client.guilds.get(data.guild_id);
|
|
376
|
+
if (guild) {
|
|
377
|
+
const { Role: Role2 } = await import("./Role-SVLWIAMN.mjs");
|
|
378
|
+
guild.roles.set(data.role.id, new Role2(client, data.role, guild.id));
|
|
379
|
+
}
|
|
380
|
+
client.emit(Events.GuildRoleCreate, data);
|
|
381
|
+
});
|
|
382
|
+
handlers.set("GUILD_ROLE_UPDATE", async (client, d) => {
|
|
383
|
+
const data = d;
|
|
384
|
+
const guild = client.guilds.get(data.guild_id);
|
|
385
|
+
if (guild) {
|
|
386
|
+
const { Role: Role2 } = await import("./Role-SVLWIAMN.mjs");
|
|
387
|
+
guild.roles.set(data.role.id, new Role2(client, data.role, guild.id));
|
|
388
|
+
}
|
|
389
|
+
client.emit(Events.GuildRoleUpdate, data);
|
|
390
|
+
});
|
|
391
|
+
handlers.set("GUILD_ROLE_DELETE", async (client, d) => {
|
|
392
|
+
const data = d;
|
|
393
|
+
const guild = client.guilds.get(data.guild_id);
|
|
394
|
+
if (guild) guild.roles.delete(data.role_id);
|
|
395
|
+
client.emit(Events.GuildRoleDelete, data);
|
|
396
|
+
});
|
|
397
|
+
handlers.set("GUILD_SCHEDULED_EVENT_CREATE", async (client, d) => {
|
|
398
|
+
client.emit(Events.GuildScheduledEventCreate, d);
|
|
399
|
+
});
|
|
400
|
+
handlers.set("GUILD_SCHEDULED_EVENT_UPDATE", async (client, d) => {
|
|
401
|
+
client.emit(Events.GuildScheduledEventUpdate, d);
|
|
402
|
+
});
|
|
403
|
+
handlers.set("GUILD_SCHEDULED_EVENT_DELETE", async (client, d) => {
|
|
404
|
+
client.emit(Events.GuildScheduledEventDelete, d);
|
|
405
|
+
});
|
|
406
|
+
handlers.set("CHANNEL_PINS_UPDATE", async (client, d) => {
|
|
407
|
+
client.emit(Events.ChannelPinsUpdate, d);
|
|
408
|
+
});
|
|
409
|
+
handlers.set("INVITE_CREATE", async (client, d) => {
|
|
410
|
+
client.emit(Events.InviteCreate, d);
|
|
411
|
+
});
|
|
412
|
+
handlers.set("INVITE_DELETE", async (client, d) => {
|
|
413
|
+
client.emit(Events.InviteDelete, d);
|
|
414
|
+
});
|
|
415
|
+
handlers.set("TYPING_START", async (client, d) => {
|
|
416
|
+
client.emit(Events.TypingStart, d);
|
|
417
|
+
});
|
|
418
|
+
handlers.set("USER_UPDATE", async (client, d) => {
|
|
419
|
+
const data = d;
|
|
420
|
+
if (client.user?.id === data.id) {
|
|
421
|
+
client.user._patch(data);
|
|
422
|
+
}
|
|
423
|
+
client.emit(Events.UserUpdate, data);
|
|
424
|
+
});
|
|
425
|
+
handlers.set("PRESENCE_UPDATE", async (client, d) => {
|
|
426
|
+
client.emit(Events.PresenceUpdate, d);
|
|
427
|
+
});
|
|
428
|
+
handlers.set("WEBHOOKS_UPDATE", async (client, d) => {
|
|
429
|
+
client.emit(Events.WebhooksUpdate, d);
|
|
430
|
+
});
|
|
431
|
+
handlers.set("RESUMED", async (client) => {
|
|
432
|
+
client.emit(Events.Resumed);
|
|
433
|
+
});
|
|
434
|
+
var eventHandlers = handlers;
|
|
435
|
+
|
|
66
436
|
// src/client/Client.ts
|
|
67
437
|
var Client = class extends EventEmitter {
|
|
68
438
|
/** @param options - Token, REST config, WebSocket, presence, etc. */
|
|
69
439
|
constructor(options = {}) {
|
|
70
440
|
super();
|
|
71
441
|
this.options = options;
|
|
442
|
+
Object.defineProperty(this.channels, "cache", {
|
|
443
|
+
get: () => this.channels,
|
|
444
|
+
configurable: true
|
|
445
|
+
});
|
|
446
|
+
Object.defineProperty(this.guilds, "cache", {
|
|
447
|
+
get: () => this.guilds,
|
|
448
|
+
configurable: true
|
|
449
|
+
});
|
|
72
450
|
this.rest = new REST({
|
|
73
451
|
api: options.rest?.api ?? "https://api.fluxer.app",
|
|
74
452
|
version: options.rest?.version ?? "1",
|
|
@@ -76,12 +454,77 @@ var Client = class extends EventEmitter {
|
|
|
76
454
|
});
|
|
77
455
|
}
|
|
78
456
|
rest;
|
|
79
|
-
guilds = new
|
|
80
|
-
channels = new
|
|
81
|
-
users = new
|
|
457
|
+
guilds = new GuildManager(this);
|
|
458
|
+
channels = new ChannelManager(this);
|
|
459
|
+
users = new Collection3();
|
|
82
460
|
user = null;
|
|
83
461
|
readyAt = null;
|
|
84
462
|
_ws = null;
|
|
463
|
+
/**
|
|
464
|
+
* Resolve an emoji argument to the API format (unicode or "name:id").
|
|
465
|
+
* Supports: <:name:id>, :name:, name:id, { name, id }, unicode.
|
|
466
|
+
* When id is missing (e.g. :name:), fetches guild emojis if guildId provided.
|
|
467
|
+
* @param emoji - Emoji string or object
|
|
468
|
+
* @param guildId - Guild ID for resolving custom emoji by name (required when id is missing)
|
|
469
|
+
* @returns API-formatted string for reactions
|
|
470
|
+
*/
|
|
471
|
+
async resolveEmoji(emoji, guildId) {
|
|
472
|
+
if (typeof emoji === "object" && emoji.id) {
|
|
473
|
+
return formatEmoji({ name: emoji.name, id: emoji.id, animated: emoji.animated });
|
|
474
|
+
}
|
|
475
|
+
const parsed = parseEmoji(typeof emoji === "string" ? emoji : `:${emoji.name}:`);
|
|
476
|
+
if (!parsed) throw new Error("Invalid emoji");
|
|
477
|
+
if (parsed.id) return formatEmoji(parsed);
|
|
478
|
+
if (guildId) {
|
|
479
|
+
const emojis = await this.rest.get(Routes3.guildEmojis(guildId));
|
|
480
|
+
const list = Array.isArray(emojis) ? emojis : Object.values(emojis ?? {});
|
|
481
|
+
const found = list.find((e) => e.name && e.name.toLowerCase() === parsed.name.toLowerCase());
|
|
482
|
+
if (found) return formatEmoji({ ...parsed, id: found.id, animated: found.animated });
|
|
483
|
+
throw new Error(
|
|
484
|
+
`Custom emoji ":${parsed.name}:" not found in guild. Use name:id or <:name:id> format.`
|
|
485
|
+
);
|
|
486
|
+
}
|
|
487
|
+
if (/^\w+$/.test(parsed.name)) {
|
|
488
|
+
throw new Error(
|
|
489
|
+
`Custom emoji ":${parsed.name}:" requires guild context. Use message.react() in a guild channel, or pass guildId to client.resolveEmoji().`
|
|
490
|
+
);
|
|
491
|
+
}
|
|
492
|
+
return encodeURIComponent(parsed.name);
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Fetch a message by channel and message ID. Use when you have IDs (e.g. from a DB).
|
|
496
|
+
* @param channelId - Snowflake of the channel
|
|
497
|
+
* @param messageId - Snowflake of the message
|
|
498
|
+
* @returns The message, or null if not found
|
|
499
|
+
* @deprecated Use channel.messages.fetch(messageId). For IDs-only: (await client.channels.fetch(channelId))?.messages?.fetch(messageId)
|
|
500
|
+
* @example
|
|
501
|
+
* const channel = await client.channels.fetch(channelId);
|
|
502
|
+
* const message = await channel?.messages?.fetch(messageId);
|
|
503
|
+
*/
|
|
504
|
+
async fetchMessage(channelId, messageId) {
|
|
505
|
+
return this.channels.fetchMessage(channelId, messageId);
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Send a message to any channel by ID. Shorthand for client.channels.send().
|
|
509
|
+
* Works even when the channel is not cached.
|
|
510
|
+
*/
|
|
511
|
+
async sendToChannel(channelId, payload) {
|
|
512
|
+
return this.channels.send(channelId, payload);
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Get or create a User from API data. Caches in client.users.
|
|
516
|
+
* Updates existing user's username, avatar, etc. when fresh data is provided.
|
|
517
|
+
*/
|
|
518
|
+
getOrCreateUser(data) {
|
|
519
|
+
const existing = this.users.get(data.id);
|
|
520
|
+
if (existing) {
|
|
521
|
+
existing._patch(data);
|
|
522
|
+
return existing;
|
|
523
|
+
}
|
|
524
|
+
const user = new User(this, data);
|
|
525
|
+
this.users.set(user.id, user);
|
|
526
|
+
return user;
|
|
527
|
+
}
|
|
85
528
|
/** WebSocket manager. Throws if not logged in. */
|
|
86
529
|
get ws() {
|
|
87
530
|
if (!this._ws) throw new Error("Client is not logged in");
|
|
@@ -99,145 +542,8 @@ var Client = class extends EventEmitter {
|
|
|
99
542
|
if (payload.op !== 0 || !payload.t) return;
|
|
100
543
|
const { t: event, d } = payload;
|
|
101
544
|
try {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
const { Message: Message2 } = await import("./Message-W624MHJF.mjs");
|
|
105
|
-
this.emit(Events.MessageCreate, new Message2(this, d));
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
case "MESSAGE_UPDATE": {
|
|
109
|
-
const { Message: Message2 } = await import("./Message-W624MHJF.mjs");
|
|
110
|
-
this.emit(Events.MessageUpdate, null, new Message2(this, d));
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
case "MESSAGE_DELETE":
|
|
114
|
-
this.emit(Events.MessageDelete, { id: d.id, channelId: d.channel_id });
|
|
115
|
-
break;
|
|
116
|
-
case "MESSAGE_REACTION_ADD":
|
|
117
|
-
this.emit(Events.MessageReactionAdd, d);
|
|
118
|
-
break;
|
|
119
|
-
case "MESSAGE_REACTION_REMOVE":
|
|
120
|
-
this.emit(Events.MessageReactionRemove, d);
|
|
121
|
-
break;
|
|
122
|
-
case "MESSAGE_REACTION_REMOVE_ALL":
|
|
123
|
-
this.emit(Events.MessageReactionRemoveAll, d);
|
|
124
|
-
break;
|
|
125
|
-
case "MESSAGE_REACTION_REMOVE_EMOJI":
|
|
126
|
-
this.emit(Events.MessageReactionRemoveEmoji, d);
|
|
127
|
-
break;
|
|
128
|
-
case "GUILD_CREATE": {
|
|
129
|
-
const { Guild: Guild2 } = await import("./Guild-GIXJJBFM.mjs");
|
|
130
|
-
const { Channel: Channel2 } = await import("./Channel-OSOB6ELO.mjs");
|
|
131
|
-
const guild = new Guild2(this, d);
|
|
132
|
-
this.guilds.set(guild.id, guild);
|
|
133
|
-
const g = d;
|
|
134
|
-
for (const ch of g.channels ?? []) {
|
|
135
|
-
const channel = Channel2.from(this, ch);
|
|
136
|
-
if (channel) this.channels.set(channel.id, channel);
|
|
137
|
-
}
|
|
138
|
-
this.emit(Events.GuildCreate, guild);
|
|
139
|
-
if (g.voice_states?.length) {
|
|
140
|
-
this.emit(Events.VoiceStatesSync, { guildId: guild.id, voiceStates: g.voice_states });
|
|
141
|
-
}
|
|
142
|
-
break;
|
|
143
|
-
}
|
|
144
|
-
case "GUILD_UPDATE": {
|
|
145
|
-
const { Guild: Guild2 } = await import("./Guild-GIXJJBFM.mjs");
|
|
146
|
-
const g = d;
|
|
147
|
-
const old = this.guilds.get(g.id);
|
|
148
|
-
const updated = new Guild2(this, g);
|
|
149
|
-
this.guilds.set(updated.id, updated);
|
|
150
|
-
this.emit(Events.GuildUpdate, old ?? updated, updated);
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
case "GUILD_DELETE": {
|
|
154
|
-
const g = d;
|
|
155
|
-
const guild = this.guilds.get(g.id);
|
|
156
|
-
if (guild) {
|
|
157
|
-
this.guilds.delete(g.id);
|
|
158
|
-
this.emit(Events.GuildDelete, guild);
|
|
159
|
-
}
|
|
160
|
-
break;
|
|
161
|
-
}
|
|
162
|
-
case "CHANNEL_CREATE": {
|
|
163
|
-
const { Channel: Channel2 } = await import("./Channel-OSOB6ELO.mjs");
|
|
164
|
-
const ch = Channel2.from(this, d);
|
|
165
|
-
if (ch) {
|
|
166
|
-
this.channels.set(ch.id, ch);
|
|
167
|
-
this.emit(Events.ChannelCreate, ch);
|
|
168
|
-
}
|
|
169
|
-
break;
|
|
170
|
-
}
|
|
171
|
-
case "CHANNEL_UPDATE": {
|
|
172
|
-
const { Channel: Channel2 } = await import("./Channel-OSOB6ELO.mjs");
|
|
173
|
-
const ch = d;
|
|
174
|
-
const oldCh = this.channels.get(ch.id);
|
|
175
|
-
const newCh = Channel2.from(this, ch);
|
|
176
|
-
if (newCh) {
|
|
177
|
-
this.channels.set(newCh.id, newCh);
|
|
178
|
-
this.emit(Events.ChannelUpdate, oldCh ?? newCh, newCh);
|
|
179
|
-
}
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
182
|
-
case "CHANNEL_DELETE": {
|
|
183
|
-
const ch = d;
|
|
184
|
-
const channel = this.channels.get(ch.id);
|
|
185
|
-
if (channel) {
|
|
186
|
-
this.channels.delete(ch.id);
|
|
187
|
-
this.emit(Events.ChannelDelete, channel);
|
|
188
|
-
}
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
case "GUILD_MEMBER_ADD": {
|
|
192
|
-
const { GuildMember: GuildMember2 } = await import("./GuildMember-UU26WJGN.mjs");
|
|
193
|
-
const data = d;
|
|
194
|
-
const guild = this.guilds.get(data.guild_id);
|
|
195
|
-
if (guild) {
|
|
196
|
-
const member = new GuildMember2(this, data, guild);
|
|
197
|
-
guild.members.set(member.id, member);
|
|
198
|
-
this.emit(Events.GuildMemberAdd, member);
|
|
199
|
-
}
|
|
200
|
-
break;
|
|
201
|
-
}
|
|
202
|
-
case "GUILD_MEMBER_UPDATE": {
|
|
203
|
-
const { GuildMember: GuildMember2 } = await import("./GuildMember-UU26WJGN.mjs");
|
|
204
|
-
const data = d;
|
|
205
|
-
const guild = this.guilds.get(data.guild_id);
|
|
206
|
-
if (guild) {
|
|
207
|
-
const oldM = guild.members.get(data.user.id);
|
|
208
|
-
const newM = new GuildMember2(this, data, guild);
|
|
209
|
-
guild.members.set(newM.id, newM);
|
|
210
|
-
this.emit(Events.GuildMemberUpdate, oldM ?? newM, newM);
|
|
211
|
-
}
|
|
212
|
-
break;
|
|
213
|
-
}
|
|
214
|
-
case "GUILD_MEMBER_REMOVE": {
|
|
215
|
-
const data = d;
|
|
216
|
-
const guild = this.guilds.get(data.guild_id);
|
|
217
|
-
if (guild) {
|
|
218
|
-
const member = guild.members.get(data.user.id);
|
|
219
|
-
if (member) {
|
|
220
|
-
guild.members.delete(data.user.id);
|
|
221
|
-
this.emit(Events.GuildMemberRemove, member);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
case "INTERACTION_CREATE": {
|
|
227
|
-
this.emit(Events.InteractionCreate, d);
|
|
228
|
-
break;
|
|
229
|
-
}
|
|
230
|
-
case "VOICE_STATE_UPDATE": {
|
|
231
|
-
this.emit(Events.VoiceStateUpdate, d);
|
|
232
|
-
break;
|
|
233
|
-
}
|
|
234
|
-
case "VOICE_SERVER_UPDATE": {
|
|
235
|
-
this.emit(Events.VoiceServerUpdate, d);
|
|
236
|
-
break;
|
|
237
|
-
}
|
|
238
|
-
default:
|
|
239
|
-
break;
|
|
240
|
-
}
|
|
545
|
+
const handler = eventHandlers.get(event);
|
|
546
|
+
if (handler) await handler(this, d);
|
|
241
547
|
} catch (err) {
|
|
242
548
|
this.emit(Events.Error, err instanceof Error ? err : new Error(String(err)));
|
|
243
549
|
}
|
|
@@ -247,14 +553,16 @@ var Client = class extends EventEmitter {
|
|
|
247
553
|
* @param token - Bot token (e.g. from FLUXER_BOT_TOKEN)
|
|
248
554
|
*/
|
|
249
555
|
async login(token) {
|
|
556
|
+
if (this._ws) {
|
|
557
|
+
throw new FluxerError("Client is already logged in. Call destroy() first.");
|
|
558
|
+
}
|
|
250
559
|
this.rest.setToken(token);
|
|
251
560
|
let intents = this.options.intents ?? 0;
|
|
252
561
|
if (intents !== 0) {
|
|
253
562
|
if (typeof process !== "undefined" && process.emitWarning) {
|
|
254
|
-
process.emitWarning(
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
);
|
|
563
|
+
process.emitWarning("Fluxer does not support intents yet. Value has been set to 0.", {
|
|
564
|
+
type: "FluxerIntents"
|
|
565
|
+
});
|
|
258
566
|
} else {
|
|
259
567
|
console.warn("Fluxer does not support intents yet. Value has been set to 0.");
|
|
260
568
|
}
|
|
@@ -269,28 +577,38 @@ var Client = class extends EventEmitter {
|
|
|
269
577
|
WebSocket: this.options.WebSocket
|
|
270
578
|
});
|
|
271
579
|
this._ws.on("dispatch", ({ payload }) => {
|
|
272
|
-
this.handleDispatch(payload)
|
|
580
|
+
this.handleDispatch(payload).catch(
|
|
581
|
+
(err) => this.emit(Events.Error, err instanceof Error ? err : new Error(String(err)))
|
|
582
|
+
);
|
|
273
583
|
});
|
|
274
|
-
this._ws.on(
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
const
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
for (const
|
|
284
|
-
const
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
584
|
+
this._ws.on(
|
|
585
|
+
"ready",
|
|
586
|
+
async ({
|
|
587
|
+
data
|
|
588
|
+
}) => {
|
|
589
|
+
const { ClientUser: ClientUser2 } = await import("./ClientUser-2K2BACK7.mjs");
|
|
590
|
+
const { Guild: Guild2 } = await import("./Guild-CMZGA6DW.mjs");
|
|
591
|
+
const { Channel: Channel2 } = await import("./Channel-TWPDKW2P.mjs");
|
|
592
|
+
this.user = new ClientUser2(this, data.user);
|
|
593
|
+
for (const g of data.guilds ?? []) {
|
|
594
|
+
const guild = new Guild2(this, g);
|
|
595
|
+
this.guilds.set(guild.id, guild);
|
|
596
|
+
const withCh = g;
|
|
597
|
+
for (const ch of withCh.channels ?? []) {
|
|
598
|
+
const channel = Channel2.from(this, ch);
|
|
599
|
+
if (channel) this.channels.set(channel.id, channel);
|
|
600
|
+
}
|
|
601
|
+
if (withCh.voice_states?.length) {
|
|
602
|
+
this.emit(Events.VoiceStatesSync, {
|
|
603
|
+
guildId: guild.id,
|
|
604
|
+
voiceStates: withCh.voice_states
|
|
605
|
+
});
|
|
606
|
+
}
|
|
289
607
|
}
|
|
608
|
+
this.readyAt = /* @__PURE__ */ new Date();
|
|
609
|
+
this.emit(Events.Ready);
|
|
290
610
|
}
|
|
291
|
-
|
|
292
|
-
this.emit(Events.Ready);
|
|
293
|
-
});
|
|
611
|
+
);
|
|
294
612
|
this._ws.on("error", ({ error }) => this.emit(Events.Error, error));
|
|
295
613
|
this._ws.on("debug", (msg) => this.emit(Events.Debug, msg));
|
|
296
614
|
await this._ws.connect();
|
|
@@ -314,16 +632,7 @@ var Client = class extends EventEmitter {
|
|
|
314
632
|
return this.readyAt !== null && this.user !== null;
|
|
315
633
|
}
|
|
316
634
|
static get Routes() {
|
|
317
|
-
return
|
|
318
|
-
}
|
|
319
|
-
};
|
|
320
|
-
|
|
321
|
-
// src/errors/FluxerError.ts
|
|
322
|
-
var FluxerError = class _FluxerError extends Error {
|
|
323
|
-
constructor(message) {
|
|
324
|
-
super(message);
|
|
325
|
-
this.name = "FluxerError";
|
|
326
|
-
Object.setPrototypeOf(this, _FluxerError.prototype);
|
|
635
|
+
return Routes3;
|
|
327
636
|
}
|
|
328
637
|
};
|
|
329
638
|
|
|
@@ -335,12 +644,13 @@ var ErrorCodes = {
|
|
|
335
644
|
|
|
336
645
|
// src/index.ts
|
|
337
646
|
import { EmbedBuilder, MessagePayload, AttachmentBuilder } from "@fluxerjs/builders";
|
|
338
|
-
import { Routes as
|
|
647
|
+
import { Routes as Routes4, GatewayOpcodes } from "@fluxerjs/types";
|
|
339
648
|
export {
|
|
340
649
|
AttachmentBuilder,
|
|
341
650
|
Base,
|
|
342
651
|
CategoryChannel,
|
|
343
652
|
Channel,
|
|
653
|
+
ChannelManager,
|
|
344
654
|
Client,
|
|
345
655
|
ClientUser,
|
|
346
656
|
DMChannel,
|
|
@@ -354,8 +664,11 @@ export {
|
|
|
354
664
|
GuildMember,
|
|
355
665
|
LinkChannel,
|
|
356
666
|
Message,
|
|
667
|
+
MessageManager,
|
|
357
668
|
MessagePayload,
|
|
358
|
-
|
|
669
|
+
MessageReaction,
|
|
670
|
+
Role,
|
|
671
|
+
Routes4 as Routes,
|
|
359
672
|
TextChannel,
|
|
360
673
|
User,
|
|
361
674
|
VoiceChannel,
|