oceanic.js 1.10.3-dev.5c8c9d5 → 1.10.3-dev.8b65faf

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.
Files changed (205) hide show
  1. package/dist/lib/Client.d.ts +99 -0
  2. package/dist/lib/Client.js +263 -0
  3. package/dist/lib/Constants.d.ts +1219 -0
  4. package/dist/lib/Constants.js +1518 -0
  5. package/dist/lib/gateway/Shard.d.ts +83 -0
  6. package/dist/lib/gateway/Shard.js +1621 -0
  7. package/dist/lib/gateway/ShardManager.d.ts +29 -0
  8. package/dist/lib/gateway/ShardManager.js +300 -0
  9. package/dist/lib/index.d.ts +84 -0
  10. package/dist/lib/index.js +168 -0
  11. package/dist/lib/rest/Bucket.d.ts +33 -0
  12. package/dist/lib/rest/Bucket.js +78 -0
  13. package/dist/lib/rest/DiscordHTTPError.d.ts +16 -0
  14. package/dist/lib/rest/DiscordHTTPError.js +65 -0
  15. package/dist/lib/rest/DiscordRESTError.d.ts +19 -0
  16. package/dist/lib/rest/DiscordRESTError.js +89 -0
  17. package/dist/lib/rest/OAuthHelper.d.ts +62 -0
  18. package/dist/lib/rest/OAuthHelper.js +183 -0
  19. package/dist/lib/rest/RESTManager.d.ts +42 -0
  20. package/dist/lib/rest/RESTManager.js +82 -0
  21. package/dist/lib/rest/RequestHandler.d.ts +28 -0
  22. package/dist/lib/rest/RequestHandler.js +313 -0
  23. package/dist/lib/rest/SequentialBucket.d.ts +25 -0
  24. package/dist/lib/rest/SequentialBucket.js +76 -0
  25. package/dist/lib/routes/Applications.d.ts +171 -0
  26. package/dist/lib/routes/Applications.js +447 -0
  27. package/dist/lib/routes/Channels.d.ts +408 -0
  28. package/dist/lib/routes/Channels.js +1161 -0
  29. package/dist/lib/routes/Guilds.d.ts +606 -0
  30. package/dist/lib/routes/Guilds.js +1669 -0
  31. package/dist/lib/routes/Interactions.d.ts +74 -0
  32. package/dist/lib/routes/Interactions.js +141 -0
  33. package/dist/lib/routes/Miscellaneous.d.ts +31 -0
  34. package/dist/lib/routes/Miscellaneous.js +69 -0
  35. package/dist/lib/routes/OAuth.d.ts +108 -0
  36. package/dist/lib/routes/OAuth.js +312 -0
  37. package/dist/lib/routes/Users.d.ts +32 -0
  38. package/dist/lib/routes/Users.js +59 -0
  39. package/dist/lib/routes/Webhooks.d.ts +128 -0
  40. package/dist/lib/routes/Webhooks.js +265 -0
  41. package/dist/lib/structures/AnnouncementChannel.d.ts +36 -0
  42. package/dist/lib/structures/AnnouncementChannel.js +47 -0
  43. package/dist/lib/structures/AnnouncementThreadChannel.d.ts +18 -0
  44. package/dist/lib/structures/AnnouncementThreadChannel.js +27 -0
  45. package/dist/lib/structures/Application.d.ts +102 -0
  46. package/dist/lib/structures/Application.js +189 -0
  47. package/dist/lib/structures/ApplicationCommand.d.ts +74 -0
  48. package/dist/lib/structures/ApplicationCommand.js +141 -0
  49. package/dist/lib/structures/Attachment.d.ts +34 -0
  50. package/dist/lib/structures/Attachment.js +64 -0
  51. package/dist/lib/structures/AuditLogEntry.d.ts +25 -0
  52. package/dist/lib/structures/AuditLogEntry.js +53 -0
  53. package/dist/lib/structures/AutoModerationRule.d.ts +49 -0
  54. package/dist/lib/structures/AutoModerationRule.js +139 -0
  55. package/dist/lib/structures/AutocompleteInteraction.d.ts +62 -0
  56. package/dist/lib/structures/AutocompleteInteraction.js +115 -0
  57. package/dist/lib/structures/Base.d.ts +20 -0
  58. package/dist/lib/structures/Base.js +58 -0
  59. package/dist/lib/structures/BaseEntitlement.d.ts +19 -0
  60. package/dist/lib/structures/BaseEntitlement.js +44 -0
  61. package/dist/lib/structures/CategoryChannel.d.ts +41 -0
  62. package/dist/lib/structures/CategoryChannel.js +105 -0
  63. package/dist/lib/structures/Channel.d.ts +20 -0
  64. package/dist/lib/structures/Channel.js +91 -0
  65. package/dist/lib/structures/ClientApplication.d.ts +153 -0
  66. package/dist/lib/structures/ClientApplication.js +220 -0
  67. package/dist/lib/structures/CommandInteraction.d.ts +127 -0
  68. package/dist/lib/structures/CommandInteraction.js +297 -0
  69. package/dist/lib/structures/ComponentInteraction.d.ts +137 -0
  70. package/dist/lib/structures/ComponentInteraction.js +311 -0
  71. package/dist/lib/structures/Entitlement.d.ts +12 -0
  72. package/dist/lib/structures/Entitlement.js +26 -0
  73. package/dist/lib/structures/ExtendedUser.d.ts +26 -0
  74. package/dist/lib/structures/ExtendedUser.js +57 -0
  75. package/dist/lib/structures/ForumChannel.d.ts +11 -0
  76. package/dist/lib/structures/ForumChannel.js +19 -0
  77. package/dist/lib/structures/GroupChannel.d.ts +62 -0
  78. package/dist/lib/structures/GroupChannel.js +133 -0
  79. package/dist/lib/structures/Guild.d.ts +654 -0
  80. package/dist/lib/structures/Guild.js +1319 -0
  81. package/dist/lib/structures/GuildChannel.d.ts +34 -0
  82. package/dist/lib/structures/GuildChannel.js +75 -0
  83. package/dist/lib/structures/GuildPreview.d.ts +50 -0
  84. package/dist/lib/structures/GuildPreview.js +119 -0
  85. package/dist/lib/structures/GuildScheduledEvent.d.ts +60 -0
  86. package/dist/lib/structures/GuildScheduledEvent.js +154 -0
  87. package/dist/lib/structures/GuildTemplate.d.ts +55 -0
  88. package/dist/lib/structures/GuildTemplate.js +126 -0
  89. package/dist/lib/structures/Integration.d.ts +54 -0
  90. package/dist/lib/structures/Integration.js +156 -0
  91. package/dist/lib/structures/Interaction.d.ts +40 -0
  92. package/dist/lib/structures/Interaction.js +90 -0
  93. package/dist/lib/structures/InteractionResolvedChannel.d.ts +28 -0
  94. package/dist/lib/structures/InteractionResolvedChannel.js +45 -0
  95. package/dist/lib/structures/Invite.d.ts +64 -0
  96. package/dist/lib/structures/Invite.js +193 -0
  97. package/dist/lib/structures/InviteGuild.d.ts +52 -0
  98. package/dist/lib/structures/InviteGuild.js +88 -0
  99. package/dist/lib/structures/MediaChannel.d.ts +11 -0
  100. package/dist/lib/structures/MediaChannel.js +19 -0
  101. package/dist/lib/structures/Member.d.ts +122 -0
  102. package/dist/lib/structures/Member.js +255 -0
  103. package/dist/lib/structures/Message.d.ts +196 -0
  104. package/dist/lib/structures/Message.js +508 -0
  105. package/dist/lib/structures/ModalSubmitInteraction.d.ts +128 -0
  106. package/dist/lib/structures/ModalSubmitInteraction.js +240 -0
  107. package/dist/lib/structures/OAuthApplication.d.ts +79 -0
  108. package/dist/lib/structures/OAuthApplication.js +210 -0
  109. package/dist/lib/structures/OAuthGuild.d.ts +35 -0
  110. package/dist/lib/structures/OAuthGuild.js +61 -0
  111. package/dist/lib/structures/PartialApplication.d.ts +30 -0
  112. package/dist/lib/structures/PartialApplication.js +67 -0
  113. package/dist/lib/structures/Permission.d.ts +21 -0
  114. package/dist/lib/structures/Permission.js +68 -0
  115. package/dist/lib/structures/PermissionOverwrite.d.ts +26 -0
  116. package/dist/lib/structures/PermissionOverwrite.js +49 -0
  117. package/dist/lib/structures/PingInteraction.d.ts +16 -0
  118. package/dist/lib/structures/PingInteraction.js +26 -0
  119. package/dist/lib/structures/Poll.d.ts +28 -0
  120. package/dist/lib/structures/Poll.js +78 -0
  121. package/dist/lib/structures/PrivateChannel.d.ts +90 -0
  122. package/dist/lib/structures/PrivateChannel.js +131 -0
  123. package/dist/lib/structures/PrivateThreadChannel.d.ts +18 -0
  124. package/dist/lib/structures/PrivateThreadChannel.js +27 -0
  125. package/dist/lib/structures/PublicThreadChannel.d.ts +21 -0
  126. package/dist/lib/structures/PublicThreadChannel.js +37 -0
  127. package/dist/lib/structures/Role.d.ts +52 -0
  128. package/dist/lib/structures/Role.js +137 -0
  129. package/dist/lib/structures/SKU.d.ts +32 -0
  130. package/dist/lib/structures/SKU.js +53 -0
  131. package/dist/lib/structures/StageChannel.d.ts +33 -0
  132. package/dist/lib/structures/StageChannel.js +44 -0
  133. package/dist/lib/structures/StageInstance.d.ts +36 -0
  134. package/dist/lib/structures/StageInstance.js +94 -0
  135. package/dist/lib/structures/Team.d.ts +22 -0
  136. package/dist/lib/structures/Team.js +67 -0
  137. package/dist/lib/structures/TestEntitlement.d.ts +10 -0
  138. package/dist/lib/structures/TestEntitlement.js +21 -0
  139. package/dist/lib/structures/TextChannel.d.ts +34 -0
  140. package/dist/lib/structures/TextChannel.js +46 -0
  141. package/dist/lib/structures/TextableChannel.d.ts +158 -0
  142. package/dist/lib/structures/TextableChannel.js +276 -0
  143. package/dist/lib/structures/TextableVoiceChannel.d.ts +39 -0
  144. package/dist/lib/structures/TextableVoiceChannel.js +81 -0
  145. package/dist/lib/structures/ThreadChannel.d.ts +159 -0
  146. package/dist/lib/structures/ThreadChannel.js +295 -0
  147. package/dist/lib/structures/ThreadOnlyChannel.d.ts +99 -0
  148. package/dist/lib/structures/ThreadOnlyChannel.js +233 -0
  149. package/dist/lib/structures/ThreadableChannel.d.ts +36 -0
  150. package/dist/lib/structures/ThreadableChannel.js +58 -0
  151. package/dist/lib/structures/UnavailableGuild.d.ts +11 -0
  152. package/dist/lib/structures/UnavailableGuild.js +21 -0
  153. package/dist/lib/structures/User.d.ts +82 -0
  154. package/dist/lib/structures/User.js +168 -0
  155. package/dist/lib/structures/VoiceChannel.d.ts +20 -0
  156. package/dist/lib/structures/VoiceChannel.js +35 -0
  157. package/dist/lib/structures/VoiceState.d.ts +51 -0
  158. package/dist/lib/structures/VoiceState.js +140 -0
  159. package/dist/lib/structures/Webhook.d.ts +129 -0
  160. package/dist/lib/structures/Webhook.js +206 -0
  161. package/dist/lib/types/applications.d.ts +466 -0
  162. package/dist/lib/types/audit-log.d.ts +122 -0
  163. package/dist/lib/types/auto-moderation.d.ts +99 -0
  164. package/dist/lib/types/channels.d.ts +1260 -0
  165. package/dist/lib/types/client.d.ts +228 -0
  166. package/dist/lib/types/events.d.ts +265 -0
  167. package/dist/lib/types/gateway-raw.d.ts +584 -0
  168. package/dist/lib/types/gateway.d.ts +351 -0
  169. package/dist/lib/types/guild-template.d.ts +33 -0
  170. package/dist/lib/types/guilds.d.ts +855 -0
  171. package/dist/lib/types/index.d.ts +18 -0
  172. package/dist/lib/types/interactions.d.ts +377 -0
  173. package/dist/lib/types/json.d.ts +753 -0
  174. package/dist/lib/types/misc.d.ts +28 -0
  175. package/dist/lib/types/oauth.d.ts +201 -0
  176. package/dist/lib/types/request-handler.d.ts +52 -0
  177. package/dist/lib/types/scheduled-events.d.ts +88 -0
  178. package/dist/lib/types/shared.d.ts +9 -0
  179. package/dist/lib/types/users.d.ts +45 -0
  180. package/dist/lib/types/voice.d.ts +45 -0
  181. package/dist/lib/types/webhooks.d.ts +74 -0
  182. package/dist/lib/util/Collection.d.ts +47 -0
  183. package/dist/lib/util/Collection.js +78 -0
  184. package/dist/lib/util/Errors.d.ts +29 -0
  185. package/dist/lib/util/Errors.js +56 -0
  186. package/dist/lib/util/Routes.d.ts +127 -0
  187. package/dist/lib/util/Routes.js +248 -0
  188. package/dist/lib/util/SimpleCollection.d.ts +12 -0
  189. package/dist/lib/util/SimpleCollection.js +81 -0
  190. package/dist/lib/util/TypedCollection.d.ts +24 -0
  191. package/dist/lib/util/TypedCollection.js +76 -0
  192. package/dist/lib/util/TypedEmitter.d.ts +19 -0
  193. package/dist/lib/util/TypedEmitter.js +19 -0
  194. package/dist/lib/util/Util.d.ts +58 -0
  195. package/dist/lib/util/Util.js +535 -0
  196. package/dist/lib/util/interactions/InteractionOptionsWrapper.d.ts +170 -0
  197. package/dist/lib/util/interactions/InteractionOptionsWrapper.js +213 -0
  198. package/dist/lib/util/interactions/MessageInteractionResponse.d.ts +24 -0
  199. package/dist/lib/util/interactions/MessageInteractionResponse.js +28 -0
  200. package/dist/lib/util/interactions/ModalSubmitInteractionComponentsWrapper.d.ts +24 -0
  201. package/dist/lib/util/interactions/ModalSubmitInteractionComponentsWrapper.js +34 -0
  202. package/dist/lib/util/interactions/SelectMenuValuesWrapper.d.ts +60 -0
  203. package/dist/lib/util/interactions/SelectMenuValuesWrapper.js +124 -0
  204. package/dist/package.json +1 -1
  205. package/package.json +1 -1
@@ -0,0 +1,28 @@
1
+ import type Message from "./Message";
2
+ import type User from "./User";
3
+ import type Client from "../Client";
4
+ import type { PollLayoutType } from "../Constants";
5
+ import type { GetPollAnswerUsersOptions, PollAnswer, PollResults, RawPoll } from "../types/channels";
6
+ import type { JSONPoll, PollQuestion } from "../types";
7
+ export default class Poll {
8
+ allowMultiselect: boolean;
9
+ answers: Array<PollAnswer>;
10
+ client: Client;
11
+ expiry: Date;
12
+ layoutType: PollLayoutType;
13
+ message: Message;
14
+ question: PollQuestion;
15
+ results: PollResults;
16
+ constructor(data: RawPoll, client: Client, message: Message);
17
+ /** The user that created this poll. */
18
+ get creator(): User;
19
+ /** End this poll now. */
20
+ expire(): Promise<void>;
21
+ /**
22
+ * Get the users that voted on a poll answer.
23
+ * @param answerID The ID of the poll answer to get voters for.
24
+ * @param options The options for getting the voters.
25
+ */
26
+ getAnswerUsers(answerID: number, options?: GetPollAnswerUsersOptions): Promise<Array<User>>;
27
+ toJSON(): JSONPoll;
28
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Poll {
4
+ allowMultiselect;
5
+ answers;
6
+ client;
7
+ expiry;
8
+ layoutType;
9
+ message;
10
+ question;
11
+ results;
12
+ constructor(data, client, message) {
13
+ Object.defineProperty(this, "client", {
14
+ value: client,
15
+ enumerable: false,
16
+ writable: false,
17
+ configurable: false
18
+ });
19
+ this.allowMultiselect = data.allow_multiselect;
20
+ this.answers = data.answers.map(a => ({
21
+ answerID: a.answer_id,
22
+ pollMedia: a.poll_media
23
+ }));
24
+ this.expiry = new Date(data.expiry);
25
+ this.layoutType = data.layout_type;
26
+ this.message = message;
27
+ this.question = data.question;
28
+ const res = data.results || { answer_counts: [], is_finalized: false };
29
+ this.results = {
30
+ answerCounts: res.answer_counts.map(a => ({
31
+ count: a.count,
32
+ id: a.id,
33
+ meVoted: a.me_voted,
34
+ users: []
35
+ })),
36
+ isFinalized: res.is_finalized
37
+ };
38
+ // this makes working with this much easier as a developer. We still have systems in place to insert missing answerCounts, if needs be
39
+ for (const answer of data.answers) {
40
+ if (!this.results.answerCounts.some(a => a.id === answer.answer_id)) {
41
+ this.results.answerCounts.push({
42
+ count: 0,
43
+ id: answer.answer_id,
44
+ meVoted: false,
45
+ users: []
46
+ });
47
+ }
48
+ }
49
+ }
50
+ /** The user that created this poll. */
51
+ get creator() {
52
+ return this.message.author;
53
+ }
54
+ /** End this poll now. */
55
+ async expire() {
56
+ await this.client.rest.channels.expirePoll.call(this.client.rest.channels, this.message.channelID, this.message.id);
57
+ }
58
+ /**
59
+ * Get the users that voted on a poll answer.
60
+ * @param answerID The ID of the poll answer to get voters for.
61
+ * @param options The options for getting the voters.
62
+ */
63
+ async getAnswerUsers(answerID, options) {
64
+ return this.client.rest.channels.getPollAnswerUsers.call(this.client.rest.channels, this.message.channelID, this.message.id, answerID, options);
65
+ }
66
+ toJSON() {
67
+ return {
68
+ allowMultiselect: this.allowMultiselect,
69
+ answers: this.answers,
70
+ expiry: this.expiry.toISOString(),
71
+ layoutType: this.layoutType,
72
+ question: this.question,
73
+ results: this.results
74
+ };
75
+ }
76
+ }
77
+ exports.default = Poll;
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9sbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdHJ1Y3R1cmVzL1BvbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxNQUFxQixJQUFJO0lBQ3JCLGdCQUFnQixDQUFVO0lBQzFCLE9BQU8sQ0FBb0I7SUFDM0IsTUFBTSxDQUFVO0lBQ2hCLE1BQU0sQ0FBTztJQUNiLFVBQVUsQ0FBaUI7SUFDM0IsT0FBTyxDQUFVO0lBQ2pCLFFBQVEsQ0FBZTtJQUN2QixPQUFPLENBQWM7SUFDckIsWUFBWSxJQUFhLEVBQUUsTUFBYyxFQUFFLE9BQWdCO1FBQ3ZELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNsQyxLQUFLLEVBQVMsTUFBTTtZQUNwQixVQUFVLEVBQUksS0FBSztZQUNuQixRQUFRLEVBQU0sS0FBSztZQUNuQixZQUFZLEVBQUUsS0FBSztTQUN0QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLFFBQVEsRUFBRyxDQUFDLENBQUMsU0FBUztZQUN0QixTQUFTLEVBQUUsQ0FBQyxDQUFDLFVBQVU7U0FDMUIsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxh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
@@ -0,0 +1,90 @@
1
+ /** @module PrivateChannel */
2
+ import Channel from "./Channel";
3
+ import type User from "./User";
4
+ import Message from "./Message";
5
+ import type { ChannelTypes } from "../Constants";
6
+ import type Client from "../Client";
7
+ import type { CreateMessageOptions, EditMessageOptions, GetChannelMessagesOptions, GetReactionsOptions, RawMessage, RawPrivateChannel } from "../types/channels";
8
+ import TypedCollection from "../util/TypedCollection";
9
+ import type { JSONPrivateChannel } from "../types/json";
10
+ /** Represents a direct message with a user. */
11
+ export default class PrivateChannel extends Channel {
12
+ /** The last message sent in this channel. This will only be present if a message has been sent within the current session. */
13
+ lastMessage?: Message<this> | null;
14
+ /** The ID of last message sent in this channel. */
15
+ lastMessageID: string | null;
16
+ /** The cached messages in this channel. */
17
+ messages: TypedCollection<RawMessage, Message<this>>;
18
+ /** The other user in this direct message. */
19
+ recipient: User;
20
+ type: ChannelTypes.DM;
21
+ constructor(data: RawPrivateChannel, client: Client);
22
+ protected update(data: Partial<RawPrivateChannel>): void;
23
+ /**
24
+ * Create a message in this channel.
25
+ * @param options The options for creating the message.
26
+ */
27
+ createMessage(options: CreateMessageOptions): Promise<Message<this>>;
28
+ /**
29
+ * Add a reaction to a message in this channel.
30
+ * @param messageID The ID of the message to add a reaction to.
31
+ * @param emoji The reaction to add to the message. `name:id` for custom emojis, and the unicode codepoint for default emojis.
32
+ */
33
+ createReaction(messageID: string, emoji: string): Promise<void>;
34
+ /**
35
+ * Delete a message in this channel.
36
+ * @param messageID The ID of the message to delete.
37
+ * @param reason The reason for deleting the message.
38
+ */
39
+ deleteMessage(messageID: string, reason?: string): Promise<void>;
40
+ /**
41
+ * Remove a reaction from a message in this channel.
42
+ * @param messageID The ID of the message to remove a reaction from.
43
+ * @param emoji The reaction to remove from the message. `name:id` for custom emojis, and the unicode codepoint for default emojis.
44
+ */
45
+ deleteReaction(messageID: string, emoji: string): Promise<void>;
46
+ /**
47
+ * Edit a message in this channel.
48
+ * @param messageID The ID of the message to edit.
49
+ * @param options The options for editing the message.
50
+ */
51
+ editMessage(messageID: string, options: EditMessageOptions): Promise<Message<this>>;
52
+ /**
53
+ * Get a message in this channel.
54
+ * @param messageID The ID of the message to get.
55
+ */
56
+ getMessage(messageID: string): Promise<Message<this>>;
57
+ /**
58
+ * Get messages in this channel.
59
+ * @param options The options for getting the messages. `before`, `after`, and `around `All are mutually exclusive.
60
+ */
61
+ getMessages(options?: GetChannelMessagesOptions): Promise<Array<Message<this>>>;
62
+ /**
63
+ * Get the pinned messages in this channel.
64
+ */
65
+ getPinnedMessages(): Promise<Array<Message<this>>>;
66
+ /**
67
+ * Get the users who reacted with a specific emoji on a message.
68
+ * @param messageID The iIDd of the message to get reactions from.
69
+ * @param emoji The reaction to remove from the message. `name:id` for custom emojis, and the unicode codepoint for default emojis.
70
+ * @param options The options for getting the reactions.
71
+ */
72
+ getReactions(messageID: string, emoji: string, options?: GetReactionsOptions): Promise<Array<User>>;
73
+ /**
74
+ * Pin a message in this channel.
75
+ * @param messageID The ID of the message to pin.
76
+ * @param reason The reason for pinning the message.
77
+ */
78
+ pinMessage(messageID: string, reason?: string): Promise<void>;
79
+ /**
80
+ * Show a typing indicator in this channel.
81
+ */
82
+ sendTyping(): Promise<void>;
83
+ toJSON(): JSONPrivateChannel;
84
+ /**
85
+ * Unpin a message in this channel.
86
+ * @param messageID The ID of the message to unpin.
87
+ * @param reason The ID for unpinning the message.
88
+ */
89
+ unpinMessage(messageID: string, reason?: string): Promise<void>;
90
+ }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /** @module PrivateChannel */
5
+ const Channel_1 = tslib_1.__importDefault(require("./Channel"));
6
+ const Message_1 = tslib_1.__importDefault(require("./Message"));
7
+ const TypedCollection_1 = tslib_1.__importDefault(require("../util/TypedCollection"));
8
+ /** Represents a direct message with a user. */
9
+ class PrivateChannel extends Channel_1.default {
10
+ /** The last message sent in this channel. This will only be present if a message has been sent within the current session. */
11
+ lastMessage;
12
+ /** The ID of last message sent in this channel. */
13
+ lastMessageID;
14
+ /** The cached messages in this channel. */
15
+ messages;
16
+ /** The other user in this direct message. */
17
+ recipient;
18
+ constructor(data, client) {
19
+ super(data, client);
20
+ this.messages = new TypedCollection_1.default((Message_1.default), client, this.client.util._getLimit("messages", this.id));
21
+ this.lastMessageID = data.last_message_id;
22
+ this.recipient = client.users.update(data.recipients[0]);
23
+ }
24
+ update(data) {
25
+ if (data.last_message_id !== undefined) {
26
+ this.lastMessage = data.last_message_id === null ? null : this.messages.get(data.last_message_id);
27
+ this.lastMessageID = data.last_message_id;
28
+ }
29
+ }
30
+ /**
31
+ * Create a message in this channel.
32
+ * @param options The options for creating the message.
33
+ */
34
+ async createMessage(options) {
35
+ return this.client.rest.channels.createMessage(this.id, options);
36
+ }
37
+ /**
38
+ * Add a reaction to a message in this channel.
39
+ * @param messageID The ID of the message to add a reaction to.
40
+ * @param emoji The reaction to add to the message. `name:id` for custom emojis, and the unicode codepoint for default emojis.
41
+ */
42
+ async createReaction(messageID, emoji) {
43
+ return this.client.rest.channels.createReaction(this.id, messageID, emoji);
44
+ }
45
+ /**
46
+ * Delete a message in this channel.
47
+ * @param messageID The ID of the message to delete.
48
+ * @param reason The reason for deleting the message.
49
+ */
50
+ async deleteMessage(messageID, reason) {
51
+ return this.client.rest.channels.deleteMessage(this.id, messageID, reason);
52
+ }
53
+ /**
54
+ * Remove a reaction from a message in this channel.
55
+ * @param messageID The ID of the message to remove a reaction from.
56
+ * @param emoji The reaction to remove from the message. `name:id` for custom emojis, and the unicode codepoint for default emojis.
57
+ */
58
+ async deleteReaction(messageID, emoji) {
59
+ return this.client.rest.channels.deleteReaction(this.id, messageID, emoji);
60
+ }
61
+ /**
62
+ * Edit a message in this channel.
63
+ * @param messageID The ID of the message to edit.
64
+ * @param options The options for editing the message.
65
+ */
66
+ async editMessage(messageID, options) {
67
+ return this.client.rest.channels.editMessage(this.id, messageID, options);
68
+ }
69
+ /**
70
+ * Get a message in this channel.
71
+ * @param messageID The ID of the message to get.
72
+ */
73
+ async getMessage(messageID) {
74
+ return this.client.rest.channels.getMessage(this.id, messageID);
75
+ }
76
+ /**
77
+ * Get messages in this channel.
78
+ * @param options The options for getting the messages. `before`, `after`, and `around `All are mutually exclusive.
79
+ */
80
+ async getMessages(options) {
81
+ return this.client.rest.channels.getMessages(this.id, options);
82
+ }
83
+ /**
84
+ * Get the pinned messages in this channel.
85
+ */
86
+ async getPinnedMessages() {
87
+ return this.client.rest.channels.getPinnedMessages(this.id);
88
+ }
89
+ /**
90
+ * Get the users who reacted with a specific emoji on a message.
91
+ * @param messageID The iIDd of the message to get reactions from.
92
+ * @param emoji The reaction to remove from the message. `name:id` for custom emojis, and the unicode codepoint for default emojis.
93
+ * @param options The options for getting the reactions.
94
+ */
95
+ async getReactions(messageID, emoji, options) {
96
+ return this.client.rest.channels.getReactions(this.id, messageID, emoji, options);
97
+ }
98
+ /**
99
+ * Pin a message in this channel.
100
+ * @param messageID The ID of the message to pin.
101
+ * @param reason The reason for pinning the message.
102
+ */
103
+ async pinMessage(messageID, reason) {
104
+ return this.client.rest.channels.pinMessage(this.id, messageID, reason);
105
+ }
106
+ /**
107
+ * Show a typing indicator in this channel.
108
+ */
109
+ async sendTyping() {
110
+ return this.client.rest.channels.sendTyping(this.id);
111
+ }
112
+ toJSON() {
113
+ return {
114
+ ...super.toJSON(),
115
+ lastMessageID: this.lastMessageID,
116
+ messages: this.messages.map(message => message.id),
117
+ recipient: this.recipient?.toJSON(),
118
+ type: this.type
119
+ };
120
+ }
121
+ /**
122
+ * Unpin a message in this channel.
123
+ * @param messageID The ID of the message to unpin.
124
+ * @param reason The ID for unpinning the message.
125
+ */
126
+ async unpinMessage(messageID, reason) {
127
+ return this.client.rest.channels.unpinMessage(this.id, messageID, reason);
128
+ }
129
+ }
130
+ exports.default = PrivateChannel;
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpdmF0ZUNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3RydWN0dXJlcy9Qcml2YXRlQ2hhbm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFDN0IsZ0VBQWdDO0FBRWhDLGdFQUFnQztBQVdoQyxzRkFBc0Q7QUFHdEQsK0NBQStDO0FBQy9DLE1BQXFCLGNBQWUsU0FBUSxpQkFBTztJQUMvQyw4SEFBOEg7SUFDOUgsV0FBVyxDQUF3QjtJQUNuQyxtREFBbUQ7SUFDbkQsYUFBYSxDQUFnQjtJQUM3QiwyQ0FBMkM7SUFDM0MsUUFBUSxDQUE2QztJQUNyRCw2Q0FBNkM7SUFDN0MsU0FBUyxDQUFPO0lBRWhCLFlBQVksSUFBdUIsRUFBRSxNQUFjO1FBQy9DLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlCQUFlLENBQUMsQ0FBQSxpQkFBYSxDQUFBLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFa0IsTUFBTSxDQUFDLElBQWdDO1FBQ3RELElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FB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
@@ -0,0 +1,18 @@
1
+ /** @module PrivateThreadChannel */
2
+ import ThreadChannel from "./ThreadChannel";
3
+ import type { ChannelTypes } from "../Constants";
4
+ import type Client from "../Client";
5
+ import type { GetThreadMembersOptions, PrivateThreadMetadata, RawPrivateThreadChannel, ThreadMember } from "../types/channels";
6
+ import type { JSONPrivateThreadChannel } from "../types/json";
7
+ /** Represents a private thread channel.. */
8
+ export default class PrivateThreadChannel extends ThreadChannel<PrivateThreadChannel> {
9
+ threadMetadata: PrivateThreadMetadata;
10
+ type: ChannelTypes.PRIVATE_THREAD;
11
+ constructor(data: RawPrivateThreadChannel, client: Client);
12
+ /**
13
+ * Get the members of this thread.
14
+ * @param options The options for getting the thread members.
15
+ */
16
+ getThreadMembers(options?: GetThreadMembersOptions): Promise<Array<ThreadMember>>;
17
+ toJSON(): JSONPrivateThreadChannel;
18
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /** @module PrivateThreadChannel */
5
+ const ThreadChannel_1 = tslib_1.__importDefault(require("./ThreadChannel"));
6
+ /** Represents a private thread channel.. */
7
+ class PrivateThreadChannel extends ThreadChannel_1.default {
8
+ constructor(data, client) {
9
+ super(data, client);
10
+ }
11
+ /**
12
+ * Get the members of this thread.
13
+ * @param options The options for getting the thread members.
14
+ */
15
+ async getThreadMembers(options) {
16
+ return this.client.rest.channels.getThreadMembers(this.id, options);
17
+ }
18
+ toJSON() {
19
+ return {
20
+ ...super.toJSON(),
21
+ threadMetadata: this.threadMetadata,
22
+ type: this.type
23
+ };
24
+ }
25
+ }
26
+ exports.default = PrivateThreadChannel;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpdmF0ZVRocmVhZENoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3RydWN0dXJlcy9Qcml2YXRlVGhyZWFkQ2hhbm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsNEVBQTRDO0FBTTVDLDRDQUE0QztBQUM1QyxNQUFxQixvQkFBcUIsU0FBUSx1QkFBbUM7SUFHakYsWUFBWSxJQUE2QixFQUFFLE1BQWM7UUFDckQsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQWlDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVRLE1BQU07UUFDWCxPQUFPO1lBQ0gsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2pCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxJQUFJLEVBQVksSUFBSSxDQUFDLElBQUk7U0FDNUIsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQXRCRCx1Q0FzQkMifQ==
@@ -0,0 +1,21 @@
1
+ /** @module PublicThreadChannel */
2
+ import ThreadChannel from "./ThreadChannel";
3
+ import type { ChannelTypes } from "../Constants";
4
+ import type Client from "../Client";
5
+ import type { GetThreadMembersOptions, RawPublicThreadChannel, ThreadMember, ThreadMetadata } from "../types/channels";
6
+ import type { JSONPublicThreadChannel } from "../types/json";
7
+ /** Represents a public thread channel. */
8
+ export default class PublicThreadChannel extends ThreadChannel<PublicThreadChannel> {
9
+ /** the IDs of the set of tags that have been applied to this thread. Forum channel threads only. */
10
+ appliedTags: Array<string>;
11
+ threadMetadata: ThreadMetadata;
12
+ type: ChannelTypes.PUBLIC_THREAD;
13
+ constructor(data: RawPublicThreadChannel, client: Client);
14
+ protected update(data: Partial<RawPublicThreadChannel>): void;
15
+ /**
16
+ * Get the members of this thread.
17
+ * @param options The options for getting the thread members.
18
+ */
19
+ getThreadMembers(options?: GetThreadMembersOptions): Promise<Array<ThreadMember>>;
20
+ toJSON(): JSONPublicThreadChannel;
21
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /** @module PublicThreadChannel */
5
+ const ThreadChannel_1 = tslib_1.__importDefault(require("./ThreadChannel"));
6
+ /** Represents a public thread channel. */
7
+ class PublicThreadChannel extends ThreadChannel_1.default {
8
+ /** the IDs of the set of tags that have been applied to this thread. Forum channel threads only. */
9
+ appliedTags;
10
+ constructor(data, client) {
11
+ super(data, client);
12
+ this.appliedTags = [];
13
+ }
14
+ update(data) {
15
+ super.update(data);
16
+ if (data.applied_tags !== undefined) {
17
+ this.appliedTags = data.applied_tags;
18
+ }
19
+ }
20
+ /**
21
+ * Get the members of this thread.
22
+ * @param options The options for getting the thread members.
23
+ */
24
+ async getThreadMembers(options) {
25
+ return this.client.rest.channels.getThreadMembers(this.id, options);
26
+ }
27
+ toJSON() {
28
+ return {
29
+ ...super.toJSON(),
30
+ appliedTags: this.appliedTags,
31
+ threadMetadata: this.threadMetadata,
32
+ type: this.type
33
+ };
34
+ }
35
+ }
36
+ exports.default = PublicThreadChannel;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVibGljVGhyZWFkQ2hhbm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdHJ1Y3R1cmVzL1B1YmxpY1RocmVhZENoYW5uZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0NBQWtDO0FBQ2xDLDRFQUE0QztBQU01QywwQ0FBMEM7QUFDMUMsTUFBcUIsbUJBQW9CLFNBQVEsdUJBQWtDO0lBQy9FLHFHQUFxRztJQUNyRyxXQUFXLENBQWdCO0lBRzNCLFlBQVksSUFBNEIsRUFBRSxNQUFjO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVrQixNQUFNLENBQUMsSUFBcUM7UUFDM0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3pDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQWlDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVRLE1BQU07UUFDWCxPQUFPO1lBQ0gsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2pCLFdBQVcsRUFBSyxJQUFJLENBQUMsV0FBVztZQUNoQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsSUFBSSxFQUFZLElBQUksQ0FBQyxJQUFJO1NBQzVCLENBQUM7SUFDTixDQUFDO0NBQ0o7QUFqQ0Qsc0NBaUNDIn0=
@@ -0,0 +1,52 @@
1
+ /** @module Role */
2
+ import Base from "./Base";
3
+ import Permission from "./Permission";
4
+ import type Guild from "./Guild";
5
+ import type Client from "../Client";
6
+ import type { RawRole, RoleTags, EditRoleOptions } from "../types/guilds";
7
+ import type { JSONRole } from "../types/json";
8
+ /** Represents a role in a guild. */
9
+ export default class Role extends Base {
10
+ private _cachedGuild?;
11
+ /** The color of this role. */
12
+ color: number;
13
+ /** The {@link Constants~RoleFlags | flags } for this role. */
14
+ flags: number;
15
+ /** The id of the guild this role is in. */
16
+ guildID: string;
17
+ /** If this role is hoisted. */
18
+ hoist: boolean;
19
+ /** The icon has of this role. */
20
+ icon: string | null;
21
+ /** If this role is managed by an integration. */
22
+ managed: boolean;
23
+ /** If this role can be mentioned by anybody. */
24
+ mentionable: boolean;
25
+ /** The name of this role. */
26
+ name: string;
27
+ /** The permissions of this role. */
28
+ permissions: Permission;
29
+ /** The position of this role. */
30
+ position: number;
31
+ /** The [tags](https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure) of this role. */
32
+ tags: RoleTags;
33
+ /** The unicode emoji of this role. */
34
+ unicodeEmoji: string | null;
35
+ constructor(data: RawRole, client: Client, guildID: string);
36
+ protected update(data: Partial<RawRole>): void;
37
+ /** The guild this role is in. This will throw an error if the guild is not cached. */
38
+ get guild(): Guild;
39
+ /** A string that will mention this role. */
40
+ get mention(): string;
41
+ /**
42
+ * Delete this role.
43
+ * @param reason The reason for deleting the role.
44
+ */
45
+ delete(reason?: string): Promise<void>;
46
+ /**
47
+ * Edit this role.
48
+ * @param options The options for editing the role.
49
+ */
50
+ edit(options: EditRoleOptions): Promise<Role>;
51
+ toJSON(): JSONRole;
52
+ }
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /** @module Role */
5
+ const Base_1 = tslib_1.__importDefault(require("./Base"));
6
+ const Permission_1 = tslib_1.__importDefault(require("./Permission"));
7
+ const Errors_1 = require("../util/Errors");
8
+ /** Represents a role in a guild. */
9
+ class Role extends Base_1.default {
10
+ _cachedGuild;
11
+ /** The color of this role. */
12
+ color;
13
+ /** The {@link Constants~RoleFlags | flags } for this role. */
14
+ flags;
15
+ /** The id of the guild this role is in. */
16
+ guildID;
17
+ /** If this role is hoisted. */
18
+ hoist;
19
+ /** The icon has of this role. */
20
+ icon;
21
+ /** If this role is managed by an integration. */
22
+ managed;
23
+ /** If this role can be mentioned by anybody. */
24
+ mentionable;
25
+ /** The name of this role. */
26
+ name;
27
+ /** The permissions of this role. */
28
+ permissions;
29
+ /** The position of this role. */
30
+ position;
31
+ /** The [tags](https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure) of this role. */
32
+ tags;
33
+ /** The unicode emoji of this role. */
34
+ unicodeEmoji;
35
+ constructor(data, client, guildID) {
36
+ super(data.id, client);
37
+ this.color = data.color;
38
+ this.flags = data.flags;
39
+ this.guildID = guildID;
40
+ this.hoist = !!data.hoist;
41
+ this.icon = null;
42
+ this.managed = !!data.managed;
43
+ this.mentionable = !!data.mentionable;
44
+ this.name = data.name;
45
+ this.permissions = new Permission_1.default(data.permissions);
46
+ this.position = data.position;
47
+ this.unicodeEmoji = null;
48
+ this.update(data);
49
+ }
50
+ update(data) {
51
+ if (data.flags !== undefined) {
52
+ this.flags = data.flags;
53
+ }
54
+ if (data.color !== undefined) {
55
+ this.color = data.color;
56
+ }
57
+ if (data.hoist !== undefined) {
58
+ this.hoist = data.hoist;
59
+ }
60
+ if (data.icon !== undefined) {
61
+ this.icon = data.icon ?? null;
62
+ }
63
+ if (data.mentionable !== undefined) {
64
+ this.mentionable = data.mentionable;
65
+ }
66
+ if (data.name !== undefined) {
67
+ this.name = data.name;
68
+ }
69
+ if (data.permissions !== undefined) {
70
+ this.permissions = new Permission_1.default(data.permissions);
71
+ }
72
+ if (data.position !== undefined) {
73
+ this.position = data.position;
74
+ }
75
+ if (data.unicode_emoji !== undefined) {
76
+ this.unicodeEmoji = data.unicode_emoji ?? null;
77
+ }
78
+ this.tags = {
79
+ availableForPurchase: data.tags?.available_for_purchase === null,
80
+ guildConnections: data.tags?.guild_connections === null,
81
+ botID: data.tags?.bot_id,
82
+ integrationID: data.tags?.integration_id,
83
+ premiumSubscriber: data.tags?.premium_subscriber === null,
84
+ subscriptionListingID: data.tags?.subscription_listing_id
85
+ };
86
+ }
87
+ /** The guild this role is in. This will throw an error if the guild is not cached. */
88
+ get guild() {
89
+ this._cachedGuild ??= this.client.guilds.get(this.guildID);
90
+ if (!this._cachedGuild) {
91
+ if (this.client.options.restMode) {
92
+ throw new Errors_1.UncachedError(`${this.constructor.name}#guild is not present when rest mode is enabled.`);
93
+ }
94
+ if (!this.client.shards.connected) {
95
+ throw new Errors_1.UncachedError(`${this.constructor.name}#guild is not present without a gateway connection.`);
96
+ }
97
+ throw new Errors_1.UncachedError(`${this.constructor.name}#guild is not present.`);
98
+ }
99
+ return this._cachedGuild;
100
+ }
101
+ /** A string that will mention this role. */
102
+ get mention() {
103
+ return `<@&${this.id}>`;
104
+ }
105
+ /**
106
+ * Delete this role.
107
+ * @param reason The reason for deleting the role.
108
+ */
109
+ async delete(reason) {
110
+ return this.client.rest.guilds.deleteRole(this.guildID, this.id, reason);
111
+ }
112
+ /**
113
+ * Edit this role.
114
+ * @param options The options for editing the role.
115
+ */
116
+ async edit(options) {
117
+ return this.client.rest.guilds.editRole(this.guildID, this.id, options);
118
+ }
119
+ toJSON() {
120
+ return {
121
+ ...super.toJSON(),
122
+ color: this.color,
123
+ guildID: this.guildID,
124
+ hoist: this.hoist,
125
+ icon: this.icon,
126
+ managed: this.managed,
127
+ mentionable: this.mentionable,
128
+ name: this.name,
129
+ permissions: this.permissions.toJSON(),
130
+ position: this.position,
131
+ tags: this.tags,
132
+ unicodeEmoji: this.unicodeEmoji
133
+ };
134
+ }
135
+ }
136
+ exports.default = Role;
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdHJ1Y3R1cmVzL1JvbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUJBQW1CO0FBQ25CLDBEQUEwQjtBQUMxQixzRUFBc0M7QUFLdEMsMkNBQStDO0FBRS9DLG9DQUFvQztBQUNwQyxNQUFxQixJQUFLLFNBQVEsY0FBSTtJQUMxQixZQUFZLENBQVM7SUFDN0IsOEJBQThCO0lBQzlCLEtBQUssQ0FBUztJQUNkLDhEQUE4RDtJQUM5RCxLQUFLLENBQVM7SUFDZCwyQ0FBMkM7SUFDM0MsT0FBTyxDQUFTO0lBQ2hCLCtCQUErQjtJQUMvQixLQUFLLENBQVU7SUFDZixpQ0FBaUM7SUFDakMsSUFBSSxDQUFnQjtJQUNwQixpREFBaUQ7SUFDakQsT0FBTyxDQUFVO0lBQ2pCLGdEQUFnRDtJQUNoRCxXQUFXLENBQVU7SUFDckIsNkJBQTZCO0lBQzdCLElBQUksQ0FBUztJQUNiLG9DQUFvQztJQUNwQyxXQUFXLENBQWE7SUFDeEIsaUNBQWlDO0lBQ2pDLFFBQVEsQ0FBUztJQUNqQix1SEFBdUg7SUFDdkgsSUFBSSxDQUFZO0lBQ2hCLHNDQUFzQztJQUN0QyxZQUFZLENBQWdCO0lBQzVCLFlBQVksSUFBYSxFQUFFLE1BQWMsRUFBRSxPQUFlO1FBQ3RELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxH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