authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2020-04-08 11:58:42-04:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-01-02 23:03:54-08:00
log0b0b9e0764daca1bdc2905e2275d77f67c14fd2a
tree8189fca45b9fcd1f8481b8b7091c94c1bd3076bc
parent872c9ee5421cd705ea1424ab4f7d6baebb895704
signaturelock-open Commit is signed but in an unrecognized format.

update


1 files changed, 29 insertions(+), 7 deletions(-)

index.js+29-7
......@@ -3,8 +3,13 @@ const fs = require('fs');
33const client = new Discord.Client();
44const Color = require('color');
55
6function updateClientStatus() {
7 client.user.setActivity(`!paint -ing ${client.guilds.size} servers.`)
8}
9
610client.on('ready', () => {
711 console.log(`Logged in as ${client.user.tag}!`);
12 updateClientStatus();
813});
914
1015client.on('message', async (msg) => {
......@@ -27,7 +32,7 @@ client.on('message', async (msg) => {
2732 try {
2833 color = Color('#' + input);
2934 } catch (error) {
30 msg.channel.send(`> Could not get a color from ${input.replace(/\n/g, '').replace(/`/g, '\\\\`')}`)
35 msg.channel.send(`> Could not get a color from \`\`${input.substring(0, 500).replace(/\n/g, ' ').replace(/`/g, '\u2063`\u2063')}\`\``)
3136 return;
3237 }
3338 }
......@@ -58,20 +63,33 @@ client.on('message', async (msg) => {
5863 const rolesToRemove = msg.member.roles.filter(role => role.name.startsWith('#') && role.name !== hex);
5964 rolesToRemove.map(async (role) => {
6065 msg.member.removeRole(role);
61 if (role.members.size === 0) {
62 console.log('Deleting ' + role.name)
66 if (role.members.size === 1) {
6367 role.delete();
6468 }
6569 });
6670 await msg.member.addRole(role);
6771 msg.channel.send(`> You\'ve been painted to **${hex}**`);
6872 } catch (error) {
69 console.log(error);
70 msg.channel.send(`> **Error**: Could not assign your role, ask the server admin to check my permissions.`);
73 msg.channel.send(`> **Error**: Could not assign your role, ask the server admin to check my permissions (Requires 'Manage Roles').`);
7174 }
7275 }
7376});
7477
78client.on('guildMemberRemove', (member) => {
79 const rolesToRemove = member.roles.filter(role => role.name.startsWith('#'));
80 setTimeout(() => {
81 rolesToRemove.map(async (role) => {
82 if (role.members.size === 0) {
83 role.delete();
84 }
85 });
86 }, 1000);
87});
88
89client.on('guildDelete', guild => {
90 updateClientStatus();
91});
92
7593client.on('guildCreate', guild => {
7694 let defaultChannel = "";
7795 guild.channels.forEach((channel) => {
......@@ -91,7 +109,11 @@ Some things to note
91109
92110To use me, simply run
93111> !paint <color>
94> Where <color> is any valid HEX or CSS color value.`);
112> Where <color> is any valid HEX or CSS color value.
113
114Created by dave caruso, https://davecode.me, support \`dave@davecode.me\``);
115
116 updateClientStatus();
95117});
96118
97client.login(fs.readFileSync('token').toString().replace(/ |\n/g,''));
119client.login(fs.readFileSync(__dirname + '/token').toString().replace(/ |\n/g,''));