@ovencord/discord.js 14.16.3
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/LICENSE +191 -0
- package/README.md +148 -0
- package/package.json +73 -0
- package/src/client/Client.ts +967 -0
- package/src/client/actions/Action.ts +141 -0
- package/src/client/actions/ActionsManager.ts +138 -0
- package/src/client/actions/ChannelCreate.ts +21 -0
- package/src/client/actions/ChannelDelete.ts +20 -0
- package/src/client/actions/ChannelUpdate.ts +38 -0
- package/src/client/actions/GuildChannelsPositionUpdate.ts +17 -0
- package/src/client/actions/GuildEmojiCreate.ts +17 -0
- package/src/client/actions/GuildEmojiDelete.ts +16 -0
- package/src/client/actions/GuildEmojiUpdate.ts +17 -0
- package/src/client/actions/GuildEmojisUpdate.ts +30 -0
- package/src/client/actions/GuildMemberRemove.ts +29 -0
- package/src/client/actions/GuildMemberUpdate.ts +41 -0
- package/src/client/actions/GuildRoleCreate.ts +23 -0
- package/src/client/actions/GuildRoleDelete.ts +26 -0
- package/src/client/actions/GuildRolesPositionUpdate.ts +17 -0
- package/src/client/actions/GuildScheduledEventDelete.ts +28 -0
- package/src/client/actions/GuildScheduledEventUserAdd.ts +29 -0
- package/src/client/actions/GuildScheduledEventUserRemove.ts +29 -0
- package/src/client/actions/GuildSoundboardSoundDelete.ts +26 -0
- package/src/client/actions/GuildStickerCreate.ts +17 -0
- package/src/client/actions/GuildStickerDelete.ts +16 -0
- package/src/client/actions/GuildStickerUpdate.ts +17 -0
- package/src/client/actions/GuildStickersUpdate.ts +30 -0
- package/src/client/actions/GuildUpdate.ts +30 -0
- package/src/client/actions/InteractionCreate.ts +104 -0
- package/src/client/actions/MessageCreate.ts +38 -0
- package/src/client/actions/MessageDelete.ts +29 -0
- package/src/client/actions/MessageDeleteBulk.ts +45 -0
- package/src/client/actions/MessagePollVoteAdd.ts +37 -0
- package/src/client/actions/MessagePollVoteRemove.ts +35 -0
- package/src/client/actions/MessageReactionAdd.ts +68 -0
- package/src/client/actions/MessageReactionRemove.ts +47 -0
- package/src/client/actions/MessageReactionRemoveAll.ts +30 -0
- package/src/client/actions/MessageReactionRemoveEmoji.ts +25 -0
- package/src/client/actions/MessageUpdate.ts +22 -0
- package/src/client/actions/StageInstanceCreate.ts +25 -0
- package/src/client/actions/StageInstanceDelete.ts +28 -0
- package/src/client/actions/StageInstanceUpdate.ts +27 -0
- package/src/client/actions/ThreadCreate.ts +22 -0
- package/src/client/actions/ThreadMembersUpdate.ts +45 -0
- package/src/client/actions/TypingStart.ts +26 -0
- package/src/client/actions/UserUpdate.ts +33 -0
- package/src/client/voice/ClientVoiceManager.ts +46 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.ts +19 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.ts +17 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.ts +18 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.ts +21 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.ts +20 -0
- package/src/client/websocket/handlers/CHANNEL_CREATE.ts +4 -0
- package/src/client/websocket/handlers/CHANNEL_DELETE.ts +4 -0
- package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.ts +22 -0
- package/src/client/websocket/handlers/CHANNEL_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/ENTITLEMENT_CREATE.ts +14 -0
- package/src/client/websocket/handlers/ENTITLEMENT_DELETE.ts +18 -0
- package/src/client/websocket/handlers/ENTITLEMENT_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.ts +19 -0
- package/src/client/websocket/handlers/GUILD_BAN_ADD.ts +15 -0
- package/src/client/websocket/handlers/GUILD_BAN_REMOVE.ts +20 -0
- package/src/client/websocket/handlers/GUILD_CREATE.ts +34 -0
- package/src/client/websocket/handlers/GUILD_DELETE.ts +36 -0
- package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.ts +15 -0
- package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.ts +40 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_ADD.ts +17 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_ROLE_CREATE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_ROLE_DELETE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.ts +21 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.ts +17 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.ts +19 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.ts +4 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUNDS_UPDATE.ts +24 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_CREATE.ts +18 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_DELETE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_UPDATE.ts +20 -0
- package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/GUILD_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/INTERACTION_CREATE.ts +4 -0
- package/src/client/websocket/handlers/INVITE_CREATE.ts +20 -0
- package/src/client/websocket/handlers/INVITE_DELETE.ts +23 -0
- package/src/client/websocket/handlers/MESSAGE_CREATE.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_DELETE.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.ts +4 -0
- package/src/client/websocket/handlers/MESSAGE_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/PRESENCE_UPDATE.ts +42 -0
- package/src/client/websocket/handlers/RATE_LIMITED.ts +23 -0
- package/src/client/websocket/handlers/READY.ts +29 -0
- package/src/client/websocket/handlers/SOUNDBOARD_SOUNDS.ts +24 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.ts +4 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.ts +4 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/SUBSCRIPTION_CREATE.ts +14 -0
- package/src/client/websocket/handlers/SUBSCRIPTION_DELETE.ts +16 -0
- package/src/client/websocket/handlers/SUBSCRIPTION_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/THREAD_CREATE.ts +4 -0
- package/src/client/websocket/handlers/THREAD_DELETE.ts +17 -0
- package/src/client/websocket/handlers/THREAD_LIST_SYNC.ts +50 -0
- package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.ts +25 -0
- package/src/client/websocket/handlers/THREAD_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/TYPING_START.ts +4 -0
- package/src/client/websocket/handlers/USER_UPDATE.ts +4 -0
- package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.ts +16 -0
- package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.ts +5 -0
- package/src/client/websocket/handlers/VOICE_STATE_UPDATE.ts +37 -0
- package/src/client/websocket/handlers/WEBHOOKS_UPDATE.ts +16 -0
- package/src/client/websocket/handlers/index.ts +74 -0
- package/src/errors/DJSError.ts +50 -0
- package/src/errors/ErrorCodes.ts +277 -0
- package/src/errors/Messages.ts +155 -0
- package/src/errors/index.ts +6 -0
- package/src/index.ts +241 -0
- package/src/managers/ApplicationCommandManager.ts +303 -0
- package/src/managers/ApplicationCommandPermissionsManager.ts +453 -0
- package/src/managers/ApplicationEmojiManager.ts +149 -0
- package/src/managers/AutoModerationRuleManager.ts +307 -0
- package/src/managers/BaseManager.ts +13 -0
- package/src/managers/CachedManager.ts +56 -0
- package/src/managers/CategoryChannelChildManager.ts +81 -0
- package/src/managers/ChannelManager.ts +194 -0
- package/src/managers/DMMessageManager.ts +15 -0
- package/src/managers/DataManager.ts +38 -0
- package/src/managers/EntitlementManager.ts +182 -0
- package/src/managers/GuildApplicationCommandManager.ts +29 -0
- package/src/managers/GuildBanManager.ts +221 -0
- package/src/managers/GuildChannelManager.ts +552 -0
- package/src/managers/GuildEmojiManager.ts +262 -0
- package/src/managers/GuildEmojiRoleManager.ts +134 -0
- package/src/managers/GuildForumThreadManager.ts +84 -0
- package/src/managers/GuildInviteManager.ts +236 -0
- package/src/managers/GuildManager.ts +265 -0
- package/src/managers/GuildMemberManager.ts +619 -0
- package/src/managers/GuildMemberRoleManager.ts +230 -0
- package/src/managers/GuildMessageManager.ts +31 -0
- package/src/managers/GuildScheduledEventManager.ts +330 -0
- package/src/managers/GuildSoundboardSoundManager.ts +157 -0
- package/src/managers/GuildStickerManager.ts +192 -0
- package/src/managers/GuildTextThreadManager.ts +91 -0
- package/src/managers/MessageManager.ts +352 -0
- package/src/managers/PartialGroupDMMessageManager.ts +15 -0
- package/src/managers/PermissionOverwriteManager.ts +174 -0
- package/src/managers/PollAnswerVoterManager.ts +59 -0
- package/src/managers/PresenceManager.ts +60 -0
- package/src/managers/ReactionManager.ts +72 -0
- package/src/managers/ReactionUserManager.ts +82 -0
- package/src/managers/RoleManager.ts +432 -0
- package/src/managers/StageInstanceManager.ts +166 -0
- package/src/managers/SubscriptionManager.ts +83 -0
- package/src/managers/ThreadManager.ts +210 -0
- package/src/managers/ThreadMemberManager.ts +194 -0
- package/src/managers/UserManager.ts +139 -0
- package/src/managers/VoiceStateManager.ts +61 -0
- package/src/sharding/Shard.ts +513 -0
- package/src/sharding/ShardClientUtil.ts +293 -0
- package/src/sharding/ShardingManager.ts +374 -0
- package/src/structures/ActionRow.ts +31 -0
- package/src/structures/AnnouncementChannel.ts +25 -0
- package/src/structures/AnonymousGuild.ts +110 -0
- package/src/structures/ApplicationCommand.ts +675 -0
- package/src/structures/ApplicationEmoji.ts +189 -0
- package/src/structures/ApplicationRoleConnectionMetadata.ts +54 -0
- package/src/structures/Attachment.ts +189 -0
- package/src/structures/AuthorizingIntegrationOwners.ts +63 -0
- package/src/structures/AutoModerationActionExecution.ts +138 -0
- package/src/structures/AutoModerationRule.ts +325 -0
- package/src/structures/AutocompleteInteraction.ts +115 -0
- package/src/structures/Base.ts +37 -0
- package/src/structures/BaseChannel.ts +188 -0
- package/src/structures/BaseGuild.ts +134 -0
- package/src/structures/BaseGuildEmoji.ts +113 -0
- package/src/structures/BaseGuildTextChannel.ts +230 -0
- package/src/structures/BaseGuildVoiceChannel.ts +270 -0
- package/src/structures/BaseInteraction.ts +393 -0
- package/src/structures/BaseInvite.ts +192 -0
- package/src/structures/BaseSelectMenuComponent.ts +58 -0
- package/src/structures/ButtonComponent.ts +68 -0
- package/src/structures/ButtonInteraction.ts +8 -0
- package/src/structures/CategoryChannel.ts +46 -0
- package/src/structures/ChannelSelectMenuComponent.ts +18 -0
- package/src/structures/ChannelSelectMenuInteraction.ts +34 -0
- package/src/structures/ChatInputCommandInteraction.ts +43 -0
- package/src/structures/ClientApplication.ts +470 -0
- package/src/structures/ClientPresence.ts +87 -0
- package/src/structures/ClientUser.ts +219 -0
- package/src/structures/CommandInteraction.ts +193 -0
- package/src/structures/CommandInteractionOptionResolver.ts +336 -0
- package/src/structures/Component.ts +59 -0
- package/src/structures/ContainerComponent.ts +63 -0
- package/src/structures/ContextMenuCommandInteraction.ts +68 -0
- package/src/structures/DMChannel.ts +148 -0
- package/src/structures/DirectoryChannel.ts +40 -0
- package/src/structures/Embed.ts +251 -0
- package/src/structures/Emoji.ts +61 -0
- package/src/structures/Entitlement.ts +206 -0
- package/src/structures/FileComponent.ts +41 -0
- package/src/structures/ForumChannel.ts +31 -0
- package/src/structures/GroupDMInvite.ts +34 -0
- package/src/structures/Guild.ts +1605 -0
- package/src/structures/GuildAuditLogs.ts +99 -0
- package/src/structures/GuildAuditLogsEntry.ts +557 -0
- package/src/structures/GuildBan.ts +65 -0
- package/src/structures/GuildChannel.ts +515 -0
- package/src/structures/GuildEmoji.ts +159 -0
- package/src/structures/GuildInvite.ts +233 -0
- package/src/structures/GuildMember.ts +643 -0
- package/src/structures/GuildOnboarding.ts +73 -0
- package/src/structures/GuildOnboardingPrompt.ts +93 -0
- package/src/structures/GuildOnboardingPromptOption.ts +100 -0
- package/src/structures/GuildPreview.ts +218 -0
- package/src/structures/GuildPreviewEmoji.ts +28 -0
- package/src/structures/GuildScheduledEvent.ts +593 -0
- package/src/structures/GuildTemplate.ts +229 -0
- package/src/structures/Integration.ts +257 -0
- package/src/structures/IntegrationApplication.ts +84 -0
- package/src/structures/InteractionCallback.ts +86 -0
- package/src/structures/InteractionCallbackResource.ts +57 -0
- package/src/structures/InteractionCallbackResponse.ts +35 -0
- package/src/structures/InteractionCollector.ts +260 -0
- package/src/structures/InteractionWebhook.ts +65 -0
- package/src/structures/InviteGuild.ts +22 -0
- package/src/structures/LabelComponent.ts +51 -0
- package/src/structures/MediaChannel.ts +8 -0
- package/src/structures/MediaGalleryComponent.ts +31 -0
- package/src/structures/MediaGalleryItem.ts +54 -0
- package/src/structures/MentionableSelectMenuComponent.ts +8 -0
- package/src/structures/MentionableSelectMenuInteraction.ts +76 -0
- package/src/structures/Message.ts +1202 -0
- package/src/structures/MessageCollector.ts +155 -0
- package/src/structures/MessageComponentInteraction.ts +132 -0
- package/src/structures/MessageContextMenuCommandInteraction.ts +18 -0
- package/src/structures/MessageMentions.ts +327 -0
- package/src/structures/MessagePayload.ts +325 -0
- package/src/structures/MessageReaction.ts +219 -0
- package/src/structures/ModalComponentResolver.ts +237 -0
- package/src/structures/ModalSubmitInteraction.ts +260 -0
- package/src/structures/OAuth2Guild.ts +30 -0
- package/src/structures/PartialGroupDMChannel.ts +151 -0
- package/src/structures/PermissionOverwrites.ts +222 -0
- package/src/structures/Poll.ts +195 -0
- package/src/structures/PollAnswer.ts +100 -0
- package/src/structures/Presence.ts +448 -0
- package/src/structures/PrimaryEntryPointCommandInteraction.ts +8 -0
- package/src/structures/ReactionCollector.ts +245 -0
- package/src/structures/ReactionEmoji.ts +30 -0
- package/src/structures/Role.ts +543 -0
- package/src/structures/RoleSelectMenuComponent.ts +8 -0
- package/src/structures/RoleSelectMenuInteraction.ts +34 -0
- package/src/structures/SKU.ts +62 -0
- package/src/structures/SectionComponent.ts +44 -0
- package/src/structures/SeparatorComponent.ts +29 -0
- package/src/structures/SoundboardSound.ts +176 -0
- package/src/structures/StageChannel.ts +118 -0
- package/src/structures/StageInstance.ts +173 -0
- package/src/structures/Sticker.ts +300 -0
- package/src/structures/StickerPack.ts +111 -0
- package/src/structures/StringSelectMenuComponent.ts +18 -0
- package/src/structures/StringSelectMenuInteraction.ts +21 -0
- package/src/structures/Subscription.ts +138 -0
- package/src/structures/Team.ts +131 -0
- package/src/structures/TeamMember.ts +77 -0
- package/src/structures/TextChannel.ts +33 -0
- package/src/structures/TextDisplayComponent.ts +18 -0
- package/src/structures/TextInputComponent.ts +28 -0
- package/src/structures/ThreadChannel.ts +680 -0
- package/src/structures/ThreadMember.ts +125 -0
- package/src/structures/ThreadOnlyChannel.ts +276 -0
- package/src/structures/ThumbnailComponent.ts +51 -0
- package/src/structures/Typing.ts +81 -0
- package/src/structures/UnfurledMediaItem.ts +33 -0
- package/src/structures/User.ts +511 -0
- package/src/structures/UserContextMenuCommandInteraction.ts +28 -0
- package/src/structures/UserSelectMenuComponent.ts +8 -0
- package/src/structures/UserSelectMenuInteraction.ts +54 -0
- package/src/structures/VoiceChannel.ts +119 -0
- package/src/structures/VoiceChannelEffect.ts +92 -0
- package/src/structures/VoiceRegion.ts +52 -0
- package/src/structures/VoiceState.ts +346 -0
- package/src/structures/Webhook.ts +526 -0
- package/src/structures/WelcomeChannel.ts +67 -0
- package/src/structures/WelcomeScreen.ts +53 -0
- package/src/structures/Widget.ts +110 -0
- package/src/structures/WidgetMember.ts +124 -0
- package/src/structures/interfaces/Application.ts +179 -0
- package/src/structures/interfaces/Collector.ts +372 -0
- package/src/structures/interfaces/InteractionResponses.ts +384 -0
- package/src/structures/interfaces/TextBasedChannel.ts +430 -0
- package/src/util/APITypes.ts +690 -0
- package/src/util/ActivityFlagsBitField.ts +26 -0
- package/src/util/ApplicationFlagsBitField.ts +43 -0
- package/src/util/AttachmentFlagsBitField.ts +26 -0
- package/src/util/BitField.ts +178 -0
- package/src/util/ChannelFlagsBitField.ts +43 -0
- package/src/util/Channels.ts +165 -0
- package/src/util/Colors.ts +72 -0
- package/src/util/Components.ts +285 -0
- package/src/util/Constants.ts +251 -0
- package/src/util/DataResolver.ts +146 -0
- package/src/util/Enums.ts +10 -0
- package/src/util/Events.ts +178 -0
- package/src/util/GuildMemberFlagsBitField.ts +43 -0
- package/src/util/IntentsBitField.ts +35 -0
- package/src/util/InviteFlagsBitField.ts +26 -0
- package/src/util/Invites.ts +27 -0
- package/src/util/LimitedCollection.ts +73 -0
- package/src/util/MessageFlagsBitField.ts +43 -0
- package/src/util/Options.ts +215 -0
- package/src/util/Partials.ts +50 -0
- package/src/util/PermissionsBitField.ts +113 -0
- package/src/util/RoleFlagsBitField.ts +26 -0
- package/src/util/SKUFlagsBitField.ts +26 -0
- package/src/util/ShardEvents.ts +26 -0
- package/src/util/Status.ts +16 -0
- package/src/util/Sweepers.ts +532 -0
- package/src/util/Symbols.ts +1 -0
- package/src/util/SystemChannelFlagsBitField.ts +45 -0
- package/src/util/ThreadMemberFlagsBitField.ts +33 -0
- package/src/util/Transformers.ts +123 -0
- package/src/util/UserFlagsBitField.ts +33 -0
- package/src/util/Util.ts +519 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { PermissionFlagsBits } from 'discord-api-types/v10';
|
|
2
|
+
import { DiscordjsError, ErrorCodes } from '../errors/index.js';
|
|
3
|
+
import { GuildEmojiRoleManager } from '../managers/GuildEmojiRoleManager.js';
|
|
4
|
+
import { BaseGuildEmoji } from './BaseGuildEmoji.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Represents a custom emoji.
|
|
8
|
+
*
|
|
9
|
+
* @extends {BaseGuildEmoji}
|
|
10
|
+
*/
|
|
11
|
+
export class GuildEmoji extends BaseGuildEmoji {
|
|
12
|
+
public client: any;
|
|
13
|
+
public author: any;
|
|
14
|
+
public _roles: any;
|
|
15
|
+
constructor(client, data, guild) {
|
|
16
|
+
super(client, data, guild);
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The user who created this emoji
|
|
20
|
+
*
|
|
21
|
+
* @type {?User}
|
|
22
|
+
*/
|
|
23
|
+
this.author = null;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Array of role ids this emoji is active for
|
|
27
|
+
*
|
|
28
|
+
* @name GuildEmoji#_roles
|
|
29
|
+
* @type {Snowflake[]}
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
Object.defineProperty(this, '_roles', { value: [], writable: true });
|
|
33
|
+
|
|
34
|
+
this._patch(data);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The guild this emoji is part of
|
|
39
|
+
*
|
|
40
|
+
* @type {Guild}
|
|
41
|
+
* @name GuildEmoji#guild
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
_clone() {
|
|
45
|
+
const clone = super._clone();
|
|
46
|
+
clone._roles = this._roles.slice();
|
|
47
|
+
return clone;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
_patch(data) {
|
|
51
|
+
super._patch(data);
|
|
52
|
+
|
|
53
|
+
if (data.user) this.author = this.client.users._add(data.user);
|
|
54
|
+
if (data.roles) this._roles = data.roles;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Whether the emoji is deletable by the client user
|
|
59
|
+
*
|
|
60
|
+
* @type {boolean}
|
|
61
|
+
* @readonly
|
|
62
|
+
*/
|
|
63
|
+
get deletable() {
|
|
64
|
+
if (!this.guild.members.me) throw new DiscordjsError(ErrorCodes.GuildUncachedMe);
|
|
65
|
+
return !this.managed && this.guild.members.me.permissions.has(PermissionFlagsBits.ManageGuildExpressions);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* A manager for roles this emoji is active for.
|
|
70
|
+
*
|
|
71
|
+
* @type {GuildEmojiRoleManager}
|
|
72
|
+
* @readonly
|
|
73
|
+
*/
|
|
74
|
+
get roles() {
|
|
75
|
+
return new GuildEmojiRoleManager(this);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Fetches the author for this emoji
|
|
80
|
+
*
|
|
81
|
+
* @returns {Promise<User>}
|
|
82
|
+
*/
|
|
83
|
+
async fetchAuthor() {
|
|
84
|
+
return this.guild.emojis.fetchAuthor(this);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Data for editing an emoji.
|
|
89
|
+
*
|
|
90
|
+
* @typedef {Object} GuildEmojiEditOptions
|
|
91
|
+
* @property {string} [name] The name of the emoji
|
|
92
|
+
* @property {Collection<Snowflake, Role>|RoleResolvable[]} [roles] Roles to restrict emoji to
|
|
93
|
+
* @property {string} [reason] Reason for editing this emoji
|
|
94
|
+
*/
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Edits the emoji.
|
|
98
|
+
*
|
|
99
|
+
* @param {GuildEmojiEditOptions} options The options to provide
|
|
100
|
+
* @returns {Promise<GuildEmoji>}
|
|
101
|
+
* @example
|
|
102
|
+
* // Edit an emoji
|
|
103
|
+
* emoji.edit({ name: 'newemoji' })
|
|
104
|
+
* .then(emoji => console.log(`Edited emoji ${emoji}`))
|
|
105
|
+
* .catch(console.error);
|
|
106
|
+
*/
|
|
107
|
+
async edit(options) {
|
|
108
|
+
return this.guild.emojis.edit(this.id, options);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Sets the name of the emoji.
|
|
113
|
+
*
|
|
114
|
+
* @param {string} name The new name for the emoji
|
|
115
|
+
* @param {string} [reason] Reason for changing the emoji's name
|
|
116
|
+
* @returns {Promise<GuildEmoji>}
|
|
117
|
+
*/
|
|
118
|
+
async setName(name, reason) {
|
|
119
|
+
return this.edit({ name, reason });
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Deletes the emoji.
|
|
124
|
+
*
|
|
125
|
+
* @param {string} [reason] Reason for deleting the emoji
|
|
126
|
+
* @returns {Promise<GuildEmoji>}
|
|
127
|
+
*/
|
|
128
|
+
async delete(reason) {
|
|
129
|
+
await this.guild.emojis.delete(this.id, reason);
|
|
130
|
+
return this;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Whether this emoji is the same as another one.
|
|
135
|
+
*
|
|
136
|
+
* @param {GuildEmoji|APIEmoji} other The emoji to compare it to
|
|
137
|
+
* @returns {boolean}
|
|
138
|
+
*/
|
|
139
|
+
equals(other) {
|
|
140
|
+
if (other instanceof GuildEmoji) {
|
|
141
|
+
return (
|
|
142
|
+
other.id === this.id &&
|
|
143
|
+
other.name === this.name &&
|
|
144
|
+
other.managed === this.managed &&
|
|
145
|
+
other.available === this.available &&
|
|
146
|
+
other.requiresColons === this.requiresColons &&
|
|
147
|
+
other.roles.cache.size === this.roles.cache.size &&
|
|
148
|
+
other.roles.cache.every(role => this.roles.cache.has(role.id))
|
|
149
|
+
);
|
|
150
|
+
} else {
|
|
151
|
+
return (
|
|
152
|
+
other.id === this.id &&
|
|
153
|
+
other.name === this.name &&
|
|
154
|
+
other.roles.length === this.roles.cache.size &&
|
|
155
|
+
other.roles.every(role => this.roles.cache.has(role))
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { Routes, PermissionFlagsBits, InviteType } from 'discord-api-types/v10';
|
|
2
|
+
import { DiscordjsError, ErrorCodes } from '../errors/index.js';
|
|
3
|
+
import { InviteFlagsBitField } from '../util/InviteFlagsBitField.js';
|
|
4
|
+
import { BaseInvite } from './BaseInvite.js';
|
|
5
|
+
import { GuildScheduledEvent } from './GuildScheduledEvent.js';
|
|
6
|
+
import { IntegrationApplication } from './IntegrationApplication.js';
|
|
7
|
+
import { InviteGuild } from './InviteGuild.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A channel invite leading to a guild.
|
|
11
|
+
*
|
|
12
|
+
* @extends {BaseInvite}
|
|
13
|
+
*/
|
|
14
|
+
export class GuildInvite extends BaseInvite {
|
|
15
|
+
public client: any;
|
|
16
|
+
public type: any;
|
|
17
|
+
public guildId: any;
|
|
18
|
+
public flags: any;
|
|
19
|
+
public guild: any;
|
|
20
|
+
public channel: any;
|
|
21
|
+
public targetType: any;
|
|
22
|
+
public targetUser: any;
|
|
23
|
+
public targetApplication: any;
|
|
24
|
+
public guildScheduledEvent: any;
|
|
25
|
+
public uses: any;
|
|
26
|
+
public maxUses: any;
|
|
27
|
+
public temporary: any;
|
|
28
|
+
public approximatePresenceCount: any;
|
|
29
|
+
constructor(client, data) {
|
|
30
|
+
super(client, data);
|
|
31
|
+
|
|
32
|
+
// Type may be missing from audit logs.
|
|
33
|
+
this.type = InviteType.Guild;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The id of the guild this invite is for.
|
|
37
|
+
*
|
|
38
|
+
* @type {Snowflake}
|
|
39
|
+
*/
|
|
40
|
+
// Guild id may be missing from audit logs.
|
|
41
|
+
this.guildId = data.guild_id ?? data.guild.id;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* The maximum age of the invite in seconds. `0` for no expiry.
|
|
45
|
+
* <info>This is only available when the invite was fetched through {@link GuildInviteManager#fetch}
|
|
46
|
+
* or created through {@link GuildInviteManager#create}.</info>
|
|
47
|
+
*
|
|
48
|
+
* @name GuildInvite#maxAge
|
|
49
|
+
* @type {?number}
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The approximate total number of members of the guild.
|
|
54
|
+
* <info>This is only available when the invite was fetched through {@link Client#fetchInvite}.</info>
|
|
55
|
+
*
|
|
56
|
+
* @name GuildInvite#approximateMemberCount
|
|
57
|
+
* @type {?number}
|
|
58
|
+
*/
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
_patch(data) {
|
|
62
|
+
super._patch(data);
|
|
63
|
+
|
|
64
|
+
if ('flags' in data) {
|
|
65
|
+
/**
|
|
66
|
+
* The flags of this invite.
|
|
67
|
+
*
|
|
68
|
+
* @type {Readonly<InviteFlagsBitField>}
|
|
69
|
+
*/
|
|
70
|
+
this.flags = new InviteFlagsBitField(data.flags).freeze();
|
|
71
|
+
} else {
|
|
72
|
+
this.flags ??= new InviteFlagsBitField().freeze();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if ('guild' in data) {
|
|
76
|
+
/**
|
|
77
|
+
* The guild the invite is for. May include welcome screen data.
|
|
78
|
+
*
|
|
79
|
+
* @type {?(Guild|InviteGuild)}
|
|
80
|
+
*/
|
|
81
|
+
this.guild = this.client.guilds.cache.get(data.guild.id) ?? new InviteGuild(this.client, data.guild);
|
|
82
|
+
} else {
|
|
83
|
+
this.guild ??= null;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if ('channel' in data) {
|
|
87
|
+
/**
|
|
88
|
+
* The channel this invite is for.
|
|
89
|
+
*
|
|
90
|
+
* @type {?GuildInvitableChannel}
|
|
91
|
+
*/
|
|
92
|
+
this.channel =
|
|
93
|
+
this.client.channels._add(data.channel, this.guild, { cache: false }) ??
|
|
94
|
+
this.client.channels.cache.get(this.channelId);
|
|
95
|
+
|
|
96
|
+
this.channelId ??= data.channel.id;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if ('target_type' in data) {
|
|
100
|
+
/**
|
|
101
|
+
* The target type.
|
|
102
|
+
*
|
|
103
|
+
* @type {?InviteTargetType}
|
|
104
|
+
*/
|
|
105
|
+
this.targetType = data.target_type;
|
|
106
|
+
} else {
|
|
107
|
+
this.targetType ??= null;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if ('target_user' in data) {
|
|
111
|
+
/**
|
|
112
|
+
* The user whose stream to display for this voice channel stream invite.
|
|
113
|
+
*
|
|
114
|
+
* @type {?User}
|
|
115
|
+
*/
|
|
116
|
+
this.targetUser = this.client.users._add(data.target_user);
|
|
117
|
+
} else {
|
|
118
|
+
this.targetUser ??= null;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if ('target_application' in data) {
|
|
122
|
+
/**
|
|
123
|
+
* The embedded application to open for this voice channel embedded application invite.
|
|
124
|
+
*
|
|
125
|
+
* @type {?IntegrationApplication}
|
|
126
|
+
*/
|
|
127
|
+
this.targetApplication = new IntegrationApplication(this.client, data.target_application);
|
|
128
|
+
} else {
|
|
129
|
+
this.targetApplication ??= null;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if ('guild_scheduled_event' in data) {
|
|
133
|
+
/**
|
|
134
|
+
* The guild scheduled event data if there is a {@link GuildScheduledEvent} in the channel.
|
|
135
|
+
*
|
|
136
|
+
* @type {?GuildScheduledEvent}
|
|
137
|
+
*/
|
|
138
|
+
this.guildScheduledEvent = new GuildScheduledEvent(this.client, data.guild_scheduled_event);
|
|
139
|
+
} else {
|
|
140
|
+
this.guildScheduledEvent ??= null;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if ('uses' in data) {
|
|
144
|
+
/**
|
|
145
|
+
* How many times this invite has been used.
|
|
146
|
+
* <info>This is only available when the invite was fetched through {@link GuildInviteManager#fetch}
|
|
147
|
+
* or created through {@link GuildInviteManager#create}.</info>
|
|
148
|
+
*
|
|
149
|
+
* @type {?number}
|
|
150
|
+
*/
|
|
151
|
+
this.uses = data.uses;
|
|
152
|
+
} else {
|
|
153
|
+
this.uses ??= null;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if ('max_uses' in data) {
|
|
157
|
+
/**
|
|
158
|
+
* The maximum uses of this invite.
|
|
159
|
+
* <info>This is only available when the invite was fetched through {@link GuildInviteManager#fetch}
|
|
160
|
+
* or created through {@link GuildInviteManager#create}.</info>
|
|
161
|
+
*
|
|
162
|
+
* @type {?number}
|
|
163
|
+
*/
|
|
164
|
+
this.maxUses = data.max_uses;
|
|
165
|
+
} else {
|
|
166
|
+
this.maxUses ??= null;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if ('temporary' in data) {
|
|
170
|
+
/**
|
|
171
|
+
* Whether this invite grants temporary membership.
|
|
172
|
+
* <info>This is only available when the invite was fetched through {@link GuildInviteManager#fetch}
|
|
173
|
+
* or created through {@link GuildInviteManager#create}.</info>
|
|
174
|
+
*
|
|
175
|
+
* @type {?boolean}
|
|
176
|
+
*/
|
|
177
|
+
this.temporary = data.temporary ?? null;
|
|
178
|
+
} else {
|
|
179
|
+
this.temporary ??= null;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if ('approximate_presence_count' in data) {
|
|
183
|
+
/**
|
|
184
|
+
* The approximate number of online members of the guild.
|
|
185
|
+
* <info>This is only available when the invite was fetched through {@link Client#fetchInvite}.</info>
|
|
186
|
+
*
|
|
187
|
+
* @type {?number}
|
|
188
|
+
*/
|
|
189
|
+
this.approximatePresenceCount = data.approximate_presence_count;
|
|
190
|
+
} else {
|
|
191
|
+
this.approximatePresenceCount ??= null;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Whether the invite is deletable by the client user.
|
|
197
|
+
*
|
|
198
|
+
* @type {boolean}
|
|
199
|
+
* @readonly
|
|
200
|
+
*/
|
|
201
|
+
get deletable() {
|
|
202
|
+
const guild = this.guild;
|
|
203
|
+
if (!guild || !this.client.guilds.cache.has(guild.id)) return false;
|
|
204
|
+
if (!guild.members.me) throw new DiscordjsError(ErrorCodes.GuildUncachedMe);
|
|
205
|
+
return Boolean(
|
|
206
|
+
this.channel?.permissionsFor(this.client.user).has(PermissionFlagsBits.ManageChannels, false) ||
|
|
207
|
+
guild.members.me.permissions.has(PermissionFlagsBits.ManageGuild),
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Delete this invite.
|
|
213
|
+
*
|
|
214
|
+
* @param {string} [reason] Reason for deleting this invite
|
|
215
|
+
* @returns {Promise<void>}
|
|
216
|
+
*/
|
|
217
|
+
async delete(reason) {
|
|
218
|
+
await this.client.rest.delete(Routes.invite(this.code), { reason });
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
toJSON() {
|
|
222
|
+
return super.toJSON({
|
|
223
|
+
url: true,
|
|
224
|
+
expiresTimestamp: true,
|
|
225
|
+
presenceCount: false,
|
|
226
|
+
memberCount: false,
|
|
227
|
+
uses: false,
|
|
228
|
+
channel: 'channelId',
|
|
229
|
+
inviter: 'inviterId',
|
|
230
|
+
guild: 'guildId',
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
}
|