@buape/carbon 0.2.0 → 0.3.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/dist/package.json +7 -2
- package/dist/src/abstracts/BaseComponentInteraction.d.ts +6 -1
- package/dist/src/abstracts/BaseComponentInteraction.d.ts.map +1 -1
- package/dist/src/abstracts/BaseComponentInteraction.js +12 -0
- package/dist/src/abstracts/BaseComponentInteraction.js.map +1 -1
- package/dist/src/abstracts/BaseInteraction.d.ts +10 -1
- package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -1
- package/dist/src/abstracts/BaseInteraction.js +10 -1
- package/dist/src/abstracts/BaseInteraction.js.map +1 -1
- package/dist/src/classes/Client.d.ts.map +1 -1
- package/dist/src/classes/Client.js +21 -11
- package/dist/src/classes/Client.js.map +1 -1
- package/dist/src/classes/Embed.d.ts +60 -0
- package/dist/src/classes/Embed.d.ts.map +1 -0
- package/dist/src/classes/Embed.js +73 -0
- package/dist/src/classes/Embed.js.map +1 -0
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internals/AutocompleteInteraction.d.ts +1 -1
- package/dist/src/internals/FieldsHandler.d.ts +27 -0
- package/dist/src/internals/FieldsHandler.d.ts.map +1 -0
- package/dist/src/internals/FieldsHandler.js +37 -0
- package/dist/src/internals/FieldsHandler.js.map +1 -0
- package/dist/src/internals/ModalInteraction.d.ts +3 -4
- package/dist/src/internals/ModalInteraction.d.ts.map +1 -1
- package/dist/src/internals/ModalInteraction.js +3 -10
- package/dist/src/internals/ModalInteraction.js.map +1 -1
- package/dist/src/internals/OptionsHandler.d.ts +33 -17
- package/dist/src/internals/OptionsHandler.d.ts.map +1 -1
- package/dist/src/internals/OptionsHandler.js +52 -58
- package/dist/src/internals/OptionsHandler.js.map +1 -1
- package/dist/src/utils.d.ts +3 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +54 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -1
- package/.turbo/turbo-build.log +0 -5
- package/.turbo/turbo-dev.log +0 -8
- package/.turbo/turbo-docs.log +0 -12
- package/CHANGELOG.md +0 -44
- package/dist/src/abstracts/ButtonInteraction.d.ts +0 -8
- package/dist/src/abstracts/ButtonInteraction.d.ts.map +0 -1
- package/dist/src/abstracts/ButtonInteraction.js +0 -18
- package/dist/src/abstracts/ButtonInteraction.js.map +0 -1
- package/dist/src/abstracts/ChannelSelectMenuInteraction.d.ts +0 -7
- package/dist/src/abstracts/ChannelSelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/abstracts/ChannelSelectMenuInteraction.js +0 -11
- package/dist/src/abstracts/ChannelSelectMenuInteraction.js.map +0 -1
- package/dist/src/abstracts/CommandHandler.d.ts +0 -6
- package/dist/src/abstracts/CommandHandler.d.ts.map +0 -1
- package/dist/src/abstracts/CommandHandler.js +0 -65
- package/dist/src/abstracts/CommandHandler.js.map +0 -1
- package/dist/src/abstracts/CommandInteraction.d.ts +0 -15
- package/dist/src/abstracts/CommandInteraction.d.ts.map +0 -1
- package/dist/src/abstracts/CommandInteraction.js +0 -60
- package/dist/src/abstracts/CommandInteraction.js.map +0 -1
- package/dist/src/abstracts/ComponentHandler.d.ts +0 -6
- package/dist/src/abstracts/ComponentHandler.d.ts.map +0 -1
- package/dist/src/abstracts/ComponentHandler.js +0 -64
- package/dist/src/abstracts/ComponentHandler.js.map +0 -1
- package/dist/src/abstracts/MentionableSelectMenuInteraction.d.ts +0 -8
- package/dist/src/abstracts/MentionableSelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/abstracts/MentionableSelectMenuInteraction.js +0 -15
- package/dist/src/abstracts/MentionableSelectMenuInteraction.js.map +0 -1
- package/dist/src/abstracts/RoleSelectMenuInteraction.d.ts +0 -8
- package/dist/src/abstracts/RoleSelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/abstracts/RoleSelectMenuInteraction.js +0 -14
- package/dist/src/abstracts/RoleSelectMenuInteraction.js.map +0 -1
- package/dist/src/abstracts/StringSelectMenuInteraction.d.ts +0 -8
- package/dist/src/abstracts/StringSelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/abstracts/StringSelectMenuInteraction.js +0 -14
- package/dist/src/abstracts/StringSelectMenuInteraction.js.map +0 -1
- package/dist/src/abstracts/UserSelectMenuInteraction.d.ts +0 -8
- package/dist/src/abstracts/UserSelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/abstracts/UserSelectMenuInteraction.js +0 -14
- package/dist/src/abstracts/UserSelectMenuInteraction.js.map +0 -1
- package/dist/src/classes/Paginator.d.ts +0 -3
- package/dist/src/classes/Paginator.d.ts.map +0 -1
- package/dist/src/classes/Paginator.js +0 -3
- package/dist/src/classes/Paginator.js.map +0 -1
- package/dist/src/internals/ComponentHandler copy.d.ts +0 -17
- package/dist/src/internals/ComponentHandler copy.d.ts.map +0 -1
- package/dist/src/internals/ComponentHandler copy.js +0 -75
- package/dist/src/internals/ComponentHandler copy.js.map +0 -1
- package/dist/src/structures/AnySelectMenu.d.ts +0 -31
- package/dist/src/structures/AnySelectMenu.d.ts.map +0 -1
- package/dist/src/structures/AnySelectMenu.js +0 -19
- package/dist/src/structures/AnySelectMenu.js.map +0 -1
- package/dist/src/structures/AnySelectMenuInteraction.d.ts +0 -12
- package/dist/src/structures/AnySelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/structures/AnySelectMenuInteraction.js +0 -21
- package/dist/src/structures/AnySelectMenuInteraction.js.map +0 -1
- package/dist/src/structures/Base.d.ts +0 -10
- package/dist/src/structures/Base.d.ts.map +0 -1
- package/dist/src/structures/Base.js +0 -11
- package/dist/src/structures/Base.js.map +0 -1
- package/dist/src/structures/BaseCommand.d.ts +0 -64
- package/dist/src/structures/BaseCommand.d.ts.map +0 -1
- package/dist/src/structures/BaseCommand.js +0 -58
- package/dist/src/structures/BaseCommand.js.map +0 -1
- package/dist/src/structures/BaseComponent.d.ts +0 -34
- package/dist/src/structures/BaseComponent.d.ts.map +0 -1
- package/dist/src/structures/BaseComponent.js +0 -30
- package/dist/src/structures/BaseComponent.js.map +0 -1
- package/dist/src/structures/BaseComponentInteraction.d.ts +0 -9
- package/dist/src/structures/BaseComponentInteraction.d.ts.map +0 -1
- package/dist/src/structures/BaseComponentInteraction.js +0 -14
- package/dist/src/structures/BaseComponentInteraction.js.map +0 -1
- package/dist/src/structures/BaseInteraction.d.ts +0 -81
- package/dist/src/structures/BaseInteraction.d.ts.map +0 -1
- package/dist/src/structures/BaseInteraction.js +0 -99
- package/dist/src/structures/BaseInteraction.js.map +0 -1
- package/dist/src/structures/ButtonInteraction.d.ts +0 -8
- package/dist/src/structures/ButtonInteraction.d.ts.map +0 -1
- package/dist/src/structures/ButtonInteraction.js +0 -18
- package/dist/src/structures/ButtonInteraction.js.map +0 -1
- package/dist/src/structures/ChannelSelectMenuInteraction.d.ts +0 -7
- package/dist/src/structures/ChannelSelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/structures/ChannelSelectMenuInteraction.js +0 -11
- package/dist/src/structures/ChannelSelectMenuInteraction.js.map +0 -1
- package/dist/src/structures/CommandHandler.d.ts +0 -6
- package/dist/src/structures/CommandHandler.d.ts.map +0 -1
- package/dist/src/structures/CommandHandler.js +0 -70
- package/dist/src/structures/CommandHandler.js.map +0 -1
- package/dist/src/structures/CommandInteraction.d.ts +0 -15
- package/dist/src/structures/CommandInteraction.d.ts.map +0 -1
- package/dist/src/structures/CommandInteraction.js +0 -60
- package/dist/src/structures/CommandInteraction.js.map +0 -1
- package/dist/src/structures/ComponentHandler.d.ts +0 -6
- package/dist/src/structures/ComponentHandler.d.ts.map +0 -1
- package/dist/src/structures/ComponentHandler.js +0 -64
- package/dist/src/structures/ComponentHandler.js.map +0 -1
- package/dist/src/structures/MentionableSelectMenuInteraction.d.ts +0 -8
- package/dist/src/structures/MentionableSelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/structures/MentionableSelectMenuInteraction.js +0 -15
- package/dist/src/structures/MentionableSelectMenuInteraction.js.map +0 -1
- package/dist/src/structures/RoleSelectMenuInteraction.d.ts +0 -8
- package/dist/src/structures/RoleSelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/structures/RoleSelectMenuInteraction.js +0 -14
- package/dist/src/structures/RoleSelectMenuInteraction.js.map +0 -1
- package/dist/src/structures/StringSelectMenuInteraction.d.ts +0 -8
- package/dist/src/structures/StringSelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/structures/StringSelectMenuInteraction.js +0 -14
- package/dist/src/structures/StringSelectMenuInteraction.js.map +0 -1
- package/dist/src/structures/UserSelectMenuInteraction.d.ts +0 -8
- package/dist/src/structures/UserSelectMenuInteraction.d.ts.map +0 -1
- package/dist/src/structures/UserSelectMenuInteraction.js +0 -14
- package/dist/src/structures/UserSelectMenuInteraction.js.map +0 -1
- package/dist/src/types.d.ts +0 -31
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -33
- package/dist/src/types.js.map +0 -1
- package/docs/classes/AnySelectMenu.mdx +0 -114
- package/docs/classes/AnySelectMenuInteraction.mdx +0 -175
- package/docs/classes/AutocompleteInteraction.mdx +0 -166
- package/docs/classes/AutocompleteOptionsHandler.mdx +0 -243
- package/docs/classes/BaseChannel.mdx +0 -97
- package/docs/classes/BaseCommand.mdx +0 -61
- package/docs/classes/BaseComponent.mdx +0 -55
- package/docs/classes/BaseComponentInteraction.mdx +0 -160
- package/docs/classes/BaseGuildChannel.mdx +0 -262
- package/docs/classes/BaseGuildTextChannel.mdx +0 -360
- package/docs/classes/BaseInteraction.mdx +0 -137
- package/docs/classes/Button.mdx +0 -99
- package/docs/classes/ButtonInteraction.mdx +0 -155
- package/docs/classes/ChannelSelectMenu.mdx +0 -122
- package/docs/classes/ChannelSelectMenuInteraction.mdx +0 -171
- package/docs/classes/Client.mdx +0 -48
- package/docs/classes/Command.mdx +0 -111
- package/docs/classes/CommandHandler.mdx +0 -65
- package/docs/classes/CommandInteraction.mdx +0 -155
- package/docs/classes/CommandWithSubcommandGroups.mdx +0 -73
- package/docs/classes/CommandWithSubcommands.mdx +0 -76
- package/docs/classes/ComponentHandler.mdx +0 -49
- package/docs/classes/DmChannel.mdx +0 -118
- package/docs/classes/GroupDmChannel.mdx +0 -197
- package/docs/classes/Guild.mdx +0 -157
- package/docs/classes/GuildAnnouncementChannel.mdx +0 -377
- package/docs/classes/GuildCategoryChannel.mdx +0 -272
- package/docs/classes/GuildForumChannel.mdx +0 -333
- package/docs/classes/GuildMediaChannel.mdx +0 -327
- package/docs/classes/GuildStageChannel.mdx +0 -276
- package/docs/classes/GuildStageOrVoiceChannel.mdx +0 -292
- package/docs/classes/GuildTextChannel.mdx +0 -367
- package/docs/classes/GuildThreadChannel.mdx +0 -425
- package/docs/classes/GuildThreadOnlyChannel.mdx +0 -333
- package/docs/classes/GuildVoiceChannel.mdx +0 -276
- package/docs/classes/LinkButton.mdx +0 -84
- package/docs/classes/MentionableSelectMenu.mdx +0 -120
- package/docs/classes/MentionableSelectMenuInteraction.mdx +0 -171
- package/docs/classes/Message.mdx +0 -126
- package/docs/classes/OptionsHandler.mdx +0 -203
- package/docs/classes/PremiumButton.mdx +0 -84
- package/docs/classes/Role.mdx +0 -228
- package/docs/classes/RoleSelectMenu.mdx +0 -120
- package/docs/classes/RoleSelectMenuInteraction.mdx +0 -171
- package/docs/classes/Row.mdx +0 -88
- package/docs/classes/StringSelectMenu.mdx +0 -120
- package/docs/classes/StringSelectMenuInteraction.mdx +0 -171
- package/docs/classes/User.mdx +0 -119
- package/docs/classes/UserSelectMenu.mdx +0 -120
- package/docs/classes/UserSelectMenuInteraction.mdx +0 -171
- package/docs/enumerations/ClientMode.mdx +0 -16
- package/docs/functions/channelFactory.mdx +0 -16
- package/docs/index.mdx +0 -83
- package/docs/type-aliases/AnySelectMenuComponentType.mdx +0 -5
- package/docs/type-aliases/ClientOptions.mdx +0 -20
- package/docs/type-aliases/CommandOptions.mdx +0 -5
- package/docs/type-aliases/ComponentAdditionalData.mdx +0 -9
- package/docs/type-aliases/InteractionFileData.mdx +0 -15
- package/docs/type-aliases/InteractionReplyData.mdx +0 -14
- package/docs/type-aliases/InteractionReplyOptions.mdx +0 -13
- package/docs/type-aliases/RawOptions.mdx +0 -9
- package/docs/type-aliases/meta.json +0 -3
- package/src/README.md +0 -7
- package/src/abstracts/AnySelectMenu.ts +0 -63
- package/src/abstracts/AnySelectMenuInteraction.ts +0 -29
- package/src/abstracts/Base.ts +0 -12
- package/src/abstracts/BaseChannel.ts +0 -73
- package/src/abstracts/BaseCommand.ts +0 -89
- package/src/abstracts/BaseComponent.ts +0 -49
- package/src/abstracts/BaseComponentInteraction.ts +0 -19
- package/src/abstracts/BaseGuildChannel.ts +0 -152
- package/src/abstracts/BaseGuildTextChannel.ts +0 -77
- package/src/abstracts/BaseInteraction.ts +0 -209
- package/src/abstracts/GuildThreadOnlyChannel.ts +0 -71
- package/src/classes/Button.ts +0 -95
- package/src/classes/ChannelSelectMenu.ts +0 -21
- package/src/classes/Client.ts +0 -277
- package/src/classes/Command.ts +0 -53
- package/src/classes/CommandWithSubcommandGroups.ts +0 -47
- package/src/classes/CommandWithSubcommands.ts +0 -35
- package/src/classes/MentionableSelectMenu.ts +0 -19
- package/src/classes/Modal.ts +0 -38
- package/src/classes/RoleSelectMenu.ts +0 -19
- package/src/classes/Row.ts +0 -50
- package/src/classes/StringSelectMenu.ts +0 -19
- package/src/classes/TextInput.ts +0 -65
- package/src/classes/UserSelectMenu.ts +0 -19
- package/src/factories/channelFactory.ts +0 -43
- package/src/index.ts +0 -62
- package/src/internals/AutocompleteInteraction.ts +0 -107
- package/src/internals/ButtonInteraction.ts +0 -26
- package/src/internals/ChannelSelectMenuInteraction.ts +0 -15
- package/src/internals/CommandHandler.ts +0 -127
- package/src/internals/CommandInteraction.ts +0 -49
- package/src/internals/ComponentHandler.ts +0 -92
- package/src/internals/MentionableSelectMenuInteraction.ts +0 -21
- package/src/internals/ModalHandler.ts +0 -27
- package/src/internals/ModalInteraction.ts +0 -25
- package/src/internals/OptionsHandler.ts +0 -148
- package/src/internals/RoleSelectMenuInteraction.ts +0 -20
- package/src/internals/StringSelectMenuInteraction.ts +0 -20
- package/src/internals/UserSelectMenuInteraction.ts +0 -20
- package/src/structures/DmChannel.ts +0 -31
- package/src/structures/GroupDmChannel.ts +0 -132
- package/src/structures/Guild.ts +0 -154
- package/src/structures/GuildAnnouncementChannel.ts +0 -20
- package/src/structures/GuildCategoryChannel.ts +0 -16
- package/src/structures/GuildForumChannel.ts +0 -20
- package/src/structures/GuildMediaChannel.ts +0 -13
- package/src/structures/GuildMember.ts +0 -231
- package/src/structures/GuildStageOrVoiceChannel.ts +0 -46
- package/src/structures/GuildTextChannel.ts +0 -21
- package/src/structures/GuildThreadChannel.ts +0 -150
- package/src/structures/Message.ts +0 -124
- package/src/structures/Role.ts +0 -201
- package/src/structures/User.ts +0 -153
- package/src/utils.ts +0 -13
- package/tests/index.test.ts +0 -4
- package/tsconfig.json +0 -12
- package/typedoc.json +0 -9
package/src/structures/Role.ts
DELETED
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type APIRole,
|
|
3
|
-
type APIRoleTags,
|
|
4
|
-
type RoleFlags,
|
|
5
|
-
Routes
|
|
6
|
-
} from "discord-api-types/v10"
|
|
7
|
-
import { Base } from "../abstracts/Base.js"
|
|
8
|
-
import type { Client } from "../classes/Client.js"
|
|
9
|
-
|
|
10
|
-
export class Role extends Base {
|
|
11
|
-
/**
|
|
12
|
-
* The ID of the role.
|
|
13
|
-
*/
|
|
14
|
-
id: string
|
|
15
|
-
/**
|
|
16
|
-
* The name of the role.
|
|
17
|
-
*/
|
|
18
|
-
name?: string | null
|
|
19
|
-
/**
|
|
20
|
-
* The color of the role.
|
|
21
|
-
*/
|
|
22
|
-
color?: number | null
|
|
23
|
-
/**
|
|
24
|
-
* The icon hash of the role.
|
|
25
|
-
* You can use {@link Role.iconUrl} to get the URL of the icon.
|
|
26
|
-
*/
|
|
27
|
-
icon?: string | null
|
|
28
|
-
/**
|
|
29
|
-
* If this role is mentionable.
|
|
30
|
-
*/
|
|
31
|
-
mentionable?: boolean | null
|
|
32
|
-
/**
|
|
33
|
-
* If this role is hoisted.
|
|
34
|
-
*/
|
|
35
|
-
hoisted?: boolean | null
|
|
36
|
-
/**
|
|
37
|
-
* The position of the role.
|
|
38
|
-
*/
|
|
39
|
-
position?: number | null
|
|
40
|
-
/**
|
|
41
|
-
* The permissions of the role.
|
|
42
|
-
*/
|
|
43
|
-
permissions?: string | null
|
|
44
|
-
/**
|
|
45
|
-
* If this role is managed by an integration.
|
|
46
|
-
*/
|
|
47
|
-
managed?: boolean | null
|
|
48
|
-
/**
|
|
49
|
-
* The unicode emoji for the role.
|
|
50
|
-
*/
|
|
51
|
-
unicodeEmoji?: string | null
|
|
52
|
-
/**
|
|
53
|
-
* The flags of this role.
|
|
54
|
-
* @see https://discord.com/developers/docs/topics/permissions#role-object-role-flags
|
|
55
|
-
*/
|
|
56
|
-
flags?: RoleFlags | null
|
|
57
|
-
/**
|
|
58
|
-
* The tags of this role.
|
|
59
|
-
* @see https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure
|
|
60
|
-
*/
|
|
61
|
-
tags?: APIRoleTags | null
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Whether the role is a partial role (meaning it does not have all the data).
|
|
65
|
-
* If this is true, you should use {@link Role.fetch} to get the full data of the role.
|
|
66
|
-
*/
|
|
67
|
-
partial: boolean
|
|
68
|
-
|
|
69
|
-
private rawData: APIRole | null = null
|
|
70
|
-
|
|
71
|
-
constructor(client: Client, rawDataOrId: APIRole | string) {
|
|
72
|
-
super(client)
|
|
73
|
-
if (typeof rawDataOrId === "string") {
|
|
74
|
-
this.id = rawDataOrId
|
|
75
|
-
this.partial = true
|
|
76
|
-
} else {
|
|
77
|
-
this.rawData = rawDataOrId
|
|
78
|
-
this.id = rawDataOrId.id
|
|
79
|
-
this.partial = false
|
|
80
|
-
this.setData(rawDataOrId)
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
private setData(data: typeof this.rawData) {
|
|
85
|
-
if (!data) throw new Error("Cannot set data without having data... smh")
|
|
86
|
-
this.rawData = data
|
|
87
|
-
this.name = data.name
|
|
88
|
-
this.color = data.color
|
|
89
|
-
this.icon = data.icon
|
|
90
|
-
this.mentionable = data.mentionable
|
|
91
|
-
this.hoisted = data.hoist
|
|
92
|
-
this.position = data.position
|
|
93
|
-
this.permissions = data.permissions
|
|
94
|
-
this.managed = data.managed
|
|
95
|
-
this.unicodeEmoji = data.unicode_emoji
|
|
96
|
-
this.flags = data.flags
|
|
97
|
-
this.tags = data.tags
|
|
98
|
-
this.partial = false
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Fetch updated data for this role.
|
|
103
|
-
* If the role is partial, this will fetch all the data for the role and populate the fields.
|
|
104
|
-
* If the role is not partial, all fields will be updated with new values from Discord.
|
|
105
|
-
*/
|
|
106
|
-
async fetch(guildId: string) {
|
|
107
|
-
const newData = (await this.client.rest.get(
|
|
108
|
-
Routes.guildRole(guildId, this.id)
|
|
109
|
-
)) as APIRole
|
|
110
|
-
if (!newData) throw new Error(`Role ${this.id} not found`)
|
|
111
|
-
|
|
112
|
-
this.setData(newData)
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Set the name of the role
|
|
117
|
-
*/
|
|
118
|
-
async setName(guildId: string, name: string) {
|
|
119
|
-
await this.client.rest.patch(Routes.guildRole(guildId, this.id), {
|
|
120
|
-
body: {
|
|
121
|
-
name
|
|
122
|
-
}
|
|
123
|
-
})
|
|
124
|
-
this.name = name
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Set the color of the role
|
|
129
|
-
*/
|
|
130
|
-
async setColor(guildId: string, color: number) {
|
|
131
|
-
await this.client.rest.patch(Routes.guildRole(guildId, this.id), {
|
|
132
|
-
body: { color }
|
|
133
|
-
})
|
|
134
|
-
this.color = color
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Set the icon of the role
|
|
139
|
-
* @param icon The unicode emoji or icon URL to set
|
|
140
|
-
*/
|
|
141
|
-
async setIcon(guildId: string, icon: string) {
|
|
142
|
-
await this.client.rest.patch(Routes.guildRole(guildId, this.id), {
|
|
143
|
-
body: { icon }
|
|
144
|
-
})
|
|
145
|
-
this.icon = icon
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Set the mentionable status of the role
|
|
150
|
-
*/
|
|
151
|
-
async setMentionable(guildId: string, mentionable: boolean) {
|
|
152
|
-
await this.client.rest.patch(Routes.guildRole(guildId, this.id), {
|
|
153
|
-
body: { mentionable }
|
|
154
|
-
})
|
|
155
|
-
this.mentionable = mentionable
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Set the hoisted status of the role
|
|
160
|
-
*/
|
|
161
|
-
async setHoisted(guildId: string, hoisted: boolean) {
|
|
162
|
-
await this.client.rest.patch(Routes.guildRole(guildId, this.id), {
|
|
163
|
-
body: { hoist: hoisted }
|
|
164
|
-
})
|
|
165
|
-
this.hoisted = hoisted
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Set the position of the role
|
|
170
|
-
*/
|
|
171
|
-
async setPosition(guildId: string, position: number) {
|
|
172
|
-
await this.client.rest.patch(Routes.guildRole(guildId, this.id), {
|
|
173
|
-
body: { position }
|
|
174
|
-
})
|
|
175
|
-
this.position = position
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Set the permissions of the role
|
|
180
|
-
* @param permissions The permissions to set as a BitField string, until a better permission structure is implemented
|
|
181
|
-
*/
|
|
182
|
-
async setPermissions(guildId: string, permissions: string) {
|
|
183
|
-
await this.client.rest.patch(Routes.guildRole(guildId, this.id), {
|
|
184
|
-
body: { permissions }
|
|
185
|
-
})
|
|
186
|
-
this.permissions = permissions
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
async delete(guildId: string) {
|
|
190
|
-
await this.client.rest.delete(Routes.guildRole(guildId, this.id))
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Get the URL of the role's icon
|
|
195
|
-
*/
|
|
196
|
-
get iconUrl(): string | null {
|
|
197
|
-
return this.icon
|
|
198
|
-
? `https://cdn.discordapp.com/role-icons/${this.id}/${this.icon}.png`
|
|
199
|
-
: null
|
|
200
|
-
}
|
|
201
|
-
}
|
package/src/structures/User.ts
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type APIDMChannel,
|
|
3
|
-
type APIMessage,
|
|
4
|
-
type APIUser,
|
|
5
|
-
type RESTPostAPIChannelMessageJSONBody,
|
|
6
|
-
Routes,
|
|
7
|
-
type UserFlags
|
|
8
|
-
} from "discord-api-types/v10"
|
|
9
|
-
import { Base } from "../abstracts/Base.js"
|
|
10
|
-
import type { Client } from "../classes/Client.js"
|
|
11
|
-
import { Message } from "./Message.js"
|
|
12
|
-
|
|
13
|
-
export class User extends Base {
|
|
14
|
-
/**
|
|
15
|
-
* The ID of the user
|
|
16
|
-
*/
|
|
17
|
-
id: string
|
|
18
|
-
/**
|
|
19
|
-
* The username of the user.
|
|
20
|
-
*/
|
|
21
|
-
username?: string
|
|
22
|
-
/**
|
|
23
|
-
* The global name of the user.
|
|
24
|
-
*/
|
|
25
|
-
globalName?: string | null
|
|
26
|
-
/**
|
|
27
|
-
* The discriminator of the user.
|
|
28
|
-
*/
|
|
29
|
-
discriminator?: string
|
|
30
|
-
/**
|
|
31
|
-
* The avatar hash of the user.
|
|
32
|
-
* You can use {@link User.avatarUrl} to get the URL of the avatar.
|
|
33
|
-
*/
|
|
34
|
-
avatar?: string | null
|
|
35
|
-
/**
|
|
36
|
-
* Is this user a bot?
|
|
37
|
-
*/
|
|
38
|
-
bot?: boolean
|
|
39
|
-
/**
|
|
40
|
-
* Is this user a system user?
|
|
41
|
-
*/
|
|
42
|
-
system?: boolean
|
|
43
|
-
/**
|
|
44
|
-
* The public flags of the user. (Bitfield)
|
|
45
|
-
* @see https://discord.com/developers/docs/resources/user#user-object-user-flags
|
|
46
|
-
*/
|
|
47
|
-
flags?: UserFlags
|
|
48
|
-
/**
|
|
49
|
-
* The banner hash of the user.
|
|
50
|
-
* You can use {@link User.bannerUrl} to get the URL of the banner.
|
|
51
|
-
*/
|
|
52
|
-
banner?: string | null
|
|
53
|
-
/**
|
|
54
|
-
* The accent color of the user.
|
|
55
|
-
*/
|
|
56
|
-
accentColor?: number | null
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Whether the user is a partial user (meaning it does not have all the data).
|
|
60
|
-
* If this is true, you should use {@link User.fetch} to get the full data of the user.
|
|
61
|
-
*/
|
|
62
|
-
partial: boolean
|
|
63
|
-
|
|
64
|
-
private rawData: APIUser | null = null
|
|
65
|
-
|
|
66
|
-
constructor(client: Client, rawDataOrId: APIUser | string) {
|
|
67
|
-
super(client)
|
|
68
|
-
if (typeof rawDataOrId === "string") {
|
|
69
|
-
this.id = rawDataOrId
|
|
70
|
-
this.partial = true
|
|
71
|
-
} else {
|
|
72
|
-
this.rawData = rawDataOrId
|
|
73
|
-
this.id = rawDataOrId.id
|
|
74
|
-
this.partial = false
|
|
75
|
-
this.setData(rawDataOrId)
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
private setData(data: typeof this.rawData) {
|
|
80
|
-
if (!data) throw new Error("Cannot set data without having data... smh")
|
|
81
|
-
this.rawData = data
|
|
82
|
-
this.username = data.username
|
|
83
|
-
this.globalName = data.global_name
|
|
84
|
-
this.discriminator = data.discriminator
|
|
85
|
-
this.avatar = data.avatar
|
|
86
|
-
this.bot = data.bot
|
|
87
|
-
this.system = data.system
|
|
88
|
-
this.flags = data.public_flags
|
|
89
|
-
this.banner = data.banner
|
|
90
|
-
this.accentColor = data.accent_color
|
|
91
|
-
this.partial = false
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Fetch updated data for this user.
|
|
96
|
-
* If the user is partial, this will fetch all the data for the user and populate the fields.
|
|
97
|
-
* If the user is not partial, all fields will be updated with new values from Discord.
|
|
98
|
-
*/
|
|
99
|
-
async fetch() {
|
|
100
|
-
const newData = (await this.client.rest.get(
|
|
101
|
-
Routes.user(this.id)
|
|
102
|
-
)) as APIUser
|
|
103
|
-
if (!newData) throw new Error(`User ${this.id} not found`)
|
|
104
|
-
|
|
105
|
-
this.setData(newData)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Instantiate a new DM channel with this user.
|
|
110
|
-
*/
|
|
111
|
-
async createDm(userId: string) {
|
|
112
|
-
const dmChannel = (await this.client.rest.post(Routes.userChannels(), {
|
|
113
|
-
body: {
|
|
114
|
-
recipient_id: userId
|
|
115
|
-
}
|
|
116
|
-
})) as APIDMChannel
|
|
117
|
-
return dmChannel
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Send a message to this user.
|
|
122
|
-
*/
|
|
123
|
-
async send(data: RESTPostAPIChannelMessageJSONBody) {
|
|
124
|
-
const dmChannel = await this.createDm(this.id)
|
|
125
|
-
const message = (await this.client.rest.post(
|
|
126
|
-
Routes.channelMessages(dmChannel.id),
|
|
127
|
-
{
|
|
128
|
-
body: {
|
|
129
|
-
...data
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
)) as APIMessage
|
|
133
|
-
return new Message(this.client, message)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Get the URL of the user's avatar
|
|
138
|
-
*/
|
|
139
|
-
get avatarUrl(): string | null {
|
|
140
|
-
return this.avatar
|
|
141
|
-
? `https://cdn.discordapp.com/avatars/${this.id}/${this.avatar}.png`
|
|
142
|
-
: null
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Get the URL of the user's banner
|
|
147
|
-
*/
|
|
148
|
-
get bannerUrl(): string | null {
|
|
149
|
-
return this.banner
|
|
150
|
-
? `https://cdn.discordapp.com/banners/${this.id}/${this.banner}.png`
|
|
151
|
-
: null
|
|
152
|
-
}
|
|
153
|
-
}
|
package/src/utils.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export const splitCustomId = (
|
|
2
|
-
customId: string
|
|
3
|
-
): [string, Record<string, string>] => {
|
|
4
|
-
const [id, ...args] = customId.split(":")
|
|
5
|
-
if (!id) throw new Error("Invalid custom ID was provided")
|
|
6
|
-
const data = Object.fromEntries(
|
|
7
|
-
args.map((arg) => {
|
|
8
|
-
const [key, value] = arg.split("=")
|
|
9
|
-
return [key, value]
|
|
10
|
-
})
|
|
11
|
-
)
|
|
12
|
-
return [id, data]
|
|
13
|
-
}
|
package/tests/index.test.ts
DELETED
package/tsconfig.json
DELETED
package/typedoc.json
DELETED