authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2021-07-17 23:07:46-04:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-01-02 23:03:55-08:00
log854fefe396967bd053f7e2fc196970be12c3d522
treeae2b69fee964bc6fcdbf9a0810ea954c748ff60a
parentd4b3f5ef8273f4bd25e4d71a3ddac342440a6b36
signaturelock-open Commit is signed but in an unrecognized format.

slash commands edition


4 files changed, 254 insertions(+), 503 deletions(-)

index.js+72-70
......@@ -4,36 +4,39 @@ const Color = require('color');
44const Long = require('long');
55const Cache = require('node-cache');
66const client = new Discord.Client({
7 cacheGuilds: true,
8 cacheChannels: false,
9 cacheOverwrites: false,
10 cacheRoles: true,
11 cacheEmojis: false,
12 cachePresences: false,
13 messageCacheMaxSize: 0,
14 disableMentions: 'all',
15 ws: {
16 intents: [
17 'GUILDS',
18 'GUILD_MEMBERS',
19 'GUILD_MESSAGES',
20 ],
21 }
7 intents: [
8 'GUILDS',
9 'GUILD_MEMBERS',
10 'GUILD_MESSAGES',
11 ],
2212});
2313
2414function updateClientStatus() {
25 client.user.setActivity(`!paint | ${client.guilds.cache.size} servers.`)
15 client.user.setActivity(`/paint | ${client.guilds.cache.size} servers.`)
2616}
2717
28client.on('ready', () => {
18client.on('ready', async() => {
2919 console.log(`Logged in as ${client.user.tag}!`);
3020 updateClientStatus();
21
22 // client.application.commands.create({
23 // name: 'paint',
24 // description: 'Customize your username color',
25 // options: [
26 // { name: 'color', description: 'Color to change your name to (HEX or CSS)', type: 'STRING', required: true },
27 // ]
28 // });
29
30 // client.application.commands.create({
31 // name: 'clean-roles',
32 // description: 'Run the role cleanup utility manually'
33 // });
3134});
3235
3336const schedules = {}
3437
3538const rateLimitCache = new Cache({
36 stdTTL: 12
39 stdTTL: 2
3740})
3841const rateLimitCache2 = new Cache({
3942 stdTTL: 230
......@@ -71,27 +74,18 @@ async function scheduleClean(guild) {
7174 }, 5 * 60 * 1000);
7275}
7376
74client.on('message', async (msg) => {
77client.on('messageCreate', async (msg) => {
7578 if (msg.author.bot) return;
7679
77 if (msg.content.trim() === '!help') {
78 msg.channel.send('Name Painter v2\n`!help` - cmd list\n`!paint` or `!color` - assign a color role **(available to all users)**\n`!clean-roles` - remove color roles no one has as the bot sometimes bugs')
79 }
8080 if (msg.content.startsWith('!paint') || msg.content.startsWith('!color')) {
81 if(rateLimitCache.get(msg.author.id)) {
82 msg.channel.send('> **Rate Limited**: This command can only be used every 12 seconds (per user).')
83 return;
84 }
85
86 const args = msg.content.split(' ');
87 args.shift();
81 msg.channel.send('Name Paint has been updated to use slash commands. If they do not show up, have an admin reinvite the bot:\n<https://davecode.me/name-painter-invite>')
82 }
83});
8884
89 if (args.length === 0) {
90 msg.channel.send('> **Usage**: !paint <color>\n> Where <color> is any valid HEX or CSS color value.')
91 return;
92 }
85client.on('interactionCreate', async (i) => {
86 if (i.isCommand() && i.commandName === 'paint') {
87 const input = i.options.get('color').value;
9388
94 const input = args.join(' ');
9589 let color;
9690 try {
9791 color = Color(input);
......@@ -99,62 +93,70 @@ client.on('message', async (msg) => {
9993 try {
10094 color = Color('#' + input);
10195 } catch (error) {
102 msg.channel.send(`> Could not get a color from \`\`${input.substring(0, 500).replace(/\n/g, ' ').replace(/`/g, '\u2063`\u2063')}\`\``)
96 i.reply({
97 ephemeral: true,
98 content: `Could not get a color from \`\`${input.substring(0, 500).replace(/\n/g, ' ').replace(/`/g, '\u2063`\u2063')}\`\``,
99 })
103100 return;
104101 }
105102 }
106103
107104 const hex = color.hex();
108105
109 rateLimitCache.set(msg.author.id , 'true');
106 if (rateLimitCache.has(i.user.id)) {
107 i.reply({
108 ephemeral: true,
109 content: 'You have reached the rate limit. Please wait a few seconds before running the command again.',
110 });
111 return;
112 }
113
114 rateLimitCache.set(i.user.id , 'true');
110115
111 let role = msg.guild.roles.cache.find(role => role.name === hex);
116 let role = i.guild.roles.cache.find(role => role.name === hex);
112117
113118 if (!role) {
114 if (msg.guild.roles.cache.length === 250) {
115 msg.channel.send(`> **Error**: The Discord Role Limit of **250 Roles** has been hit!`);
119 if (i.guild.roles.cache.length === 250) {
120 i.reply({
121 ephemeral: true,
122 content: `The role limit of **250 Roles** has been hit, I cannot assign you this name color.`
123 });
116124 return;
117125 } else {
118126 try {
119 role = await msg.guild.roles.create({
120 data: {
121 name: hex,
122 color: color.rgbNumber(),
123 permissions: 0,
124 }
127 role = await i.guild.roles.create({
128 name: hex,
129 color: color.rgbNumber(),
130 permissions: [],
125131 });
126132 } catch (error) {
127 msg.channel.send(`> **Error**: Could not create a role for you!`);
133 console.log(error)
134 i.reply({
135 ephemeral: true,
136 content: `Error creating a role for you, contact an admin to check my permissions.`
137 });
128138 return;
129139 }
130140 }
131141 }
132142
133143 try {
134 const rolesToRemove = msg.member.roles.cache.filter(role => role.name.startsWith('#') && role.name !== hex);
144 const rolesToRemove = i.member.roles.cache.filter(role => role.name.startsWith('#') && role.name !== hex);
135145 rolesToRemove.map(async (role) => {
136 msg.member.roles.remove(role);
146 i.member.roles.remove(role);
147 });
148 await i.member.roles.add(role);
149 i.reply({
150 ephemeral: true,
151 content: `You\'ve been painted to **${hex}**`
137152 });
138 await msg.member.roles.add(role);
139 msg.channel.send(`> You\'ve been painted to **${hex}**`);
140153
141 scheduleClean(msg.guild)
154 scheduleClean(i.guild)
142155 } catch (error) {
143 msg.channel.send(`> **Error**: Could not assign your role, ask the server admin to check my permissions (Requires 'Manage Roles').`);
144 }
145 }
146 if (msg.content.startsWith('!clean-roles')) {
147 if(rateLimitCache2.get(msg.guild.id)) {
148 msg.channel.send('> **Rate Limited**: This command can only be used every 230 seconds (per guild).\n> Note: role cleanup happens automatically up to 5 minutes after a !paint.')
149 return;
150 }
151 rateLimitCache2.set(msg.guild.id , 'true');
152 try {
153 const n = await cleanup(msg.guild);
154 msg.channel.send(`> Removed ${n} unused color roles.`);
155 } catch (error) {
156 console.log(error)
157 msg.channel.send(`> **Error**: Could not assign your role, ask the server admin to check my permissions (Requires 'Manage Roles').`);
156 i.reply({
157 ephemeral: true,
158 content: `Error assigning your role, contact an admin to check my permissions.`
159 });
158160 }
159161 }
160162});
......@@ -187,15 +189,15 @@ client.on('guildCreate', guild => {
187189 defaultChannel && defaultChannel.send(`**I'm the Name Painter. I let users customize their name color.**
188190Some things to note
189191
190- The paint command is available to all users in the server.
192- The paint command is available to **all users** in the server.
191193- You should not have existing roles that start with #
192- You generally should not assign the roles manually
194- You *generally* should not assign the roles manually
193195
194196To use me, simply run
195> !paint <color>
197> /paint <color>
196198> Where <color> is any valid HEX or CSS color value.
197199
198Created by dave caruso, https://davecode.me, support \`dave@davecode.me\``);
200Created by dave caruso, <https://davecode.me>, support \`dave@davecode.me\``);
199201
200202 updateClientStatus();
201203});
package-lock.json deleted-431
......@@ -1,431 +0,0 @@
1{
2 "name": "name-paint",
3 "version": "1.0.0",
4 "lockfileVersion": 2,
5 "requires": true,
6 "packages": {
7 "": {
8 "version": "1.0.0",
9 "license": "ISC",
10 "dependencies": {
11 "color": "^3.1.2",
12 "discord.js-light": "^3.3.6",
13 "long": "^4.0.0",
14 "node-cache": "^5.1.2"
15 }
16 },
17 "node_modules/@discordjs/collection": {
18 "version": "0.1.6",
19 "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz",
20 "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ=="
21 },
22 "node_modules/@discordjs/form-data": {
23 "version": "3.0.1",
24 "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz",
25 "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==",
26 "dependencies": {
27 "asynckit": "^0.4.0",
28 "combined-stream": "^1.0.8",
29 "mime-types": "^2.1.12"
30 },
31 "engines": {
32 "node": ">= 6"
33 }
34 },
35 "node_modules/abort-controller": {
36 "version": "3.0.0",
37 "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
38 "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
39 "dependencies": {
40 "event-target-shim": "^5.0.0"
41 },
42 "engines": {
43 "node": ">=6.5"
44 }
45 },
46 "node_modules/asynckit": {
47 "version": "0.4.0",
48 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
49 "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
50 },
51 "node_modules/clone": {
52 "version": "2.1.2",
53 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
54 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
55 "engines": {
56 "node": ">=0.8"
57 }
58 },
59 "node_modules/color": {
60 "version": "3.1.2",
61 "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz",
62 "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==",
63 "dependencies": {
64 "color-convert": "^1.9.1",
65 "color-string": "^1.5.2"
66 }
67 },
68 "node_modules/color-convert": {
69 "version": "1.9.3",
70 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
71 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
72 "dependencies": {
73 "color-name": "1.1.3"
74 }
75 },
76 "node_modules/color-name": {
77 "version": "1.1.3",
78 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
79 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
80 },
81 "node_modules/color-string": {
82 "version": "1.5.3",
83 "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
84 "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
85 "dependencies": {
86 "color-name": "^1.0.0",
87 "simple-swizzle": "^0.2.2"
88 }
89 },
90 "node_modules/combined-stream": {
91 "version": "1.0.8",
92 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
93 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
94 "dependencies": {
95 "delayed-stream": "~1.0.0"
96 },
97 "engines": {
98 "node": ">= 0.8"
99 }
100 },
101 "node_modules/delayed-stream": {
102 "version": "1.0.0",
103 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
104 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
105 "engines": {
106 "node": ">=0.4.0"
107 }
108 },
109 "node_modules/discord.js": {
110 "version": "12.4.1",
111 "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.4.1.tgz",
112 "integrity": "sha512-KxOB8LOAN3GmrvkD6a6Fr1nlfArIFZ+q7Uqg4T/5duB90GZy9a0/Py2E+Y+eHKP6ZUCR2mbNMLCcHGjahiaNqA==",
113 "dependencies": {
114 "@discordjs/collection": "^0.1.6",
115 "@discordjs/form-data": "^3.0.1",
116 "abort-controller": "^3.0.0",
117 "node-fetch": "^2.6.1",
118 "prism-media": "^1.2.2",
119 "setimmediate": "^1.0.5",
120 "tweetnacl": "^1.0.3",
121 "ws": "^7.3.1"
122 },
123 "engines": {
124 "node": ">=12.0.0"
125 }
126 },
127 "node_modules/discord.js-light": {
128 "version": "3.3.6",
129 "resolved": "https://registry.npmjs.org/discord.js-light/-/discord.js-light-3.3.6.tgz",
130 "integrity": "sha512-j019wFUln49OwfKg5yRNbJyDTiwerYgHYRXSzd6qridZJNNsBzZ1d6RfDJdxGE+IPHwq3at9RGzop1Qb0IwZkw==",
131 "dependencies": {
132 "discord.js": "12.4.1"
133 },
134 "engines": {
135 "node": ">=12.0.0"
136 }
137 },
138 "node_modules/event-target-shim": {
139 "version": "5.0.1",
140 "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
141 "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
142 "engines": {
143 "node": ">=6"
144 }
145 },
146 "node_modules/is-arrayish": {
147 "version": "0.3.2",
148 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
149 "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
150 },
151 "node_modules/long": {
152 "version": "4.0.0",
153 "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
154 "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
155 },
156 "node_modules/mime-db": {
157 "version": "1.44.0",
158 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
159 "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
160 "engines": {
161 "node": ">= 0.6"
162 }
163 },
164 "node_modules/mime-types": {
165 "version": "2.1.27",
166 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
167 "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
168 "dependencies": {
169 "mime-db": "1.44.0"
170 },
171 "engines": {
172 "node": ">= 0.6"
173 }
174 },
175 "node_modules/node-cache": {
176 "version": "5.1.2",
177 "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz",
178 "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==",
179 "dependencies": {
180 "clone": "2.x"
181 },
182 "engines": {
183 "node": ">= 8.0.0"
184 }
185 },
186 "node_modules/node-fetch": {
187 "version": "2.6.1",
188 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
189 "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
190 "engines": {
191 "node": "4.x || >=6.0.0"
192 }
193 },
194 "node_modules/prism-media": {
195 "version": "1.2.2",
196 "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.2.tgz",
197 "integrity": "sha512-I+nkWY212lJ500jLe4tN9tWO7nRiBAVdMv76P9kffZjYhw20raMlW1HSSvS+MLXC9MmbNZCazMrAr+5jEEgTuw==",
198 "peerDependencies": {
199 "@discordjs/opus": "^0.1.0",
200 "ffmpeg-static": "^2.4.0 || ^3.0.0",
201 "node-opus": "^0.3.1",
202 "opusscript": "^0.0.6"
203 },
204 "peerDependenciesMeta": {
205 "@discordjs/opus": {
206 "optional": true
207 },
208 "ffmpeg-static": {
209 "optional": true
210 },
211 "node-opus": {
212 "optional": true
213 },
214 "opusscript": {
215 "optional": true
216 }
217 }
218 },
219 "node_modules/setimmediate": {
220 "version": "1.0.5",
221 "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
222 "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
223 },
224 "node_modules/simple-swizzle": {
225 "version": "0.2.2",
226 "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
227 "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
228 "dependencies": {
229 "is-arrayish": "^0.3.1"
230 }
231 },
232 "node_modules/tweetnacl": {
233 "version": "1.0.3",
234 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
235 "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
236 },
237 "node_modules/ws": {
238 "version": "7.4.0",
239 "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz",
240 "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==",
241 "engines": {
242 "node": ">=8.3.0"
243 },
244 "peerDependencies": {
245 "bufferutil": "^4.0.1",
246 "utf-8-validate": "^5.0.2"
247 },
248 "peerDependenciesMeta": {
249 "bufferutil": {
250 "optional": true
251 },
252 "utf-8-validate": {
253 "optional": true
254 }
255 }
256 }
257 },
258 "dependencies": {
259 "@discordjs/collection": {
260 "version": "0.1.6",
261 "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz",
262 "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ=="
263 },
264 "@discordjs/form-data": {
265 "version": "3.0.1",
266 "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz",
267 "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==",
268 "requires": {
269 "asynckit": "^0.4.0",
270 "combined-stream": "^1.0.8",
271 "mime-types": "^2.1.12"
272 }
273 },
274 "abort-controller": {
275 "version": "3.0.0",
276 "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
277 "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
278 "requires": {
279 "event-target-shim": "^5.0.0"
280 }
281 },
282 "asynckit": {
283 "version": "0.4.0",
284 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
285 "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
286 },
287 "clone": {
288 "version": "2.1.2",
289 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
290 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
291 },
292 "color": {
293 "version": "3.1.2",
294 "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz",
295 "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==",
296 "requires": {
297 "color-convert": "^1.9.1",
298 "color-string": "^1.5.2"
299 }
300 },
301 "color-convert": {
302 "version": "1.9.3",
303 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
304 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
305 "requires": {
306 "color-name": "1.1.3"
307 }
308 },
309 "color-name": {
310 "version": "1.1.3",
311 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
312 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
313 },
314 "color-string": {
315 "version": "1.5.3",
316 "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
317 "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
318 "requires": {
319 "color-name": "^1.0.0",
320 "simple-swizzle": "^0.2.2"
321 }
322 },
323 "combined-stream": {
324 "version": "1.0.8",
325 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
326 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
327 "requires": {
328 "delayed-stream": "~1.0.0"
329 }
330 },
331 "delayed-stream": {
332 "version": "1.0.0",
333 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
334 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
335 },
336 "discord.js": {
337 "version": "12.4.1",
338 "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.4.1.tgz",
339 "integrity": "sha512-KxOB8LOAN3GmrvkD6a6Fr1nlfArIFZ+q7Uqg4T/5duB90GZy9a0/Py2E+Y+eHKP6ZUCR2mbNMLCcHGjahiaNqA==",
340 "requires": {
341 "@discordjs/collection": "^0.1.6",
342 "@discordjs/form-data": "^3.0.1",
343 "abort-controller": "^3.0.0",
344 "node-fetch": "^2.6.1",
345 "prism-media": "^1.2.2",
346 "setimmediate": "^1.0.5",
347 "tweetnacl": "^1.0.3",
348 "ws": "^7.3.1"
349 }
350 },
351 "discord.js-light": {
352 "version": "3.3.6",
353 "resolved": "https://registry.npmjs.org/discord.js-light/-/discord.js-light-3.3.6.tgz",
354 "integrity": "sha512-j019wFUln49OwfKg5yRNbJyDTiwerYgHYRXSzd6qridZJNNsBzZ1d6RfDJdxGE+IPHwq3at9RGzop1Qb0IwZkw==",
355 "requires": {
356 "discord.js": "12.4.1"
357 }
358 },
359 "event-target-shim": {
360 "version": "5.0.1",
361 "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
362 "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
363 },
364 "is-arrayish": {
365 "version": "0.3.2",
366 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
367 "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
368 },
369 "long": {
370 "version": "4.0.0",
371 "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
372 "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
373 },
374 "mime-db": {
375 "version": "1.44.0",
376 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
377 "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
378 },
379 "mime-types": {
380 "version": "2.1.27",
381 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
382 "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
383 "requires": {
384 "mime-db": "1.44.0"
385 }
386 },
387 "node-cache": {
388 "version": "5.1.2",
389 "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz",
390 "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==",
391 "requires": {
392 "clone": "2.x"
393 }
394 },
395 "node-fetch": {
396 "version": "2.6.1",
397 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
398 "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
399 },
400 "prism-media": {
401 "version": "1.2.2",
402 "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.2.tgz",
403 "integrity": "sha512-I+nkWY212lJ500jLe4tN9tWO7nRiBAVdMv76P9kffZjYhw20raMlW1HSSvS+MLXC9MmbNZCazMrAr+5jEEgTuw==",
404 "requires": {}
405 },
406 "setimmediate": {
407 "version": "1.0.5",
408 "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
409 "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
410 },
411 "simple-swizzle": {
412 "version": "0.2.2",
413 "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
414 "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
415 "requires": {
416 "is-arrayish": "^0.3.1"
417 }
418 },
419 "tweetnacl": {
420 "version": "1.0.3",
421 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
422 "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
423 },
424 "ws": {
425 "version": "7.4.0",
426 "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz",
427 "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==",
428 "requires": {}
429 }
430 }
431}
package.json+2-2
......@@ -1,6 +1,6 @@
11{
22 "name": "name-paint",
3 "version": "1.0.0",
3 "version": "3.0.0",
44 "description": "Discord Bot to let people paint their name anything.",
55 "main": "index.js",
66 "scripts": {
......@@ -10,7 +10,7 @@
1010 "license": "ISC",
1111 "dependencies": {
1212 "color": "^3.1.2",
13 "discord.js-light": "^3.3.6",
13 "discord.js": "^13.0.0-dev.4d53d0f.1626566655",
1414 "long": "^4.0.0",
1515 "node-cache": "^5.1.2"
1616 }
yarn.lock created+180
......@@ -0,0 +1,180 @@
1# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2# yarn lockfile v1
3
4
5"@discordjs/builders@^0.2.0":
6 version "0.2.0"
7 resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-0.2.0.tgz#832c8d894aad13362db7a99f11a7826b21e4cd94"
8 integrity sha512-TVq7NZBCJrrTRc3CfxOr3IdgY5nrtqVxZ7qDUF1mN6LgxIiOldmFxsSwMrQBzLFVmOwqFyNLKCeblley8UpEuw==
9 dependencies:
10 discord-api-types "^0.18.1"
11 tslib "^2.3.0"
12
13"@discordjs/collection@^0.1.6":
14 version "0.1.6"
15 resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-0.1.6.tgz#9e9a7637f4e4e0688fd8b2b5c63133c91607682c"
16 integrity sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==
17
18"@discordjs/form-data@^3.0.1":
19 version "3.0.1"
20 resolved "https://registry.yarnpkg.com/@discordjs/form-data/-/form-data-3.0.1.tgz#5c9e6be992e2e57d0dfa0e39979a850225fb4697"
21 integrity sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==
22 dependencies:
23 asynckit "^0.4.0"
24 combined-stream "^1.0.8"
25 mime-types "^2.1.12"
26
27"@sapphire/async-queue@^1.1.4":
28 version "1.1.4"
29 resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.1.4.tgz#ae431310917a8880961cebe8e59df6ffa40f2957"
30 integrity sha512-fFrlF/uWpGOX5djw5Mu2Hnnrunao75WGey0sP0J3jnhmrJ5TAPzHYOmytD5iN/+pMxS+f+u/gezqHa9tPhRHEA==
31
32"@types/node@*":
33 version "16.3.3"
34 resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.3.tgz#0c30adff37bbbc7a50eb9b58fae2a504d0d88038"
35 integrity sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==
36
37"@types/ws@^7.4.5":
38 version "7.4.6"
39 resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.6.tgz#c4320845e43d45a7129bb32905e28781c71c1fff"
40 integrity sha512-ijZ1vzRawI7QoWnTNL8KpHixd2b2XVb9I9HAqI3triPsh1EC0xH0Eg6w2O3TKbDCgiNNlJqfrof6j4T2I+l9vw==
41 dependencies:
42 "@types/node" "*"
43
44abort-controller@^3.0.0:
45 version "3.0.0"
46 resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
47 integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
48 dependencies:
49 event-target-shim "^5.0.0"
50
51asynckit@^0.4.0:
52 version "0.4.0"
53 resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
54 integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
55
56clone@2.x:
57 version "2.1.2"
58 resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
59 integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
60
61color-convert@^2.0.1:
62 version "2.0.1"
63 resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
64 integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
65 dependencies:
66 color-name "~1.1.4"
67
68color-name@^1.0.0, color-name@~1.1.4:
69 version "1.1.4"
70 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
71 integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
72
73color-string@^1.6.0:
74 version "1.6.0"
75 resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
76 integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
77 dependencies:
78 color-name "^1.0.0"
79 simple-swizzle "^0.2.2"
80
81color@^3.1.2:
82 version "3.2.0"
83 resolved "https://registry.yarnpkg.com/color/-/color-3.2.0.tgz#108509078b8b93746515cbdffb03e20097ec586b"
84 integrity sha512-4ximSqKXLTQmYLJuvrRHtpOqniR+ASoaVK+Rxdy6ZpfsLvUqtIM7oGGgopRG+O4p9NRv/AfuVD3jsvdxyXqozQ==
85 dependencies:
86 color-convert "^2.0.1"
87 color-string "^1.6.0"
88
89combined-stream@^1.0.8:
90 version "1.0.8"
91 resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
92 integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
93 dependencies:
94 delayed-stream "~1.0.0"
95
96delayed-stream@~1.0.0:
97 version "1.0.0"
98 resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
99 integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
100
101discord-api-types@^0.18.1:
102 version "0.18.1"
103 resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.18.1.tgz#5d08ed1263236be9c21a22065d0e6b51f790f492"
104 integrity sha512-hNC38R9ZF4uaujaZQtQfm5CdQO58uhdkoHQAVvMfIL0LgOSZeW575W8H6upngQOuoxWd8tiRII3LLJm9zuQKYg==
105
106discord-api-types@^0.19.0-next.f393ba520d7d6d2aacaca7b3ca5d355fab614f6e:
107 version "0.19.0-next.f393ba520d7d6d2aacaca7b3ca5d355fab614f6e"
108 resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.19.0-next.f393ba520d7d6d2aacaca7b3ca5d355fab614f6e.tgz#d5f36f5712ec8fe2fe928b5c37618c94a3969d6a"
109 integrity sha512-ttRA/8e/WKHDbGFfED5WlS7gID+kalmNr6iMiWBCvkphQ7kFHiTOVbnj/zX9ksaRaYXp/I38SCQ+qZvLu8DJZg==
110
111discord.js@^13.0.0-dev.4d53d0f.1626566655:
112 version "13.0.0-dev.4d53d0f.1626566655"
113 resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-13.0.0-dev.4d53d0f.1626566655.tgz#8680d6c08a931b1550664daeb4ac02eb2c9c9bde"
114 integrity sha512-TXq6Q16X8QVt4A81q0eaBZd+hfvThIvx76FLd8eRiB4H9Hid3BnVwzbOAucwZ3Xr+koPcaw16YVoV+XL9ZwknA==
115 dependencies:
116 "@discordjs/builders" "^0.2.0"
117 "@discordjs/collection" "^0.1.6"
118 "@discordjs/form-data" "^3.0.1"
119 "@sapphire/async-queue" "^1.1.4"
120 "@types/ws" "^7.4.5"
121 abort-controller "^3.0.0"
122 discord-api-types "^0.19.0-next.f393ba520d7d6d2aacaca7b3ca5d355fab614f6e"
123 node-fetch "^2.6.1"
124 ws "^7.5.1"
125
126event-target-shim@^5.0.0:
127 version "5.0.1"
128 resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
129 integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
130
131is-arrayish@^0.3.1:
132 version "0.3.2"
133 resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
134 integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
135
136long@^4.0.0:
137 version "4.0.0"
138 resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
139 integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
140
141mime-db@1.48.0:
142 version "1.48.0"
143 resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d"
144 integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==
145
146mime-types@^2.1.12:
147 version "2.1.31"
148 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b"
149 integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==
150 dependencies:
151 mime-db "1.48.0"
152
153node-cache@^5.1.2:
154 version "5.1.2"
155 resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-5.1.2.tgz#f264dc2ccad0a780e76253a694e9fd0ed19c398d"
156 integrity sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==
157 dependencies:
158 clone "2.x"
159
160node-fetch@^2.6.1:
161 version "2.6.1"
162 resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
163 integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
164
165simple-swizzle@^0.2.2:
166 version "0.2.2"
167 resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
168 integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
169 dependencies:
170 is-arrayish "^0.3.1"
171
172tslib@^2.3.0:
173 version "2.3.0"
174 resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
175 integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
176
177ws@^7.5.1:
178 version "7.5.3"
179 resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74"
180 integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==