@ -8,6 +8,7 @@ import * as fs from 'fs';
import * as path from 'path' ;
let hits = 0 ;
const helpMessage = "`do be helping`: display this help message\n`do be roundgen`: send a pdf round to the channel\n`do be roundgen dm`: dm a pdf round to you\n`do be scoring`: start a scoring session\n > `do be scoring (a/b)(4/10)`: add points to Team A or Team B\n > `do be scoring stop`: end scoring session and post final points\n`do be hits`: send the number of rounds generated\n`do be servers`: send the number of servers this bot is a part of\n`do be iss`: show the current location of the International Space Station\n`do be training`: send a quick practice problem (you **must** react to your answer, or the bot will yell at you)\n > subject options: astro, phys, chem, math, bio, ess, energy\n`do be top`: list cross-server top 10 players\nSource Code: https://github.com/ADawesomeguy/AwesomeSciBo (don't forget to star!)" ;
if ( fs . existsSync ( 'numhits.txt' ) ) {
fs . readFile ( 'numhits.txt' , 'utf8' , function ( err , data ) {
@ -20,18 +21,59 @@ if (fs.existsSync('numhits.txt')) {
fs . writeFile ( 'numhits.txt' , hits . toString ( ) , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
}
client . once ( 'ready' , ( ) => {
console . log ( client . user . username ) ;
client . user . setActivity ( "for \"do be helping\"" , { type : "WATCHING" } ) ;
} ) ;
client . on ( 'guildCreate' , guild => {
guild . channels . cache . find ( channel => channel . name === 'general' ) . send ( "What is up peeps I am the AwesomeSciBo B ot!" ) ;
guild . channels . cache . find ( channel => channel . name === 'general' ) . send ( "'Sup, I'm the AwesomeSciBo b ot!" ) ;
} ) ;
client . on ( 'message' , async message => {
if ( message . content . startsWith ( "do be announcing" ) && message . author . id === process . argv [ 3 ] ) {
if ( message . author . bot ) {
return ;
}
const formattedMessage = message . content . toLowerCase ( ) . replace ( /\s+/g , '' ) ;
console . log ( formattedMessage )
if ( formattedMessage . startsWith ( "dobe" ) ) {
switch ( formattedMessage ) {
case 'dobehits' :
checkHits ( ) ;
break ;
case 'dobehelping' :
sendHelpMessage ( ) ;
break ;
case 'doberoundgen' :
generateRound ( false ) ;
break ;
case 'doberoundgendm' :
generateRound ( true ) ;
break ;
case 'dobescoring' :
startScoring ( ) ;
break ;
case 'dobetop' :
showLeaderboard ( ) ;
break ;
case 'dobehappy' :
dontWorryBeHappy ( ) ;
break ;
case 'dobeservers' :
showServerNumber ( ) ;
break ;
case 'dobeiss' :
showIssLocation ( ) ;
break ;
default :
otherCommands ( ) ;
}
}
async function otherCommands ( ) {
if ( message . content . toLowerCase ( ) . startsWith ( "do be announcing" ) && message . author . id === process . argv [ 3 ] ) {
const announcement = message . content . substring ( 17 ) ;
client . guilds . cache . forEach ( ( guild ) => {
const channel = guild . channels . cache . find ( channel => channel . name === 'general' ) ;
@ -41,198 +83,7 @@ client.on('message', async message => {
}
}
} ) ;
}
if ( message . content . toLowerCase ( ) === "do be hits" ) {
message . channel . send ( hits ) ;
fs . writeFile ( 'numhits.txt' , hits . toString ( ) , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
}
if ( message . content . toLowerCase ( ) === ( "do be helping" ) ) {
message . channel . send ( new Discord . MessageEmbed ( ) . setTitle ( "Help" ) . setDescription ( "`do be helping`: display this help message\n`do be roundgen html`: send a round to the channel\n`do be roundgen html dm`: dm a round to you\n`do be roundgen pdf`: send a pdf round to the channel\n`do be roundgen pdf dm`: dm a pdf round to you\n`do be scoring`: start a scoring session\n > `do be scoring (a/b)(4/10)`: add points to Team A or Team B\n > `do be scoring stop`: end scoring session and post final points\n`do be hits`: send the number of rounds generated\n`do be servers`: send the number of servers this bot is a part of\n`do be iss`: show the current location of the International Space Station\n`do be training`: send a quick practice problem (you **must** react to your answer, or the bot will yell at you)\n > subject options: astro, phys, chem, math, bio, ess, energy\n`do be top`: list cross-server top 10 players\nSource Code: https://github.com/ADawesomeguy/AwesomeSciBo (don't forget to star!)" ) ) ;
}
if ( message . content . toLowerCase ( ) === ( "do be roundgen html dm" ) ) {
fs . writeFile ( 'round.html' , "<h1>Here's your round!</h1>" , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
const person = client . users . cache . get ( message . author . id ) ;
const i ;
let generatingMsg = await message . channel . send ( "Generating..." ) ;
for ( i = 1 ; i < 26 ; i ++ ) {
const tossup_question ;
const question_category ;
const tossup_format ;
const tossup_answer ;
const bonus_question ;
const bonus_format ;
const bonus_answer ;
const htmlContent = "" ;
await fetch ( 'https://scibowldb.com/api/questions/random' )
. then ( response => response . json ( ) )
. then ( data => {
tossup_question = data . question . tossup_question ;
tossup_answer = data . question . tossup_answer ;
question_category = data . question . category ;
tossup_format = data . question . tossup_format ;
bonus_question = data . question . bonus_question ;
bonus_answer = data . question . bonus_answer ;
bonus_format = data . question . bonus_format ;
htmlContent = ` <br><br> ${ i } . Tossup \n <br><br> ` + ` <strong> ${ question_category } </strong> ` + " " + ` <em> ${ tossup_format } </em> ` + " " + tossup_question + "<br><br>" + "<strong>ANSWER:</strong> " + tossup_answer + "<br><br>" ;
htmlContent += "<br><br>Bonus\n<br><br>" + ` <strong> ${ question_category } </strong> ` + " " + ` <em> ${ bonus_format } </em> ` + " " + bonus_question + "<br><br>" + "<strong>ANSWER:</strong> " + bonus_answer + "<br><br>" ;
htmlContent = htmlContent . replace ( /\n/g , "<br>" ) ;
fs . appendFile ( 'round.html' , htmlContent , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
} ) ;
}
generatingMsg . delete ( { timeout : 1000 } ) ;
setTimeout ( function ( ) { person . send ( new Discord . MessageEmbed ( ) . setTitle ( "Here's your round!" ) . attachFiles ( "round.html" ) ) ; } , 1000 ) ;
hits ++ ;
}
if ( message . content . toLowerCase ( ) === ( "do be roundgen html" ) ) {
fs . writeFile ( 'round.html' , "<h1>Here's your round!</h1>" , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
let i ;
let generatingMsg = await message . channel . send ( "Generating..." ) ;
for ( i = 1 ; i < 26 ; i ++ ) {
const tossup_question ;
const question_category ;
const tossup_format ;
const tossup_answer ;
const bonus_question ;
const bonus_format ;
const bonus_answer ;
const htmlContent = "" ;
await fetch ( 'https://scibowldb.com/api/questions/random' )
. then ( response => response . json ( ) )
. then ( data => {
tossup_question = data . question . tossup_question ;
tossup_answer = data . question . tossup_answer ;
question_category = data . question . category ;
tossup_format = data . question . tossup_format ;
bonus_question = data . question . bonus_question ;
bonus_answer = data . question . bonus_answer ;
bonus_format = data . question . bonus_format ;
htmlContent = ` <br><br> ${ i } . Tossup \n <br><br> ` + ` <strong> ${ question_category } </strong> ` + " " + ` <em> ${ tossup_format } </em> ` + " " + tossup_question + "<br><br>" + "<strong>ANSWER:</strong> " + tossup_answer + "<br><br>" ;
htmlContent += "<br><br>Bonus\n<br><br>" + ` <strong> ${ question_category } </strong> ` + " " + ` <em> ${ bonus_format } </em> ` + " " + bonus_question + "<br><br>" + "<strong>ANSWER:</strong> " + bonus_answer + "<br><br>" ;
htmlContent = htmlContent . replace ( /\n/g , "<br>" ) ;
fs . appendFile ( 'round.html' , htmlContent , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
} ) ;
}
generatingMsg . delete ( { timeout : 1000 } ) ;
setTimeout ( function ( ) { message . channel . send ( new Discord . MessageEmbed ( ) . setTitle ( "Here's your round!" ) . attachFiles ( "round.html" ) ) ; } , 1000 ) ;
hits ++ ;
}
if ( message . content . toLowerCase ( ) === ( "do be roundgen pdf dm" ) ) {
fs . writeFile ( 'index.html' , "<h1>Here's your round!</h1>" , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
const person = client . users . cache . get ( message . author . id ) ;
let i ;
let generatingMsg = await message . channel . send ( "Generating..." ) ;
for ( i = 1 ; i < 26 ; i ++ ) {
const tossup_question ;
const question_category ;
const tossup_format ;
const tossup_answer ;
const bonus_question ;
const bonus_format ;
const bonus_answer ;
const htmlContent = "" ;
await fetch ( 'https://scibowldb.com/api/questions/random' )
. then ( response => response . json ( ) )
. then ( data => {
tossup_question = data . question . tossup_question ;
tossup_answer = data . question . tossup_answer ;
question_category = data . question . category ;
tossup_format = data . question . tossup_format ;
bonus_question = data . question . bonus_question ;
bonus_answer = data . question . bonus_answer ;
bonus_format = data . question . bonus_format ;
htmlContent = ` <br><br> ${ i } . Tossup \n <br><br> ` + ` <strong> ${ question_category } </strong> ` + " " + ` <em> ${ tossup_format } </em> ` + " " + tossup_question + "<br><br>" + "<strong>ANSWER:</strong> " + tossup_answer + "<br><br>" ;
htmlContent += "<br><br>Bonus\n<br><br>" + ` <strong> ${ question_category } </strong> ` + " " + ` <em> ${ bonus_format } </em> ` + " " + bonus_question + "<br><br>" + "<strong>ANSWER:</strong> " + bonus_answer + "<br><br>" ;
htmlContent = htmlContent . replace ( /\n/g , "<br>" ) ;
fs . appendFile ( 'index.html' , htmlContent , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
} ) ;
}
generatingMsg . delete ( { timeout : 1000 } ) ;
execSync ( "curl --request POST --url http://localhost:3136/convert/html --header 'Content-Type: multipart/form-data' --form files=@index.html -o round.pdf" , { encoding : 'utf-8' } ) ;
setTimeout ( function ( ) { person . send ( new Discord . MessageEmbed ( ) . setTitle ( "Here's your round!" ) . attachFiles ( "round.pdf" ) ) ; } , 1000 ) ;
hits ++ ;
}
if ( message . content . toLowerCase ( ) === ( "do be roundgen pdf" ) ) {
fs . writeFile ( 'index.html' , "<h1>Here's your round!</h1>" , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
let i ;
let generatingMsg = await message . channel . send ( "Generating..." ) ;
for ( i = 1 ; i < 26 ; i ++ ) {
const tossup_question ;
const question_category ;
const tossup_format ;
const tossup_answer ;
const bonus_question ;
const bonus_format ;
const bonus_answer ;
const htmlContent = "" ;
await fetch ( 'https://scibowldb.com/api/questions/random' )
. then ( response => response . json ( ) )
. then ( data => {
tossup_question = data . question . tossup_question ;
tossup_answer = data . question . tossup_answer ;
question_category = data . question . category ;
tossup_format = data . question . tossup_format ;
bonus_question = data . question . bonus_question ;
bonus_answer = data . question . bonus_answer ;
bonus_format = data . question . bonus_format ;
htmlContent = ` <br><br> ${ i } . Tossup \n <br><br> ` + ` <strong> ${ question_category } </strong> ` + " " + ` <em> ${ tossup_format } </em> ` + " " + tossup_question + "<br><br>" + "<strong>ANSWER:</strong> " + tossup_answer + "<br><br>" ;
htmlContent += "<br><br>Bonus\n<br><br>" + ` <strong> ${ question_category } </strong> ` + " " + ` <em> ${ bonus_format } </em> ` + " " + bonus_question + "<br><br>" + "<strong>ANSWER:</strong> " + bonus_answer + "<br><br>" ;
htmlContent = htmlContent . replace ( /\n/g , "<br>" ) ;
fs . appendFile ( 'index.html' , htmlContent , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
} ) ;
}
generatingMsg . delete ( { timeout : 1000 } ) ;
execSync ( "curl --request POST --url http://localhost:3136/convert/html --header 'Content-Type: multipart/form-data' --form files=@index.html -o round.pdf" , { encoding : 'utf-8' } ) ;
message . channel . send ( new Discord . MessageEmbed ( ) . setTitle ( "Here's your round!" ) . attachFiles ( "round.pdf" ) ) ;
hits ++ ;
}
if ( message . content . toLowerCase ( ) === "do be scoring" ) {
let scoreA = 0 ;
let scoreB = 0 ;
const scoreboard = await message . channel . send ( ` Here's the score: \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` )
. then ( ( scoreboard ) => {
const filter = m => m . content . includes ( 'do be' ) ;
const collector = message . channel . createMessageCollector ( filter , { time : 1500000 } ) ;
collector . on ( 'collect' , m => {
if ( m . content . toLowerCase ( ) === "do be scoring a 4" ) {
m . delete ( { timeout : 1000 } ) ;
scoreA += 4 ;
scoreboard . channel . send ( ` Here's the score: \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` ) ;
} else if ( m . content . toLowerCase ( ) === "do be scoring a 10" ) {
m . delete ( { timeout : 1000 } ) ;
scoreA += 10 ;
scoreboard . channel . send ( ` Here's the score: \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` ) ;
} else if ( m . content . toLowerCase ( ) === "do be scoring b 4" ) {
m . delete ( { timeout : 1000 } ) ;
scoreB += 4 ;
scoreboard . channel . send ( ` Here's the score: \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` ) ;
} else if ( m . content . toLowerCase ( ) === "do be scoring b 10" ) {
m . delete ( { timeout : 1000 } ) ;
scoreB += 10 ;
scoreboard . channel . send ( ` Here's the score: \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` ) ;
} else if ( m . content === "do be scoring stop" ) {
m . delete ( { timeout : 1000 } ) ;
scoreboard . delete ( { timeout : 1000 } ) ;
m . channel . send ( ` **FINAL SCORE:** \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` ) ;
collector . stop ( ) ;
}
} ) ;
} )
}
if ( message . content . toLowerCase ( ) === "do be happy" ) {
message . channel . send ( new Discord . MessageEmbed ( ) . setTitle ( ` Don't Worry Be Happy! ` ) . setImage ( "https://media.giphy.com/media/7OKC8ZpTT0PVm/giphy.gif" ) . setURL ( "https://youtu.be/d-diB65scQU" ) ) ;
}
if ( message . content . toLowerCase ( ) === "do be servers" ) {
message . channel . send ( client . guilds . cache . size ) ;
}
if ( message . content . toLowerCase ( ) === "do be iss" ) {
await fetch ( "http://api.open-notify.org/iss-now.json" )
. then ( request => request . json ( ) )
. then ( data => {
message . channel . send ( new Discord . MessageEmbed ( ) . setTitle ( "The current location of the ISS!" ) . setImage ( ` https://api.mapbox.com/styles/v1/mapbox/light-v10/static/pin-s+000( ${ data . iss_position . longitude } , ${ data . iss_position . latitude } )/-87.0186,20,1/1000x1000?access_token=pk.eyJ1IjoiYWRhd2Vzb21lZ3V5IiwiYSI6ImNrbGpuaWdrYzJ0bGYydXBja2xsNmd2YTcifQ.Ude0UFOf9lFcQ-3BANWY5A ` ) . setURL ( 'https://spotthestation.nasa.gov/tracking_map.cfm' ) ;
} ) ;
}
if ( message . content . startsWith ( "do be training" ) ) {
} else if ( message . content . toLowerCase ( ) . startsWith ( "do be training" ) ) {
if ( message . content === "do be training" ) {
const author = message . author ;
fetch ( "https://scibowldb.com/api/questions/random" )
@ -279,8 +130,8 @@ client.on('message', async message => {
return [ '❌' , '✅' ] . includes ( reaction . emoji . name ) && user . id === message . author . id ;
} ;
message . awaitReactions ( filter , { max : 1 , time : 600000 , errors : [ 'time' ] } )
. then ( reaction => {
const reaction = reaction . first ( ) ;
. then ( use rR eaction => {
const reaction = use rR eaction. first ( ) ;
if ( reaction . emoji . name === "❌" ) {
fs . writeFile ( ` userScore/ ${ message . author . id } ` , score . toString ( ) , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
message . reply ( ` nice try! Your score is now ${ score } ` ) ;
@ -380,8 +231,8 @@ client.on('message', async message => {
return [ '❌' , '✅' ] . includes ( reaction . emoji . name ) && user . id === message . author . id ;
} ;
message . awaitReactions ( filter , { max : 1 , time : 600000 , errors : [ 'time' ] } )
. then ( reaction => {
const reaction = reaction . first ( ) ;
. then ( use rR eaction => {
const reaction = use rR eaction. first ( ) ;
if ( reaction . emoji . name === "❌" ) {
fs . writeFile ( ` userScore/ ${ message . author . id } ` , score . toString ( ) , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
message . reply ( ` nice try! Your score is now ${ score } ` ) ;
@ -401,8 +252,112 @@ client.on('message', async message => {
} )
} )
}
} else {
if ( formattedMessage . startsWith ( "dobescoring" || "dobetraining" ) ) {
return ;
}
message . channel . send ( "That didn't quite make sense! Please use `do be helping` to see the available commands." )
}
}
async function checkHits ( ) {
message . channel . send ( hits ) ;
fs . writeFile ( 'numhits.txt' , hits . toString ( ) , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
}
async function sendHelpMessage ( ) {
message . channel . send ( new Discord . MessageEmbed ( ) . setTitle ( "Help" ) . setDescription ( helpMessage ) ) ;
}
async function generateRound ( isDM ) {
fs . writeFile ( 'index.html' , "<h1>Here's your round!</h1>" , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
let i ;
let generatingMsg = await message . channel . send ( "Generating..." ) ;
for ( i = 1 ; i < 26 ; i ++ ) {
let tossup_question ;
let question_category ;
let tossup_format ;
let tossup_answer ;
let bonus_question ;
let bonus_format ;
let bonus_answer ;
let htmlContent = "" ;
await fetch ( 'https://scibowldb.com/api/questions/random' )
. then ( response => response . json ( ) )
. then ( data => {
tossup_question = data . question . tossup_question ;
tossup_answer = data . question . tossup_answer ;
question_category = data . question . category ;
tossup_format = data . question . tossup_format ;
bonus_question = data . question . bonus_question ;
bonus_answer = data . question . bonus_answer ;
bonus_format = data . question . bonus_format ;
htmlContent = ` <br><br> ${ i } . Tossup \n <br><br> ` + ` <strong> ${ question_category } </strong> ` + " " + ` <em> ${ tossup_format } </em> ` + " " + tossup_question + "<br><br>" + "<strong>ANSWER:</strong> " + tossup_answer + "<br><br>" ;
htmlContent += "<br><br>Bonus\n<br><br>" + ` <strong> ${ question_category } </strong> ` + " " + ` <em> ${ bonus_format } </em> ` + " " + bonus_question + "<br><br>" + "<strong>ANSWER:</strong> " + bonus_answer + "<br><br>" ;
htmlContent = htmlContent . replace ( /\n/g , "<br>" ) ;
fs . appendFile ( 'index.html' , htmlContent , ( error ) => { if ( error ) { console . log ( error ) ; } } ) ;
} ) ;
}
generatingMsg . delete ( { timeout : 100 } ) ;
execSync ( "curl --request POST --url http://localhost:3136/convert/html --header 'Content-Type: multipart/form-data' --form files=@index.html -o round.pdf" , { encoding : 'utf-8' } ) ;
if ( isDM ) {
client . users . cache . get ( message . author . id ) . send ( new Discord . MessageEmbed ( ) . setTitle ( "Here's your round!" ) . attachFiles ( "round.pdf" ) ) ;
} else {
message . channel . send ( new Discord . MessageEmbed ( ) . setTitle ( "Here's your round!" ) . attachFiles ( "round.pdf" ) ) ;
}
hits ++ ;
}
async function startScoring ( ) {
let scoreA = 0 ;
let scoreB = 0 ;
const scoreboard = await message . channel . send ( ` Here's the score: \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` )
. then ( ( scoreboard ) => {
const filter = m => m . content . includes ( 'do be' ) ;
const collector = message . channel . createMessageCollector ( filter , { time : 1500000 } ) ;
collector . on ( 'collect' , m => {
if ( m . content . toLowerCase ( ) === "do be scoring a 4" ) {
m . delete ( { timeout : 1000 } ) ;
scoreA += 4 ;
scoreboard . channel . send ( ` Here's the score: \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` ) ;
} else if ( m . content . toLowerCase ( ) === "do be scoring a 10" ) {
m . delete ( { timeout : 1000 } ) ;
scoreA += 10 ;
scoreboard . channel . send ( ` Here's the score: \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` ) ;
} else if ( m . content . toLowerCase ( ) === "do be scoring b 4" ) {
m . delete ( { timeout : 1000 } ) ;
scoreB += 4 ;
scoreboard . channel . send ( ` Here's the score: \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` ) ;
} else if ( m . content . toLowerCase ( ) === "do be scoring b 10" ) {
m . delete ( { timeout : 1000 } ) ;
scoreB += 10 ;
scoreboard . channel . send ( ` Here's the score: \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` ) ;
} else if ( m . content === "do be scoring stop" ) {
m . delete ( { timeout : 1000 } ) ;
scoreboard . delete ( { timeout : 1000 } ) ;
m . channel . send ( ` **FINAL SCORE:** \n Team A: ${ scoreA } \n Team B: ${ scoreB } ` ) ;
collector . stop ( ) ;
}
} ) ;
} )
}
async function dontWorryBeHappy ( ) {
message . channel . send ( new Discord . MessageEmbed ( ) . setTitle ( ` Don't Worry Be Happy! ` ) . setImage ( "https://media.giphy.com/media/7OKC8ZpTT0PVm/giphy.gif" ) . setURL ( "https://youtu.be/d-diB65scQU" ) ) ;
}
async function showServerNumber ( ) {
message . channel . send ( client . guilds . cache . size ) ;
}
async function showIssLocation ( ) {
await fetch ( "http://api.open-notify.org/iss-now.json" )
. then ( request => request . json ( ) )
. then ( data => {
message . channel . send ( new Discord . MessageEmbed ( ) . setTitle ( "The current location of the ISS!" ) . setImage ( ` https://api.mapbox.com/styles/v1/mapbox/light-v10/static/pin-s+000( ${ data . iss_position . longitude } , ${ data . iss_position . latitude } )/-87.0186,20,1/1000x1000?access_token=pk.eyJ1IjoiYWRhd2Vzb21lZ3V5IiwiYSI6ImNrbGpuaWdrYzJ0bGYydXBja2xsNmd2YTcifQ.Ude0UFOf9lFcQ-3BANWY5A ` ) . setURL ( 'https://spotthestation.nasa.gov/tracking_map.cfm' ) ) ;
} ) ;
}
if ( message . content . toLowerCase ( ) === "do be top" ) {
async function showLeaderboard ( ) {
let messageContent = '' ;
let scores = [ ] ;
@ -414,7 +369,11 @@ client.on('message', async message => {
files . forEach ( function ( file ) {
scores . push ( ` ${ fs . readFileSync ( 'userScore/' + file , 'utf8' ) } |<@ ${ file } > ` )
} ) ;
const scoresFormatted = scores . sort ( function ( a , b ) { return b . split ( '|' ) [ 0 ] - a . split ( '|' ) [ 0 ] } ) ;
const scoresFodrmatted = scores . sort ( function ( a , b ) { return b . split ( '|' ) [ 0 ] - a . split ( '|' ) [ 0 ] } ) ;
if ( scores . length < 10 ) {
message . channel . send ( "Not enough scores yet!" ) ;
return ;
}
for ( let i = 0 ; i < 10 ; i ++ ) {
const currentScore = scoresFormatted [ i ] . split ( '|' ) ;
messageContent += ` ${ currentScore [ 1 ] } : ${ currentScore [ 0 ] } \n \n ` ;