kursadzija
All checks were successful
Deploy bot / build-and-deploy (push) Successful in 24s

This commit is contained in:
2025-08-27 16:53:17 +02:00
parent d163a03225
commit 3bfd995e3a
14 changed files with 53 additions and 18 deletions

View File

@ -138,20 +138,24 @@ export const get = async (req, res) => {
const combined = req.query.q; const combined = req.query.q;
if (!combined || combined.replace(" ", "").length == 0) if (!combined || combined.replace(" ", "").length == 0)
return res.status(400).json({ error: "Missing query." }); return res.status(400).json({ error: "missing-query" });
let entryFound = false; let entryFound = false;
let estimatedPrice = 0; let estimatedPrice = 0;
let subtable, closestInTable; let subtable, closestInTable;
let gameValue = 0; let gameValue = -1;
let returnKeyWord = ""; let returnKeyWord = "";
combined.split(" ").forEach((arg) => { combined.split(" ").forEach((arg) => {
if (!isNaN(parseInt(arg)) && !gameValue) { if (!isNaN(parseInt(arg)) && gameValue == -1) {
gameValue = parseInt(arg); gameValue = parseInt(arg);
} }
}); });
if (gameValue == -1) {
return res.status(400).json({ error: "gameValue-not-found" });
}
priceTable.forEach((price, idx) => { priceTable.forEach((price, idx) => {
if (price.regex.test(combined) && !entryFound) { if (price.regex.test(combined) && !entryFound) {
entryFound = true; entryFound = true;
@ -183,8 +187,5 @@ export const get = async (req, res) => {
closestInTable, closestInTable,
}); });
} }
} else } else return res.status(400).json({ error: "entry-not-found" });
return res
.status(400)
.json({ error: "Query could not be matched with anything." });
}; };

View File

@ -5,6 +5,7 @@ exports.usage =
"CLIENT_PREFIX:bonus <number> <number> [inf optional extra numbers]"; "CLIENT_PREFIX:bonus <number> <number> [inf optional extra numbers]";
exports.example = "CLIENT_PREFIX:bonus 100 100"; exports.example = "CLIENT_PREFIX:bonus 100 100";
exports.hidden = false; exports.hidden = false;
exports.isAlias = false;
exports.run = (client, message, args) => { exports.run = (client, message, args) => {
let is1nan = false; let is1nan = false;
if (!args[0]) if (!args[0])

View File

@ -3,6 +3,7 @@ exports.description = ":cat: Calculates boost for cat.";
exports.usage = "CLIENT_PREFIX:cat <boost> <levels>"; exports.usage = "CLIENT_PREFIX:cat <boost> <levels>";
exports.example = "CLIENT_PREFIX:cat 80 120"; exports.example = "CLIENT_PREFIX:cat 80 120";
exports.hidden = false; exports.hidden = false;
exports.isAlias = false;
exports.run = (client, message, args) => { exports.run = (client, message, args) => {
if (!args[0] || !args[1]) if (!args[0] || !args[1])
return message.channel.send( return message.channel.send(

View File

@ -5,6 +5,7 @@ exports.description =
exports.usage = "CLIENT_PREFIX:cb <damage> <ups> [projectile speed]"; exports.usage = "CLIENT_PREFIX:cb <damage> <ups> [projectile speed]";
exports.example = "CLIENT_PREFIX:cb 10000 250 10000"; exports.example = "CLIENT_PREFIX:cb 10000 250 10000";
exports.hidden = false; exports.hidden = false;
exports.isAlias = false;
exports.run = (client, message, args) => { exports.run = (client, message, args) => {
if (!args[0] || !args[1]) if (!args[0] || !args[1])
return message.channel.send( return message.channel.send(

View File

@ -1,8 +1,8 @@
const est = require("./estimate");
exports.name = "est"; exports.name = "est";
exports.description = ":money_with_wings: Alias for estimate."; exports.description = est.description;
exports.usage = "alias"; exports.usage = est.usage;
exports.example = "alias"; exports.example = est.usage;
exports.hidden = true; exports.hidden = false;
exports.run = async (client, message, args) => { exports.isAlias = true;
require("./estimate").run(client, message, args); exports.run = est.run;
};

View File

@ -5,8 +5,9 @@ exports.description =
exports.usage = exports.usage =
"CLIENT_PREFIX:estimate [summary of item you want the price of]"; "CLIENT_PREFIX:estimate [summary of item you want the price of]";
exports.example = exports.example =
"CLIENT_PREFIX:estimate 1600 ab2\nCLIENT_PREFIX:estimate 1100 thp\nCLIENT_PREFIX:estimate 2400 app builder staff\n(you can also include `showtable` anywhere to show raw price data)\n(always put number first, do not put conflicting data to avoid confusion)"; "CLIENT_PREFIX:estimate 1600 ab2\nCLIENT_PREFIX:estimate 1100 thp\nCLIENT_PREFIX:estimate 2400 app builder staff\nCLIENT_PREFIX:estimate 2200 app builder piece\nCLIENT_PREFIX:estimate 2200 app armor\n(you can also include `showtable` anywhere to show raw price data)\n(always put number first, do not put conflicting data to avoid confusion)";
exports.hidden = false; exports.hidden = false;
exports.isAlias = false;
exports.run = async (client, message, args) => { exports.run = async (client, message, args) => {
if (!args[0]) { if (!args[0]) {
return fetch(client.sharedEndpoint + "estimate" + "?getPriceTable=true") return fetch(client.sharedEndpoint + "estimate" + "?getPriceTable=true")
@ -22,6 +23,11 @@ exports.run = async (client, message, args) => {
} }
const combined = args.join(" "); const combined = args.join(" ");
let showtable = combined.includes("showtable"); let showtable = combined.includes("showtable");
if (combined.startsWith("help")) {
require("./help").run(client, message, ["estimate"]);
return;
}
fetch( fetch(
client.sharedEndpoint + client.sharedEndpoint +
"estimate" + "estimate" +
@ -31,7 +37,17 @@ exports.run = async (client, message, args) => {
.then((d) => d.json()) .then((d) => d.json())
.then((data) => { .then((data) => {
if (data.error) { if (data.error) {
return message.channel.send(data.error); if (data.error == "entry-not-found")
return message.channel.send(
"Your query couldn't be matched with anything, please refine your query or reffer to `CLIENT_PREFIX:help estimate`. You can also use `CLIENT_PREFIX:estimate` to see all available price tables for more information.".replaceAll(
"CLIENT_PREFIX:",
client.prefix
)
);
if (data.error == "")
return message.channel.send(
"API query is somehow empty, but did not error for `entry-not-found`, please contact shiro."
);
} else { } else {
if (showtable) { if (showtable) {
const { returnKeyWord, subtable } = data; const { returnKeyWord, subtable } = data;

View File

@ -74,6 +74,7 @@ exports.usage =
"CLIENT_PREFIX:ev <hdmg> <ab2> OR CLIENT_PREFIX:ev <total stats>"; "CLIENT_PREFIX:ev <hdmg> <ab2> OR CLIENT_PREFIX:ev <total stats>";
exports.example = "CLIENT_PREFIX:ev 6000 5000\nCLIENT_PREFIX:ev 10000"; exports.example = "CLIENT_PREFIX:ev 6000 5000\nCLIENT_PREFIX:ev 10000";
exports.hidden = false; exports.hidden = false;
exports.isAlias = false;
exports.run = (client, message, args) => { exports.run = (client, message, args) => {
if (!args[0]) if (!args[0])
return message.channel.send( return message.channel.send(

View File

@ -30,6 +30,7 @@ exports.description = ":muscle: Calculate hero boost's damage multiplier.";
exports.usage = "CLIENT_PREFIX:hb <points>"; exports.usage = "CLIENT_PREFIX:hb <points>";
exports.example = "CLIENT_PREFIX:hb 5000"; exports.example = "CLIENT_PREFIX:hb 5000";
exports.hidden = false; exports.hidden = false;
exports.isAlias = false;
exports.run = (client, message, args) => { exports.run = (client, message, args) => {
if (!args[0]) if (!args[0])
return message.channel.send( return message.channel.send(

View File

@ -17,7 +17,11 @@ exports.run = (client, message, args) => {
client.prefix client.prefix
) )
); );
if (cmd.hidden && message.author.id != client.ownerID) return; if (
(cmd.hidden && message.author.id != client.ownerID) ||
cmd.description == "alias"
)
return;
embed.setTitle(`Help for \`${cmd.name}\` command`); embed.setTitle(`Help for \`${cmd.name}\` command`);
embed.setDescription(cmd.description); embed.setDescription(cmd.description);
embed.addFields( embed.addFields(
@ -34,7 +38,11 @@ exports.run = (client, message, args) => {
[...client.commands.values()] [...client.commands.values()]
.sort((a, b) => (a.name > b.name ? 1 : -1)) .sort((a, b) => (a.name > b.name ? 1 : -1))
.forEach((cmd) => { .forEach((cmd) => {
if (cmd.hidden && message.author.id != client.ownerID) return; if (
(cmd.hidden && message.author.id != client.ownerID) ||
cmd.isAlias
)
return;
embed.addFields({ embed.addFields({
name: cmd.name, name: cmd.name,
value: cmd.description.replaceAll( value: cmd.description.replaceAll(

View File

@ -5,6 +5,7 @@ exports.description =
exports.usage = "CLIENT_PREFIX:ms <elemental damage> <ups> [projectile speed]"; exports.usage = "CLIENT_PREFIX:ms <elemental damage> <ups> [projectile speed]";
exports.example = "CLIENT_PREFIX:ms 10000 250 10000"; exports.example = "CLIENT_PREFIX:ms 10000 250 10000";
exports.hidden = false; exports.hidden = false;
exports.isAlias = false;
exports.run = (client, message, args) => { exports.run = (client, message, args) => {
if (!args[0] || !args[1]) if (!args[0] || !args[1])
return message.channel.send( return message.channel.send(

View File

@ -14,6 +14,7 @@ exports.description = ":ping_pong: View service statistics.";
exports.usage = "CLIENT_PREFIX:ping"; exports.usage = "CLIENT_PREFIX:ping";
exports.example = "CLIENT_PREFIX:ping"; exports.example = "CLIENT_PREFIX:ping";
exports.hidden = true; exports.hidden = true;
exports.isAlias = false;
exports.run = async (client, message, args) => { exports.run = async (client, message, args) => {
message.channel.send("Fetching data...").then((m) => { message.channel.send("Fetching data...").then((m) => {
m.edit( m.edit(

View File

@ -3,6 +3,7 @@ exports.description = ":ninja: Refetch user react data.";
exports.usage = "CLIENT_PREFIX:refetch"; exports.usage = "CLIENT_PREFIX:refetch";
exports.example = "CLIENT_PREFIX:refetch"; exports.example = "CLIENT_PREFIX:refetch";
exports.hidden = true; exports.hidden = true;
exports.isAlias = false;
exports.run = async (client, message, args) => { exports.run = async (client, message, args) => {
if (message.author.id != client.ownerID) return; if (message.author.id != client.ownerID) return;
try { try {

View File

@ -6,6 +6,7 @@ exports.usage =
"CLIENT_PREFIX:res <res> <res> <res> [res] | <hero stat> <levels> [second hero stat]"; "CLIENT_PREFIX:res <res> <res> <res> [res] | <hero stat> <levels> [second hero stat]";
exports.example = "CLIENT_PREFIX:res -3 1 -16 14 | 406 440"; exports.example = "CLIENT_PREFIX:res -3 1 -16 14 | 406 440";
exports.hidden = false; exports.hidden = false;
exports.isAlias = false;
exports.run = async (client, message, args) => { exports.run = async (client, message, args) => {
for (let i = 0; i < args.length; i++) { for (let i = 0; i < args.length; i++) {
if (args[i] == "|") continue; if (args[i] == "|") continue;

View File

@ -31,6 +31,7 @@ exports.description = ":fire: Calculate tower boost's damage multiplier.";
exports.usage = "CLIENT_PREFIX:tb <points>"; exports.usage = "CLIENT_PREFIX:tb <points>";
exports.example = "CLIENT_PREFIX:tb 5000"; exports.example = "CLIENT_PREFIX:tb 5000";
exports.hidden = false; exports.hidden = false;
exports.isAlias = false;
exports.run = (client, message, args) => { exports.run = (client, message, args) => {
if (!args[0]) if (!args[0])
return message.channel.send( return message.channel.send(