Skip to content

Commit 156b3f9

Browse files
authored
📝 Commande manquante
1 parent 45b9a31 commit 156b3f9

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

commands/level/server-stats.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
const Discord = require('discord.js');
2+
const config = require('../../config.json');
3+
const emoji = require('../../emojis.json')
4+
const guild = require('../../database/models/guild');
5+
const moment = require('moment')
6+
const Voice = require("discord-voice");
7+
8+
const levelModel = require('../../database/models/level');
9+
module.exports = {
10+
name: 'server-stats',
11+
description: 'Affiche les statistiques du serveur',
12+
aliases: ['serveur-stats', 'serv-stats'],
13+
cat: 'level',
14+
async execute(message, args) {
15+
16+
let MessageCount = 0;
17+
const userdata = await levelModel.find({ serverID: message.guild.id })
18+
let firster = userdata.sort((a, b) => (a.messagec < b.messagec) ? 1 : -1).slice(0, 3)
19+
userdata.forEach(user => {
20+
MessageCount = MessageCount + user.messagec;
21+
});
22+
const rawLeaderboard = await Voice.fetchLeaderboard(message.guild.id, 3); // We grab top 10 users with most message(s) in the current server.
23+
24+
25+
const leaderboard = await Voice.computeLeaderboard(message.client, rawLeaderboard, true); // We process the leaderboard.
26+
27+
const lb = leaderboard.map(e => `${e.position}. ${e.username}#${e.discriminator}\nVoice Time: ${e.voiceTime}ms`); // We map the outputs.
28+
const millisToMinutesAndSeconds = (millis) => {
29+
var minutes = Math.floor(millis / 60000);
30+
var seconds = ((millis % 60000) / 1000).toFixed(0);
31+
//ES6 interpolated literals/template literals
32+
//If seconds is less than 10 put a zero in front.
33+
return `${minutes}:${(seconds < 10 ? "0" : "")}${seconds}`;
34+
}
35+
36+
const embed = new Discord.MessageEmbed()
37+
.setAuthor(`📊 ${message.guild.name} - Classement`, message.guild.iconURL({ dynamic: true, size: 512 }))
38+
.addField(`✉ Statistiques Textuelles`, `**Messages envoyés** :\`${MessageCount}\`\n **Personnes qui ont envoyé des messages** : \`${userdata.length}\`\n **Soit ** \`${userdata.length /message.guild.memberCount *100}%\`**du serveur**`)
39+
.addField(`🏆 Utilisateurs les plus actifs`, firster.map(v => `<@${v.userID}> : Niveau \`${v.level}\` , \`${v.messagec}\` Messages `) || "Aucunnes données")
40+
.addField(`🏆 Classement Vocal`, rawLeaderboard.length > 0 ? `${leaderboard.map(e => `\`${e.position}\`. **${e.username}#${e.discriminator}**\nTemps en vocal: ${millisToMinutesAndSeconds(e.voiceTime)} Minutes `).join("\n")}` :"Pas assez de données pour ce serveur")
41+
42+
.setDescription(`⏰ Statistiques depuis le ${moment(message.guild.me.joinedTimestamp).locale('fr').format('LT ,')} ${moment(message.guild.me.joinedTimestamp).locale('fr').fromNow()}`)
43+
.setColor(message.client.color)
44+
.setFooter(message.client.footer)
45+
message.channel.send({ embed })
46+
47+
48+
49+
},
50+
};

0 commit comments

Comments
 (0)