2021-11-18 18:56:42 +01:00
|
|
|
const builds = require("../util/Data/builds.json");
|
|
|
|
const guns = builds.Main;
|
|
|
|
const Discord = require("discord.js");
|
|
|
|
const nmDt = require("../util/Data/aliases.json");
|
|
|
|
const weaponActualName = nmDt.weaponActualName;
|
|
|
|
const weaponAlliasName = nmDt.weaponAlliasName;
|
|
|
|
module.exports = {
|
|
|
|
name: "build",
|
|
|
|
description: "Check gun builds",
|
|
|
|
usage: "(Gun)",
|
|
|
|
category: "CODM",
|
|
|
|
status: false,
|
|
|
|
Owner: true,
|
|
|
|
run: async (client, message, args) => {
|
|
|
|
const currGun = weaponIdentifier(args.join(" ").replace("\n", " "));
|
|
|
|
if (!currGun) message.reply({ content: "Please specify a gun" });
|
|
|
|
if (typeof currGun == "string") {
|
|
|
|
message.reply({ embeds: [currGun] });
|
|
|
|
} else {
|
|
|
|
const attachNames = currGun.Attachments.map(
|
|
|
|
x => `**${x.Name}** [${builds.AttachmentTypes[x.Type]}]`
|
|
|
|
);
|
|
|
|
const embed = new Discord.MessageEmbed()
|
|
|
|
.setTitle(
|
|
|
|
`Build for ${currGun.Name} (${builds.WeaponTypes[currGun.Type]})`
|
|
|
|
)
|
|
|
|
.setColor(16580400)
|
|
|
|
.setFooter(`Made by ${client.author}`, client.user.displayAvatarURL())
|
|
|
|
.setTimestamp()
|
|
|
|
.setURL(client.web)
|
|
|
|
.setDescription(
|
|
|
|
attachNames.reduce(
|
|
|
|
(t, x, i, a) => t + (i < a.length - 1 ? "\n" : " \n") + x
|
|
|
|
)
|
|
|
|
)
|
|
|
|
.setImage(currGun.URL);
|
|
|
|
return message.reply({ embeds: [embed] });
|
|
|
|
}
|
|
|
|
},
|
|
|
|
};
|
|
|
|
function weaponIdentifier(inpWeaponName) {
|
|
|
|
if (inpWeaponName.length < 2) {
|
|
|
|
return "The name `" + inpWeaponName + "` is too short.";
|
|
|
|
}
|
|
|
|
let probableWeapons = [];
|
|
|
|
for (let i = 0; i < guns.length; i++) {
|
|
|
|
if (inpWeaponName.Simplify() == guns[i].Name.Simplify()) {
|
|
|
|
return guns[i];
|
|
|
|
} else if (guns[i].Name.Simplify().includes(inpWeaponName.Simplify())) {
|
|
|
|
probableWeapons.push(i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (probableWeapons.length == 1) {
|
|
|
|
return guns[probableWeapons[0]];
|
|
|
|
}
|
|
|
|
|
|
|
|
for (let i = 0; i < weaponAlliasName.length; i++) {
|
|
|
|
for (let j = 0; j < weaponAlliasName[i].length; j++) {
|
|
|
|
if (weaponAlliasName[i][j].Simplify() == inpWeaponName.Simplify()) {
|
|
|
|
for (let i2 = 0; i2 < guns.length; i2++) {
|
|
|
|
if (weaponActualName[i].Simplify() == guns[i2].Name.Simplify()) {
|
|
|
|
return guns[i2];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
probableWeapons = [...new Set(probableWeapons)];
|
|
|
|
if (probableWeapons.length == 1) {
|
|
|
|
return guns[probableWeapons[0]];
|
|
|
|
}
|
|
|
|
if (probableWeapons.length > 1) {
|
|
|
|
return (
|
|
|
|
"Did you mean `" +
|
|
|
|
probableWeapons
|
|
|
|
.map(x => guns[x].Name)
|
|
|
|
.reduce((out, x, i) =>
|
|
|
|
[out, x].join(i === probableWeapons.length - 1 ? "` or `" : "`, `")
|
|
|
|
) +
|
|
|
|
"`?"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
return "Couldn't identify the weapon: `" + '"' + inpWeaponName + '"`';
|
2021-12-09 20:38:01 +01:00
|
|
|
}
|