baff.js 0.0.0-stage → 0.1.0
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/CHANGELOG.md +20 -0
- package/LICENSE +7 -0
- package/README.md +244 -3
- package/dist/cjs/builders/EmbedBuilder.d.ts +51 -0
- package/dist/cjs/builders/EmbedBuilder.js +150 -0
- package/dist/cjs/builders/SlashCommandBuilder.d.ts +69 -0
- package/dist/cjs/builders/SlashCommandBuilder.js +185 -0
- package/dist/cjs/builders/components/ActionRowBuilder.d.ts +14 -0
- package/dist/cjs/builders/components/ActionRowBuilder.js +45 -0
- package/dist/cjs/builders/components/ButtonBuilder.d.ts +19 -0
- package/dist/cjs/builders/components/ButtonBuilder.js +69 -0
- package/dist/cjs/builders/components/LayoutBuilders.d.ts +63 -0
- package/dist/cjs/builders/components/LayoutBuilders.js +179 -0
- package/dist/cjs/builders/components/ModalBuilder.d.ts +36 -0
- package/dist/cjs/builders/components/ModalBuilder.js +118 -0
- package/dist/cjs/builders/components/SelectMenuBuilder.d.ts +80 -0
- package/dist/cjs/builders/components/SelectMenuBuilder.js +192 -0
- package/dist/cjs/builders/components/shared.d.ts +16 -0
- package/dist/cjs/builders/components/shared.js +32 -0
- package/dist/cjs/builders/messagePayload.d.ts +35 -0
- package/dist/cjs/builders/messagePayload.js +88 -0
- package/dist/cjs/builders/validate.d.ts +12 -0
- package/dist/cjs/builders/validate.js +54 -0
- package/dist/cjs/client/Client.d.ts +63 -0
- package/dist/cjs/client/Client.js +152 -0
- package/dist/cjs/client/dispatch.d.ts +2 -0
- package/dist/cjs/client/dispatch.js +224 -0
- package/dist/cjs/client/events.d.ts +129 -0
- package/dist/cjs/client/events.js +2 -0
- package/dist/cjs/collectors/Collector.d.ts +37 -0
- package/dist/cjs/collectors/Collector.js +84 -0
- package/dist/cjs/collectors/InteractionCollector.d.ts +21 -0
- package/dist/cjs/collectors/InteractionCollector.js +44 -0
- package/dist/cjs/collectors/MessageCollector.d.ts +14 -0
- package/dist/cjs/collectors/MessageCollector.js +23 -0
- package/dist/cjs/errors/BaffError.d.ts +26 -0
- package/dist/cjs/errors/BaffError.js +39 -0
- package/dist/cjs/gateway/Gateway.d.ts +53 -0
- package/dist/cjs/gateway/Gateway.js +128 -0
- package/dist/cjs/http/handler.d.ts +11 -0
- package/dist/cjs/http/handler.js +72 -0
- package/dist/cjs/http/verify.d.ts +11 -0
- package/dist/cjs/http/verify.js +28 -0
- package/dist/cjs/index.d.ts +51 -0
- package/dist/cjs/index.js +185 -0
- package/dist/cjs/managers/CachedManager.d.ts +16 -0
- package/dist/cjs/managers/CachedManager.js +18 -0
- package/dist/cjs/managers/ChannelManager.d.ts +23 -0
- package/dist/cjs/managers/ChannelManager.js +85 -0
- package/dist/cjs/managers/CommandManager.d.ts +32 -0
- package/dist/cjs/managers/CommandManager.js +72 -0
- package/dist/cjs/managers/EventManager.d.ts +15 -0
- package/dist/cjs/managers/EventManager.js +36 -0
- package/dist/cjs/managers/ExpressionManagers.d.ts +36 -0
- package/dist/cjs/managers/ExpressionManagers.js +73 -0
- package/dist/cjs/managers/InviteManager.d.ts +17 -0
- package/dist/cjs/managers/InviteManager.js +26 -0
- package/dist/cjs/managers/MemberManager.d.ts +31 -0
- package/dist/cjs/managers/MemberManager.js +62 -0
- package/dist/cjs/managers/MessageManager.d.ts +32 -0
- package/dist/cjs/managers/MessageManager.js +79 -0
- package/dist/cjs/managers/RoleManager.d.ts +22 -0
- package/dist/cjs/managers/RoleManager.js +73 -0
- package/dist/cjs/managers/ServerChannelManager.d.ts +20 -0
- package/dist/cjs/managers/ServerChannelManager.js +30 -0
- package/dist/cjs/managers/ServerManager.d.ts +12 -0
- package/dist/cjs/managers/ServerManager.js +62 -0
- package/dist/cjs/managers/ThreadManager.d.ts +12 -0
- package/dist/cjs/managers/ThreadManager.js +20 -0
- package/dist/cjs/managers/UserManager.d.ts +11 -0
- package/dist/cjs/managers/UserManager.js +38 -0
- package/dist/cjs/managers/VoiceManager.d.ts +8 -0
- package/dist/cjs/managers/VoiceManager.js +17 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/rest/REST.d.ts +58 -0
- package/dist/cjs/rest/REST.js +193 -0
- package/dist/cjs/rest/Routes.d.ts +54 -0
- package/dist/cjs/rest/Routes.js +58 -0
- package/dist/cjs/rest/files.d.ts +19 -0
- package/dist/cjs/rest/files.js +37 -0
- package/dist/cjs/structures/Base.d.ts +13 -0
- package/dist/cjs/structures/Base.js +30 -0
- package/dist/cjs/structures/Message.d.ts +91 -0
- package/dist/cjs/structures/Message.js +200 -0
- package/dist/cjs/structures/Role.d.ts +34 -0
- package/dist/cjs/structures/Role.js +84 -0
- package/dist/cjs/structures/ScheduledEvent.d.ts +37 -0
- package/dist/cjs/structures/ScheduledEvent.js +73 -0
- package/dist/cjs/structures/Server.d.ts +68 -0
- package/dist/cjs/structures/Server.js +124 -0
- package/dist/cjs/structures/ServerAssets.d.ts +48 -0
- package/dist/cjs/structures/ServerAssets.js +104 -0
- package/dist/cjs/structures/ServerMember.d.ts +47 -0
- package/dist/cjs/structures/ServerMember.js +138 -0
- package/dist/cjs/structures/User.d.ts +35 -0
- package/dist/cjs/structures/User.js +87 -0
- package/dist/cjs/structures/Webhook.d.ts +30 -0
- package/dist/cjs/structures/Webhook.js +68 -0
- package/dist/cjs/structures/channels/BaseChannel.d.ts +49 -0
- package/dist/cjs/structures/channels/BaseChannel.js +81 -0
- package/dist/cjs/structures/channels/DMChannel.d.ts +9 -0
- package/dist/cjs/structures/channels/DMChannel.js +21 -0
- package/dist/cjs/structures/channels/ServerChannels.d.ts +57 -0
- package/dist/cjs/structures/channels/ServerChannels.js +138 -0
- package/dist/cjs/structures/channels/TextBasedChannel.d.ts +25 -0
- package/dist/cjs/structures/channels/TextBasedChannel.js +53 -0
- package/dist/cjs/structures/interactions/BaseInteraction.d.ts +74 -0
- package/dist/cjs/structures/interactions/BaseInteraction.js +221 -0
- package/dist/cjs/structures/interactions/CommandInteraction.d.ts +44 -0
- package/dist/cjs/structures/interactions/CommandInteraction.js +109 -0
- package/dist/cjs/structures/interactions/ComponentInteraction.d.ts +44 -0
- package/dist/cjs/structures/interactions/ComponentInteraction.js +64 -0
- package/dist/cjs/structures/interactions/ModalSubmitInteraction.d.ts +29 -0
- package/dist/cjs/structures/interactions/ModalSubmitInteraction.js +42 -0
- package/dist/cjs/structures/interactions/createInteraction.d.ts +4 -0
- package/dist/cjs/structures/interactions/createInteraction.js +34 -0
- package/dist/cjs/types.d.ts +369 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/util/Collection.d.ts +32 -0
- package/dist/cjs/util/Collection.js +145 -0
- package/dist/cjs/util/Permissions.d.ts +87 -0
- package/dist/cjs/util/Permissions.js +113 -0
- package/dist/cjs/util/Snowflake.d.ts +20 -0
- package/dist/cjs/util/Snowflake.js +40 -0
- package/dist/cjs/util/TypedEmitter.d.ts +17 -0
- package/dist/cjs/util/TypedEmitter.js +5 -0
- package/dist/cjs/util/constants.d.ts +78 -0
- package/dist/cjs/util/constants.js +81 -0
- package/dist/cjs/util/emoji.d.ts +8 -0
- package/dist/cjs/util/emoji.js +10 -0
- package/dist/cjs/util/formatters.d.ts +29 -0
- package/dist/cjs/util/formatters.js +55 -0
- package/dist/esm/builders/EmbedBuilder.d.ts +51 -0
- package/dist/esm/builders/EmbedBuilder.js +145 -0
- package/dist/esm/builders/SlashCommandBuilder.d.ts +69 -0
- package/dist/esm/builders/SlashCommandBuilder.js +170 -0
- package/dist/esm/builders/components/ActionRowBuilder.d.ts +14 -0
- package/dist/esm/builders/components/ActionRowBuilder.js +41 -0
- package/dist/esm/builders/components/ButtonBuilder.d.ts +19 -0
- package/dist/esm/builders/components/ButtonBuilder.js +65 -0
- package/dist/esm/builders/components/LayoutBuilders.d.ts +63 -0
- package/dist/esm/builders/components/LayoutBuilders.js +169 -0
- package/dist/esm/builders/components/ModalBuilder.d.ts +36 -0
- package/dist/esm/builders/components/ModalBuilder.js +113 -0
- package/dist/esm/builders/components/SelectMenuBuilder.d.ts +80 -0
- package/dist/esm/builders/components/SelectMenuBuilder.js +183 -0
- package/dist/esm/builders/components/shared.d.ts +16 -0
- package/dist/esm/builders/components/shared.js +26 -0
- package/dist/esm/builders/messagePayload.d.ts +35 -0
- package/dist/esm/builders/messagePayload.js +83 -0
- package/dist/esm/builders/validate.d.ts +12 -0
- package/dist/esm/builders/validate.js +46 -0
- package/dist/esm/client/Client.d.ts +63 -0
- package/dist/esm/client/Client.js +147 -0
- package/dist/esm/client/dispatch.d.ts +2 -0
- package/dist/esm/client/dispatch.js +221 -0
- package/dist/esm/client/events.d.ts +129 -0
- package/dist/esm/client/events.js +1 -0
- package/dist/esm/collectors/Collector.d.ts +37 -0
- package/dist/esm/collectors/Collector.js +78 -0
- package/dist/esm/collectors/InteractionCollector.d.ts +21 -0
- package/dist/esm/collectors/InteractionCollector.js +40 -0
- package/dist/esm/collectors/MessageCollector.d.ts +14 -0
- package/dist/esm/collectors/MessageCollector.js +19 -0
- package/dist/esm/errors/BaffError.d.ts +26 -0
- package/dist/esm/errors/BaffError.js +33 -0
- package/dist/esm/gateway/Gateway.d.ts +53 -0
- package/dist/esm/gateway/Gateway.js +124 -0
- package/dist/esm/http/handler.d.ts +11 -0
- package/dist/esm/http/handler.js +68 -0
- package/dist/esm/http/verify.d.ts +11 -0
- package/dist/esm/http/verify.js +22 -0
- package/dist/esm/index.d.ts +51 -0
- package/dist/esm/index.js +49 -0
- package/dist/esm/managers/CachedManager.d.ts +16 -0
- package/dist/esm/managers/CachedManager.js +14 -0
- package/dist/esm/managers/ChannelManager.d.ts +23 -0
- package/dist/esm/managers/ChannelManager.js +81 -0
- package/dist/esm/managers/CommandManager.d.ts +32 -0
- package/dist/esm/managers/CommandManager.js +67 -0
- package/dist/esm/managers/EventManager.d.ts +15 -0
- package/dist/esm/managers/EventManager.js +32 -0
- package/dist/esm/managers/ExpressionManagers.d.ts +36 -0
- package/dist/esm/managers/ExpressionManagers.js +68 -0
- package/dist/esm/managers/InviteManager.d.ts +17 -0
- package/dist/esm/managers/InviteManager.js +22 -0
- package/dist/esm/managers/MemberManager.d.ts +31 -0
- package/dist/esm/managers/MemberManager.js +58 -0
- package/dist/esm/managers/MessageManager.d.ts +32 -0
- package/dist/esm/managers/MessageManager.js +75 -0
- package/dist/esm/managers/RoleManager.d.ts +22 -0
- package/dist/esm/managers/RoleManager.js +69 -0
- package/dist/esm/managers/ServerChannelManager.d.ts +20 -0
- package/dist/esm/managers/ServerChannelManager.js +26 -0
- package/dist/esm/managers/ServerManager.d.ts +12 -0
- package/dist/esm/managers/ServerManager.js +58 -0
- package/dist/esm/managers/ThreadManager.d.ts +12 -0
- package/dist/esm/managers/ThreadManager.js +16 -0
- package/dist/esm/managers/UserManager.d.ts +11 -0
- package/dist/esm/managers/UserManager.js +34 -0
- package/dist/esm/managers/VoiceManager.d.ts +8 -0
- package/dist/esm/managers/VoiceManager.js +13 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/rest/REST.d.ts +58 -0
- package/dist/esm/rest/REST.js +188 -0
- package/dist/esm/rest/Routes.d.ts +54 -0
- package/dist/esm/rest/Routes.js +55 -0
- package/dist/esm/rest/files.d.ts +19 -0
- package/dist/esm/rest/files.js +31 -0
- package/dist/esm/structures/Base.d.ts +13 -0
- package/dist/esm/structures/Base.js +25 -0
- package/dist/esm/structures/Message.d.ts +91 -0
- package/dist/esm/structures/Message.js +194 -0
- package/dist/esm/structures/Role.d.ts +34 -0
- package/dist/esm/structures/Role.js +79 -0
- package/dist/esm/structures/ScheduledEvent.d.ts +37 -0
- package/dist/esm/structures/ScheduledEvent.js +68 -0
- package/dist/esm/structures/Server.d.ts +68 -0
- package/dist/esm/structures/Server.js +120 -0
- package/dist/esm/structures/ServerAssets.d.ts +48 -0
- package/dist/esm/structures/ServerAssets.js +98 -0
- package/dist/esm/structures/ServerMember.d.ts +47 -0
- package/dist/esm/structures/ServerMember.js +133 -0
- package/dist/esm/structures/User.d.ts +35 -0
- package/dist/esm/structures/User.js +82 -0
- package/dist/esm/structures/Webhook.d.ts +30 -0
- package/dist/esm/structures/Webhook.js +63 -0
- package/dist/esm/structures/channels/BaseChannel.d.ts +49 -0
- package/dist/esm/structures/channels/BaseChannel.js +77 -0
- package/dist/esm/structures/channels/DMChannel.d.ts +9 -0
- package/dist/esm/structures/channels/DMChannel.js +17 -0
- package/dist/esm/structures/channels/ServerChannels.d.ts +57 -0
- package/dist/esm/structures/channels/ServerChannels.js +129 -0
- package/dist/esm/structures/channels/TextBasedChannel.d.ts +25 -0
- package/dist/esm/structures/channels/TextBasedChannel.js +49 -0
- package/dist/esm/structures/interactions/BaseInteraction.d.ts +74 -0
- package/dist/esm/structures/interactions/BaseInteraction.js +217 -0
- package/dist/esm/structures/interactions/CommandInteraction.d.ts +44 -0
- package/dist/esm/structures/interactions/CommandInteraction.js +104 -0
- package/dist/esm/structures/interactions/ComponentInteraction.d.ts +44 -0
- package/dist/esm/structures/interactions/ComponentInteraction.js +53 -0
- package/dist/esm/structures/interactions/ModalSubmitInteraction.d.ts +29 -0
- package/dist/esm/structures/interactions/ModalSubmitInteraction.js +37 -0
- package/dist/esm/structures/interactions/createInteraction.d.ts +4 -0
- package/dist/esm/structures/interactions/createInteraction.js +31 -0
- package/dist/esm/types.d.ts +369 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/util/Collection.d.ts +32 -0
- package/dist/esm/util/Collection.js +141 -0
- package/dist/esm/util/Permissions.d.ts +87 -0
- package/dist/esm/util/Permissions.js +109 -0
- package/dist/esm/util/Snowflake.d.ts +20 -0
- package/dist/esm/util/Snowflake.js +37 -0
- package/dist/esm/util/TypedEmitter.d.ts +17 -0
- package/dist/esm/util/TypedEmitter.js +2 -0
- package/dist/esm/util/constants.d.ts +78 -0
- package/dist/esm/util/constants.js +78 -0
- package/dist/esm/util/emoji.d.ts +8 -0
- package/dist/esm/util/emoji.js +7 -0
- package/dist/esm/util/formatters.d.ts +29 -0
- package/dist/esm/util/formatters.js +34 -0
- package/package.json +58 -6
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Routes } from '../rest/Routes.js';
|
|
2
|
+
import { Identified } from './Base.js';
|
|
3
|
+
export function eventBody(data) {
|
|
4
|
+
const iso = (value) => (value instanceof Date ? value.toISOString() : value);
|
|
5
|
+
return { ...data, startAt: iso(data.startAt), endAt: iso(data.endAt) };
|
|
6
|
+
}
|
|
7
|
+
export class ScheduledEvent extends Identified {
|
|
8
|
+
id;
|
|
9
|
+
serverId;
|
|
10
|
+
creatorId = null;
|
|
11
|
+
name = '';
|
|
12
|
+
description = '';
|
|
13
|
+
locationKind = 'voice';
|
|
14
|
+
channelId = null;
|
|
15
|
+
location = null;
|
|
16
|
+
startAt = new Date(0);
|
|
17
|
+
endAt = null;
|
|
18
|
+
coverUrl = null;
|
|
19
|
+
status = 'scheduled';
|
|
20
|
+
interestedCount = 0;
|
|
21
|
+
constructor(client, data) {
|
|
22
|
+
super(client);
|
|
23
|
+
this.id = data.id;
|
|
24
|
+
this.serverId = data.serverId;
|
|
25
|
+
this._patch(data);
|
|
26
|
+
}
|
|
27
|
+
_patch(data) {
|
|
28
|
+
if (data.creatorId !== undefined)
|
|
29
|
+
this.creatorId = data.creatorId;
|
|
30
|
+
if (data.name !== undefined)
|
|
31
|
+
this.name = data.name;
|
|
32
|
+
if (data.description !== undefined)
|
|
33
|
+
this.description = data.description;
|
|
34
|
+
if (data.locationKind !== undefined)
|
|
35
|
+
this.locationKind = data.locationKind;
|
|
36
|
+
if (data.channelId !== undefined)
|
|
37
|
+
this.channelId = data.channelId;
|
|
38
|
+
if (data.location !== undefined)
|
|
39
|
+
this.location = data.location;
|
|
40
|
+
if (data.startAt !== undefined)
|
|
41
|
+
this.startAt = new Date(data.startAt);
|
|
42
|
+
if (data.endAt !== undefined)
|
|
43
|
+
this.endAt = data.endAt ? new Date(data.endAt) : null;
|
|
44
|
+
if (data.coverUrl !== undefined)
|
|
45
|
+
this.coverUrl = data.coverUrl;
|
|
46
|
+
if (data.status !== undefined)
|
|
47
|
+
this.status = data.status;
|
|
48
|
+
if (data.interestedCount !== undefined)
|
|
49
|
+
this.interestedCount = data.interestedCount;
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
async edit(data) {
|
|
53
|
+
const updated = await this.client.rest.patch(Routes.serverEvent(this.serverId, this.id), { body: eventBody(data) });
|
|
54
|
+
return this._patch(updated);
|
|
55
|
+
}
|
|
56
|
+
start() {
|
|
57
|
+
return this.edit({ status: 'active' });
|
|
58
|
+
}
|
|
59
|
+
end() {
|
|
60
|
+
return this.edit({ status: 'completed' });
|
|
61
|
+
}
|
|
62
|
+
cancel() {
|
|
63
|
+
return this.edit({ status: 'canceled' });
|
|
64
|
+
}
|
|
65
|
+
async delete() {
|
|
66
|
+
await this.client.rest.delete(Routes.serverEvent(this.serverId, this.id));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Client } from '../client/Client.js';
|
|
2
|
+
import { ApplicationCommandManager } from '../managers/CommandManager.js';
|
|
3
|
+
import { EventManager } from '../managers/EventManager.js';
|
|
4
|
+
import { EmojiManager, StickerManager } from '../managers/ExpressionManagers.js';
|
|
5
|
+
import { InviteManager } from '../managers/InviteManager.js';
|
|
6
|
+
import { MemberManager } from '../managers/MemberManager.js';
|
|
7
|
+
import { RoleManager } from '../managers/RoleManager.js';
|
|
8
|
+
import { ServerChannelManager } from '../managers/ServerChannelManager.js';
|
|
9
|
+
import type { APIAuditEntry, APIServer, APIServerSummary, APIVoiceState } from '../types.js';
|
|
10
|
+
import { Collection } from '../util/Collection.js';
|
|
11
|
+
import { Identified } from './Base.js';
|
|
12
|
+
import type { ServerMember } from './ServerMember.js';
|
|
13
|
+
import type { User } from './User.js';
|
|
14
|
+
export interface ServerEditData {
|
|
15
|
+
name?: string;
|
|
16
|
+
systemChannelId?: string | null;
|
|
17
|
+
systemFlags?: number;
|
|
18
|
+
defaultNotifications?: 'all' | 'mentions';
|
|
19
|
+
}
|
|
20
|
+
export interface AuditLogEntry extends Omit<APIAuditEntry, 'actorId' | 'createdAt'> {
|
|
21
|
+
actorId: string | null;
|
|
22
|
+
actor: User | null;
|
|
23
|
+
createdAt: Date;
|
|
24
|
+
}
|
|
25
|
+
export interface AuditLogQuery {
|
|
26
|
+
limit?: number;
|
|
27
|
+
before?: string;
|
|
28
|
+
userId?: string;
|
|
29
|
+
action?: string;
|
|
30
|
+
}
|
|
31
|
+
export declare class Server extends Identified {
|
|
32
|
+
readonly id: string;
|
|
33
|
+
name: string;
|
|
34
|
+
iconUrl: string | null;
|
|
35
|
+
bannerUrl: string | null;
|
|
36
|
+
ownerId: string;
|
|
37
|
+
types: string[];
|
|
38
|
+
community: boolean;
|
|
39
|
+
listed: boolean;
|
|
40
|
+
invitesPaused: boolean;
|
|
41
|
+
systemChannelId: string | null;
|
|
42
|
+
boostCount: number;
|
|
43
|
+
boostTier: number;
|
|
44
|
+
myRoleIds: string[];
|
|
45
|
+
detailed: boolean;
|
|
46
|
+
readonly channels: ServerChannelManager;
|
|
47
|
+
readonly roles: RoleManager;
|
|
48
|
+
readonly members: MemberManager;
|
|
49
|
+
readonly emojis: EmojiManager;
|
|
50
|
+
readonly stickers: StickerManager;
|
|
51
|
+
readonly invites: InviteManager;
|
|
52
|
+
readonly events: EventManager;
|
|
53
|
+
readonly commands: ApplicationCommandManager;
|
|
54
|
+
readonly voiceStates: Collection<string, APIVoiceState>;
|
|
55
|
+
constructor(client: Client, data: APIServerSummary | APIServer);
|
|
56
|
+
_patch(data: Partial<APIServer>): this;
|
|
57
|
+
_applyDetail(data: APIServer): void;
|
|
58
|
+
get me(): ServerMember | null;
|
|
59
|
+
get url(): string;
|
|
60
|
+
get systemChannel(): import("./channels/ServerChannels.js").ServerChannel | null;
|
|
61
|
+
fetch(): Promise<Server>;
|
|
62
|
+
edit(data: ServerEditData): Promise<Server>;
|
|
63
|
+
setName(name: string): Promise<Server>;
|
|
64
|
+
leave(): Promise<void>;
|
|
65
|
+
fetchAuditLog(query?: AuditLogQuery): Promise<Collection<string, AuditLogEntry>>;
|
|
66
|
+
fetchVoiceStates(): Promise<Collection<string, APIVoiceState>>;
|
|
67
|
+
toString(): string;
|
|
68
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { ApplicationCommandManager } from '../managers/CommandManager.js';
|
|
2
|
+
import { EventManager } from '../managers/EventManager.js';
|
|
3
|
+
import { EmojiManager, StickerManager } from '../managers/ExpressionManagers.js';
|
|
4
|
+
import { InviteManager } from '../managers/InviteManager.js';
|
|
5
|
+
import { MemberManager } from '../managers/MemberManager.js';
|
|
6
|
+
import { RoleManager } from '../managers/RoleManager.js';
|
|
7
|
+
import { ServerChannelManager } from '../managers/ServerChannelManager.js';
|
|
8
|
+
import { Routes } from '../rest/Routes.js';
|
|
9
|
+
import { Collection } from '../util/Collection.js';
|
|
10
|
+
import { Identified } from './Base.js';
|
|
11
|
+
export class Server extends Identified {
|
|
12
|
+
id;
|
|
13
|
+
name;
|
|
14
|
+
iconUrl = null;
|
|
15
|
+
bannerUrl = null;
|
|
16
|
+
ownerId = '';
|
|
17
|
+
types = [];
|
|
18
|
+
community = false;
|
|
19
|
+
listed = false;
|
|
20
|
+
invitesPaused = false;
|
|
21
|
+
systemChannelId = null;
|
|
22
|
+
boostCount = 0;
|
|
23
|
+
boostTier = 0;
|
|
24
|
+
myRoleIds = [];
|
|
25
|
+
detailed = false;
|
|
26
|
+
channels;
|
|
27
|
+
roles;
|
|
28
|
+
members;
|
|
29
|
+
emojis;
|
|
30
|
+
stickers;
|
|
31
|
+
invites;
|
|
32
|
+
events;
|
|
33
|
+
commands;
|
|
34
|
+
voiceStates = new Collection();
|
|
35
|
+
constructor(client, data) {
|
|
36
|
+
super(client);
|
|
37
|
+
this.id = data.id;
|
|
38
|
+
this.name = data.name;
|
|
39
|
+
this.channels = new ServerChannelManager(client, data.id);
|
|
40
|
+
this.roles = new RoleManager(client, data.id);
|
|
41
|
+
this.members = new MemberManager(client, data.id);
|
|
42
|
+
this.emojis = new EmojiManager(client, data.id);
|
|
43
|
+
this.stickers = new StickerManager(client, data.id);
|
|
44
|
+
this.invites = new InviteManager(client, data.id);
|
|
45
|
+
this.events = new EventManager(client, data.id);
|
|
46
|
+
this.commands = new ApplicationCommandManager(client, () => client.requireApplicationId(), data.id);
|
|
47
|
+
this._patch(data);
|
|
48
|
+
}
|
|
49
|
+
_patch(data) {
|
|
50
|
+
if (data.name !== undefined)
|
|
51
|
+
this.name = data.name;
|
|
52
|
+
if (data.iconUrl !== undefined)
|
|
53
|
+
this.iconUrl = data.iconUrl;
|
|
54
|
+
if (data.bannerUrl !== undefined)
|
|
55
|
+
this.bannerUrl = data.bannerUrl;
|
|
56
|
+
if (data.ownerId !== undefined)
|
|
57
|
+
this.ownerId = data.ownerId;
|
|
58
|
+
if (data.types !== undefined)
|
|
59
|
+
this.types = data.types;
|
|
60
|
+
if (data.community !== undefined)
|
|
61
|
+
this.community = data.community;
|
|
62
|
+
if (data.listed !== undefined)
|
|
63
|
+
this.listed = data.listed;
|
|
64
|
+
if (data.invitesPaused !== undefined)
|
|
65
|
+
this.invitesPaused = data.invitesPaused;
|
|
66
|
+
if (data.systemChannelId !== undefined)
|
|
67
|
+
this.systemChannelId = data.systemChannelId;
|
|
68
|
+
if (data.boostCount !== undefined)
|
|
69
|
+
this.boostCount = data.boostCount;
|
|
70
|
+
if (data.boostTier !== undefined)
|
|
71
|
+
this.boostTier = data.boostTier;
|
|
72
|
+
if (data.myRoles !== undefined)
|
|
73
|
+
this.myRoleIds = data.myRoles;
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
_applyDetail(data) {
|
|
77
|
+
this.detailed = true;
|
|
78
|
+
this.roles._setAll(data.roles);
|
|
79
|
+
this.client.channels._replaceServer(this.id, data.channels);
|
|
80
|
+
}
|
|
81
|
+
get me() {
|
|
82
|
+
return this.members.me;
|
|
83
|
+
}
|
|
84
|
+
get url() {
|
|
85
|
+
return `${this.client.appUrl}/channels/${this.id}`;
|
|
86
|
+
}
|
|
87
|
+
get systemChannel() {
|
|
88
|
+
return this.systemChannelId ? (this.channels.cache.get(this.systemChannelId) ?? null) : null;
|
|
89
|
+
}
|
|
90
|
+
fetch() {
|
|
91
|
+
return this.client.servers.fetch(this.id, { force: true });
|
|
92
|
+
}
|
|
93
|
+
async edit(data) {
|
|
94
|
+
await this.client.rest.patch(Routes.serverSettings(this.id), { body: data });
|
|
95
|
+
return this._patch(data);
|
|
96
|
+
}
|
|
97
|
+
setName(name) {
|
|
98
|
+
return this.edit({ name });
|
|
99
|
+
}
|
|
100
|
+
leave() {
|
|
101
|
+
return this.client.servers.leave(this.id);
|
|
102
|
+
}
|
|
103
|
+
async fetchAuditLog(query = {}) {
|
|
104
|
+
const res = await this.client.rest.get(Routes.auditLog(this.id), { query: { ...query } });
|
|
105
|
+
for (const u of res.users)
|
|
106
|
+
this.client.users._add(u);
|
|
107
|
+
return new Collection(res.entries.map((e) => [e.id, { ...e, actor: e.actorId ? (this.client.users.cache.get(e.actorId) ?? null) : null, createdAt: new Date(e.createdAt) }]));
|
|
108
|
+
}
|
|
109
|
+
async fetchVoiceStates() {
|
|
110
|
+
const list = await this.client.rest.get(Routes.voiceStates(this.id));
|
|
111
|
+
this.voiceStates.clear();
|
|
112
|
+
for (const state of list)
|
|
113
|
+
if (state.channelId)
|
|
114
|
+
this.voiceStates.set(state.userId, state);
|
|
115
|
+
return this.voiceStates;
|
|
116
|
+
}
|
|
117
|
+
toString() {
|
|
118
|
+
return this.name;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Client } from '../client/Client.js';
|
|
2
|
+
import type { APIEmoji, APIInvite, APISticker } from '../types.js';
|
|
3
|
+
import { Base, Identified } from './Base.js';
|
|
4
|
+
export declare class Emoji extends Identified {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly serverId: string;
|
|
7
|
+
name: string;
|
|
8
|
+
animated: boolean;
|
|
9
|
+
url: string;
|
|
10
|
+
uploader: string | null;
|
|
11
|
+
constructor(client: Client, data: APIEmoji);
|
|
12
|
+
get identifier(): string;
|
|
13
|
+
setName(name: string): Promise<Emoji>;
|
|
14
|
+
delete(): Promise<void>;
|
|
15
|
+
toString(): string;
|
|
16
|
+
}
|
|
17
|
+
export declare class Sticker extends Identified {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly serverId: string | null;
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
emoji: string | null;
|
|
23
|
+
animated: boolean;
|
|
24
|
+
url: string | null;
|
|
25
|
+
constructor(client: Client, data: APISticker, serverId?: string);
|
|
26
|
+
edit(data: {
|
|
27
|
+
name?: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
emoji?: string;
|
|
30
|
+
}): Promise<Sticker>;
|
|
31
|
+
delete(): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
export declare class Invite extends Base {
|
|
34
|
+
readonly serverId: string | null;
|
|
35
|
+
readonly code: string;
|
|
36
|
+
maxAgeSecs: number | null;
|
|
37
|
+
maxUses: number | null;
|
|
38
|
+
uses: number;
|
|
39
|
+
temporary: boolean;
|
|
40
|
+
expiresAt: Date | null;
|
|
41
|
+
inviterId: string | null;
|
|
42
|
+
vanity: boolean;
|
|
43
|
+
server: APIInvite['server'];
|
|
44
|
+
constructor(client: Client, data: APIInvite, serverId?: string | null);
|
|
45
|
+
get url(): string;
|
|
46
|
+
delete(): Promise<void>;
|
|
47
|
+
toString(): string;
|
|
48
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { BaffError } from '../errors/BaffError.js';
|
|
2
|
+
import { Routes } from '../rest/Routes.js';
|
|
3
|
+
import { formatEmoji } from '../util/formatters.js';
|
|
4
|
+
import { Base, Identified } from './Base.js';
|
|
5
|
+
export class Emoji extends Identified {
|
|
6
|
+
id;
|
|
7
|
+
serverId;
|
|
8
|
+
name;
|
|
9
|
+
animated;
|
|
10
|
+
url;
|
|
11
|
+
uploader;
|
|
12
|
+
constructor(client, data) {
|
|
13
|
+
super(client);
|
|
14
|
+
this.id = data.id;
|
|
15
|
+
this.serverId = data.serverId;
|
|
16
|
+
this.name = data.name;
|
|
17
|
+
this.animated = data.animated;
|
|
18
|
+
this.url = data.url;
|
|
19
|
+
this.uploader = data.uploader ?? null;
|
|
20
|
+
}
|
|
21
|
+
get identifier() {
|
|
22
|
+
return `${this.animated ? 'a:' : ''}${this.name}:${this.id}`;
|
|
23
|
+
}
|
|
24
|
+
async setName(name) {
|
|
25
|
+
const data = await this.client.rest.patch(Routes.serverEmoji(this.serverId, this.id), { body: { name } });
|
|
26
|
+
this.name = data.name;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
delete() {
|
|
30
|
+
return this.client.rest.delete(Routes.serverEmoji(this.serverId, this.id));
|
|
31
|
+
}
|
|
32
|
+
toString() {
|
|
33
|
+
return formatEmoji(this.id, this.name, this.animated);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class Sticker extends Identified {
|
|
37
|
+
id;
|
|
38
|
+
serverId;
|
|
39
|
+
name;
|
|
40
|
+
description;
|
|
41
|
+
emoji;
|
|
42
|
+
animated;
|
|
43
|
+
url;
|
|
44
|
+
constructor(client, data, serverId) {
|
|
45
|
+
super(client);
|
|
46
|
+
this.id = data.id;
|
|
47
|
+
this.serverId = data.serverId ?? serverId ?? null;
|
|
48
|
+
this.name = data.name;
|
|
49
|
+
this.description = data.description ?? '';
|
|
50
|
+
this.emoji = data.emoji ?? null;
|
|
51
|
+
this.animated = data.animated;
|
|
52
|
+
this.url = data.url ?? null;
|
|
53
|
+
}
|
|
54
|
+
async edit(data) {
|
|
55
|
+
const updated = await this.client.rest.patch(Routes.serverSticker(this.serverId, this.id), { body: data });
|
|
56
|
+
Object.assign(this, { name: updated.name, description: updated.description ?? this.description, emoji: updated.emoji ?? null });
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
delete() {
|
|
60
|
+
return this.client.rest.delete(Routes.serverSticker(this.serverId, this.id));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export class Invite extends Base {
|
|
64
|
+
serverId;
|
|
65
|
+
code;
|
|
66
|
+
maxAgeSecs;
|
|
67
|
+
maxUses;
|
|
68
|
+
uses;
|
|
69
|
+
temporary;
|
|
70
|
+
expiresAt;
|
|
71
|
+
inviterId;
|
|
72
|
+
vanity;
|
|
73
|
+
server;
|
|
74
|
+
constructor(client, data, serverId = data.server?.id ?? null) {
|
|
75
|
+
super(client);
|
|
76
|
+
this.serverId = serverId;
|
|
77
|
+
this.code = data.code;
|
|
78
|
+
this.maxAgeSecs = data.maxAgeSecs ?? null;
|
|
79
|
+
this.maxUses = data.maxUses ?? null;
|
|
80
|
+
this.uses = data.uses ?? 0;
|
|
81
|
+
this.temporary = data.temporary ?? false;
|
|
82
|
+
this.expiresAt = data.expiresAt ? new Date(data.expiresAt) : null;
|
|
83
|
+
this.inviterId = data.inviter?.id ?? null;
|
|
84
|
+
this.vanity = data.vanity ?? false;
|
|
85
|
+
this.server = data.server;
|
|
86
|
+
}
|
|
87
|
+
get url() {
|
|
88
|
+
return `${this.client.appUrl}/invite/${this.code}`;
|
|
89
|
+
}
|
|
90
|
+
async delete() {
|
|
91
|
+
if (!this.serverId)
|
|
92
|
+
throw new BaffError('INVITE_HAS_NO_SERVER', 'This invite has no server to delete it from.');
|
|
93
|
+
await this.client.rest.delete(Routes.serverInvite(this.serverId, this.code));
|
|
94
|
+
}
|
|
95
|
+
toString() {
|
|
96
|
+
return this.url;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Client } from '../client/Client.js';
|
|
2
|
+
import type { MessageOptions } from '../builders/messagePayload.js';
|
|
3
|
+
import type { APIMember } from '../types.js';
|
|
4
|
+
import { Collection } from '../util/Collection.js';
|
|
5
|
+
import { PermissionsBitField } from '../util/Permissions.js';
|
|
6
|
+
import { Base } from './Base.js';
|
|
7
|
+
import type { Message } from './Message.js';
|
|
8
|
+
import type { Role } from './Role.js';
|
|
9
|
+
import type { Server } from './Server.js';
|
|
10
|
+
import type { User } from './User.js';
|
|
11
|
+
export declare class MemberRoleManager {
|
|
12
|
+
private readonly member;
|
|
13
|
+
constructor(member: ServerMember);
|
|
14
|
+
get cache(): Collection<string, Role>;
|
|
15
|
+
get highest(): Role | undefined;
|
|
16
|
+
add(role: string | Role): Promise<ServerMember>;
|
|
17
|
+
remove(role: string | Role): Promise<ServerMember>;
|
|
18
|
+
}
|
|
19
|
+
export declare class ServerMember extends Base {
|
|
20
|
+
readonly serverId: string;
|
|
21
|
+
readonly user: User;
|
|
22
|
+
roleIds: string[];
|
|
23
|
+
nick: string | null;
|
|
24
|
+
avatarUrl: string | null;
|
|
25
|
+
bannerUrl: string | null;
|
|
26
|
+
joinedAt: Date | null;
|
|
27
|
+
pending: boolean;
|
|
28
|
+
timeoutUntil: Date | null;
|
|
29
|
+
readonly roles: MemberRoleManager;
|
|
30
|
+
constructor(client: Client, serverId: string, user: User, data: Partial<APIMember>);
|
|
31
|
+
_clone(): this;
|
|
32
|
+
_patch(data: Partial<APIMember>): this;
|
|
33
|
+
get id(): string;
|
|
34
|
+
get server(): Server | null;
|
|
35
|
+
get displayName(): string;
|
|
36
|
+
get isOwner(): boolean;
|
|
37
|
+
get timedOut(): boolean;
|
|
38
|
+
get permissions(): PermissionsBitField;
|
|
39
|
+
kick(reason?: string): Promise<void>;
|
|
40
|
+
ban(options?: {
|
|
41
|
+
reason?: string;
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
timeout(durationMs: number | null, reason?: string): Promise<ServerMember>;
|
|
44
|
+
setNickname(nick: string | null): Promise<ServerMember>;
|
|
45
|
+
send(options: string | MessageOptions): Promise<Message>;
|
|
46
|
+
toString(): string;
|
|
47
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Routes } from '../rest/Routes.js';
|
|
2
|
+
import { Collection } from '../util/Collection.js';
|
|
3
|
+
import { PermissionFlagsBits, PermissionsBitField } from '../util/Permissions.js';
|
|
4
|
+
import { userMention } from '../util/formatters.js';
|
|
5
|
+
import { Base } from './Base.js';
|
|
6
|
+
export class MemberRoleManager {
|
|
7
|
+
member;
|
|
8
|
+
constructor(member) {
|
|
9
|
+
this.member = member;
|
|
10
|
+
}
|
|
11
|
+
get cache() {
|
|
12
|
+
const roles = this.member.server?.roles.cache;
|
|
13
|
+
const out = new Collection();
|
|
14
|
+
if (!roles)
|
|
15
|
+
return out;
|
|
16
|
+
for (const id of [this.member.server.id, ...this.member.roleIds]) {
|
|
17
|
+
const role = roles.get(id);
|
|
18
|
+
if (role)
|
|
19
|
+
out.set(id, role);
|
|
20
|
+
}
|
|
21
|
+
return out;
|
|
22
|
+
}
|
|
23
|
+
get highest() {
|
|
24
|
+
return this.cache.sort((a, b) => b.position - a.position).first();
|
|
25
|
+
}
|
|
26
|
+
async add(role) {
|
|
27
|
+
const id = typeof role === 'string' ? role : role.id;
|
|
28
|
+
await this.member.client.rest.put(Routes.memberRole(this.member.serverId, this.member.id, id));
|
|
29
|
+
if (!this.member.roleIds.includes(id))
|
|
30
|
+
this.member.roleIds.push(id);
|
|
31
|
+
return this.member;
|
|
32
|
+
}
|
|
33
|
+
async remove(role) {
|
|
34
|
+
const id = typeof role === 'string' ? role : role.id;
|
|
35
|
+
await this.member.client.rest.delete(Routes.memberRole(this.member.serverId, this.member.id, id));
|
|
36
|
+
this.member.roleIds = this.member.roleIds.filter((r) => r !== id);
|
|
37
|
+
return this.member;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export class ServerMember extends Base {
|
|
41
|
+
serverId;
|
|
42
|
+
user;
|
|
43
|
+
roleIds = [];
|
|
44
|
+
nick = null;
|
|
45
|
+
avatarUrl = null;
|
|
46
|
+
bannerUrl = null;
|
|
47
|
+
joinedAt = null;
|
|
48
|
+
pending = false;
|
|
49
|
+
timeoutUntil = null;
|
|
50
|
+
roles = new MemberRoleManager(this);
|
|
51
|
+
constructor(client, serverId, user, data) {
|
|
52
|
+
super(client);
|
|
53
|
+
this.serverId = serverId;
|
|
54
|
+
this.user = user;
|
|
55
|
+
this._patch(data);
|
|
56
|
+
}
|
|
57
|
+
_clone() {
|
|
58
|
+
const copy = super._clone();
|
|
59
|
+
copy.roles = new MemberRoleManager(copy);
|
|
60
|
+
copy.roleIds = [...this.roleIds];
|
|
61
|
+
return copy;
|
|
62
|
+
}
|
|
63
|
+
_patch(data) {
|
|
64
|
+
if (data.roles !== undefined)
|
|
65
|
+
this.roleIds = [...data.roles];
|
|
66
|
+
if (data.nick !== undefined)
|
|
67
|
+
this.nick = data.nick;
|
|
68
|
+
if (data.avatarUrl !== undefined)
|
|
69
|
+
this.avatarUrl = data.avatarUrl ?? null;
|
|
70
|
+
if (data.bannerUrl !== undefined)
|
|
71
|
+
this.bannerUrl = data.bannerUrl ?? null;
|
|
72
|
+
if (data.joinedAt !== undefined)
|
|
73
|
+
this.joinedAt = new Date(data.joinedAt);
|
|
74
|
+
if (data.pending !== undefined)
|
|
75
|
+
this.pending = data.pending;
|
|
76
|
+
if (data.timeoutUntil !== undefined)
|
|
77
|
+
this.timeoutUntil = data.timeoutUntil ? new Date(data.timeoutUntil) : null;
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
get id() {
|
|
81
|
+
return this.user.id;
|
|
82
|
+
}
|
|
83
|
+
get server() {
|
|
84
|
+
return this.client.servers.cache.get(this.serverId) ?? null;
|
|
85
|
+
}
|
|
86
|
+
get displayName() {
|
|
87
|
+
return this.nick ?? this.user.displayName;
|
|
88
|
+
}
|
|
89
|
+
get isOwner() {
|
|
90
|
+
return this.server?.ownerId === this.id;
|
|
91
|
+
}
|
|
92
|
+
get timedOut() {
|
|
93
|
+
return this.timeoutUntil !== null && this.timeoutUntil.getTime() > Date.now();
|
|
94
|
+
}
|
|
95
|
+
get permissions() {
|
|
96
|
+
if (this.isOwner)
|
|
97
|
+
return PermissionsBitField.All;
|
|
98
|
+
const bits = this.roles.cache.reduce((acc, role) => acc | role.permissions.bitfield, 0n);
|
|
99
|
+
const all = new PermissionsBitField(bits);
|
|
100
|
+
if (all.has(PermissionFlagsBits.Administrator, false))
|
|
101
|
+
return PermissionsBitField.All;
|
|
102
|
+
return this.timedOut ? new PermissionsBitField(PermissionFlagsBits.ViewChannel) : all;
|
|
103
|
+
}
|
|
104
|
+
kick(reason) {
|
|
105
|
+
return this.client.rest.delete(Routes.serverMember(this.serverId, this.id), { body: reason ? { reason } : undefined });
|
|
106
|
+
}
|
|
107
|
+
ban(options = {}) {
|
|
108
|
+
return this.client.rest.put(Routes.serverBan(this.serverId, this.id), { body: options });
|
|
109
|
+
}
|
|
110
|
+
async timeout(durationMs, reason) {
|
|
111
|
+
if (durationMs === null) {
|
|
112
|
+
await this.client.rest.delete(Routes.memberTimeout(this.serverId, this.id));
|
|
113
|
+
this.timeoutUntil = null;
|
|
114
|
+
return this;
|
|
115
|
+
}
|
|
116
|
+
const res = await this.client.rest.put(Routes.memberTimeout(this.serverId, this.id), {
|
|
117
|
+
body: { durationSecs: Math.round(durationMs / 1000), reason }
|
|
118
|
+
});
|
|
119
|
+
this.timeoutUntil = new Date(res.timeoutUntil);
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
async setNickname(nick) {
|
|
123
|
+
await this.client.rest.patch(Routes.serverMember(this.serverId, this.id), { body: { nick } });
|
|
124
|
+
this.nick = nick || null;
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
send(options) {
|
|
128
|
+
return this.user.send(options);
|
|
129
|
+
}
|
|
130
|
+
toString() {
|
|
131
|
+
return userMention(this.id);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Client } from '../client/Client.js';
|
|
2
|
+
import type { MessageOptions } from '../builders/messagePayload.js';
|
|
3
|
+
import type { APIUser } from '../types.js';
|
|
4
|
+
import { Identified } from './Base.js';
|
|
5
|
+
import type { DMChannel } from './channels/DMChannel.js';
|
|
6
|
+
import type { Message } from './Message.js';
|
|
7
|
+
export declare class User extends Identified {
|
|
8
|
+
readonly id: string;
|
|
9
|
+
username: string;
|
|
10
|
+
displayName: string;
|
|
11
|
+
avatarUrl: string | null;
|
|
12
|
+
bannerUrl: string | null;
|
|
13
|
+
tag: APIUser['tag'];
|
|
14
|
+
clanTag: APIUser['clanTag'];
|
|
15
|
+
status: string | null;
|
|
16
|
+
customStatus: string | null;
|
|
17
|
+
deleted: boolean;
|
|
18
|
+
constructor(client: Client, data: APIUser);
|
|
19
|
+
_patch(data: Partial<APIUser>): this;
|
|
20
|
+
get bot(): boolean;
|
|
21
|
+
get system(): boolean;
|
|
22
|
+
createDM(): Promise<DMChannel>;
|
|
23
|
+
send(options: string | MessageOptions): Promise<Message>;
|
|
24
|
+
fetchProfile(serverId?: string): Promise<Record<string, unknown>>;
|
|
25
|
+
toString(): string;
|
|
26
|
+
}
|
|
27
|
+
export declare class ClientUser extends User {
|
|
28
|
+
get bot(): boolean;
|
|
29
|
+
setPresence(presence: {
|
|
30
|
+
status?: 'online' | 'idle' | 'dnd' | 'invisible';
|
|
31
|
+
customStatus?: string | null;
|
|
32
|
+
}): Promise<void>;
|
|
33
|
+
setStatus(status: 'online' | 'idle' | 'dnd' | 'invisible'): Promise<void>;
|
|
34
|
+
setCustomStatus(customStatus: string | null): Promise<void>;
|
|
35
|
+
}
|