@fluxerjs/core 1.0.6 → 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-2WNJ445K.mjs → Channel-TWPDKW2P.mjs} +3 -1
- package/dist/{ClientUser-J6HQVSDJ.mjs → ClientUser-2K2BACK7.mjs} +1 -2
- package/dist/{Guild-GOQZ7XP4.mjs → Guild-CMZGA6DW.mjs} +3 -1
- package/dist/GuildMember-DW2N6ITI.mjs +7 -0
- package/dist/{Webhook-NUQCJAWZ.mjs → Message-G2QIKZQK.mjs} +3 -3
- package/dist/MessageReaction-XRPYZDSC.mjs +7 -0
- package/dist/Role-SVLWIAMN.mjs +7 -0
- package/dist/{Webhook-2RHBXH7R.mjs → Webhook-2MQESB7Z.mjs} +1 -1
- package/dist/chunk-4GCZFOS5.mjs +86 -0
- package/dist/chunk-CO5EL5LH.mjs +168 -0
- package/dist/chunk-CZIO2D7F.mjs +207 -0
- package/dist/chunk-HBF5QEDH.mjs +42 -0
- package/dist/chunk-JVEOQFUX.mjs +52 -0
- package/dist/chunk-SQVCCSNN.mjs +41 -0
- package/dist/chunk-TJVZEILY.mjs +120 -0
- package/dist/{chunk-BUEXP5SZ.mjs → chunk-ZGMM6IPQ.mjs} +12 -3
- package/dist/index.d.mts +539 -73
- package/dist/index.d.ts +539 -73
- package/dist/index.js +1125 -355
- package/dist/index.mjs +520 -194
- package/package.json +27 -8
- package/dist/Channel-HM2UY4DN.mjs +0 -17
- package/dist/Channel-IKL3SJXN.mjs +0 -17
- package/dist/Channel-KILNV5V3.mjs +0 -17
- package/dist/Channel-TOAQGSRX.mjs +0 -17
- package/dist/Channel-VENHOL7S.mjs +0 -17
- package/dist/ClientUser-RNDKHQ3Z.mjs +0 -9
- package/dist/Guild-36EGAAEW.mjs +0 -8
- package/dist/Guild-CA3W6DOD.mjs +0 -8
- package/dist/Guild-NHNQ5TIA.mjs +0 -8
- package/dist/Guild-ZOFF5LFR.mjs +0 -8
- package/dist/GuildMember-RGVPVUAG.mjs +0 -9
- package/dist/GuildMember-XF7K2R45.mjs +0 -9
- package/dist/Message-23Z3RPCZ.mjs +0 -9
- package/dist/Message-33APPS76.mjs +0 -9
- package/dist/Message-PZUU7ZFR.mjs +0 -9
- package/dist/Message-XB5WNMHL.mjs +0 -9
- package/dist/chunk-3CNUPFDI.mjs +0 -59
- package/dist/chunk-4DBGMFOQ.mjs +0 -14
- 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-EF32ILJL.mjs +0 -102
- package/dist/chunk-F2EEQP5O.mjs +0 -86
- package/dist/chunk-GUNWHOQO.mjs +0 -42
- package/dist/chunk-L25ON7WB.mjs +0 -52
- package/dist/chunk-LBBIQOSH.mjs +0 -53
- package/dist/chunk-OHIHIQAS.mjs +0 -102
- package/dist/chunk-P4IRDGB4.mjs +0 -43
- package/dist/chunk-QDCFQF6J.mjs +0 -36
- package/dist/chunk-QDNFJVVE.mjs +0 -70
- package/dist/chunk-SW6KNICI.mjs +0 -52
- package/dist/chunk-TE5IC7IP.mjs +0 -36
- package/dist/chunk-WFONGZGK.mjs +0 -42
- package/dist/chunk-XXCBJJZE.mjs +0 -88
- package/dist/chunk-ZHRQQZ4X.mjs +0 -102
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CDN_URL
|
|
3
|
+
} from "./chunk-HQMYRYMY.mjs";
|
|
4
|
+
import {
|
|
5
|
+
GuildMember
|
|
6
|
+
} from "./chunk-JVEOQFUX.mjs";
|
|
7
|
+
import {
|
|
8
|
+
Role
|
|
9
|
+
} from "./chunk-SQVCCSNN.mjs";
|
|
10
|
+
import {
|
|
11
|
+
Base
|
|
12
|
+
} from "./chunk-XNS4O6QJ.mjs";
|
|
13
|
+
|
|
14
|
+
// src/structures/Guild.ts
|
|
15
|
+
import { parseRoleMention } from "@fluxerjs/util";
|
|
16
|
+
import { Collection } from "@fluxerjs/collection";
|
|
17
|
+
import { Routes } from "@fluxerjs/types";
|
|
18
|
+
var Guild = class extends Base {
|
|
19
|
+
client;
|
|
20
|
+
id;
|
|
21
|
+
name;
|
|
22
|
+
icon;
|
|
23
|
+
banner;
|
|
24
|
+
ownerId;
|
|
25
|
+
members = new Collection();
|
|
26
|
+
channels = new Collection();
|
|
27
|
+
roles = new Collection();
|
|
28
|
+
/** @param data - API guild from GET /guilds/{id} or gateway GUILD_CREATE */
|
|
29
|
+
constructor(client, data) {
|
|
30
|
+
super();
|
|
31
|
+
this.client = client;
|
|
32
|
+
this.id = data.id;
|
|
33
|
+
this.name = data.name;
|
|
34
|
+
this.icon = data.icon ?? null;
|
|
35
|
+
this.banner = data.banner ?? null;
|
|
36
|
+
this.ownerId = data.owner_id;
|
|
37
|
+
for (const r of data.roles ?? []) {
|
|
38
|
+
this.roles.set(r.id, new Role(client, r, this.id));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/** Get the guild icon URL, or null if no icon. */
|
|
42
|
+
iconURL(options) {
|
|
43
|
+
if (!this.icon) return null;
|
|
44
|
+
const size = options?.size ? `?size=${options.size}` : "";
|
|
45
|
+
return `${CDN_URL}/icons/${this.id}/${this.icon}.png${size}`;
|
|
46
|
+
}
|
|
47
|
+
/** Get the guild banner URL, or null if no banner. */
|
|
48
|
+
bannerURL(options) {
|
|
49
|
+
if (!this.banner) return null;
|
|
50
|
+
const size = options?.size ? `?size=${options.size}` : "";
|
|
51
|
+
return `${CDN_URL}/banners/${this.id}/${this.banner}.png${size}`;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Add a role to a member by user ID. Does not require fetching the member first.
|
|
55
|
+
* @param userId - The user ID of the member
|
|
56
|
+
* @param roleId - The role ID to add (or use guild.resolveRoleId for mention/name resolution)
|
|
57
|
+
* Requires Manage Roles permission.
|
|
58
|
+
*/
|
|
59
|
+
async addRoleToMember(userId, roleId) {
|
|
60
|
+
await this.client.rest.put(Routes.guildMemberRole(this.id, userId, roleId));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Remove a role from a member by user ID. Does not require fetching the member first.
|
|
64
|
+
* @param userId - The user ID of the member
|
|
65
|
+
* @param roleId - The role ID to remove
|
|
66
|
+
* Requires Manage Roles permission.
|
|
67
|
+
*/
|
|
68
|
+
async removeRoleFromMember(userId, roleId) {
|
|
69
|
+
await this.client.rest.delete(Routes.guildMemberRole(this.id, userId, roleId));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Resolve a role ID from an argument (role mention, raw ID, or name).
|
|
73
|
+
* Fetches guild roles if name is provided.
|
|
74
|
+
* @param arg - Role mention (@role), role ID, or role name
|
|
75
|
+
* @returns The role ID, or null if not found
|
|
76
|
+
*/
|
|
77
|
+
async resolveRoleId(arg) {
|
|
78
|
+
const parsed = parseRoleMention(arg);
|
|
79
|
+
if (parsed) return parsed;
|
|
80
|
+
if (/^\d{17,19}$/.test(arg.trim())) return arg.trim();
|
|
81
|
+
const cached = this.roles.find(
|
|
82
|
+
(r) => !!(r.name && r.name.toLowerCase() === arg.trim().toLowerCase())
|
|
83
|
+
);
|
|
84
|
+
if (cached) return cached.id;
|
|
85
|
+
const roles = await this.client.rest.get(Routes.guildRoles(this.id));
|
|
86
|
+
const list = Array.isArray(roles) ? roles : Object.values(roles ?? {});
|
|
87
|
+
const role = list.find((r) => !!(r.name && r.name.toLowerCase() === arg.trim().toLowerCase()));
|
|
88
|
+
if (role) {
|
|
89
|
+
this.roles.set(role.id, new Role(this.client, role, this.id));
|
|
90
|
+
return role.id;
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Fetch a guild member by user ID.
|
|
96
|
+
* @param userId - The user ID of the member to fetch
|
|
97
|
+
* @returns The guild member, or null if not found
|
|
98
|
+
*/
|
|
99
|
+
async fetchMember(userId) {
|
|
100
|
+
try {
|
|
101
|
+
const data = await this.client.rest.get(
|
|
102
|
+
Routes.guildMember(this.id, userId)
|
|
103
|
+
);
|
|
104
|
+
return new GuildMember(this.client, { ...data, guild_id: this.id }, this);
|
|
105
|
+
} catch {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/** Fetch all webhooks in this guild. Returned webhooks do not include the token (cannot send). */
|
|
110
|
+
async fetchWebhooks() {
|
|
111
|
+
const { Webhook } = await import("./Webhook-2MQESB7Z.mjs");
|
|
112
|
+
const data = await this.client.rest.get(Routes.guildWebhooks(this.id));
|
|
113
|
+
const list = Array.isArray(data) ? data : Object.values(data ?? {});
|
|
114
|
+
return list.map((w) => new Webhook(this.client, w));
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
export {
|
|
119
|
+
Guild
|
|
120
|
+
};
|
|
@@ -13,6 +13,7 @@ var Webhook = class _Webhook extends Base {
|
|
|
13
13
|
avatar;
|
|
14
14
|
/** Present only when webhook was created via createWebhook(); not returned when fetching. */
|
|
15
15
|
token;
|
|
16
|
+
/** @param data - API webhook from POST /channels/{id}/webhooks (has token) or GET /webhooks/{id} (no token) */
|
|
16
17
|
constructor(client, data) {
|
|
17
18
|
super();
|
|
18
19
|
this.client = client;
|
|
@@ -33,7 +34,9 @@ var Webhook = class _Webhook extends Base {
|
|
|
33
34
|
*/
|
|
34
35
|
async send(options) {
|
|
35
36
|
if (!this.token) {
|
|
36
|
-
throw new Error(
|
|
37
|
+
throw new Error(
|
|
38
|
+
"Webhook token is required to send. The token is only returned when creating a webhook; fetched webhooks cannot send."
|
|
39
|
+
);
|
|
37
40
|
}
|
|
38
41
|
const body = typeof options === "string" ? { content: options } : options;
|
|
39
42
|
await this.client.rest.post(Routes.webhookExecute(this.id, this.token), {
|
|
@@ -42,7 +45,10 @@ var Webhook = class _Webhook extends Base {
|
|
|
42
45
|
});
|
|
43
46
|
}
|
|
44
47
|
/**
|
|
45
|
-
* Fetch a webhook by ID using bot auth.
|
|
48
|
+
* Fetch a webhook by ID using bot auth.
|
|
49
|
+
* @param client - The client instance
|
|
50
|
+
* @param webhookId - The webhook ID
|
|
51
|
+
* @returns Webhook without token (cannot send)
|
|
46
52
|
*/
|
|
47
53
|
static async fetch(client, webhookId) {
|
|
48
54
|
const data = await client.rest.get(Routes.webhook(webhookId));
|
|
@@ -50,7 +56,10 @@ var Webhook = class _Webhook extends Base {
|
|
|
50
56
|
}
|
|
51
57
|
/**
|
|
52
58
|
* Create a Webhook instance from an ID and token (e.g. from a stored webhook URL).
|
|
53
|
-
*
|
|
59
|
+
* @param client - The client instance
|
|
60
|
+
* @param webhookId - The webhook ID
|
|
61
|
+
* @param token - The webhook token (from createWebhook or stored)
|
|
62
|
+
* @param options - Optional channelId, guildId, name for display
|
|
54
63
|
*/
|
|
55
64
|
static fromToken(client, webhookId, token, options) {
|
|
56
65
|
return new _Webhook(client, {
|