Skip to content

Commit

Permalink
$guildLeaderboard modified as globalLb
Browse files Browse the repository at this point in the history
  • Loading branch information
baka-aho authored Dec 11, 2023
1 parent 5a15ac1 commit 23d6a16
Showing 1 changed file with 84 additions and 82 deletions.
166 changes: 84 additions & 82 deletions src/functions/database/guildLeaderBoard.js
Original file line number Diff line number Diff line change
@@ -1,87 +1,89 @@
module.exports = async (d) => {
const data = d.util.aoiFunc(d);
if (data.err) return d.error(data.err);

const [
variable,
type = "asc",
custom = `{top}. {username}: {value}`,
list = 10,
page = 1,
table = d.client.db.tables[0],
] = data.inside.splits;

const all = await d.client.db.all(table, (data) =>
data.key.startsWith(variable.deleteBrackets()) && data.key.split("_").length === 2,
);

let y = 0;
let value;
let content = [];

for (const Data of all.sort((x, y) => {
if (d.client.db.type === "aoi.db")
return Number(y.value) - Number(x.value);
else return Number(y.data.value) - Number(x.data.value);
})) {
let user;

if (d.client.db.type === "aoi.db") value = Number(Data.value);
else value = Number(Data.data.value);

user = await d.util.getGuild(d, Data.key.split("_")[1]);

if (user) {
y++;

let text = custom
.replace(`{top}`, y)
.replace("{id}", user.id)
.replace(`{name}`, user.name.removeBrackets())
.replace(`{value}`, value);

if (text.includes("{execute:")) {
let ins = text.split("{execute:")[1].split("}")[0];

const awaited = d.client.cmd.awaited.find(
(c) => c.name === ins,
);

if (!awaited)
return d.aoiError.fnError(
d,
"custom",
{ inside: data.inside },
` Invalid awaited command '${ins}' in`,
);

const CODE = await d.interpreter(
d.client,
{
guild: user,
channel: d.message.channel,
},
d.args,
awaited,
undefined,
true,
);

text = text.replace(`{execute:${ins}}`, CODE);
}

content.push(text);
}
const data = d.util.aoiFunc(d);
if (data.err) return d.error(data.err);

const [
variable,
type = "asc",
custom = `{top}. {username}: {value:,}`,
list = 10,
page = 1,
table = d.client.db.tables[0],
hideNegativeValue = false,
hideZeroValue = false
] = data.inside.splits;

if (!d.client.variableManager.has(variable, table))
return d.aoiError.fnError(d, 'custom', {}, `Variable "${variable}" Not Found`);
let v = d.client.variableManager.get(variable, table);

let db = await d.client.db.all(table, variable.addBrackets(), 1);
if (d.client.db.type === "aoi.db")
db.sort((a, b) => Number(a.value) - Number(b.value));
else db.sort((a, b) => Number(y.data.value) - Number(x.data.value));

if (type === "desc") db = db.reverse();

if (hideNegativeValue === "true") db = db.filter(x => x.value >= 0);
if (hideZeroValue === "true") db = db.filter(x => x.value != 0);

let y = 0;
let value;
let content = [];

for (const Data of db) {
let guild;
if (d.client.db.type === "aoi.db") value = Number(Data.value);
else value = Number(Data.data.value);
guild = await d.util.getGuild(d, Data.key.split("_")[1]);

if (guild) {
y++;
let text = custom
.replaceAll(`{top}`, y)
.replaceAll("{id}", guild.id)
.replaceAll(`{name}`, guild.name.removeBrackets())
.replaceAll(`{value}`, value);

if (text.includes("{value:")) {
let sep = text.split("{value:")[1].split("}")[0];
text = text.replaceAll(`{value:${sep}}`, value.toLocaleString().replaceAll(",", sep));
}

if (text.includes("{execute:")) {
let ins = text.split("{execute:")[1].split("}")[0];
const awaited = d.client.cmd.awaited.find((c) => c.name === ins);

if (!awaited)
return d.aoiError.fnError(
d,
"custom",
{inside: data.inside},
` Invalid awaited command '${ins}' in`,
);

const CODE = await d.interpreter(
d.client,
{
guild: guild,
channel: d.message.channel,
},
d.args,
awaited,
undefined,
true,
);

text = text.replaceAll(`{execute:${ins}}`, CODE);
}

content.push(text);
}
}

if (type === "desc") content = content.reverse();
data.result = content.slice(page * list - list, page * list).join("\n");

const px = page * list - list,
py = page * list;

data.result = content.slice(px, py).join("\n");

return {
code: d.util.setCode(data),
};
return {
code: d.util.setCode(data),
};
};

0 comments on commit 23d6a16

Please sign in to comment.