voxar 1.0.1

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.
@@ -0,0 +1,67 @@
1
+ import type { ApplicationIntegrationType, InteractionContextType, Locale, RestOrArray, Permissions } from "discord.js";
2
+ import { SafeChannel, SafeGuild, SafeInteraction, SafeRole, SafeMember, SafeMessage, SafeEmoji } from "./safe.inherits.js";
3
+ export * from "./safe.inherits.js";
4
+ export type Hooks = {
5
+ onReady?: (this: Module) => void;
6
+ OnClose?: (this: Module, member: SafeMember) => void;
7
+ onGuildEnable?: (this: Module, guild: SafeGuild) => void;
8
+ onGuildDisable?: (this: Module, guildId: string) => void;
9
+ onMemberJoin?: (this: Module, member: SafeMember) => void;
10
+ onMemberLeave?: (this: Module, member: SafeMember) => void;
11
+ onMemberUpdate?: (this: Module, oldMember: SafeMember, newMember: SafeMember) => void;
12
+ onChannelCreate?: (this: Module, channel: SafeChannel) => void;
13
+ onChannelDelete?: (this: Module, channel: SafeChannel) => void;
14
+ onChannelUpdate?: (this: Module, oldChannel: SafeChannel, newChannel: SafeChannel) => void;
15
+ onRoleCreate?: (this: Module, role: SafeRole) => void;
16
+ onRoleDelete?: (this: Module, role: SafeRole) => void;
17
+ onRoleUpdate?: (this: Module, oldRole: SafeRole, newRole: SafeRole) => void;
18
+ onEmojiCreate?: (this: Module, emoji: SafeEmoji) => void;
19
+ onEmojiDelete?: (this: Module, emoji: SafeEmoji) => void;
20
+ onEmojiUpdate?: (this: Module, oldEmoji: SafeEmoji, newEmoji: SafeEmoji) => void;
21
+ onMessageCreate?: (this: Module, message: SafeMessage) => void;
22
+ onMessageDelete?: (this: Module, message: SafeMessage) => void;
23
+ onMessageUpdate?: (this: Module, message: SafeMessage) => void;
24
+ };
25
+ export type HookTypes = keyof Hooks;
26
+ type Command<T extends {
27
+ [key: string]: any;
28
+ }> = {
29
+ name: string;
30
+ description?: string;
31
+ run: (this: ModuleTyped<T>, interaction: SafeInteraction) => void;
32
+ nsfw?: boolean;
33
+ contexts?: InteractionContextType;
34
+ integration_types?: RestOrArray<ApplicationIntegrationType>;
35
+ description_localizations?: Locale;
36
+ name_localizations?: Locale;
37
+ default_permission?: Permissions | BigInt | number;
38
+ default_member_permissions?: Permissions | BigInt | number;
39
+ };
40
+ type ModuleOptions<T extends {
41
+ [key: string]: any;
42
+ }> = {
43
+ name: string;
44
+ description: string;
45
+ env?: string[];
46
+ state?: T;
47
+ commands: Command<T>[];
48
+ hooks: Hooks;
49
+ };
50
+ export declare class ModuleClass<T extends {
51
+ [key: string]: any;
52
+ }> {
53
+ hooks?: Hooks;
54
+ name: string;
55
+ description: string;
56
+ env?: string[];
57
+ commands: Command<T>[];
58
+ state: T;
59
+ guilds: SafeGuild[];
60
+ constructor(options: ModuleOptions<T>);
61
+ }
62
+ export type ModuleTyped<T extends {
63
+ [key: string]: any;
64
+ }> = ModuleClass<T>;
65
+ export type Module = ModuleClass<{}>;
66
+ export declare const Module: typeof ModuleClass;
67
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/classes/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { SafeChannel, SafeGuild, SafeInteraction, SafeRole, SafeMember, SafeMessage, SafeEmoji, } from "./safe.inherits.js";
2
+ export * from "./safe.inherits.js";
3
+ export class ModuleClass {
4
+ hooks;
5
+ name;
6
+ description;
7
+ env;
8
+ commands;
9
+ state;
10
+ guilds = [];
11
+ constructor(options) {
12
+ this.name = options.name;
13
+ this.description = options.description;
14
+ this.commands = options.commands;
15
+ this.state = options.state ?? {};
16
+ if (options.env)
17
+ this.env = options.env;
18
+ if (options.hooks)
19
+ this.hooks = options.hooks;
20
+ }
21
+ }
22
+ export const Module = ModuleClass;
23
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/classes/base.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,WAAW,EACX,SAAS,EACT,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,GACV,MAAM,oBAAoB,CAAC;AAE5B,cAAc,oBAAoB,CAAC;AAmEnC,MAAM,OAAO,WAAW;IACf,KAAK,CAAS;IACd,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,GAAG,CAAY;IACf,QAAQ,CAAe;IAEvB,KAAK,CAAI;IACT,MAAM,GAAgB,EAAE,CAAC;IAEhC,YAAY,OAAyB;QACnC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAK,EAAQ,CAAC;QACxC,IAAI,OAAO,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxC,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAChD,CAAC;CACF;AAID,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Message } from "discord.js";
2
+ declare class MessageEvent {
3
+ #private;
4
+ constructor(message: Message);
5
+ }
6
+ export declare class GuildMessageEvent extends MessageEvent {
7
+ }
8
+ export declare class DMMessageEvent extends MessageEvent {
9
+ }
10
+ export {};
11
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/classes/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,OAAO,EAAe,MAAM,YAAY,CAAC;AAS5E,cAAM,YAAY;;gBAGF,OAAO,EAAE,OAAO;CAG/B;AAED,qBAAa,iBAAkB,SAAQ,YAAY;CAElD;AAED,qBAAa,cAAe,SAAQ,YAAY;CAE/C"}
@@ -0,0 +1,13 @@
1
+ import { BaseChannel, ChannelType, Message, MessageType } from "discord.js";
2
+ import { SafeChannel, SafeGuild, SafeMember, SafeMessage, SafeUser, } from "./safe.inherits.js";
3
+ class MessageEvent {
4
+ #message;
5
+ constructor(message) {
6
+ this.#message = message;
7
+ }
8
+ }
9
+ export class GuildMessageEvent extends MessageEvent {
10
+ }
11
+ export class DMMessageEvent extends MessageEvent {
12
+ }
13
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/classes/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,WAAW,EACX,SAAS,EACT,UAAU,EACV,WAAW,EACX,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B,MAAM,YAAY;IACd,QAAQ,CAAU;IAElB,YAAY,OAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;CACJ;AAED,MAAM,OAAO,iBAAkB,SAAQ,YAAY;CAElD;AAED,MAAM,OAAO,cAAe,SAAQ,YAAY;CAE/C"}
@@ -0,0 +1,157 @@
1
+ import type { Guild, GuildMember, Role, BaseInteraction, ChannelType, BaseChannel, User, BanOptions, PermissionFlags, InteractionReplyOptions, GuildChannelCreateOptions, RoleCreateOptions, MessagePayload, MessageCreateOptions, Message, MessageEditOptions, AwaitReactionsOptions, MessageReaction, Emoji, GuildEmojiCreateOptions, MessageReplyOptions } from "discord.js";
2
+ import type { Module } from "./base.js";
3
+ export declare class ChannelCollection {
4
+ #private;
5
+ constructor(guild: Guild);
6
+ get cache(): SafeChannel[];
7
+ create(options: GuildChannelCreateOptions): Promise<SafeChannel | null>;
8
+ /** Returns an array of SafeChannel wrappers */
9
+ fetch(): Promise<SafeChannel[]>;
10
+ }
11
+ export declare class RoleCollection {
12
+ #private;
13
+ constructor(guild: Guild);
14
+ get cache(): SafeRole[];
15
+ create(options: RoleCreateOptions): Promise<SafeRole | null>;
16
+ /** Returns an array of SafeRole wrappers */
17
+ fetch(): Promise<SafeRole[]>;
18
+ }
19
+ export declare class MemberCollection {
20
+ #private;
21
+ constructor(guild: Guild);
22
+ get cache(): SafeMember[];
23
+ /** Returns an array of SafeMember wrappers */
24
+ fetch(): Promise<SafeMember[]>;
25
+ }
26
+ export declare class EmojiCollection {
27
+ #private;
28
+ constructor(guild: Guild);
29
+ get cache(): SafeEmoji[];
30
+ delete(emoji: SafeEmoji, reason?: string): Promise<import("discord.js").GuildEmoji | undefined>;
31
+ create(options: GuildEmojiCreateOptions): Promise<import("discord.js").GuildEmoji>;
32
+ /** Returns an array of SafeMember wrappers */
33
+ fetch(): Promise<SafeEmoji[]>;
34
+ }
35
+ export declare class SafeReaction {
36
+ #private;
37
+ private SafeMessage;
38
+ constructor(reaction: MessageReaction, message: Message);
39
+ get message(): SafeMessage;
40
+ }
41
+ export declare class SafeEmoji {
42
+ #private;
43
+ constructor(emoji: Emoji);
44
+ get name(): string | null;
45
+ get id(): string | null;
46
+ get identifier(): string;
47
+ get animated(): boolean | null;
48
+ }
49
+ export declare class SafeMessage {
50
+ #private;
51
+ private SafeChannel;
52
+ private SafeGuild;
53
+ private SafeMember;
54
+ constructor(message: Message);
55
+ get channel(): SafeChannel;
56
+ get guild(): SafeGuild;
57
+ get reactions(): void;
58
+ get member(): SafeMember;
59
+ get channelId(): string;
60
+ get contents(): string;
61
+ reply(content: string | MessageReplyOptions | MessagePayload): Promise<SafeMessage>;
62
+ awaitReactions(options?: AwaitReactionsOptions): Promise<void>;
63
+ delete(): Promise<import("discord.js").OmitPartialGroupDMChannel<Message<boolean>>>;
64
+ edit(content: string | MessageEditOptions | MessagePayload): Promise<import("discord.js").OmitPartialGroupDMChannel<Message<boolean>>>;
65
+ react(emoji: SafeEmoji): Promise<MessageReaction | undefined>;
66
+ }
67
+ export type GuildHooks = {
68
+ onMemberJoin?: (this: Module, member: SafeMember) => void;
69
+ onMemberLeave?: (this: Module, member: SafeMember) => void;
70
+ onChannelCreate?: (this: Module, channel: SafeChannel) => void;
71
+ onChannelDelete?: (this: Module, channel: SafeChannel) => void;
72
+ onRoleCreate?: (this: Module, role: SafeRole) => void;
73
+ onRoleDelete?: (this: Module, role: SafeRole) => void;
74
+ onEmojiCreate?: (this: Module, emoji: SafeEmoji) => void;
75
+ onEmojiDelete?: (this: Module, emoji: SafeEmoji) => void;
76
+ };
77
+ export type GuildHookType = keyof GuildHooks;
78
+ export declare class SafeGuild {
79
+ #private;
80
+ hooks: Partial<GuildHooks>;
81
+ private ChannelCollection;
82
+ private RoleCollection;
83
+ private MemberCollection;
84
+ private EmojiCollection;
85
+ constructor(guild: Guild);
86
+ get id(): string;
87
+ get name(): string;
88
+ get channels(): ChannelCollection;
89
+ get emojis(): EmojiCollection;
90
+ get roles(): RoleCollection;
91
+ get members(): MemberCollection;
92
+ setHook<T extends GuildHookType>(type: T, fn: GuildHooks[T]): void;
93
+ getHook<T extends GuildHookType>(type: T): Partial<GuildHooks>[T];
94
+ dropHook<T extends GuildHookType>(type: T): void;
95
+ }
96
+ export declare class SafeChannel {
97
+ #private;
98
+ constructor(channel: BaseChannel);
99
+ get id(): string;
100
+ get name(): unknown;
101
+ get type(): ChannelType;
102
+ setName(name: string): Promise<any>;
103
+ delete(): Promise<BaseChannel>;
104
+ send(content: string | MessagePayload | MessageCreateOptions): Promise<SafeMessage>;
105
+ }
106
+ export declare class SafeRole {
107
+ #private;
108
+ constructor(role: Role);
109
+ get id(): string;
110
+ get name(): string;
111
+ get colors(): import("discord.js").RoleColors;
112
+ setName(name: string, reason?: string): Promise<void>;
113
+ delete(reason?: string): Promise<void>;
114
+ }
115
+ export declare class SafeUser {
116
+ #private;
117
+ constructor(user: User);
118
+ get id(): string;
119
+ get bot(): boolean;
120
+ get system(): boolean;
121
+ get username(): string;
122
+ get globalName(): string | null;
123
+ get discriminator(): string | null;
124
+ get avatar(): string | null;
125
+ get banner(): string | null | undefined;
126
+ get accentColor(): number | null | undefined;
127
+ }
128
+ export declare class MemberRoleCollection {
129
+ #private;
130
+ constructor(member: GuildMember, guild: Guild);
131
+ get highest(): SafeRole | null;
132
+ add(roleOrRoles: SafeRole[]): Promise<GuildMember>;
133
+ }
134
+ export declare class SafeMember {
135
+ #private;
136
+ private MemberRoleCollection;
137
+ private SafeGuild;
138
+ constructor(member: GuildMember, guild: Guild);
139
+ get guild(): SafeGuild;
140
+ get id(): string;
141
+ get user(): SafeUser;
142
+ get roles(): MemberRoleCollection;
143
+ get nickname(): string | null;
144
+ kick(reason?: string): Promise<GuildMember>;
145
+ ban(options?: BanOptions): Promise<GuildMember>;
146
+ hasPermission(permission: keyof PermissionFlags): boolean;
147
+ }
148
+ export declare class SafeInteraction {
149
+ #private;
150
+ constructor(interaction: BaseInteraction);
151
+ get channel(): SafeChannel | null;
152
+ get applicationId(): string;
153
+ get guild(): SafeGuild | null;
154
+ get member(): SafeMember | null;
155
+ reply(options: InteractionReplyOptions): Promise<import("discord.js").InteractionResponse<boolean> | undefined>;
156
+ }
157
+ //# sourceMappingURL=safe.inherits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe.inherits.d.ts","sourceRoot":"","sources":["../../src/classes/safe.inherits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,373 @@
1
+ export class ChannelCollection {
2
+ #guild;
3
+ constructor(guild) {
4
+ this.#guild = guild;
5
+ }
6
+ get cache() {
7
+ return this.#guild.channels.cache.map((c) => new SafeChannel(c));
8
+ }
9
+ async create(options) {
10
+ let channel = await this.#guild.channels.create(options);
11
+ if (!channel)
12
+ return null;
13
+ return new SafeChannel(channel);
14
+ }
15
+ /** Returns an array of SafeChannel wrappers */
16
+ async fetch() {
17
+ const channels = await this.#guild.channels.fetch();
18
+ return Array.from(channels.values()).map((r) => new SafeChannel(r));
19
+ }
20
+ }
21
+ export class RoleCollection {
22
+ #guild;
23
+ constructor(guild) {
24
+ this.#guild = guild;
25
+ }
26
+ get cache() {
27
+ return this.#guild.roles.cache.map((r) => new SafeRole(r));
28
+ }
29
+ async create(options) {
30
+ let role = await this.#guild.roles.create(options);
31
+ if (!role)
32
+ return null;
33
+ return new SafeRole(role);
34
+ }
35
+ /** Returns an array of SafeRole wrappers */
36
+ async fetch() {
37
+ const roles = await this.#guild.roles.fetch();
38
+ return Array.from(roles.values()).map((r) => new SafeRole(r));
39
+ }
40
+ }
41
+ export class MemberCollection {
42
+ #guild;
43
+ constructor(guild) {
44
+ this.#guild = guild;
45
+ }
46
+ get cache() {
47
+ return this.#guild.members.cache.map((m) => new SafeMember(m, this.#guild));
48
+ }
49
+ /** Returns an array of SafeMember wrappers */
50
+ async fetch() {
51
+ const members = await this.#guild.members.fetch();
52
+ return Array.from(members.values()).map((m) => new SafeMember(m, this.#guild));
53
+ }
54
+ }
55
+ export class EmojiCollection {
56
+ #guild;
57
+ constructor(guild) {
58
+ this.#guild = guild;
59
+ }
60
+ get cache() {
61
+ return this.#guild.emojis.cache.map((e) => new SafeEmoji(e));
62
+ }
63
+ async delete(emoji, reason) {
64
+ let real = (await this.#guild.emojis.fetch()).find((e) => e.identifier == emoji.identifier);
65
+ if (real && real.deletable)
66
+ return real.delete(reason);
67
+ }
68
+ async create(options) {
69
+ return await this.#guild.emojis.create(options);
70
+ }
71
+ /** Returns an array of SafeMember wrappers */
72
+ async fetch() {
73
+ const emojis = await this.#guild.emojis.fetch();
74
+ return Array.from(emojis.values()).map((e) => new SafeEmoji(e));
75
+ }
76
+ }
77
+ export class SafeReaction {
78
+ #reaction;
79
+ #message;
80
+ SafeMessage;
81
+ constructor(reaction, message) {
82
+ this.#reaction = reaction;
83
+ this.#message = message;
84
+ this.SafeMessage = new SafeMessage(message);
85
+ }
86
+ get message() {
87
+ return this.SafeMessage;
88
+ }
89
+ }
90
+ export class SafeEmoji {
91
+ #emoji;
92
+ constructor(emoji) {
93
+ this.#emoji = emoji;
94
+ }
95
+ get name() {
96
+ return this.#emoji.name;
97
+ }
98
+ get id() {
99
+ return this.#emoji.id;
100
+ }
101
+ get identifier() {
102
+ return this.#emoji.identifier;
103
+ }
104
+ get animated() {
105
+ return this.#emoji.animated;
106
+ }
107
+ }
108
+ export class SafeMessage {
109
+ #message;
110
+ SafeChannel;
111
+ SafeGuild;
112
+ SafeMember;
113
+ constructor(message) {
114
+ this.#message = message;
115
+ this.SafeChannel = new SafeChannel(message.channel);
116
+ this.SafeMember = new SafeMember(message.member, message.guild);
117
+ this.SafeGuild = new SafeGuild(message.guild);
118
+ }
119
+ get channel() {
120
+ return this.SafeChannel;
121
+ }
122
+ get guild() {
123
+ return this.SafeGuild;
124
+ }
125
+ get reactions() {
126
+ return this.#message.reactions.cache.forEach((r) => new SafeReaction(r, this.#message));
127
+ }
128
+ get member() {
129
+ return this.SafeMember;
130
+ }
131
+ get channelId() {
132
+ return this.SafeChannel.id;
133
+ }
134
+ get contents() {
135
+ return this.#message.content;
136
+ }
137
+ async reply(content) {
138
+ return new SafeMessage(await this.#message.reply(content));
139
+ }
140
+ async awaitReactions(options) {
141
+ return (await this.#message.awaitReactions(options)).forEach((e) => new SafeReaction(e, this.#message));
142
+ }
143
+ async delete() {
144
+ return await this.#message.delete();
145
+ }
146
+ async edit(content) {
147
+ return await this.#message.edit(content);
148
+ }
149
+ async react(emoji) {
150
+ let real = await this.#message.client.emojis.cache.find((e) => e.identifier == emoji.identifier);
151
+ if (!real)
152
+ return;
153
+ return await this.#message.react(real);
154
+ }
155
+ }
156
+ export class SafeGuild {
157
+ #guild;
158
+ hooks = {};
159
+ ChannelCollection;
160
+ RoleCollection;
161
+ MemberCollection;
162
+ EmojiCollection;
163
+ constructor(guild) {
164
+ this.#guild = guild;
165
+ this.ChannelCollection = new ChannelCollection(guild);
166
+ this.RoleCollection = new RoleCollection(guild);
167
+ this.MemberCollection = new MemberCollection(guild);
168
+ this.EmojiCollection = new EmojiCollection(guild);
169
+ }
170
+ get id() {
171
+ return this.#guild.id;
172
+ }
173
+ get name() {
174
+ return this.#guild.name;
175
+ }
176
+ get channels() {
177
+ return this.ChannelCollection;
178
+ }
179
+ get emojis() {
180
+ return this.EmojiCollection;
181
+ }
182
+ get roles() {
183
+ return this.RoleCollection;
184
+ }
185
+ get members() {
186
+ return this.MemberCollection;
187
+ }
188
+ // Per-guild hooks.
189
+ // Sets hook of type T taken from GuildHooks
190
+ setHook(type, fn) {
191
+ this.hooks[type] = fn;
192
+ }
193
+ // Gets hook of type T taken from GuildHooks
194
+ getHook(type) {
195
+ return this.hooks[type];
196
+ }
197
+ // Drops hook of type T taken from GuildHooks
198
+ dropHook(type) {
199
+ delete this.hooks[type];
200
+ }
201
+ }
202
+ export class SafeChannel {
203
+ #channel;
204
+ constructor(channel) {
205
+ this.#channel = channel;
206
+ }
207
+ get id() {
208
+ return this.#channel.id;
209
+ }
210
+ get name() {
211
+ if (!("name" in this.#channel))
212
+ return;
213
+ return this.#channel.name;
214
+ }
215
+ get type() {
216
+ return this.#channel.type;
217
+ }
218
+ async setName(name) {
219
+ if (!("setName" in this.#channel))
220
+ return null;
221
+ return await this.#channel.setName(name);
222
+ }
223
+ async delete() {
224
+ return await this.#channel.delete();
225
+ }
226
+ async send(content) {
227
+ if ("send" in this.#channel) {
228
+ return new SafeMessage(await this.#channel.send(content));
229
+ }
230
+ throw new Error("Cannot send messages to this channel type");
231
+ }
232
+ }
233
+ export class SafeRole {
234
+ #role;
235
+ constructor(role) {
236
+ this.#role = role;
237
+ }
238
+ get id() {
239
+ return this.#role.id;
240
+ }
241
+ get name() {
242
+ return this.#role.name;
243
+ }
244
+ get colors() {
245
+ return this.#role.colors;
246
+ }
247
+ async setName(name, reason) {
248
+ await this.#role.setName(name, reason);
249
+ }
250
+ async delete(reason) {
251
+ await this.#role.delete(reason);
252
+ }
253
+ }
254
+ export class SafeUser {
255
+ #user;
256
+ constructor(user) {
257
+ this.#user = user;
258
+ }
259
+ get id() {
260
+ return this.#user.id;
261
+ }
262
+ get bot() {
263
+ return this.#user.bot;
264
+ }
265
+ get system() {
266
+ return this.#user.system;
267
+ }
268
+ get username() {
269
+ return this.#user.username;
270
+ }
271
+ get globalName() {
272
+ return this.#user.globalName;
273
+ }
274
+ get discriminator() {
275
+ return this.#user.globalName;
276
+ }
277
+ get avatar() {
278
+ return this.#user.avatar;
279
+ }
280
+ get banner() {
281
+ return this.#user.banner;
282
+ }
283
+ get accentColor() {
284
+ return this.#user.accentColor;
285
+ }
286
+ }
287
+ export class MemberRoleCollection {
288
+ #member;
289
+ #guild;
290
+ constructor(member, guild) {
291
+ this.#member = member;
292
+ this.#guild = guild;
293
+ }
294
+ get highest() {
295
+ console.log(this.#member.roles.cache);
296
+ if (!this.#member.roles.highest)
297
+ return null;
298
+ return new SafeRole(this.#member.roles.highest);
299
+ }
300
+ async add(roleOrRoles) {
301
+ let roles = await this.#guild.roles.fetch();
302
+ let real = roleOrRoles
303
+ .map((r) => roles.find((_r) => _r.id == r.id))
304
+ .filter((c) => c !== undefined);
305
+ return await this.#member.roles.add(real);
306
+ }
307
+ }
308
+ export class SafeMember {
309
+ #member;
310
+ #guild;
311
+ MemberRoleCollection;
312
+ SafeGuild;
313
+ constructor(member, guild) {
314
+ this.#member = member;
315
+ this.#guild = guild;
316
+ this.SafeGuild = new SafeGuild(guild);
317
+ this.MemberRoleCollection = new MemberRoleCollection(this.#member, this.#guild);
318
+ }
319
+ get guild() {
320
+ return this.SafeGuild;
321
+ }
322
+ get id() {
323
+ return this.#member.id;
324
+ }
325
+ get user() {
326
+ return new SafeUser(this.#member.user);
327
+ }
328
+ get roles() {
329
+ return this.MemberRoleCollection;
330
+ }
331
+ get nickname() {
332
+ return this.#member.nickname;
333
+ }
334
+ async kick(reason) {
335
+ return await this.#member.kick(reason);
336
+ }
337
+ async ban(options) {
338
+ return await this.#member.ban(options);
339
+ }
340
+ hasPermission(permission) {
341
+ return this.#member.permissions.has(permission);
342
+ }
343
+ }
344
+ export class SafeInteraction {
345
+ #interaction;
346
+ constructor(interaction) {
347
+ this.#interaction = interaction;
348
+ }
349
+ get channel() {
350
+ if (!this.#interaction.channel)
351
+ return null;
352
+ return new SafeChannel(this.#interaction.channel);
353
+ }
354
+ get applicationId() {
355
+ return this.#interaction.applicationId;
356
+ }
357
+ get guild() {
358
+ if (!this.#interaction.guild)
359
+ return null;
360
+ return new SafeGuild(this.#interaction.guild);
361
+ }
362
+ get member() {
363
+ if (!("member" in this.#interaction && this.#interaction.member))
364
+ return null;
365
+ return new SafeMember(this.#interaction.member, this.#interaction.guild);
366
+ }
367
+ async reply(options) {
368
+ if (!("reply" in this.#interaction))
369
+ return;
370
+ return await this.#interaction.reply(options);
371
+ }
372
+ }
373
+ //# sourceMappingURL=safe.inherits.js.map