Skip to content

Commit 152aba2

Browse files
committed
Server & Member stats command
1 parent 7c1dba2 commit 152aba2

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

simple-stats-bot/bot.js

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
require('dotenv').config();
2+
const { Client, MessageEmbed } = require('discord.js');
3+
const client = new Client();
4+
5+
client.login(process.env.BOT_TOKEN);
6+
7+
client.on('ready', () => console.log(`${client.user.tag} logged in.`));
8+
9+
client.on('message', message => {
10+
if(message.author.bot) return;
11+
console.log(message.mentions);
12+
if(message.content.toLowerCase().startsWith('!stats')) {
13+
const args = message.content.split(' ');
14+
console.log(args);
15+
if(args.length > 2) {
16+
message.channel.send(`Incorrect Usage: !stats | !stats <user_id> | !stats @mention`);
17+
} else if(args.length === 2) {
18+
const member = message.mentions.members.size === 1 ?
19+
message.mentions.members.first() :
20+
message.guild.members.cache.get(args[1]);
21+
if(member) {
22+
const embed = new MessageEmbed()
23+
.setAuthor(`${member.user.tag} (${member.id})`, member.user.displayAvatarURL())
24+
.setThumbnail(member.user.displayAvatarURL())
25+
.addField('Created On', member.user.createdAt.toLocaleString(), true)
26+
.addField('Joined On', member.joinedAt, true)
27+
.addField('Kickable', member.kickable, false)
28+
.addField('Voice Channel', member.voice.channel ? member.voice.channel.name + `(${member.voice.channel.id})` : 'None')
29+
.addField('Presence', member.presence.status)
30+
.setDescription(`${member.roles.cache.map(role => role.toString()).join(' ')}`);
31+
message.channel.send(embed);
32+
} else {
33+
message.channel.send(`I couldn't find that member with ID ${args[1]}`);
34+
}
35+
36+
} else {
37+
const { guild } = message;
38+
const embed = new MessageEmbed()
39+
.setAuthor(`${guild.name} (${guild.id})`, guild.iconURL())
40+
.setThumbnail(guild.iconURL())
41+
.addField('Created On', guild.createdAt.toLocaleString(), true)
42+
.addField('Guild Owner', guild.owner.user.tag)
43+
.addField('Total Members', guild.memberCount, true)
44+
.addField('Total Real Members', guild.members.cache.filter(member => !member.user.bot).size, true)
45+
.addField('Total Bots', guild.members.cache.filter(member => member.user.bot).size, true)
46+
.addField('Total Channels', guild.channels.cache.size, true)
47+
.addField('Total Text Channels', guild.channels.cache.filter(ch => ch.type === 'text').size, true)
48+
.addField('Total Voice Channels', guild.channels.cache.filter(ch => ch.type === 'voice').size, true)
49+
.setColor('#5CC5FF')
50+
.setDescription(`${guild.roles.cache.map(role => role.toString()).join(' ')}`);
51+
message.channel.send(embed);
52+
}
53+
}
54+
});

0 commit comments

Comments
 (0)