1+ const Discord = require ( "discord.js" ) ;
2+ const mongoose = require ( 'mongoose' ) ;
3+ mongoose . connect ( 'mongodb://localhost/tutorial' , {
4+ useNewUrlParser : true
5+ } ) ;
6+ const Coins = require ( "../models/coins.js" ) ;
7+ module . exports . run = async ( bot , message , args ) => {
8+ await message . delete ( ) ;
9+ if ( message . author . id !== '178657593030475776' ) return ;
10+ //Grab all of the users in said server
11+ Coins . find ( {
12+ serverID : message . guild . id
13+ } ) . sort ( [
14+ [ 'coins' , 'descending' ]
15+ ] ) . exec ( ( err , res ) => {
16+ if ( err ) console . log ( err ) ;
17+
18+ let embed = new Discord . RichEmbed ( )
19+ . setTitle ( "Coins Leaderboard" )
20+ //if there are no results
21+ if ( res . length === 0 ) {
22+ embed . setColor ( "RED" ) ;
23+ embed . addField ( "No data found" , "Please type in chat to gain coins!" )
24+ } else if ( res . length < 10 ) {
25+ //less than 10 results
26+ embed . setColor ( "BLURPLE" ) ;
27+ for ( i = 0 ; i < res . length ; i ++ ) {
28+ let member = message . guild . members . get ( res [ i ] . userID ) || "User Left"
29+ if ( member === "User Left" ) {
30+ embed . addField ( `${ i + 1 } . ${ member } ` , `**Coins**: ${ res [ i ] . coins } ` ) ;
31+ } else {
32+ embed . addField ( `${ i + 1 } . ${ member . user . username } ` , `**Coins**: ${ res [ i ] . coins } ` ) ;
33+ }
34+ }
35+ } else {
36+ //more than 10 results
37+ embed . setColor ( "BLURPLE" ) ;
38+ for ( i = 0 ; i < 10 ; i ++ ) {
39+ let member = message . guild . members . get ( res [ i ] . userID ) || "User Left"
40+ if ( member === "User Left" ) {
41+ embed . addField ( `${ i + 1 } . ${ member } ` , `**Coins**: ${ res [ i ] . coins } ` ) ;
42+ } else {
43+ embed . addField ( `${ i + 1 } . ${ member . user . username } ` , `**Coins**: ${ res [ i ] . coins } ` ) ;
44+ }
45+ }
46+ }
47+
48+ message . channel . send ( embed ) ;
49+ } )
50+ }
51+ module . exports . help = {
52+ name : "leaders"
53+ }
0 commit comments