Skip to content

Instantly share code, notes, and snippets.

@CodingBobby
Last active April 6, 2018 12:14
Show Gist options
  • Save CodingBobby/83431c3a69b990a33703d6069089a200 to your computer and use it in GitHub Desktop.
Save CodingBobby/83431c3a69b990a33703d6069089a200 to your computer and use it in GitHub Desktop.
if(cmd == 'top' || cmd == 'rank' || cmd == 'tr') { // top 10 users by given argument
cmdLog(cmd, args, msg);
let usrArr = sortArr(gidArrSrch(msg,args[0]),2);
let count = args[1] || 10;
if(usrArr.length < count)
count = usrArr.length;
console.log(`\n> Top ${count} on ${msg.guild.name} at ${args[0]}`);
const topList = () => {
let msg = "";
for(var i = 0, j; i < count; i++) {
j ? j < i : j = i;
let id = disbot.users.get(usrArr[i][0]);
if(id == undefined) {
count++;
continue;
}
msg += `**\n${j+1}:**\t${id.username}#${id.discriminator}`;
j++;
}
return msg;
}
msg.channel.send(topList());
console.log('\n> success');
return 1;
}
function gidArrSrch(msg, search) { // fetch profiles of all users in current guild
const gldUsrs = (prfls,glds) =>
Object.entries(prfls).filter(([user,attrs]) =>
Object.values(attrs.gld[glds] || {}).length);
const users = gldUsrs(profiles,msg.guild.id);
let newArr = [];
for(var user of users) {
const id = user[0];
const data = user[1];
let srchVal = data.gld[msg.guild.id][search];
newArr.push([id,srchVal]);
}
return newArr;
}
function sortArr(arr, s) { // sort arr[][] for s. element
let swapp;
let n = arr.length - 1;
s--;
do {
swapp = false;
for(var i = 0; i < n; i++) {
if(arr[i][s] < arr[i+1][s]) {
let tmp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = tmp;
swapp = true;
}
} n--;
} while (swapp);
return arr;
}
function cmdLog(cmd, args, msg) { // general command log in console
console.log(`\n> COMMAND [${cmd}] with ARGUMENTS [${args}]\n> called by: ${msg.author.username}#${msg.author.discriminator}`)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment