@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.
Files changed (275) hide show
  1. package/dist/package.json +7 -2
  2. package/dist/src/abstracts/BaseComponentInteraction.d.ts +6 -1
  3. package/dist/src/abstracts/BaseComponentInteraction.d.ts.map +1 -1
  4. package/dist/src/abstracts/BaseComponentInteraction.js +12 -0
  5. package/dist/src/abstracts/BaseComponentInteraction.js.map +1 -1
  6. package/dist/src/abstracts/BaseInteraction.d.ts +10 -1
  7. package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -1
  8. package/dist/src/abstracts/BaseInteraction.js +10 -1
  9. package/dist/src/abstracts/BaseInteraction.js.map +1 -1
  10. package/dist/src/classes/Client.d.ts.map +1 -1
  11. package/dist/src/classes/Client.js +21 -11
  12. package/dist/src/classes/Client.js.map +1 -1
  13. package/dist/src/classes/Embed.d.ts +60 -0
  14. package/dist/src/classes/Embed.d.ts.map +1 -0
  15. package/dist/src/classes/Embed.js +73 -0
  16. package/dist/src/classes/Embed.js.map +1 -0
  17. package/dist/src/index.d.ts +4 -1
  18. package/dist/src/index.d.ts.map +1 -1
  19. package/dist/src/index.js +4 -1
  20. package/dist/src/index.js.map +1 -1
  21. package/dist/src/internals/AutocompleteInteraction.d.ts +1 -1
  22. package/dist/src/internals/FieldsHandler.d.ts +27 -0
  23. package/dist/src/internals/FieldsHandler.d.ts.map +1 -0
  24. package/dist/src/internals/FieldsHandler.js +37 -0
  25. package/dist/src/internals/FieldsHandler.js.map +1 -0
  26. package/dist/src/internals/ModalInteraction.d.ts +3 -4
  27. package/dist/src/internals/ModalInteraction.d.ts.map +1 -1
  28. package/dist/src/internals/ModalInteraction.js +3 -10
  29. package/dist/src/internals/ModalInteraction.js.map +1 -1
  30. package/dist/src/internals/OptionsHandler.d.ts +33 -17
  31. package/dist/src/internals/OptionsHandler.d.ts.map +1 -1
  32. package/dist/src/internals/OptionsHandler.js +52 -58
  33. package/dist/src/internals/OptionsHandler.js.map +1 -1
  34. package/dist/src/utils.d.ts +3 -0
  35. package/dist/src/utils.d.ts.map +1 -1
  36. package/dist/src/utils.js +54 -0
  37. package/dist/src/utils.js.map +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +6 -1
  40. package/.turbo/turbo-build.log +0 -5
  41. package/.turbo/turbo-dev.log +0 -8
  42. package/.turbo/turbo-docs.log +0 -12
  43. package/CHANGELOG.md +0 -44
  44. package/dist/src/abstracts/ButtonInteraction.d.ts +0 -8
  45. package/dist/src/abstracts/ButtonInteraction.d.ts.map +0 -1
  46. package/dist/src/abstracts/ButtonInteraction.js +0 -18
  47. package/dist/src/abstracts/ButtonInteraction.js.map +0 -1
  48. package/dist/src/abstracts/ChannelSelectMenuInteraction.d.ts +0 -7
  49. package/dist/src/abstracts/ChannelSelectMenuInteraction.d.ts.map +0 -1
  50. package/dist/src/abstracts/ChannelSelectMenuInteraction.js +0 -11
  51. package/dist/src/abstracts/ChannelSelectMenuInteraction.js.map +0 -1
  52. package/dist/src/abstracts/CommandHandler.d.ts +0 -6
  53. package/dist/src/abstracts/CommandHandler.d.ts.map +0 -1
  54. package/dist/src/abstracts/CommandHandler.js +0 -65
  55. package/dist/src/abstracts/CommandHandler.js.map +0 -1
  56. package/dist/src/abstracts/CommandInteraction.d.ts +0 -15
  57. package/dist/src/abstracts/CommandInteraction.d.ts.map +0 -1
  58. package/dist/src/abstracts/CommandInteraction.js +0 -60
  59. package/dist/src/abstracts/CommandInteraction.js.map +0 -1
  60. package/dist/src/abstracts/ComponentHandler.d.ts +0 -6
  61. package/dist/src/abstracts/ComponentHandler.d.ts.map +0 -1
  62. package/dist/src/abstracts/ComponentHandler.js +0 -64
  63. package/dist/src/abstracts/ComponentHandler.js.map +0 -1
  64. package/dist/src/abstracts/MentionableSelectMenuInteraction.d.ts +0 -8
  65. package/dist/src/abstracts/MentionableSelectMenuInteraction.d.ts.map +0 -1
  66. package/dist/src/abstracts/MentionableSelectMenuInteraction.js +0 -15
  67. package/dist/src/abstracts/MentionableSelectMenuInteraction.js.map +0 -1
  68. package/dist/src/abstracts/RoleSelectMenuInteraction.d.ts +0 -8
  69. package/dist/src/abstracts/RoleSelectMenuInteraction.d.ts.map +0 -1
  70. package/dist/src/abstracts/RoleSelectMenuInteraction.js +0 -14
  71. package/dist/src/abstracts/RoleSelectMenuInteraction.js.map +0 -1
  72. package/dist/src/abstracts/StringSelectMenuInteraction.d.ts +0 -8
  73. package/dist/src/abstracts/StringSelectMenuInteraction.d.ts.map +0 -1
  74. package/dist/src/abstracts/StringSelectMenuInteraction.js +0 -14
  75. package/dist/src/abstracts/StringSelectMenuInteraction.js.map +0 -1
  76. package/dist/src/abstracts/UserSelectMenuInteraction.d.ts +0 -8
  77. package/dist/src/abstracts/UserSelectMenuInteraction.d.ts.map +0 -1
  78. package/dist/src/abstracts/UserSelectMenuInteraction.js +0 -14
  79. package/dist/src/abstracts/UserSelectMenuInteraction.js.map +0 -1
  80. package/dist/src/classes/Paginator.d.ts +0 -3
  81. package/dist/src/classes/Paginator.d.ts.map +0 -1
  82. package/dist/src/classes/Paginator.js +0 -3
  83. package/dist/src/classes/Paginator.js.map +0 -1
  84. package/dist/src/internals/ComponentHandler copy.d.ts +0 -17
  85. package/dist/src/internals/ComponentHandler copy.d.ts.map +0 -1
  86. package/dist/src/internals/ComponentHandler copy.js +0 -75
  87. package/dist/src/internals/ComponentHandler copy.js.map +0 -1
  88. package/dist/src/structures/AnySelectMenu.d.ts +0 -31
  89. package/dist/src/structures/AnySelectMenu.d.ts.map +0 -1
  90. package/dist/src/structures/AnySelectMenu.js +0 -19
  91. package/dist/src/structures/AnySelectMenu.js.map +0 -1
  92. package/dist/src/structures/AnySelectMenuInteraction.d.ts +0 -12
  93. package/dist/src/structures/AnySelectMenuInteraction.d.ts.map +0 -1
  94. package/dist/src/structures/AnySelectMenuInteraction.js +0 -21
  95. package/dist/src/structures/AnySelectMenuInteraction.js.map +0 -1
  96. package/dist/src/structures/Base.d.ts +0 -10
  97. package/dist/src/structures/Base.d.ts.map +0 -1
  98. package/dist/src/structures/Base.js +0 -11
  99. package/dist/src/structures/Base.js.map +0 -1
  100. package/dist/src/structures/BaseCommand.d.ts +0 -64
  101. package/dist/src/structures/BaseCommand.d.ts.map +0 -1
  102. package/dist/src/structures/BaseCommand.js +0 -58
  103. package/dist/src/structures/BaseCommand.js.map +0 -1
  104. package/dist/src/structures/BaseComponent.d.ts +0 -34
  105. package/dist/src/structures/BaseComponent.d.ts.map +0 -1
  106. package/dist/src/structures/BaseComponent.js +0 -30
  107. package/dist/src/structures/BaseComponent.js.map +0 -1
  108. package/dist/src/structures/BaseComponentInteraction.d.ts +0 -9
  109. package/dist/src/structures/BaseComponentInteraction.d.ts.map +0 -1
  110. package/dist/src/structures/BaseComponentInteraction.js +0 -14
  111. package/dist/src/structures/BaseComponentInteraction.js.map +0 -1
  112. package/dist/src/structures/BaseInteraction.d.ts +0 -81
  113. package/dist/src/structures/BaseInteraction.d.ts.map +0 -1
  114. package/dist/src/structures/BaseInteraction.js +0 -99
  115. package/dist/src/structures/BaseInteraction.js.map +0 -1
  116. package/dist/src/structures/ButtonInteraction.d.ts +0 -8
  117. package/dist/src/structures/ButtonInteraction.d.ts.map +0 -1
  118. package/dist/src/structures/ButtonInteraction.js +0 -18
  119. package/dist/src/structures/ButtonInteraction.js.map +0 -1
  120. package/dist/src/structures/ChannelSelectMenuInteraction.d.ts +0 -7
  121. package/dist/src/structures/ChannelSelectMenuInteraction.d.ts.map +0 -1
  122. package/dist/src/structures/ChannelSelectMenuInteraction.js +0 -11
  123. package/dist/src/structures/ChannelSelectMenuInteraction.js.map +0 -1
  124. package/dist/src/structures/CommandHandler.d.ts +0 -6
  125. package/dist/src/structures/CommandHandler.d.ts.map +0 -1
  126. package/dist/src/structures/CommandHandler.js +0 -70
  127. package/dist/src/structures/CommandHandler.js.map +0 -1
  128. package/dist/src/structures/CommandInteraction.d.ts +0 -15
  129. package/dist/src/structures/CommandInteraction.d.ts.map +0 -1
  130. package/dist/src/structures/CommandInteraction.js +0 -60
  131. package/dist/src/structures/CommandInteraction.js.map +0 -1
  132. package/dist/src/structures/ComponentHandler.d.ts +0 -6
  133. package/dist/src/structures/ComponentHandler.d.ts.map +0 -1
  134. package/dist/src/structures/ComponentHandler.js +0 -64
  135. package/dist/src/structures/ComponentHandler.js.map +0 -1
  136. package/dist/src/structures/MentionableSelectMenuInteraction.d.ts +0 -8
  137. package/dist/src/structures/MentionableSelectMenuInteraction.d.ts.map +0 -1
  138. package/dist/src/structures/MentionableSelectMenuInteraction.js +0 -15
  139. package/dist/src/structures/MentionableSelectMenuInteraction.js.map +0 -1
  140. package/dist/src/structures/RoleSelectMenuInteraction.d.ts +0 -8
  141. package/dist/src/structures/RoleSelectMenuInteraction.d.ts.map +0 -1
  142. package/dist/src/structures/RoleSelectMenuInteraction.js +0 -14
  143. package/dist/src/structures/RoleSelectMenuInteraction.js.map +0 -1
  144. package/dist/src/structures/StringSelectMenuInteraction.d.ts +0 -8
  145. package/dist/src/structures/StringSelectMenuInteraction.d.ts.map +0 -1
  146. package/dist/src/structures/StringSelectMenuInteraction.js +0 -14
  147. package/dist/src/structures/StringSelectMenuInteraction.js.map +0 -1
  148. package/dist/src/structures/UserSelectMenuInteraction.d.ts +0 -8
  149. package/dist/src/structures/UserSelectMenuInteraction.d.ts.map +0 -1
  150. package/dist/src/structures/UserSelectMenuInteraction.js +0 -14
  151. package/dist/src/structures/UserSelectMenuInteraction.js.map +0 -1
  152. package/dist/src/types.d.ts +0 -31
  153. package/dist/src/types.d.ts.map +0 -1
  154. package/dist/src/types.js +0 -33
  155. package/dist/src/types.js.map +0 -1
  156. package/docs/classes/AnySelectMenu.mdx +0 -114
  157. package/docs/classes/AnySelectMenuInteraction.mdx +0 -175
  158. package/docs/classes/AutocompleteInteraction.mdx +0 -166
  159. package/docs/classes/AutocompleteOptionsHandler.mdx +0 -243
  160. package/docs/classes/BaseChannel.mdx +0 -97
  161. package/docs/classes/BaseCommand.mdx +0 -61
  162. package/docs/classes/BaseComponent.mdx +0 -55
  163. package/docs/classes/BaseComponentInteraction.mdx +0 -160
  164. package/docs/classes/BaseGuildChannel.mdx +0 -262
  165. package/docs/classes/BaseGuildTextChannel.mdx +0 -360
  166. package/docs/classes/BaseInteraction.mdx +0 -137
  167. package/docs/classes/Button.mdx +0 -99
  168. package/docs/classes/ButtonInteraction.mdx +0 -155
  169. package/docs/classes/ChannelSelectMenu.mdx +0 -122
  170. package/docs/classes/ChannelSelectMenuInteraction.mdx +0 -171
  171. package/docs/classes/Client.mdx +0 -48
  172. package/docs/classes/Command.mdx +0 -111
  173. package/docs/classes/CommandHandler.mdx +0 -65
  174. package/docs/classes/CommandInteraction.mdx +0 -155
  175. package/docs/classes/CommandWithSubcommandGroups.mdx +0 -73
  176. package/docs/classes/CommandWithSubcommands.mdx +0 -76
  177. package/docs/classes/ComponentHandler.mdx +0 -49
  178. package/docs/classes/DmChannel.mdx +0 -118
  179. package/docs/classes/GroupDmChannel.mdx +0 -197
  180. package/docs/classes/Guild.mdx +0 -157
  181. package/docs/classes/GuildAnnouncementChannel.mdx +0 -377
  182. package/docs/classes/GuildCategoryChannel.mdx +0 -272
  183. package/docs/classes/GuildForumChannel.mdx +0 -333
  184. package/docs/classes/GuildMediaChannel.mdx +0 -327
  185. package/docs/classes/GuildStageChannel.mdx +0 -276
  186. package/docs/classes/GuildStageOrVoiceChannel.mdx +0 -292
  187. package/docs/classes/GuildTextChannel.mdx +0 -367
  188. package/docs/classes/GuildThreadChannel.mdx +0 -425
  189. package/docs/classes/GuildThreadOnlyChannel.mdx +0 -333
  190. package/docs/classes/GuildVoiceChannel.mdx +0 -276
  191. package/docs/classes/LinkButton.mdx +0 -84
  192. package/docs/classes/MentionableSelectMenu.mdx +0 -120
  193. package/docs/classes/MentionableSelectMenuInteraction.mdx +0 -171
  194. package/docs/classes/Message.mdx +0 -126
  195. package/docs/classes/OptionsHandler.mdx +0 -203
  196. package/docs/classes/PremiumButton.mdx +0 -84
  197. package/docs/classes/Role.mdx +0 -228
  198. package/docs/classes/RoleSelectMenu.mdx +0 -120
  199. package/docs/classes/RoleSelectMenuInteraction.mdx +0 -171
  200. package/docs/classes/Row.mdx +0 -88
  201. package/docs/classes/StringSelectMenu.mdx +0 -120
  202. package/docs/classes/StringSelectMenuInteraction.mdx +0 -171
  203. package/docs/classes/User.mdx +0 -119
  204. package/docs/classes/UserSelectMenu.mdx +0 -120
  205. package/docs/classes/UserSelectMenuInteraction.mdx +0 -171
  206. package/docs/enumerations/ClientMode.mdx +0 -16
  207. package/docs/functions/channelFactory.mdx +0 -16
  208. package/docs/index.mdx +0 -83
  209. package/docs/type-aliases/AnySelectMenuComponentType.mdx +0 -5
  210. package/docs/type-aliases/ClientOptions.mdx +0 -20
  211. package/docs/type-aliases/CommandOptions.mdx +0 -5
  212. package/docs/type-aliases/ComponentAdditionalData.mdx +0 -9
  213. package/docs/type-aliases/InteractionFileData.mdx +0 -15
  214. package/docs/type-aliases/InteractionReplyData.mdx +0 -14
  215. package/docs/type-aliases/InteractionReplyOptions.mdx +0 -13
  216. package/docs/type-aliases/RawOptions.mdx +0 -9
  217. package/docs/type-aliases/meta.json +0 -3
  218. package/src/README.md +0 -7
  219. package/src/abstracts/AnySelectMenu.ts +0 -63
  220. package/src/abstracts/AnySelectMenuInteraction.ts +0 -29
  221. package/src/abstracts/Base.ts +0 -12
  222. package/src/abstracts/BaseChannel.ts +0 -73
  223. package/src/abstracts/BaseCommand.ts +0 -89
  224. package/src/abstracts/BaseComponent.ts +0 -49
  225. package/src/abstracts/BaseComponentInteraction.ts +0 -19
  226. package/src/abstracts/BaseGuildChannel.ts +0 -152
  227. package/src/abstracts/BaseGuildTextChannel.ts +0 -77
  228. package/src/abstracts/BaseInteraction.ts +0 -209
  229. package/src/abstracts/GuildThreadOnlyChannel.ts +0 -71
  230. package/src/classes/Button.ts +0 -95
  231. package/src/classes/ChannelSelectMenu.ts +0 -21
  232. package/src/classes/Client.ts +0 -277
  233. package/src/classes/Command.ts +0 -53
  234. package/src/classes/CommandWithSubcommandGroups.ts +0 -47
  235. package/src/classes/CommandWithSubcommands.ts +0 -35
  236. package/src/classes/MentionableSelectMenu.ts +0 -19
  237. package/src/classes/Modal.ts +0 -38
  238. package/src/classes/RoleSelectMenu.ts +0 -19
  239. package/src/classes/Row.ts +0 -50
  240. package/src/classes/StringSelectMenu.ts +0 -19
  241. package/src/classes/TextInput.ts +0 -65
  242. package/src/classes/UserSelectMenu.ts +0 -19
  243. package/src/factories/channelFactory.ts +0 -43
  244. package/src/index.ts +0 -62
  245. package/src/internals/AutocompleteInteraction.ts +0 -107
  246. package/src/internals/ButtonInteraction.ts +0 -26
  247. package/src/internals/ChannelSelectMenuInteraction.ts +0 -15
  248. package/src/internals/CommandHandler.ts +0 -127
  249. package/src/internals/CommandInteraction.ts +0 -49
  250. package/src/internals/ComponentHandler.ts +0 -92
  251. package/src/internals/MentionableSelectMenuInteraction.ts +0 -21
  252. package/src/internals/ModalHandler.ts +0 -27
  253. package/src/internals/ModalInteraction.ts +0 -25
  254. package/src/internals/OptionsHandler.ts +0 -148
  255. package/src/internals/RoleSelectMenuInteraction.ts +0 -20
  256. package/src/internals/StringSelectMenuInteraction.ts +0 -20
  257. package/src/internals/UserSelectMenuInteraction.ts +0 -20
  258. package/src/structures/DmChannel.ts +0 -31
  259. package/src/structures/GroupDmChannel.ts +0 -132
  260. package/src/structures/Guild.ts +0 -154
  261. package/src/structures/GuildAnnouncementChannel.ts +0 -20
  262. package/src/structures/GuildCategoryChannel.ts +0 -16
  263. package/src/structures/GuildForumChannel.ts +0 -20
  264. package/src/structures/GuildMediaChannel.ts +0 -13
  265. package/src/structures/GuildMember.ts +0 -231
  266. package/src/structures/GuildStageOrVoiceChannel.ts +0 -46
  267. package/src/structures/GuildTextChannel.ts +0 -21
  268. package/src/structures/GuildThreadChannel.ts +0 -150
  269. package/src/structures/Message.ts +0 -124
  270. package/src/structures/Role.ts +0 -201
  271. package/src/structures/User.ts +0 -153
  272. package/src/utils.ts +0 -13
  273. package/tests/index.test.ts +0 -4
  274. package/tsconfig.json +0 -12
  275. package/typedoc.json +0 -9
@@ -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
- }
@@ -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
- }
@@ -1,4 +0,0 @@
1
- import { expect, test } from "vitest"
2
- import { Command } from "../src"
3
-
4
- test("Stub", () => {})
package/tsconfig.json DELETED
@@ -1,12 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "include": [
4
- "src/**/*.ts",
5
- "src/*.ts",
6
- "package.json"
7
- ],
8
- "compilerOptions": {
9
- "outDir": "dist",
10
- "rootDir": ".",
11
- }
12
- }
package/typedoc.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "$schema": "https://typedoc.org/schema.json",
3
- "extends": ["../../typedoc.json"],
4
- "entryPoints": ["src/index.ts"],
5
- "name": "@buape/carbon",
6
- "out": "docs",
7
- "excludeExternals": true,
8
- "externalPattern": ["**/node_modules/**"]
9
- }