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');...@@ -3,8 +3,13 @@ const fs = require('fs');
3const client = new Discord.Client();3const client = new Discord.Client();
4const Color = require('color');4const Color = require('color');
55
6function updateClientStatus() {
7 client.user.setActivity(`!paint -ing ${client.guilds.size} servers.`)
8}
9
6client.on('ready', () => {10client.on('ready', () => {
7 console.log(`Logged in as ${client.user.tag}!`);11 console.log(`Logged in as ${client.user.tag}!`);
12 updateClientStatus();
8});13});
914
10client.on('message', async (msg) => {15client.on('message', async (msg) => {
...@@ -27,7 +32,7 @@ client.on('message', async (msg) => {...@@ -27,7 +32,7 @@ client.on('message', async (msg) => {
27 try {32 try {
28 color = Color('#' + input);33 color = Color('#' + input);
29 } catch (error) {34 } 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')}\`\``)
31 return;36 return;
32 }37 }
33 }38 }
...@@ -58,20 +63,33 @@ client.on('message', async (msg) => {...@@ -58,20 +63,33 @@ client.on('message', async (msg) => {
58 const rolesToRemove = msg.member.roles.filter(role => role.name.startsWith('#') && role.name !== hex);63 const rolesToRemove = msg.member.roles.filter(role => role.name.startsWith('#') && role.name !== hex);
59 rolesToRemove.map(async (role) => {64 rolesToRemove.map(async (role) => {
60 msg.member.removeRole(role);65 msg.member.removeRole(role);
61 if (role.members.size === 0) {66 if (role.members.size === 1) {
62 console.log('Deleting ' + role.name)
63 role.delete();67 role.delete();
64 }68 }
65 });69 });
66 await msg.member.addRole(role);70 await msg.member.addRole(role);
67 msg.channel.send(`> You\'ve been painted to **${hex}**`);71 msg.channel.send(`> You\'ve been painted to **${hex}**`);
68 } catch (error) {72 } catch (error) {
69 console.log(error);73 msg.channel.send(`> **Error**: Could not assign your role, ask the server admin to check my permissions (Requires 'Manage Roles').`);
70 msg.channel.send(`> **Error**: Could not assign your role, ask the server admin to check my permissions.`);
71 }74 }
72 }75 }
73});76});
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
75client.on('guildCreate', guild => {93client.on('guildCreate', guild => {
76 let defaultChannel = "";94 let defaultChannel = "";
77 guild.channels.forEach((channel) => {95 guild.channels.forEach((channel) => {
...@@ -91,7 +109,11 @@ Some things to note...@@ -91,7 +109,11 @@ Some things to note
91109
92To use me, simply run110To use me, simply run
93> !paint <color>111> !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();
95});117});
96118
97client.login(fs.readFileSync('token').toString().replace(/ |\n/g,''));119client.login(fs.readFileSync(__dirname + '/token').toString().replace(/ |\n/g,''));