hischool.js 0.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.
- package/README.md +41 -0
- package/lib/cjs/Client.d.ts +166 -0
- package/lib/cjs/Client.d.ts.map +1 -0
- package/lib/cjs/Client.js +221 -0
- package/lib/cjs/api/baseURL.d.ts +2 -0
- package/lib/cjs/api/baseURL.d.ts.map +1 -0
- package/lib/cjs/api/baseURL.js +5 -0
- package/lib/cjs/api/index.d.ts +177 -0
- package/lib/cjs/api/index.d.ts.map +1 -0
- package/lib/cjs/api/index.js +150 -0
- package/lib/cjs/api/params.d.ts +285 -0
- package/lib/cjs/api/params.d.ts.map +1 -0
- package/lib/cjs/api/params.js +194 -0
- package/lib/cjs/api/routes.d.ts +1089 -0
- package/lib/cjs/api/routes.d.ts.map +1 -0
- package/lib/cjs/api/routes.js +2 -0
- package/lib/cjs/api/schema.d.ts +4705 -0
- package/lib/cjs/api/schema.d.ts.map +1 -0
- package/lib/cjs/api/schema.js +2 -0
- package/lib/cjs/api/types.d.ts +131 -0
- package/lib/cjs/api/types.d.ts.map +1 -0
- package/lib/cjs/api/types.js +2 -0
- package/lib/cjs/classes/BannedUser.d.ts +18 -0
- package/lib/cjs/classes/BannedUser.d.ts.map +1 -0
- package/lib/cjs/classes/BannedUser.js +21 -0
- package/lib/cjs/classes/Bot.d.ts +82 -0
- package/lib/cjs/classes/Bot.d.ts.map +1 -0
- package/lib/cjs/classes/Bot.js +145 -0
- package/lib/cjs/classes/Channel.d.ts +465 -0
- package/lib/cjs/classes/Channel.d.ts.map +1 -0
- package/lib/cjs/classes/Channel.js +599 -0
- package/lib/cjs/classes/ChannelUnread.d.ts +27 -0
- package/lib/cjs/classes/ChannelUnread.d.ts.map +1 -0
- package/lib/cjs/classes/ChannelUnread.js +50 -0
- package/lib/cjs/classes/ChannelWebhook.d.ts +53 -0
- package/lib/cjs/classes/ChannelWebhook.d.ts.map +1 -0
- package/lib/cjs/classes/ChannelWebhook.js +113 -0
- package/lib/cjs/classes/Emoji.d.ts +57 -0
- package/lib/cjs/classes/Emoji.d.ts.map +1 -0
- package/lib/cjs/classes/Emoji.js +104 -0
- package/lib/cjs/classes/File.d.ts +67 -0
- package/lib/cjs/classes/File.d.ts.map +1 -0
- package/lib/cjs/classes/File.js +102 -0
- package/lib/cjs/classes/Invite.d.ts +60 -0
- package/lib/cjs/classes/Invite.d.ts.map +1 -0
- package/lib/cjs/classes/Invite.js +91 -0
- package/lib/cjs/classes/MFA.d.ts +83 -0
- package/lib/cjs/classes/MFA.d.ts.map +1 -0
- package/lib/cjs/classes/MFA.js +196 -0
- package/lib/cjs/classes/Message.d.ts +484 -0
- package/lib/cjs/classes/Message.d.ts.map +1 -0
- package/lib/cjs/classes/Message.js +341 -0
- package/lib/cjs/classes/MessageEmbed.d.ts +122 -0
- package/lib/cjs/classes/MessageEmbed.d.ts.map +1 -0
- package/lib/cjs/classes/MessageEmbed.js +181 -0
- package/lib/cjs/classes/PublicBot.d.ts +28 -0
- package/lib/cjs/classes/PublicBot.d.ts.map +1 -0
- package/lib/cjs/classes/PublicBot.js +60 -0
- package/lib/cjs/classes/PublicInvite.d.ts +57 -0
- package/lib/cjs/classes/PublicInvite.d.ts.map +1 -0
- package/lib/cjs/classes/PublicInvite.js +104 -0
- package/lib/cjs/classes/Server.d.ts +473 -0
- package/lib/cjs/classes/Server.d.ts.map +1 -0
- package/lib/cjs/classes/Server.js +585 -0
- package/lib/cjs/classes/ServerBan.d.ts +26 -0
- package/lib/cjs/classes/ServerBan.d.ts.map +1 -0
- package/lib/cjs/classes/ServerBan.js +44 -0
- package/lib/cjs/classes/ServerMember.d.ts +138 -0
- package/lib/cjs/classes/ServerMember.d.ts.map +1 -0
- package/lib/cjs/classes/ServerMember.js +234 -0
- package/lib/cjs/classes/Session.d.ts +45 -0
- package/lib/cjs/classes/Session.d.ts.map +1 -0
- package/lib/cjs/classes/Session.js +94 -0
- package/lib/cjs/classes/SystemMessage.d.ts +127 -0
- package/lib/cjs/classes/SystemMessage.d.ts.map +1 -0
- package/lib/cjs/classes/SystemMessage.js +172 -0
- package/lib/cjs/classes/User.d.ts +203 -0
- package/lib/cjs/classes/User.d.ts.map +1 -0
- package/lib/cjs/classes/User.js +299 -0
- package/lib/cjs/classes/UserProfile.d.ts +23 -0
- package/lib/cjs/classes/UserProfile.d.ts.map +1 -0
- package/lib/cjs/classes/UserProfile.js +35 -0
- package/lib/cjs/classes/index.d.ts +21 -0
- package/lib/cjs/classes/index.d.ts.map +1 -0
- package/lib/cjs/classes/index.js +36 -0
- package/lib/cjs/collections/AccountCollection.d.ts +91 -0
- package/lib/cjs/collections/AccountCollection.d.ts.map +1 -0
- package/lib/cjs/collections/AccountCollection.js +150 -0
- package/lib/cjs/collections/BotCollection.d.ts +39 -0
- package/lib/cjs/collections/BotCollection.d.ts.map +1 -0
- package/lib/cjs/collections/BotCollection.js +89 -0
- package/lib/cjs/collections/ChannelCollection.d.ts +39 -0
- package/lib/cjs/collections/ChannelCollection.d.ts.map +1 -0
- package/lib/cjs/collections/ChannelCollection.js +93 -0
- package/lib/cjs/collections/ChannelUnreadCollection.d.ts +24 -0
- package/lib/cjs/collections/ChannelUnreadCollection.d.ts.map +1 -0
- package/lib/cjs/collections/ChannelUnreadCollection.js +56 -0
- package/lib/cjs/collections/ChannelWebhookCollection.d.ts +29 -0
- package/lib/cjs/collections/ChannelWebhookCollection.d.ts.map +1 -0
- package/lib/cjs/collections/ChannelWebhookCollection.js +69 -0
- package/lib/cjs/collections/Collection.d.ts +153 -0
- package/lib/cjs/collections/Collection.d.ts.map +1 -0
- package/lib/cjs/collections/Collection.js +170 -0
- package/lib/cjs/collections/EmojiCollection.d.ts +27 -0
- package/lib/cjs/collections/EmojiCollection.d.ts.map +1 -0
- package/lib/cjs/collections/EmojiCollection.js +67 -0
- package/lib/cjs/collections/MessageCollection.d.ts +28 -0
- package/lib/cjs/collections/MessageCollection.d.ts.map +1 -0
- package/lib/cjs/collections/MessageCollection.js +69 -0
- package/lib/cjs/collections/ServerCollection.d.ts +36 -0
- package/lib/cjs/collections/ServerCollection.d.ts.map +1 -0
- package/lib/cjs/collections/ServerCollection.js +96 -0
- package/lib/cjs/collections/ServerMemberCollection.d.ts +45 -0
- package/lib/cjs/collections/ServerMemberCollection.d.ts.map +1 -0
- package/lib/cjs/collections/ServerMemberCollection.js +95 -0
- package/lib/cjs/collections/SessionCollection.d.ts +27 -0
- package/lib/cjs/collections/SessionCollection.d.ts.map +1 -0
- package/lib/cjs/collections/SessionCollection.js +63 -0
- package/lib/cjs/collections/UserCollection.d.ts +31 -0
- package/lib/cjs/collections/UserCollection.d.ts.map +1 -0
- package/lib/cjs/collections/UserCollection.js +81 -0
- package/lib/cjs/collections/index.d.ts +12 -0
- package/lib/cjs/collections/index.d.ts.map +1 -0
- package/lib/cjs/collections/index.js +38 -0
- package/lib/cjs/events/EventClient.d.ts +89 -0
- package/lib/cjs/events/EventClient.d.ts.map +1 -0
- package/lib/cjs/events/EventClient.js +186 -0
- package/lib/cjs/events/index.d.ts +18 -0
- package/lib/cjs/events/index.d.ts.map +1 -0
- package/lib/cjs/events/index.js +20 -0
- package/lib/cjs/events/v1.d.ts +214 -0
- package/lib/cjs/events/v1.d.ts.map +1 -0
- package/lib/cjs/events/v1.js +502 -0
- package/lib/cjs/hydration/bot.d.ts +21 -0
- package/lib/cjs/hydration/bot.d.ts.map +1 -0
- package/lib/cjs/hydration/bot.js +31 -0
- package/lib/cjs/hydration/channel.d.ts +25 -0
- package/lib/cjs/hydration/channel.d.ts.map +1 -0
- package/lib/cjs/hydration/channel.js +40 -0
- package/lib/cjs/hydration/channelUnread.d.ts +11 -0
- package/lib/cjs/hydration/channelUnread.d.ts.map +1 -0
- package/lib/cjs/hydration/channelUnread.js +19 -0
- package/lib/cjs/hydration/channelWebhook.d.ts +12 -0
- package/lib/cjs/hydration/channelWebhook.d.ts.map +1 -0
- package/lib/cjs/hydration/channelWebhook.js +21 -0
- package/lib/cjs/hydration/emoji.d.ts +13 -0
- package/lib/cjs/hydration/emoji.d.ts.map +1 -0
- package/lib/cjs/hydration/emoji.js +18 -0
- package/lib/cjs/hydration/index.d.ts +1404 -0
- package/lib/cjs/hydration/index.d.ts.map +1 -0
- package/lib/cjs/hydration/index.js +68 -0
- package/lib/cjs/hydration/message.d.ts +25 -0
- package/lib/cjs/hydration/message.d.ts.map +1 -0
- package/lib/cjs/hydration/message.js +48 -0
- package/lib/cjs/hydration/server.d.ts +31 -0
- package/lib/cjs/hydration/server.d.ts.map +1 -0
- package/lib/cjs/hydration/server.js +44 -0
- package/lib/cjs/hydration/serverMember.d.ts +14 -0
- package/lib/cjs/hydration/serverMember.d.ts.map +1 -0
- package/lib/cjs/hydration/serverMember.js +21 -0
- package/lib/cjs/hydration/session.d.ts +8 -0
- package/lib/cjs/hydration/session.d.ts.map +1 -0
- package/lib/cjs/hydration/session.js +13 -0
- package/lib/cjs/hydration/user.d.ts +43 -0
- package/lib/cjs/hydration/user.d.ts.map +1 -0
- package/lib/cjs/hydration/user.js +53 -0
- package/lib/cjs/index.d.ts +9 -0
- package/lib/cjs/index.d.ts.map +1 -0
- package/lib/cjs/index.js +43 -0
- package/lib/cjs/lib/merge.d.ts +15 -0
- package/lib/cjs/lib/merge.d.ts.map +1 -0
- package/lib/cjs/lib/merge.js +2 -0
- package/lib/cjs/lib/regex.d.ts +13 -0
- package/lib/cjs/lib/regex.d.ts.map +1 -0
- package/lib/cjs/lib/regex.js +15 -0
- package/lib/cjs/permissions/calculator.d.ts +19 -0
- package/lib/cjs/permissions/calculator.d.ts.map +1 -0
- package/lib/cjs/permissions/calculator.js +136 -0
- package/lib/cjs/permissions/definitions.d.ts +73 -0
- package/lib/cjs/permissions/definitions.d.ts.map +1 -0
- package/lib/cjs/permissions/definitions.js +124 -0
- package/lib/cjs/storage/ObjectStorage.d.ts +28 -0
- package/lib/cjs/storage/ObjectStorage.d.ts.map +1 -0
- package/lib/cjs/storage/ObjectStorage.js +41 -0
- package/lib/esm/Client.d.ts +166 -0
- package/lib/esm/Client.d.ts.map +1 -0
- package/lib/esm/Client.js +214 -0
- package/lib/esm/api/baseURL.d.ts +2 -0
- package/lib/esm/api/baseURL.d.ts.map +1 -0
- package/lib/esm/api/baseURL.js +2 -0
- package/lib/esm/api/index.d.ts +177 -0
- package/lib/esm/api/index.d.ts.map +1 -0
- package/lib/esm/api/index.js +139 -0
- package/lib/esm/api/params.d.ts +285 -0
- package/lib/esm/api/params.d.ts.map +1 -0
- package/lib/esm/api/params.js +191 -0
- package/lib/esm/api/routes.d.ts +1089 -0
- package/lib/esm/api/routes.d.ts.map +1 -0
- package/lib/esm/api/routes.js +1 -0
- package/lib/esm/api/schema.d.ts +4705 -0
- package/lib/esm/api/schema.d.ts.map +1 -0
- package/lib/esm/api/schema.js +1 -0
- package/lib/esm/api/types.d.ts +131 -0
- package/lib/esm/api/types.d.ts.map +1 -0
- package/lib/esm/api/types.js +1 -0
- package/lib/esm/classes/BannedUser.d.ts +18 -0
- package/lib/esm/classes/BannedUser.d.ts.map +1 -0
- package/lib/esm/classes/BannedUser.js +21 -0
- package/lib/esm/classes/Bot.d.ts +82 -0
- package/lib/esm/classes/Bot.d.ts.map +1 -0
- package/lib/esm/classes/Bot.js +116 -0
- package/lib/esm/classes/Channel.d.ts +465 -0
- package/lib/esm/classes/Channel.d.ts.map +1 -0
- package/lib/esm/classes/Channel.js +529 -0
- package/lib/esm/classes/ChannelUnread.d.ts +27 -0
- package/lib/esm/classes/ChannelUnread.d.ts.map +1 -0
- package/lib/esm/classes/ChannelUnread.js +34 -0
- package/lib/esm/classes/ChannelWebhook.d.ts +53 -0
- package/lib/esm/classes/ChannelWebhook.d.ts.map +1 -0
- package/lib/esm/classes/ChannelWebhook.js +83 -0
- package/lib/esm/classes/Emoji.d.ts +57 -0
- package/lib/esm/classes/Emoji.d.ts.map +1 -0
- package/lib/esm/classes/Emoji.js +77 -0
- package/lib/esm/classes/File.d.ts +67 -0
- package/lib/esm/classes/File.d.ts.map +1 -0
- package/lib/esm/classes/File.js +105 -0
- package/lib/esm/classes/Invite.d.ts +60 -0
- package/lib/esm/classes/Invite.d.ts.map +1 -0
- package/lib/esm/classes/Invite.js +80 -0
- package/lib/esm/classes/MFA.d.ts +83 -0
- package/lib/esm/classes/MFA.d.ts.map +1 -0
- package/lib/esm/classes/MFA.js +165 -0
- package/lib/esm/classes/Message.d.ts +484 -0
- package/lib/esm/classes/Message.d.ts.map +1 -0
- package/lib/esm/classes/Message.js +300 -0
- package/lib/esm/classes/MessageEmbed.d.ts +122 -0
- package/lib/esm/classes/MessageEmbed.d.ts.map +1 -0
- package/lib/esm/classes/MessageEmbed.js +192 -0
- package/lib/esm/classes/PublicBot.d.ts +28 -0
- package/lib/esm/classes/PublicBot.d.ts.map +1 -0
- package/lib/esm/classes/PublicBot.js +47 -0
- package/lib/esm/classes/PublicInvite.d.ts +57 -0
- package/lib/esm/classes/PublicInvite.d.ts.map +1 -0
- package/lib/esm/classes/PublicInvite.js +100 -0
- package/lib/esm/classes/Server.d.ts +473 -0
- package/lib/esm/classes/Server.d.ts.map +1 -0
- package/lib/esm/classes/Server.js +522 -0
- package/lib/esm/classes/ServerBan.d.ts +26 -0
- package/lib/esm/classes/ServerBan.d.ts.map +1 -0
- package/lib/esm/classes/ServerBan.js +33 -0
- package/lib/esm/classes/ServerMember.d.ts +138 -0
- package/lib/esm/classes/ServerMember.d.ts.map +1 -0
- package/lib/esm/classes/ServerMember.js +199 -0
- package/lib/esm/classes/Session.d.ts +45 -0
- package/lib/esm/classes/Session.d.ts.map +1 -0
- package/lib/esm/classes/Session.js +65 -0
- package/lib/esm/classes/SystemMessage.d.ts +127 -0
- package/lib/esm/classes/SystemMessage.d.ts.map +1 -0
- package/lib/esm/classes/SystemMessage.js +171 -0
- package/lib/esm/classes/User.d.ts +203 -0
- package/lib/esm/classes/User.d.ts.map +1 -0
- package/lib/esm/classes/User.js +252 -0
- package/lib/esm/classes/UserProfile.d.ts +23 -0
- package/lib/esm/classes/UserProfile.d.ts.map +1 -0
- package/lib/esm/classes/UserProfile.js +31 -0
- package/lib/esm/classes/index.d.ts +21 -0
- package/lib/esm/classes/index.d.ts.map +1 -0
- package/lib/esm/classes/index.js +20 -0
- package/lib/esm/collections/AccountCollection.d.ts +91 -0
- package/lib/esm/collections/AccountCollection.d.ts.map +1 -0
- package/lib/esm/collections/AccountCollection.js +139 -0
- package/lib/esm/collections/BotCollection.d.ts +39 -0
- package/lib/esm/collections/BotCollection.d.ts.map +1 -0
- package/lib/esm/collections/BotCollection.js +68 -0
- package/lib/esm/collections/ChannelCollection.d.ts +39 -0
- package/lib/esm/collections/ChannelCollection.d.ts.map +1 -0
- package/lib/esm/collections/ChannelCollection.js +75 -0
- package/lib/esm/collections/ChannelUnreadCollection.d.ts +24 -0
- package/lib/esm/collections/ChannelUnreadCollection.d.ts.map +1 -0
- package/lib/esm/collections/ChannelUnreadCollection.js +41 -0
- package/lib/esm/collections/ChannelWebhookCollection.d.ts +29 -0
- package/lib/esm/collections/ChannelWebhookCollection.d.ts.map +1 -0
- package/lib/esm/collections/ChannelWebhookCollection.js +52 -0
- package/lib/esm/collections/Collection.d.ts +153 -0
- package/lib/esm/collections/Collection.d.ts.map +1 -0
- package/lib/esm/collections/Collection.js +160 -0
- package/lib/esm/collections/EmojiCollection.d.ts +27 -0
- package/lib/esm/collections/EmojiCollection.d.ts.map +1 -0
- package/lib/esm/collections/EmojiCollection.js +52 -0
- package/lib/esm/collections/MessageCollection.d.ts +28 -0
- package/lib/esm/collections/MessageCollection.d.ts.map +1 -0
- package/lib/esm/collections/MessageCollection.js +54 -0
- package/lib/esm/collections/ServerCollection.d.ts +36 -0
- package/lib/esm/collections/ServerCollection.d.ts.map +1 -0
- package/lib/esm/collections/ServerCollection.js +79 -0
- package/lib/esm/collections/ServerMemberCollection.d.ts +45 -0
- package/lib/esm/collections/ServerMemberCollection.d.ts.map +1 -0
- package/lib/esm/collections/ServerMemberCollection.js +80 -0
- package/lib/esm/collections/SessionCollection.d.ts +27 -0
- package/lib/esm/collections/SessionCollection.d.ts.map +1 -0
- package/lib/esm/collections/SessionCollection.js +46 -0
- package/lib/esm/collections/UserCollection.d.ts +31 -0
- package/lib/esm/collections/UserCollection.d.ts.map +1 -0
- package/lib/esm/collections/UserCollection.js +66 -0
- package/lib/esm/collections/index.d.ts +12 -0
- package/lib/esm/collections/index.d.ts.map +1 -0
- package/lib/esm/collections/index.js +11 -0
- package/lib/esm/events/EventClient.d.ts +89 -0
- package/lib/esm/events/EventClient.d.ts.map +1 -0
- package/lib/esm/events/EventClient.js +175 -0
- package/lib/esm/events/index.d.ts +18 -0
- package/lib/esm/events/index.d.ts.map +1 -0
- package/lib/esm/events/index.js +2 -0
- package/lib/esm/events/v1.d.ts +214 -0
- package/lib/esm/events/v1.d.ts.map +1 -0
- package/lib/esm/events/v1.js +514 -0
- package/lib/esm/hydration/bot.d.ts +21 -0
- package/lib/esm/hydration/bot.d.ts.map +1 -0
- package/lib/esm/hydration/bot.js +28 -0
- package/lib/esm/hydration/channel.d.ts +25 -0
- package/lib/esm/hydration/channel.d.ts.map +1 -0
- package/lib/esm/hydration/channel.js +37 -0
- package/lib/esm/hydration/channelUnread.d.ts +11 -0
- package/lib/esm/hydration/channelUnread.d.ts.map +1 -0
- package/lib/esm/hydration/channelUnread.js +16 -0
- package/lib/esm/hydration/channelWebhook.d.ts +12 -0
- package/lib/esm/hydration/channelWebhook.d.ts.map +1 -0
- package/lib/esm/hydration/channelWebhook.js +18 -0
- package/lib/esm/hydration/emoji.d.ts +13 -0
- package/lib/esm/hydration/emoji.d.ts.map +1 -0
- package/lib/esm/hydration/emoji.js +15 -0
- package/lib/esm/hydration/index.d.ts +1404 -0
- package/lib/esm/hydration/index.d.ts.map +1 -0
- package/lib/esm/hydration/index.js +65 -0
- package/lib/esm/hydration/message.d.ts +25 -0
- package/lib/esm/hydration/message.d.ts.map +1 -0
- package/lib/esm/hydration/message.js +45 -0
- package/lib/esm/hydration/server.d.ts +31 -0
- package/lib/esm/hydration/server.d.ts.map +1 -0
- package/lib/esm/hydration/server.js +41 -0
- package/lib/esm/hydration/serverMember.d.ts +14 -0
- package/lib/esm/hydration/serverMember.d.ts.map +1 -0
- package/lib/esm/hydration/serverMember.js +18 -0
- package/lib/esm/hydration/session.d.ts +8 -0
- package/lib/esm/hydration/session.d.ts.map +1 -0
- package/lib/esm/hydration/session.js +10 -0
- package/lib/esm/hydration/user.d.ts +43 -0
- package/lib/esm/hydration/user.d.ts.map +1 -0
- package/lib/esm/hydration/user.js +50 -0
- package/lib/esm/index.d.ts +9 -0
- package/lib/esm/index.d.ts.map +1 -0
- package/lib/esm/index.js +8 -0
- package/lib/esm/lib/merge.d.ts +15 -0
- package/lib/esm/lib/merge.d.ts.map +1 -0
- package/lib/esm/lib/merge.js +1 -0
- package/lib/esm/lib/regex.d.ts +13 -0
- package/lib/esm/lib/regex.d.ts.map +1 -0
- package/lib/esm/lib/regex.js +12 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/permissions/calculator.d.ts +19 -0
- package/lib/esm/permissions/calculator.d.ts.map +1 -0
- package/lib/esm/permissions/calculator.js +129 -0
- package/lib/esm/permissions/definitions.d.ts +73 -0
- package/lib/esm/permissions/definitions.d.ts.map +1 -0
- package/lib/esm/permissions/definitions.js +121 -0
- package/lib/esm/storage/ObjectStorage.d.ts +28 -0
- package/lib/esm/storage/ObjectStorage.d.ts.map +1 -0
- package/lib/esm/storage/ObjectStorage.js +39 -0
- package/package.json +59 -0
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
import { hydrate } from "../hydration/index.js";
|
|
2
|
+
import { ServerMember, User } from "../index.js";
|
|
3
|
+
import { bitwiseAndEq, calculatePermission, } from "../permissions/calculator.js";
|
|
4
|
+
import { Permission } from "../permissions/definitions.js";
|
|
5
|
+
import { ChannelInvite } from "./Invite.js";
|
|
6
|
+
import { ServerBan } from "./ServerBan.js";
|
|
7
|
+
import { batch } from "solid-js";
|
|
8
|
+
import { decodeTime } from "ulid";
|
|
9
|
+
/**
|
|
10
|
+
* Server Class
|
|
11
|
+
*/
|
|
12
|
+
export class Server {
|
|
13
|
+
#collection;
|
|
14
|
+
id;
|
|
15
|
+
/**
|
|
16
|
+
* Construct Server
|
|
17
|
+
* @param collection Collection
|
|
18
|
+
* @param id Id
|
|
19
|
+
*/
|
|
20
|
+
constructor(collection, id) {
|
|
21
|
+
this.#collection = collection;
|
|
22
|
+
this.id = id;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Convert to string
|
|
26
|
+
* @returns String
|
|
27
|
+
*/
|
|
28
|
+
toString() {
|
|
29
|
+
return `<%${this.id}>`;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Whether this object exists
|
|
33
|
+
*/
|
|
34
|
+
get $exists() {
|
|
35
|
+
return !!this.#collection.getUnderlyingObject(this.id).id;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Time when this server was created
|
|
39
|
+
*/
|
|
40
|
+
get createdAt() {
|
|
41
|
+
return new Date(decodeTime(this.id));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Owner's user ID
|
|
45
|
+
*/
|
|
46
|
+
get ownerId() {
|
|
47
|
+
return this.#collection.getUnderlyingObject(this.id).ownerId;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Owner
|
|
51
|
+
*/
|
|
52
|
+
get owner() {
|
|
53
|
+
return this.#collection.client.users.get(this.#collection.getUnderlyingObject(this.id).ownerId);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Name
|
|
57
|
+
*/
|
|
58
|
+
get name() {
|
|
59
|
+
return this.#collection.getUnderlyingObject(this.id).name;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Description
|
|
63
|
+
*/
|
|
64
|
+
get description() {
|
|
65
|
+
return this.#collection.getUnderlyingObject(this.id).description;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Icon
|
|
69
|
+
*/
|
|
70
|
+
get icon() {
|
|
71
|
+
return this.#collection.getUnderlyingObject(this.id).icon;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Banner
|
|
75
|
+
*/
|
|
76
|
+
get banner() {
|
|
77
|
+
return this.#collection.getUnderlyingObject(this.id).banner;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Channel IDs
|
|
81
|
+
*/
|
|
82
|
+
get channelIds() {
|
|
83
|
+
return this.#collection.getUnderlyingObject(this.id).channelIds;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Channels
|
|
87
|
+
*/
|
|
88
|
+
get channels() {
|
|
89
|
+
return [
|
|
90
|
+
...this.#collection.getUnderlyingObject(this.id).channelIds.values(),
|
|
91
|
+
]
|
|
92
|
+
.map((id) => this.#collection.client.channels.get(id))
|
|
93
|
+
.filter((x) => x);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Categories
|
|
97
|
+
*/
|
|
98
|
+
get categories() {
|
|
99
|
+
return this.#collection.getUnderlyingObject(this.id).categories;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* System message channels
|
|
103
|
+
*/
|
|
104
|
+
get systemMessages() {
|
|
105
|
+
return this.#collection.getUnderlyingObject(this.id).systemMessages;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Roles
|
|
109
|
+
*/
|
|
110
|
+
get roles() {
|
|
111
|
+
return this.#collection.getUnderlyingObject(this.id).roles;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Default permissions
|
|
115
|
+
*/
|
|
116
|
+
get defaultPermissions() {
|
|
117
|
+
return this.#collection.getUnderlyingObject(this.id).defaultPermissions;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Server flags
|
|
121
|
+
*/
|
|
122
|
+
get flags() {
|
|
123
|
+
return this.#collection.getUnderlyingObject(this.id).flags;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Whether analytics are enabled for this server
|
|
127
|
+
*/
|
|
128
|
+
get analytics() {
|
|
129
|
+
return this.#collection.getUnderlyingObject(this.id).analytics;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Whether this server is publicly discoverable
|
|
133
|
+
*/
|
|
134
|
+
get discoverable() {
|
|
135
|
+
return this.#collection.getUnderlyingObject(this.id).discoverable;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Whether this server is marked as mature
|
|
139
|
+
*/
|
|
140
|
+
get mature() {
|
|
141
|
+
return this.#collection.getUnderlyingObject(this.id).nsfw;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get an array of ordered categories with their respective channels.
|
|
145
|
+
* Uncategorised channels are returned in `id="default"` category.
|
|
146
|
+
*/
|
|
147
|
+
get orderedChannels() {
|
|
148
|
+
const uncategorised = new Set(this.channels.map((channel) => channel.id));
|
|
149
|
+
const elements = [];
|
|
150
|
+
let defaultCategory;
|
|
151
|
+
const categories = this.categories;
|
|
152
|
+
if (categories) {
|
|
153
|
+
for (const category of categories) {
|
|
154
|
+
const channels = [];
|
|
155
|
+
for (const key of category.channels) {
|
|
156
|
+
if (uncategorised.delete(key)) {
|
|
157
|
+
channels.push(this.#collection.client.channels.get(key));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const cat = {
|
|
161
|
+
...category,
|
|
162
|
+
channels,
|
|
163
|
+
};
|
|
164
|
+
if (cat.id === "default") {
|
|
165
|
+
if (channels.length === 0)
|
|
166
|
+
continue;
|
|
167
|
+
defaultCategory = cat;
|
|
168
|
+
}
|
|
169
|
+
elements.push(cat);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (uncategorised.size > 0) {
|
|
173
|
+
const channels = [...uncategorised].map((key) => this.#collection.client.channels.get(key));
|
|
174
|
+
if (defaultCategory) {
|
|
175
|
+
defaultCategory.channels = [...defaultCategory.channels, ...channels];
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
elements.unshift({
|
|
179
|
+
id: "default",
|
|
180
|
+
title: "Default",
|
|
181
|
+
channels,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return elements;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Default channel for this server
|
|
189
|
+
*/
|
|
190
|
+
get defaultChannel() {
|
|
191
|
+
return this.orderedChannels.find((cat) => cat.channels.length)?.channels[0];
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get an ordered array of roles with their IDs attached.
|
|
195
|
+
* The highest ranking roles will be first followed by lower
|
|
196
|
+
* ranking roles. This is dictated by the "rank" property
|
|
197
|
+
* which is smaller for higher priority roles.
|
|
198
|
+
*/
|
|
199
|
+
get orderedRoles() {
|
|
200
|
+
const roles = this.roles;
|
|
201
|
+
return roles
|
|
202
|
+
? [...roles.entries()]
|
|
203
|
+
.map(([id, role]) => ({ id, ...role }))
|
|
204
|
+
.sort((a, b) => (a.rank || 0) - (b.rank || 0))
|
|
205
|
+
: [];
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Check whether the server is currently unread
|
|
209
|
+
* @returns Whether the server is unread
|
|
210
|
+
*/
|
|
211
|
+
get unread() {
|
|
212
|
+
return this.channels.find((channel) => channel.unread);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Find all message IDs of unread messages
|
|
216
|
+
* @returns Array of message IDs which are unread
|
|
217
|
+
*/
|
|
218
|
+
get mentions() {
|
|
219
|
+
const arr = this.channels.map((channel) => Array.from(channel.mentions?.values() ?? []));
|
|
220
|
+
return [].concat(...arr);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* URL to the server's icon
|
|
224
|
+
*/
|
|
225
|
+
get iconURL() {
|
|
226
|
+
return this.icon?.createFileURL({ max_side: 256 });
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* URL to the server's animated icon
|
|
230
|
+
*/
|
|
231
|
+
get animatedIconURL() {
|
|
232
|
+
return this.icon?.createFileURL({ max_side: 256 }, true);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* URL to the server's banner
|
|
236
|
+
*/
|
|
237
|
+
get bannerURL() {
|
|
238
|
+
return this.banner?.createFileURL({ max_side: 256 }, true);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Own member object for this server
|
|
242
|
+
*/
|
|
243
|
+
get member() {
|
|
244
|
+
return this.#collection.client.serverMembers.getByKey({
|
|
245
|
+
server: this.id,
|
|
246
|
+
user: this.#collection.client.user.id,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Permission the currently authenticated user has against this server
|
|
251
|
+
*/
|
|
252
|
+
get permission() {
|
|
253
|
+
return calculatePermission(this.#collection.client, this);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Check whether we have a given permission in a server
|
|
257
|
+
* @param permission Permission Names
|
|
258
|
+
* @returns Whether we have this permission
|
|
259
|
+
*/
|
|
260
|
+
havePermission(...permission) {
|
|
261
|
+
return bitwiseAndEq(this.permission, ...permission.map((x) => Permission[x]));
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Check whether we have at least one of the given permissions in a server
|
|
265
|
+
* @param permission Permission Names
|
|
266
|
+
* @returns Whether we have one of the permissions
|
|
267
|
+
*/
|
|
268
|
+
orPermission(...permission) {
|
|
269
|
+
return (permission.findIndex((x) => bitwiseAndEq(this.permission, Permission[x])) !== -1);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Helper function to retrieve cached server member by their ID in this server
|
|
273
|
+
* @param userId User's ID
|
|
274
|
+
* @returns Server Member (if cached)
|
|
275
|
+
*/
|
|
276
|
+
getMember(userId) {
|
|
277
|
+
return this.#collection.client.serverMembers.getByKey({
|
|
278
|
+
server: this.id,
|
|
279
|
+
user: userId,
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Create a channel
|
|
284
|
+
* @param data Channel create route data
|
|
285
|
+
* @returns The newly-created channel
|
|
286
|
+
*/
|
|
287
|
+
async createChannel(data) {
|
|
288
|
+
const channel = await this.#collection.client.api.post(`/servers/${this.id}/channels`, data);
|
|
289
|
+
return this.#collection.client.channels.getOrCreate(channel._id, channel);
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Edit a server
|
|
293
|
+
* @param data Changes
|
|
294
|
+
*/
|
|
295
|
+
async edit(data) {
|
|
296
|
+
this.#collection.updateUnderlyingObject(this.id, hydrate("server", await this.#collection.client.api.patch(`/servers/${this.id}`, data), this.#collection.client, false));
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Delete the underlying server
|
|
300
|
+
* @param leaveEvent Whether we are leaving
|
|
301
|
+
*/
|
|
302
|
+
$delete(leaveEvent) {
|
|
303
|
+
batch(() => {
|
|
304
|
+
const server = this.#collection.client.servers.getUnderlyingObject(this.id);
|
|
305
|
+
// Avoid race conditions
|
|
306
|
+
if (server.id) {
|
|
307
|
+
this.#collection.client.emit(leaveEvent ? "serverLeave" : "serverDelete", server);
|
|
308
|
+
for (const channel of this.channelIds) {
|
|
309
|
+
this.#collection.client.channels.delete(channel);
|
|
310
|
+
}
|
|
311
|
+
this.#collection.delete(this.id);
|
|
312
|
+
}
|
|
313
|
+
// TODO: delete members, emoji, etc
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Delete or leave a server
|
|
318
|
+
* @param leaveSilently Whether to not send a message on leave
|
|
319
|
+
*/
|
|
320
|
+
async delete(leaveSilently) {
|
|
321
|
+
await this.#collection.client.api.delete(`/servers/${this.id}`, {
|
|
322
|
+
leave_silently: leaveSilently,
|
|
323
|
+
});
|
|
324
|
+
this.$delete();
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Mark a server as read
|
|
328
|
+
*/
|
|
329
|
+
async ack() {
|
|
330
|
+
batch(() => {
|
|
331
|
+
for (const channel of this.channels) {
|
|
332
|
+
channel.ack(undefined, false, true);
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
await this.#collection.client.api.put(`/servers/${this.id}/ack`);
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Ban user from this server
|
|
339
|
+
* @param user User
|
|
340
|
+
* @param options Ban options
|
|
341
|
+
*/
|
|
342
|
+
async banUser(user, options = {}) {
|
|
343
|
+
const userId = user instanceof User
|
|
344
|
+
? user.id
|
|
345
|
+
: user instanceof ServerMember
|
|
346
|
+
? user.id.user
|
|
347
|
+
: user;
|
|
348
|
+
const ban = await this.#collection.client.api.put(`/servers/${this.id}/bans/${userId}`, options);
|
|
349
|
+
return new ServerBan(this.#collection.client, ban);
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Kick user from this server
|
|
353
|
+
* @param user User
|
|
354
|
+
*/
|
|
355
|
+
async kickUser(user) {
|
|
356
|
+
return await this.#collection.client.api.delete(`/servers/${this.id}/members/${typeof user === "string"
|
|
357
|
+
? user
|
|
358
|
+
: user instanceof User
|
|
359
|
+
? user.id
|
|
360
|
+
: user.id.user}`);
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Pardon user's ban
|
|
364
|
+
* @param user User
|
|
365
|
+
*/
|
|
366
|
+
async unbanUser(user) {
|
|
367
|
+
const userId = user instanceof User ? user.id : user;
|
|
368
|
+
return await this.#collection.client.api.delete(`/servers/${this.id}/bans/${userId}`);
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Fetch a server's invites
|
|
372
|
+
* @returns An array of the server's invites
|
|
373
|
+
*/
|
|
374
|
+
async fetchInvites() {
|
|
375
|
+
const invites = await this.#collection.client.api.get(`/servers/${this.id}/invites`);
|
|
376
|
+
return invites.map((invite) => ChannelInvite.from(this.#collection.client, invite));
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Fetch a server's bans
|
|
380
|
+
* @returns An array of the server's bans.
|
|
381
|
+
*/
|
|
382
|
+
async fetchBans() {
|
|
383
|
+
const { users, bans } = await this.#collection.client.api.get(`/servers/${this.id}/bans`);
|
|
384
|
+
const userDict = users.reduce((d, c) => ({ ...d, [c._id]: c }), {});
|
|
385
|
+
return bans.map((ban) => new ServerBan(this.#collection.client, ban, userDict[ban._id.user]));
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Set role permissions
|
|
389
|
+
* @param roleId Role Id, set to 'default' to affect all users
|
|
390
|
+
* @param permissions Permission value
|
|
391
|
+
*/
|
|
392
|
+
async setPermissions(roleId = "default", permissions) {
|
|
393
|
+
return await this.#collection.client.api.put(`/servers/${this.id}/permissions/${roleId}`, { permissions: permissions });
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Create role
|
|
397
|
+
* @param name Role name
|
|
398
|
+
*/
|
|
399
|
+
async createRole(name) {
|
|
400
|
+
return await this.#collection.client.api.post(`/servers/${this.id}/roles`, {
|
|
401
|
+
name,
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Edit a role
|
|
406
|
+
* @param roleId Role ID
|
|
407
|
+
* @param data Role editing route data
|
|
408
|
+
*/
|
|
409
|
+
async editRole(roleId, data) {
|
|
410
|
+
return await this.#collection.client.api.patch(`/servers/${this.id}/roles/${roleId}`, data);
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Delete role
|
|
414
|
+
* @param roleId Role ID
|
|
415
|
+
*/
|
|
416
|
+
async deleteRole(roleId) {
|
|
417
|
+
return await this.#collection.client.api.delete(`/servers/${this.id}/roles/${roleId}`);
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Fetch a server member
|
|
421
|
+
* @param user User
|
|
422
|
+
* @returns Server member object
|
|
423
|
+
*/
|
|
424
|
+
async fetchMember(user) {
|
|
425
|
+
const userId = typeof user === "string" ? user : user.id;
|
|
426
|
+
const existing = this.#collection.client.serverMembers.getByKey({
|
|
427
|
+
server: this.id,
|
|
428
|
+
user: userId,
|
|
429
|
+
});
|
|
430
|
+
if (existing)
|
|
431
|
+
return existing;
|
|
432
|
+
return this.#collection.client.serverMembers.fetch(this.id, userId);
|
|
433
|
+
}
|
|
434
|
+
#synced;
|
|
435
|
+
/**
|
|
436
|
+
* Optimised member fetch route
|
|
437
|
+
* @param excludeOffline
|
|
438
|
+
*/
|
|
439
|
+
async syncMembers(excludeOffline) {
|
|
440
|
+
if (this.#synced && (this.#synced === "full" || excludeOffline))
|
|
441
|
+
return;
|
|
442
|
+
const data = await this.#collection.client.api.get(`/servers/${this.id}/members`, { exclude_offline: excludeOffline });
|
|
443
|
+
batch(() => {
|
|
444
|
+
if (excludeOffline) {
|
|
445
|
+
for (let i = 0; i < data.users.length; i++) {
|
|
446
|
+
const user = data.users[i];
|
|
447
|
+
if (user.online) {
|
|
448
|
+
this.#collection.client.users.getOrCreate(user._id, user);
|
|
449
|
+
this.#collection.client.serverMembers.getOrCreate(data.members[i]._id, data.members[i]);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
else {
|
|
454
|
+
for (let i = 0; i < data.users.length; i++) {
|
|
455
|
+
this.#collection.client.users.getOrCreate(data.users[i]._id, data.users[i]);
|
|
456
|
+
this.#collection.client.serverMembers.getOrCreate(data.members[i]._id, data.members[i]);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Reset member sync status
|
|
463
|
+
*/
|
|
464
|
+
resetSyncStatus() {
|
|
465
|
+
this.#synced = undefined;
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Fetch a server's members
|
|
469
|
+
* @returns List of the server's members and their user objects
|
|
470
|
+
*/
|
|
471
|
+
async fetchMembers() {
|
|
472
|
+
const data = (await this.#collection.client.api.get(
|
|
473
|
+
// @ts-expect-error TODO weird typing issue
|
|
474
|
+
`/servers/${this.id}/members`));
|
|
475
|
+
return batch(() => ({
|
|
476
|
+
members: data.members.map((member) => this.#collection.client.serverMembers.getOrCreate(member._id, member)),
|
|
477
|
+
users: data.users.map((user) => this.#collection.client.users.getOrCreate(user._id, user)),
|
|
478
|
+
}));
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Query members from a server by name
|
|
482
|
+
* @param query Name
|
|
483
|
+
* @returns List of the server's members and their user objects
|
|
484
|
+
*/
|
|
485
|
+
async queryMembersExperimental(query) {
|
|
486
|
+
const data = (await this.#collection.client.api.get(`/servers/${this.id}/members_experimental_query?experimental_api=true&query=${encodeURIComponent(query)}`));
|
|
487
|
+
return batch(() => ({
|
|
488
|
+
members: data.members.map((member) => this.#collection.client.serverMembers.getOrCreate(member._id, member)),
|
|
489
|
+
users: data.users.map((user) => this.#collection.client.users.getOrCreate(user._id, user)),
|
|
490
|
+
}));
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Create an emoji on the server
|
|
494
|
+
* @param autumnId Autumn Id
|
|
495
|
+
* @param options Options
|
|
496
|
+
*/
|
|
497
|
+
async createEmoji(autumnId, options) {
|
|
498
|
+
const emoji = await this.#collection.client.api.put(`/custom/emoji/${autumnId}`, {
|
|
499
|
+
parent: {
|
|
500
|
+
type: "Server",
|
|
501
|
+
id: this.id,
|
|
502
|
+
},
|
|
503
|
+
...options,
|
|
504
|
+
});
|
|
505
|
+
return this.#collection.client.emojis.getOrCreate(emoji._id, emoji, true);
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Fetch a server's emoji
|
|
509
|
+
* @returns List of server emoji
|
|
510
|
+
*/
|
|
511
|
+
async fetchEmojis() {
|
|
512
|
+
const emojis = await this.#collection.client.api.get(`/servers/${this.id}/emojis`);
|
|
513
|
+
return batch(() => emojis.map((emoji) => this.#collection.client.emojis.getOrCreate(emoji._id, emoji)));
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Delete emoji
|
|
517
|
+
* @param emojiId Emoji ID
|
|
518
|
+
*/
|
|
519
|
+
async deleteEmoji(emojiId) {
|
|
520
|
+
return await this.#collection.client.api.delete(`/custom/emoji/${emojiId}`);
|
|
521
|
+
}
|
|
522
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BannedUser as ApiBannedUser, ServerBan as ApiServerBan, MemberCompositeKey } from "../api";
|
|
2
|
+
import { BannedUser, Client } from "../index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Server Ban
|
|
5
|
+
*/
|
|
6
|
+
export declare class ServerBan {
|
|
7
|
+
protected client: Client;
|
|
8
|
+
readonly id: MemberCompositeKey;
|
|
9
|
+
readonly reason?: string;
|
|
10
|
+
readonly user?: BannedUser;
|
|
11
|
+
/**
|
|
12
|
+
* Construct Server Ban
|
|
13
|
+
* @param client Client
|
|
14
|
+
* @param data Data
|
|
15
|
+
*/
|
|
16
|
+
constructor(client: Client, data: ApiServerBan, user?: ApiBannedUser);
|
|
17
|
+
/**
|
|
18
|
+
* Server
|
|
19
|
+
*/
|
|
20
|
+
get server(): import("./Server").Server | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Remove this server ban
|
|
23
|
+
*/
|
|
24
|
+
pardon(): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=ServerBan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerBan.d.ts","sourceRoot":"","sources":["../../../src/classes/ServerBan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,IAAI,aAAa,EAC3B,SAAS,IAAI,YAAY,EACzB,kBAAkB,EACnB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,qBAAa,SAAS;IACpB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAE3B;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,aAAa;IAOpE;;OAEG;IACH,IAAI,MAAM,0CAET;IAED;;OAEG;IACG,MAAM;CAKb"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BannedUser } from "../index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Server Ban
|
|
4
|
+
*/
|
|
5
|
+
export class ServerBan {
|
|
6
|
+
client;
|
|
7
|
+
id;
|
|
8
|
+
reason;
|
|
9
|
+
user;
|
|
10
|
+
/**
|
|
11
|
+
* Construct Server Ban
|
|
12
|
+
* @param client Client
|
|
13
|
+
* @param data Data
|
|
14
|
+
*/
|
|
15
|
+
constructor(client, data, user) {
|
|
16
|
+
this.client = client;
|
|
17
|
+
this.id = data._id;
|
|
18
|
+
this.reason = data.reason;
|
|
19
|
+
this.user = user ? new BannedUser(client, user) : undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Server
|
|
23
|
+
*/
|
|
24
|
+
get server() {
|
|
25
|
+
return this.client.servers.get(this.id.server);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Remove this server ban
|
|
29
|
+
*/
|
|
30
|
+
async pardon() {
|
|
31
|
+
await this.client.api.delete(`/servers/${this.id.server}/bans/${this.id.user}`);
|
|
32
|
+
}
|
|
33
|
+
}
|