commit
e4308a2783
33 changed files with 5746 additions and 4991 deletions
|
@ -1,85 +0,0 @@
|
||||||
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 + '"`';
|
|
||||||
}
|
|
78
CODM/loadout.js
Normal file
78
CODM/loadout.js
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
const { MessageEmbed } = require("discord.js"); //@night0721 You need to make this
|
||||||
|
const items = require("../../util/Data/loadout.json");
|
||||||
|
module.exports = {
|
||||||
|
name: "class",
|
||||||
|
description: "Generate A Random Loadout",
|
||||||
|
category: "CODM",
|
||||||
|
run: async (client, interaction) => {
|
||||||
|
// const data = async () => {
|
||||||
|
// const d = await model.findOne({});
|
||||||
|
// const types = d.Categories;
|
||||||
|
// const names = d.Primary;
|
||||||
|
// const category = types[Math.floor(Math.random() * types.length)];
|
||||||
|
// const weapons = names[0][category];
|
||||||
|
// return `${weapons[Math.floor(Math.random() * weapons.length)]}`;
|
||||||
|
// };
|
||||||
|
// const primary_weapon = await data();
|
||||||
|
// const primary = primary_weapon.replace(/[ -]/g, "_").replace(/\./g, "");
|
||||||
|
// const slots = shuffle(Object.keys(Attachments[primary][0]));
|
||||||
|
// const slot_1 = slots.next().value,
|
||||||
|
// slot_2 = slots.next().value,
|
||||||
|
// slot_3 = slots.next().value,
|
||||||
|
// slot_4 = slots.next().value,
|
||||||
|
// slot_5 = slots.next().value;
|
||||||
|
const result = new MessageEmbed()
|
||||||
|
.setColor(client.color)
|
||||||
|
.setFooter(`Made by ${client.author}`)
|
||||||
|
.setURL(client.web)
|
||||||
|
.setTitle(`🎲 A Randomly Generated Loadout 🎲`)
|
||||||
|
.setDescription(
|
||||||
|
`This loadout is a randomly generated, Also try, \`\`\`\`/gun\`\`\`\` to get a randomally generated primary weapon gunsmith build`
|
||||||
|
)
|
||||||
|
.addFields(
|
||||||
|
{
|
||||||
|
name: `Secondary Weapon`,
|
||||||
|
value: ``,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: `Operator Skill`,
|
||||||
|
value: ``,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: `Scorestreak`, // 3 perks
|
||||||
|
value: ``,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: `Red Perk`,
|
||||||
|
value: ``,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: `Green Perk`,
|
||||||
|
value: ``,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: `Blue Perk`,
|
||||||
|
value: ``,
|
||||||
|
inline: true,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.setTimestamp();
|
||||||
|
interaction.followUp({ embeds: [result] });
|
||||||
|
|
||||||
|
// function* shuffle(array) {
|
||||||
|
// let i = array.length;
|
||||||
|
// while (i--) {
|
||||||
|
// yield array.splice(Math.floor(Math.random() * (i + 1)), 1)[0];
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// function getAttachment(gun, slot) {
|
||||||
|
// const ca = Attachments[gun][0][slot];
|
||||||
|
// return ca[Math.floor(Math.random() * ca.length)];
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
};
|
774
CODM/new-stats.js
Normal file
774
CODM/new-stats.js
Normal file
|
@ -0,0 +1,774 @@
|
||||||
|
const { MessageEmbed } = require("discord.js");
|
||||||
|
const moment = require("moment");
|
||||||
|
const axios = require("axios");
|
||||||
|
module.exports = {
|
||||||
|
name: "stats",
|
||||||
|
description: "Check Stats of a Weapon by SOD",
|
||||||
|
usage: "[Weapon Name]",
|
||||||
|
category: "CODM",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: "SUB_COMMAND",
|
||||||
|
name: "assault_rifle",
|
||||||
|
description: "Get a Stats for Assault Rifle",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "Weapon",
|
||||||
|
description: "Name of the Gun",
|
||||||
|
required: true,
|
||||||
|
choices: [
|
||||||
|
{
|
||||||
|
name: "Type 25",
|
||||||
|
value: "A01",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "M16",
|
||||||
|
value: "A02",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "AK117",
|
||||||
|
value: "A03",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "AK-47",
|
||||||
|
value: "A04",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "ASM10",
|
||||||
|
value: "A05",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "M4",
|
||||||
|
value: "A06",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "BK57",
|
||||||
|
value: "A07",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "LK24",
|
||||||
|
value: "A08",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "ICR-1",
|
||||||
|
value: "A09",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Man-o-War",
|
||||||
|
value: "A10",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "KN-44",
|
||||||
|
value: "A11",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "HBRa3",
|
||||||
|
value: "A12",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "HVK-30",
|
||||||
|
value: "A13",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "DR-H",
|
||||||
|
value: "A14",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Peacekeeper MK2",
|
||||||
|
value: "A15",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "FR .556",
|
||||||
|
value: "A16",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "AS VAL",
|
||||||
|
value: "A17",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "CR-56 AMAX",
|
||||||
|
value: "A18",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "M13",
|
||||||
|
value: "A19",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Swordfish",
|
||||||
|
value: "A20",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Kilo 141",
|
||||||
|
value: "A21",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "SUB_COMMAND",
|
||||||
|
name: "sub_machine_gun",
|
||||||
|
description: "Get a Stats for Sub Machine Gun",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "Weapon",
|
||||||
|
description: "Name of the Gun",
|
||||||
|
required: true,
|
||||||
|
choices: [
|
||||||
|
{
|
||||||
|
name: "RUS-79u",
|
||||||
|
value: "D01",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Chicom",
|
||||||
|
value: "D02",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "PDW-57",
|
||||||
|
value: "D03",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Razorback",
|
||||||
|
value: "D04",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "MSMC",
|
||||||
|
value: "D05",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "HG40",
|
||||||
|
value: "D06",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Pharo",
|
||||||
|
value: "D07",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GKS",
|
||||||
|
value: "D08",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Cordite",
|
||||||
|
value: "D09",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "QQ9",
|
||||||
|
value: "D10",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Fennec",
|
||||||
|
value: "D11",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "AGR 556",
|
||||||
|
value: "D12",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "QXR",
|
||||||
|
value: "D13",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "PP19 Bizon",
|
||||||
|
value: "D14",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "MX9",
|
||||||
|
value: "D15",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "CBR4",
|
||||||
|
value: "D16",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "PPSh 41",
|
||||||
|
value: "D17",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "SUB_COMMAND",
|
||||||
|
name: "sniper_rifle",
|
||||||
|
description: "Get a Stats for Sniper Rifle",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "Weapon",
|
||||||
|
description: "Name of the Gun",
|
||||||
|
required: true,
|
||||||
|
choices: [
|
||||||
|
// {
|
||||||
|
// name: "XPR-50",
|
||||||
|
// value: "B01",
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
name: "Arctic .50",
|
||||||
|
value: "B02",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "M21 EBR",
|
||||||
|
value: "B03",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "DL Q33",
|
||||||
|
value: "B04",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Locus",
|
||||||
|
value: "B05",
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// name: "NA-45",
|
||||||
|
// value: "B06",
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
name: "Outlaw",
|
||||||
|
value: "B07",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Rytec AMR",
|
||||||
|
value: "B08",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SVD",
|
||||||
|
value: "B09",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "SUB_COMMAND",
|
||||||
|
name: "light_machine_gun",
|
||||||
|
description: "Get a Stats for Light Machine Gun",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "Weapon",
|
||||||
|
description: "Name of the Gun",
|
||||||
|
required: true,
|
||||||
|
choices: [
|
||||||
|
{
|
||||||
|
name: "S36",
|
||||||
|
value: "C01",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "UL736",
|
||||||
|
value: "C02",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "RPD",
|
||||||
|
value: "C03",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "M4 LMG",
|
||||||
|
value: "C04",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Chopper",
|
||||||
|
value: "C05",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Holger 26",
|
||||||
|
value: "C06",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Hades",
|
||||||
|
value: "C07",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "PKM",
|
||||||
|
value: "C08",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "SUB_COMMAND",
|
||||||
|
name: "shotgun",
|
||||||
|
description: "Get a Stats for Shotgun",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "Weapon",
|
||||||
|
description: "Name of the Gun",
|
||||||
|
required: true,
|
||||||
|
choices: [
|
||||||
|
{
|
||||||
|
name: "HS2126",
|
||||||
|
value: "E01",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "BY15",
|
||||||
|
value: "E02",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "HS0405",
|
||||||
|
value: "E03",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Striker",
|
||||||
|
value: "E04",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "KRM_262",
|
||||||
|
value: "E05",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Echo",
|
||||||
|
value: "E06",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "R9-0",
|
||||||
|
value: "E07",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "SUB_COMMAND",
|
||||||
|
name: "marksman_rifle",
|
||||||
|
description: "Get a Stats for Marksman Rifle",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "Weapon",
|
||||||
|
description: "Name of the Gun",
|
||||||
|
required: true,
|
||||||
|
choices: [
|
||||||
|
{
|
||||||
|
name: "Kilo Bolt-Action",
|
||||||
|
value: "F01",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SKS",
|
||||||
|
value: "F02",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SP-R 208",
|
||||||
|
value: "F03",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "MK2",
|
||||||
|
value: "F04",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "SUB_COMMAND",
|
||||||
|
name: "pistol",
|
||||||
|
description: "Get a Stats for Pistol",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "Weapon",
|
||||||
|
description: "Name of the Gun",
|
||||||
|
required: true,
|
||||||
|
choices: [
|
||||||
|
{
|
||||||
|
name: "J358",
|
||||||
|
value: "G01",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "MW11",
|
||||||
|
value: "G02",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: ".50 GS",
|
||||||
|
value: "G03",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Renetti",
|
||||||
|
value: "G04",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Shorty",
|
||||||
|
value: "G05",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Crossbow",
|
||||||
|
value: "G06",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
// It's not complete, Still work in progress.
|
||||||
|
run: async (client, interaction, args) => {
|
||||||
|
const cwts = args[1];
|
||||||
|
const data = await axios
|
||||||
|
.get(`${process.env.api}/api/v1/codm/builds?cwts=${cwts}`, {
|
||||||
|
headers: {
|
||||||
|
Authorization: process.env.CODM_API_KEY,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then((res) => res.data)
|
||||||
|
.catch((e) => null);
|
||||||
|
|
||||||
|
if (!data?.ID) {
|
||||||
|
const embed = new MessageEmbed()
|
||||||
|
.setDescription(
|
||||||
|
`<:nyx_not_available:897378400031879188> Sorry, We currently don't have Stats for this Weapon`
|
||||||
|
)
|
||||||
|
.setColor(client.color);
|
||||||
|
interaction.followUp({ embeds: [embed] });
|
||||||
|
} else {
|
||||||
|
const embed = new MessageEmbed()
|
||||||
|
.setTitle(
|
||||||
|
`${data.author} Statistical Breakdown`
|
||||||
|
)
|
||||||
|
.setColor(16580400)
|
||||||
|
.setImage(data.imageUrl)
|
||||||
|
.setFooter(
|
||||||
|
`Stats Curtosy of Round Table`,
|
||||||
|
)
|
||||||
|
// .setFooter(
|
||||||
|
// `Stats Curtosy of Stats on Duty`,
|
||||||
|
// )
|
||||||
|
.setDescription(
|
||||||
|
`<:nyx_description:897379659665264650> **Description** \n${data.description}`
|
||||||
|
)
|
||||||
|
.addFields(
|
||||||
|
{
|
||||||
|
name: ":id: CWTS:",
|
||||||
|
value: `\`\`\`\n${data.cwts}\n\`\`\``,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "<a:lastupdate:897381474330873887> Last Updated:",
|
||||||
|
value: `\`\`\`\n${moment(Date.parse(data.lastUpdate)).format(
|
||||||
|
"MMMM Do YYYY"
|
||||||
|
)}\n\`\`\``,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Basic Stats",
|
||||||
|
value: `\`\`\`\n
|
||||||
|
BSA Score: ${data.bsa_score}
|
||||||
|
Hipfire Score: ${data.hipfire_score}
|
||||||
|
Rate of Fire\t\t\t\t: ${data.rof}
|
||||||
|
Penetration Level\t\t: ${data.penetration}
|
||||||
|
Firing Mode\t\t\t\t\t: Full Auto
|
||||||
|
|
||||||
|
\n\`\`\``,
|
||||||
|
inline: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Handling & Mobility",
|
||||||
|
value: `\`\`\`\n
|
||||||
|
Drop Time : 416.6 ms
|
||||||
|
Raise Time : 650 ms
|
||||||
|
Sprinting Speed : 6.09 m/s
|
||||||
|
Walking Speed : 4.51 m/s
|
||||||
|
Sprint-to-Fire Time : 165 ms
|
||||||
|
\n\`\`\``,
|
||||||
|
inline: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Ammunation Stats",
|
||||||
|
value: `\`\`\`\n
|
||||||
|
Magazine : 30
|
||||||
|
Reserve : 120
|
||||||
|
Reload Type : Magazine
|
||||||
|
Cancel Reload Time : 1.9 s
|
||||||
|
Reload Time : 2.3 s
|
||||||
|
Full Reload Time : 3.2 s
|
||||||
|
\n\`\`\``,
|
||||||
|
inline: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: ":paperclip: Attachments:",
|
||||||
|
value: arr.join("\n"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "<a:tags:897034924140404776> Tags",
|
||||||
|
value: data.tags.join(", "),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.setURL(client.web);
|
||||||
|
interaction.followUp({ embeds: [embed] });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// @night0721 Damage profile will be avalable by different command
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// recoilAvailable = false;
|
||||||
|
// hasError = false;
|
||||||
|
// console.log(args);
|
||||||
|
// const repEmb = statsHandler(args.join(" ").replace("\n", " "));
|
||||||
|
// if (hasError) {
|
||||||
|
// interaction.followUp({ embeds: [repEmb] });
|
||||||
|
// }
|
||||||
|
// if (recoilAvailable) {
|
||||||
|
// repEmb.fields.push({
|
||||||
|
// name: "**Recoil Graph**",
|
||||||
|
// value:
|
||||||
|
// "```\nThe Recoil graph below is dynamic (change based on attachment equipped)```",
|
||||||
|
// });
|
||||||
|
// const recoilImageLink = await chart.getShortUrl();
|
||||||
|
// repEmb.image = { url: recoilImageLink };
|
||||||
|
// }
|
||||||
|
// interaction.followUp({ embeds: [repEmb] });
|
||||||
|
// },
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// run: async (client, interaction, args) => {
|
||||||
|
// recoilAvailable = false;
|
||||||
|
// hasError = false;
|
||||||
|
// console.log(args);
|
||||||
|
// const repEmb = statsHandler(args.join(" ").replace("\n", " "));
|
||||||
|
// if (hasError) {
|
||||||
|
// interaction.followUp({ embeds: [repEmb] });
|
||||||
|
// }
|
||||||
|
// if (recoilAvailable) {
|
||||||
|
// repEmb.fields.push({
|
||||||
|
// name: "**Recoil Graph**",
|
||||||
|
// value:
|
||||||
|
// "```\nThe Recoil graph below is dynamic (change based on attachment equipped)```",
|
||||||
|
// });
|
||||||
|
// const recoilImageLink = await chart.getShortUrl();
|
||||||
|
// repEmb.image = { url: recoilImageLink };
|
||||||
|
// }
|
||||||
|
// interaction.followUp({ embeds: [repEmb] });
|
||||||
|
// },
|
||||||
|
// };
|
||||||
|
|
||||||
|
// function inpHandler(inpmsg) {
|
||||||
|
// statsHandler(inpmsg.split("+")[0]);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// function statsHandler(inpmsg) {
|
||||||
|
// let statsNames = [
|
||||||
|
// "Pellets",
|
||||||
|
// "Detonation Range",
|
||||||
|
// "Explosion Radius",
|
||||||
|
// "Explosion Damage",
|
||||||
|
// "Firing Mode",
|
||||||
|
// "Rate of Fire",
|
||||||
|
// "Bullet in Burst",
|
||||||
|
// "Time Between Burst",
|
||||||
|
// "Bullet Speed",
|
||||||
|
// "Penetration Level",
|
||||||
|
// "Bullet Spread",
|
||||||
|
// "Idle Sway",
|
||||||
|
// "Hipfire Pellet Spread",
|
||||||
|
// "ADS Pellet Spread",
|
||||||
|
// "ADS Time",
|
||||||
|
// "Sprint-to-Fire Time",
|
||||||
|
// "ADS Zoom",
|
||||||
|
// "Magazine",
|
||||||
|
// "Reserve",
|
||||||
|
// "Reload Type",
|
||||||
|
// "Cancel Reload Time",
|
||||||
|
// "Reload Time",
|
||||||
|
// "Full Reload Time",
|
||||||
|
// "Drop Time",
|
||||||
|
// "Raise Time",
|
||||||
|
// "Sprinting Speed",
|
||||||
|
// "Walking Speed",
|
||||||
|
// "Straifing Speed",
|
||||||
|
// "Damage per Tick",
|
||||||
|
// "Number of Ticks",
|
||||||
|
// "Time Between Ticks",
|
||||||
|
// "Breath Hold Time",
|
||||||
|
// "shouldNeverHappen0",
|
||||||
|
// "shouldNeverHappen1",
|
||||||
|
// "shouldNeverHappen2",
|
||||||
|
// "shouldNeverHappen3",
|
||||||
|
// "shouldNeverHappen4",
|
||||||
|
// ],
|
||||||
|
// out = [];
|
||||||
|
|
||||||
|
// currGun = common.weaponIdentifier(inpmsg);
|
||||||
|
// if (typeof currGun == "string") {
|
||||||
|
// hasError = true;
|
||||||
|
// return currGun;
|
||||||
|
// }
|
||||||
|
// currStats = currGun.stats;
|
||||||
|
// currDRM = currGun.drm[0];
|
||||||
|
// currAttachments = [];
|
||||||
|
// currAttachments = common.attachmentsIdentifier(
|
||||||
|
// inpmsg,
|
||||||
|
// currGun.aments,
|
||||||
|
// currStats
|
||||||
|
// );
|
||||||
|
// if (typeof currAttachments == "string") {
|
||||||
|
// hasError = true;
|
||||||
|
// return currAttachments;
|
||||||
|
// }
|
||||||
|
// currRecoilArr = [1, 1, currGun.stats[17]];
|
||||||
|
// if (currAttachments.length != 0) {
|
||||||
|
// const totalEffects = common.totaler(currAttachments);
|
||||||
|
|
||||||
|
// currStats = common.updateStatswithEffects(totalEffects, currStats);
|
||||||
|
// currRecoilArr = [totalEffects[2], totalEffects[3], currGun.stats[17]]; // must happen after currStats update
|
||||||
|
// currDRM = currGun.drm[totalEffects[37]];
|
||||||
|
// currDRM.range = currDRM.range.map(x =>
|
||||||
|
// Math.round(x * (1 + totalEffects[13] / 100))
|
||||||
|
// );
|
||||||
|
// out = common.attachmentHandler(totalEffects, currStats);
|
||||||
|
// }
|
||||||
|
// function statsWorker() {
|
||||||
|
// if (currStats[19] === 2) {
|
||||||
|
// currStats[21] =
|
||||||
|
// currStats[20] + currStats[21] * currStats[17] + currStats[22];
|
||||||
|
// currStats[20] = 0;
|
||||||
|
// currStats[22] = 0;
|
||||||
|
// }
|
||||||
|
// currStats[25] = (currStats[25] * currStats[26]) / 100;
|
||||||
|
|
||||||
|
// const outReady = currStats.map((x, i) =>
|
||||||
|
// x ? statsNames[i].padEnd(24) + ":".padEnd(3) + beautifier(i) : ""
|
||||||
|
// );
|
||||||
|
// out = [
|
||||||
|
// ...[
|
||||||
|
// "Basic Stats",
|
||||||
|
// "ADS Stats",
|
||||||
|
// "Bullet Stats",
|
||||||
|
// "Magazine",
|
||||||
|
// "Handling Stats",
|
||||||
|
// "Mobility Stats",
|
||||||
|
// "Miscellaneous Stats",
|
||||||
|
// ].map((x, i) =>
|
||||||
|
// fieldMaker(
|
||||||
|
// x,
|
||||||
|
// [
|
||||||
|
// [04, 05, 09],
|
||||||
|
// [14, 16, 11, 31],
|
||||||
|
// [00, 06, 07, 08, 10, 12, 13],
|
||||||
|
// [17, 18, 19, 20, 21, 22],
|
||||||
|
// [23, 24],
|
||||||
|
// [25, 26, 27, 15],
|
||||||
|
// [28, 29, 30, 01, 02, 03],
|
||||||
|
// ][i]
|
||||||
|
// )
|
||||||
|
// ),
|
||||||
|
// ...out,
|
||||||
|
// ];
|
||||||
|
// function fieldMaker(inpName, inpIndx) {
|
||||||
|
// inpIndx = inpIndx.filter(x => outReady[x]);
|
||||||
|
// return inpIndx.length
|
||||||
|
// ? {
|
||||||
|
// name: "**" + inpName + "**",
|
||||||
|
// value: "```\n" + inpIndx.map(x => outReady[x]).join("\n") + "```",
|
||||||
|
// }
|
||||||
|
// : "";
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// statsWorker();
|
||||||
|
|
||||||
|
// function beautifier(j) {
|
||||||
|
// switch (j) {
|
||||||
|
// case 04:
|
||||||
|
// return data.firingModes[currStats[j] - 1];
|
||||||
|
// case 09:
|
||||||
|
// return data.penetrationLevels[currStats[j] - 1];
|
||||||
|
// case 19:
|
||||||
|
// return data.reloadTypes[currStats[j] - 1];
|
||||||
|
// case 08:
|
||||||
|
// if (currStats[j] == -1) {
|
||||||
|
// return "Infinity";
|
||||||
|
// } else {
|
||||||
|
// return parseFloat(currStats[j].toFixed(2)).toString() + " m/s";
|
||||||
|
// }
|
||||||
|
// case 03:
|
||||||
|
// return parseFloat(currStats[j].toFixed(2))
|
||||||
|
// .toString()
|
||||||
|
// .replace(".", " ~ ");
|
||||||
|
// default:
|
||||||
|
// return parseFloat(currStats[j].toFixed(2)).toString() + addUnit(j);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// function addUnit(j) {
|
||||||
|
// switch (j) {
|
||||||
|
// case 07:
|
||||||
|
// case 14:
|
||||||
|
// case 15:
|
||||||
|
// case 23:
|
||||||
|
// case 24:
|
||||||
|
// case 31:
|
||||||
|
// return " ms";
|
||||||
|
// case 27:
|
||||||
|
// case 28:
|
||||||
|
// case 25:
|
||||||
|
// case 26:
|
||||||
|
// return " m/s";
|
||||||
|
// case 20:
|
||||||
|
// case 21:
|
||||||
|
// case 22:
|
||||||
|
// return " s";
|
||||||
|
// case 16:
|
||||||
|
// return "%";
|
||||||
|
// case 06:
|
||||||
|
// return " Rounds";
|
||||||
|
// case 05:
|
||||||
|
// return " RPM";
|
||||||
|
// default:
|
||||||
|
// return "";
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// interpretion = currGun.gunname + common.interpretioner(currAttachments);
|
||||||
|
// if (currGun.recoil.hr.length > 2) {
|
||||||
|
// chart = common.recoilHandler(
|
||||||
|
// currGun.recoil.hr,
|
||||||
|
// currGun.recoil.vr,
|
||||||
|
// currRecoilArr[0],
|
||||||
|
// currRecoilArr[1],
|
||||||
|
// currRecoilArr[2]
|
||||||
|
// );
|
||||||
|
// recoilAvailable = true;
|
||||||
|
// } else {
|
||||||
|
// recoilAvailable = false;
|
||||||
|
// }
|
||||||
|
// if (chart == "none") {
|
||||||
|
// recoilAvailable = false;
|
||||||
|
// }
|
||||||
|
// if (chart == "err" || currAttachments == "err") {
|
||||||
|
// hasError = true;
|
||||||
|
// return "Cocaineeee";
|
||||||
|
// }
|
||||||
|
// const dmg =
|
||||||
|
// common.damageHandler(
|
||||||
|
// currDRM.damage,
|
||||||
|
// currDRM.range,
|
||||||
|
// 1,
|
||||||
|
// 100,
|
||||||
|
// 60000 / currStats[5],
|
||||||
|
// currStats[7],
|
||||||
|
// currStats[6],
|
||||||
|
// currStats[0]
|
||||||
|
// ) || "```This should never happen```";
|
||||||
|
// out = [
|
||||||
|
// currGun.description
|
||||||
|
// ? {
|
||||||
|
// name: "**Description:**",
|
||||||
|
// value: "```\n" + currGun.description + "```",
|
||||||
|
// }
|
||||||
|
// : {},
|
||||||
|
// { name: "**Damage Profile:**", value: dmg },
|
||||||
|
// ...out,
|
||||||
|
// ];
|
||||||
|
// out = out.filter(x => x.value);
|
||||||
|
// return {
|
||||||
|
// title: interpretion,
|
||||||
|
// color: 5814783,
|
||||||
|
// fields: out,
|
||||||
|
// footer: {
|
||||||
|
// text: "[OUTDATED] All data courtesy of Project Lighthouse 2.0 and CoDM Research Crew",
|
||||||
|
// icon_url:
|
||||||
|
// "https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png",
|
||||||
|
// },
|
||||||
|
// };
|
|
@ -97,11 +97,7 @@ function statsHandler(inpmsg) {
|
||||||
currStats = currGun.stats;
|
currStats = currGun.stats;
|
||||||
currDRM = currGun.drm[0];
|
currDRM = currGun.drm[0];
|
||||||
currAttachments = [];
|
currAttachments = [];
|
||||||
currAttachments = common.attachmentsIdentifier(
|
currAttachments = common.attachmentsIdentifier(inpmsg, currGun);
|
||||||
inpmsg,
|
|
||||||
currGun.aments,
|
|
||||||
currStats
|
|
||||||
);
|
|
||||||
if (typeof currAttachments == "string") {
|
if (typeof currAttachments == "string") {
|
||||||
hasError = true;
|
hasError = true;
|
||||||
return currAttachments;
|
return currAttachments;
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
const { CODMClient } = require("cath");
|
const { CODMClient } = require("cath");
|
||||||
module.exports = new CODMClient("Gae");
|
module.exports = new CODMClient(process.env.CODM_API_KEY);
|
||||||
|
|
|
@ -22,6 +22,7 @@ class NYX extends Client {
|
||||||
},
|
},
|
||||||
shard: "auto",
|
shard: "auto",
|
||||||
restTimeOffset: 0,
|
restTimeOffset: 0,
|
||||||
|
restRequestTimeout: 99999,
|
||||||
partials: ["MESSAGE", "CHANNEL", "REACTION", "GUILD_MEMBER"],
|
partials: ["MESSAGE", "CHANNEL", "REACTION", "GUILD_MEMBER"],
|
||||||
intents: 24207,
|
intents: 24207,
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
const { MessageEmbed } = require("discord.js");
|
const { MessageEmbed } = require("discord.js");
|
||||||
const axios = require("axios");
|
|
||||||
const moment = require("moment");
|
const moment = require("moment");
|
||||||
|
const axios = require("axios");
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "build",
|
name: "build",
|
||||||
description: "Get gunsmith builds",
|
description: "Get gunsmith builds",
|
||||||
|
usage: "[Weapon Name] [Author] [Tag]",
|
||||||
type: "CHAT_INPUT",
|
type: "CHAT_INPUT",
|
||||||
|
usage: "[Weapon Name] [Author] [Tag]",
|
||||||
category: "CODM",
|
category: "CODM",
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
|
@ -19,100 +21,100 @@ module.exports = {
|
||||||
required: true,
|
required: true,
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "AK117",
|
name: "Type 25",
|
||||||
value: "ak117",
|
value: "A01",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "M16",
|
name: "M16",
|
||||||
value: "m16",
|
value: "A02",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Type 25",
|
name: "AK117",
|
||||||
value: "type25",
|
value: "A03",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "AK-47",
|
name: "AK-47",
|
||||||
value: "ak47",
|
value: "A04",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "ASM10",
|
name: "ASM10",
|
||||||
value: "asm10",
|
value: "A05",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "M4",
|
name: "M4",
|
||||||
value: "m4",
|
value: "A06",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "BK57",
|
name: "BK57",
|
||||||
value: "bk57",
|
value: "A07",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "LK24",
|
name: "LK24",
|
||||||
value: "lk24",
|
value: "A08",
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Man-o-War",
|
|
||||||
value: "manowar",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "ICR-1",
|
name: "ICR-1",
|
||||||
value: "icr1",
|
value: "A09",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Man-o-War",
|
||||||
|
value: "A10",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "KN-44",
|
name: "KN-44",
|
||||||
value: "kn44",
|
value: "A11",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "HBRa3",
|
name: "HBRa3",
|
||||||
value: "hbra3",
|
value: "A12",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "HVK-30",
|
name: "HVK-30",
|
||||||
value: "hvk30",
|
value: "A13",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "DR-H",
|
name: "DR-H",
|
||||||
value: "drh",
|
value: "A14",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Peacekeeper MK2",
|
name: "Peacekeeper MK2",
|
||||||
value: "peacekeepermk2",
|
value: "A15",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "FR .556",
|
name: "FR .556",
|
||||||
value: "fr556",
|
value: "A16",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "AS VAL",
|
name: "AS VAL",
|
||||||
value: "asval",
|
value: "A17",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "CR-56 AMAX",
|
name: "CR-56 AMAX",
|
||||||
value: "cr56amax",
|
value: "A18",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "M13",
|
name: "M13",
|
||||||
value: "m13",
|
value: "A19",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Swordfish",
|
name: "Swordfish",
|
||||||
value: "swordfish",
|
value: "A20",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Kilo 141",
|
||||||
|
value: "A21",
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// name: "Kilo 141",
|
|
||||||
// value: "kilo",
|
|
||||||
// },
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 3,
|
type: 3,
|
||||||
name: "youtuber",
|
name: "Author",
|
||||||
description: "Select a Content Creator",
|
description: "Select a Content Creator",
|
||||||
required: true,
|
required: true,
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "Path.exe",
|
name: "path.exe",
|
||||||
value: "path",
|
value: "path.exe",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Jokesta",
|
name: "Jokesta",
|
||||||
|
@ -139,8 +141,8 @@ module.exports = {
|
||||||
value: "passive",
|
value: "passive",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Search & Destroy",
|
name: "Search And Destroy",
|
||||||
value: "snd",
|
value: "Search And Destroy",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Respawn",
|
name: "Respawn",
|
||||||
|
@ -163,83 +165,83 @@ module.exports = {
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "RUS-79u",
|
name: "RUS-79u",
|
||||||
value: "rus79u",
|
value: "D01",
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "PDW-57",
|
|
||||||
value: "pdw57",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Razorback",
|
|
||||||
value: "razorback",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "MSMC",
|
|
||||||
value: "msmc",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "HG40",
|
|
||||||
value: "hg40",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Pharo",
|
|
||||||
value: "pharo",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "GKS",
|
|
||||||
value: "gks",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Cordite",
|
|
||||||
value: "cordite",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "QQ9",
|
|
||||||
value: "qq9",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Fennec",
|
|
||||||
value: "fennec",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Chicom",
|
name: "Chicom",
|
||||||
value: "chicom",
|
value: "D02",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "PDW-57",
|
||||||
|
value: "D03",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Razorback",
|
||||||
|
value: "D04",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "MSMC",
|
||||||
|
value: "D05",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "HG40",
|
||||||
|
value: "D06",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Pharo",
|
||||||
|
value: "D07",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GKS",
|
||||||
|
value: "D08",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Cordite",
|
||||||
|
value: "D09",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "QQ9",
|
||||||
|
value: "D10",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Fennec",
|
||||||
|
value: "D11",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "AGR 556",
|
name: "AGR 556",
|
||||||
value: "agr556",
|
value: "D12",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "QXR",
|
name: "QXR",
|
||||||
value: "qxr",
|
value: "D13",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PP19 Bizon",
|
name: "PP19 Bizon",
|
||||||
value: "pp19bizon",
|
value: "D14",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "MX9",
|
name: "MX9",
|
||||||
value: "mx9",
|
value: "D15",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "CBR4",
|
name: "CBR4",
|
||||||
value: "cbr4",
|
value: "D16",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PPSh 41",
|
name: "PPSh 41",
|
||||||
value: "ppsh",
|
value: "D17",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 3,
|
type: 3,
|
||||||
name: "youtuber",
|
name: "Author",
|
||||||
description: "Select a Content Creator",
|
description: "Select a Content Creator",
|
||||||
required: true,
|
required: true,
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "Path.exe",
|
name: "path.exe",
|
||||||
value: "path",
|
value: "path.exe",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Jokesta",
|
name: "Jokesta",
|
||||||
|
@ -262,8 +264,8 @@ module.exports = {
|
||||||
value: "passive",
|
value: "passive",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Search & Destroy",
|
name: "Search And Destroy",
|
||||||
value: "snd",
|
value: "Search And Destroy",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Respawn",
|
name: "Respawn",
|
||||||
|
@ -284,58 +286,54 @@ module.exports = {
|
||||||
description: "Name of the Gun",
|
description: "Name of the Gun",
|
||||||
required: true,
|
required: true,
|
||||||
choices: [
|
choices: [
|
||||||
|
// {
|
||||||
|
// name: "XPR-50",
|
||||||
|
// value: "B01",
|
||||||
|
// },
|
||||||
{
|
{
|
||||||
name: "Arctic .50",
|
name: "Arctic .50",
|
||||||
value: "arctic50",
|
value: "B02",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "M21 EBR",
|
name: "M21 EBR",
|
||||||
value: "m21ebr",
|
value: "B03",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "DL Q33",
|
name: "DL Q33",
|
||||||
value: "dlq33",
|
value: "B04",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Locus",
|
name: "Locus",
|
||||||
value: "locus",
|
value: "B05",
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// name: "XPR-50",
|
|
||||||
// value: "xpr50",
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// name: "NA-45",
|
// name: "NA-45",
|
||||||
// value: "na45",
|
// value: "B06",
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
name: "Outlaw",
|
name: "Outlaw",
|
||||||
value: "outlaw",
|
value: "B07",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Rytec AMR",
|
name: "Rytec AMR",
|
||||||
value: "rytecamr",
|
value: "B08",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "SVD",
|
name: "SVD",
|
||||||
value: "svd",
|
value: "B09",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 3,
|
type: 3,
|
||||||
name: "youtuber",
|
name: "Author",
|
||||||
description: "Select a Content Creator",
|
description: "Select a Content Creator",
|
||||||
required: true,
|
required: true,
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "Path.exe",
|
name: "path.exe",
|
||||||
value: "path",
|
value: "path.exe",
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// name: "little_b",
|
|
||||||
// value: "littleb",
|
|
||||||
// },
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -353,8 +351,8 @@ module.exports = {
|
||||||
value: "passive",
|
value: "passive",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Search & Destroy",
|
name: "Search And Destroy",
|
||||||
value: "snd",
|
value: "Search And Destroy",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Respawn",
|
name: "Respawn",
|
||||||
|
@ -377,47 +375,47 @@ module.exports = {
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "S36",
|
name: "S36",
|
||||||
value: "s36",
|
value: "C01",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "UL736",
|
name: "UL736",
|
||||||
value: "ul736",
|
value: "C02",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "RPD",
|
name: "RPD",
|
||||||
value: "rpd",
|
value: "C03",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "M4 LMG",
|
name: "M4 LMG",
|
||||||
value: "m4lmg",
|
value: "C04",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Chopper",
|
name: "Chopper",
|
||||||
value: "chopper",
|
value: "C05",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Holger 26",
|
name: "Holger 26",
|
||||||
value: "holger26",
|
value: "C06",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Hades",
|
name: "Hades",
|
||||||
value: "hades",
|
value: "C07",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PKM",
|
name: "PKM",
|
||||||
value: "pkm",
|
value: "C08",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 3,
|
type: 3,
|
||||||
name: "youtuber",
|
name: "Author",
|
||||||
description: "Select a Content Creator",
|
description: "Select a Content Creator",
|
||||||
required: true,
|
required: true,
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "Path.exe",
|
name: "path.exe",
|
||||||
value: "path",
|
value: "path.exe",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
@ -436,8 +434,8 @@ module.exports = {
|
||||||
value: "passive",
|
value: "passive",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Search & Destroy",
|
name: "Search And Destroy",
|
||||||
value: "snd",
|
value: "Search And Destroy",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Respawn",
|
name: "Respawn",
|
||||||
|
@ -460,43 +458,43 @@ module.exports = {
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "HS2126",
|
name: "HS2126",
|
||||||
value: "hs2126",
|
value: "E01",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "BY15",
|
name: "BY15",
|
||||||
value: "by15",
|
value: "E02",
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Striker",
|
|
||||||
value: "striker",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "KRM_262",
|
|
||||||
value: "krm262",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Echo",
|
|
||||||
value: "echo",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "HS0405",
|
name: "HS0405",
|
||||||
value: "hs0405",
|
value: "E03",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Striker",
|
||||||
|
value: "E04",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "KRM 262",
|
||||||
|
value: "E05",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Echo",
|
||||||
|
value: "E06",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "R9-0",
|
name: "R9-0",
|
||||||
value: "r90",
|
value: "E07",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 3,
|
type: 3,
|
||||||
name: "youtuber",
|
name: "Author",
|
||||||
description: "Select a Content Creator",
|
description: "Select a Content Creator",
|
||||||
required: true,
|
required: true,
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "Path.exe",
|
name: "path.exe",
|
||||||
value: "path",
|
value: "path.exe",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "dHitman",
|
name: "dHitman",
|
||||||
|
@ -535,35 +533,35 @@ module.exports = {
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "Kilo Bolt-Action",
|
name: "Kilo Bolt-Action",
|
||||||
value: "kiloboltaction",
|
value: "F01",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "SKS",
|
name: "SKS",
|
||||||
value: "sks",
|
value: "F02",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "SP-R 208",
|
name: "SP-R 208",
|
||||||
value: "spr208",
|
value: "F03",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "MK2",
|
name: "MK2",
|
||||||
value: "mk2",
|
value: "F04",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 3,
|
type: 3,
|
||||||
name: "youtuber",
|
name: "Author",
|
||||||
description: "Select a Content Creator",
|
description: "Select a Content Creator",
|
||||||
required: true,
|
required: true,
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "Path.exe",
|
name: "path.exe",
|
||||||
value: "path",
|
value: "path.exe",
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// name: "Little_b",
|
// name: "Stats On Duty",
|
||||||
// value: "littleb",
|
// value: "sod",
|
||||||
// },
|
// },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
@ -602,40 +600,44 @@ module.exports = {
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "J358",
|
name: "J358",
|
||||||
value: "j358",
|
value: "G01",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "MW11",
|
name: "MW11",
|
||||||
value: "mw11",
|
value: "G02",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: ".50 GS",
|
name: ".50 GS",
|
||||||
value: "gs50",
|
value: "G03",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Renetti",
|
name: "Renetti",
|
||||||
value: "renetti",
|
value: "G04",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Shorty",
|
name: "Shorty",
|
||||||
value: "shorty",
|
value: "G05",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Crossbow",
|
name: "Crossbow",
|
||||||
value: "crossbow",
|
value: "G06",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 3,
|
type: 3,
|
||||||
name: "youtuber",
|
name: "Author",
|
||||||
description: "Select a Content Creator",
|
description: "Select a Content Creator",
|
||||||
required: true,
|
required: true,
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: "Path.exe",
|
name: "path.exe",
|
||||||
value: "path",
|
value: "path.exe",
|
||||||
},
|
},
|
||||||
|
// {
|
||||||
|
// name: "Stats On Duty",
|
||||||
|
// value: "sod",
|
||||||
|
// },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -654,126 +656,38 @@ module.exports = {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
run: async (client, interaction, args) => {
|
run: async (client, interaction, args) => {
|
||||||
const allguns = {
|
const cwts = args[1];
|
||||||
ak117: "AK117",
|
|
||||||
m16: "M16",
|
|
||||||
type25: "Type 25",
|
|
||||||
ak47: "AK-47",
|
|
||||||
asm10: "ASM10",
|
|
||||||
m4: "M4",
|
|
||||||
bk57: "BK57",
|
|
||||||
lk24: "LK24",
|
|
||||||
manowar: "Man-O-War",
|
|
||||||
icr1: "ICR-1",
|
|
||||||
kn44: "KN-44",
|
|
||||||
hbra3: "HBRa3",
|
|
||||||
hvk30: "HVK-30",
|
|
||||||
drh: "DR-H",
|
|
||||||
peacekeepermk2: "Peacekeeper MK2",
|
|
||||||
fr556: "FR .556",
|
|
||||||
asval: "AS VAL",
|
|
||||||
cr56amax: "CR-56 AMAX",
|
|
||||||
m13: "M13",
|
|
||||||
swordfish: "Swordfish",
|
|
||||||
// kilo: "Kilo 141",
|
|
||||||
|
|
||||||
j358: "J358",
|
|
||||||
gs50: ".50 GS",
|
|
||||||
mw11: "MW11",
|
|
||||||
renetti: "Renetti",
|
|
||||||
shorty: "Shorty",
|
|
||||||
crossbow: "Crossbow",
|
|
||||||
|
|
||||||
kiloboltaction: "Kilo Bolt-Action",
|
|
||||||
sks: "SKS",
|
|
||||||
spr208: "SP-R 208",
|
|
||||||
mk2: "MK2",
|
|
||||||
|
|
||||||
s36: "S36",
|
|
||||||
ul736: "UL736",
|
|
||||||
rpd: "RPD",
|
|
||||||
m4lmg: "M4LMG",
|
|
||||||
chopper: "Chopper",
|
|
||||||
holger26: "Holger 26",
|
|
||||||
hades: "Hades",
|
|
||||||
pkm: "PKM",
|
|
||||||
|
|
||||||
arctic50: "Arctic .50",
|
|
||||||
m21ebr: "M21 EBR",
|
|
||||||
dlq33: "DL Q33",
|
|
||||||
locus: "Locus",
|
|
||||||
// na45: "NA 45",
|
|
||||||
// xpr50: "XPR-50",
|
|
||||||
locus: "Locus",
|
|
||||||
outlaw: "Outlaw",
|
|
||||||
rytecamr: "Rytec AMR",
|
|
||||||
svd: "SVD",
|
|
||||||
|
|
||||||
hs2126: "HS2126",
|
|
||||||
by15: "BY15",
|
|
||||||
striker: "Striker",
|
|
||||||
krm262: "KRM 262",
|
|
||||||
echo: "Echo",
|
|
||||||
hs0405: "HS0405",
|
|
||||||
r90: "R9-0",
|
|
||||||
|
|
||||||
rus79u: "RUS-79U",
|
|
||||||
hg40: "HG-40",
|
|
||||||
pdw57: "PDW-57",
|
|
||||||
chicom: "Chicom",
|
|
||||||
razorback: "Razorback",
|
|
||||||
msmc: "MSMC",
|
|
||||||
pharo: "Pharo",
|
|
||||||
gks: "GKS",
|
|
||||||
cordite: "Cordite",
|
|
||||||
qq9: "QQ9",
|
|
||||||
fennec: "Fennec",
|
|
||||||
agr556: "AGR 556",
|
|
||||||
qxr: "QXR",
|
|
||||||
pp19bizon: "PP19 Bizon",
|
|
||||||
mx9: "MX9",
|
|
||||||
cbr4: "CBR4",
|
|
||||||
ppsh: "PPSh-41",
|
|
||||||
};
|
|
||||||
const all = {
|
|
||||||
assault_rifle: "Assault Rifle",
|
|
||||||
sniper_rifle: "Sniper Rifle",
|
|
||||||
marksman_rifle: "Marksman Rifle",
|
|
||||||
shotgun: "Shotgun",
|
|
||||||
light_machine_gun: "Light Machine Gun",
|
|
||||||
sub_machine_gun: "Sub Machine Gun",
|
|
||||||
|
|
||||||
path: "Path.exe",
|
|
||||||
dhitman: "dHitman",
|
|
||||||
jokesta: "Jokesta",
|
|
||||||
sod: "Stats On Duty",
|
|
||||||
// littleb:"Little B",
|
|
||||||
|
|
||||||
aggressive: "Aggressive",
|
|
||||||
passive: "Passive",
|
|
||||||
snd: "Search And Destroy",
|
|
||||||
respawn: "Respawn",
|
|
||||||
ads: "ADS",
|
|
||||||
hipfire: "Hipfire",
|
|
||||||
};
|
|
||||||
const gun = args[1];
|
|
||||||
const cc = args[2];
|
const cc = args[2];
|
||||||
const tag = args[3];
|
const tag = args[3];
|
||||||
const data = await axios
|
const data = await axios
|
||||||
.get(
|
.get(
|
||||||
`${process.env.api}/api/v1/codm/builds?name=${gun}&cc=${cc}&tag=${tag}`,
|
`${process.env.api}/api/v1/codm/build?cwts=${cwts}&cc=${cc}&tag=${tag}`,
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: "Gae",
|
Authorization: process.env.CODM_API_KEY,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.then(res => res.data)
|
.then(res => res.data)
|
||||||
.catch(e => null);
|
.catch(e => null);
|
||||||
if (!data?.ID) {
|
var all = {
|
||||||
|
"path.exe": "path.exe",
|
||||||
|
dhitman: "dHitman",
|
||||||
|
jokesta: "Jokesta",
|
||||||
|
// littleb:"Little B",
|
||||||
|
|
||||||
|
aggressive: "Aggressive",
|
||||||
|
passive: "Passive",
|
||||||
|
"Search And Destroy": "Search And Destroy",
|
||||||
|
respawn: "Respawn",
|
||||||
|
ads: "ADS",
|
||||||
|
hipfire: "Hipfire",
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!data?.cwts) {
|
||||||
const embed = new MessageEmbed()
|
const embed = new MessageEmbed()
|
||||||
.setDescription(
|
.setDescription(
|
||||||
`<:nyx_not_available:897378400031879188> We don't have a ${all[tag]} **${allguns[gun]}** gunsmith build by **${all[cc]}**, Please try another tag or a differnt content creator`
|
`<:nyx_not_available:897378400031879188> We don't have a ${all[tag]} gunsmith build for the gun with **CWTS ${cwts}** by **${all[cc]}**, Please try another tag or a differnt content creator`
|
||||||
)
|
)
|
||||||
.setColor(client.color);
|
.setColor(client.color);
|
||||||
interaction.followUp({ embeds: [embed] });
|
interaction.followUp({ embeds: [embed] });
|
||||||
|
@ -784,17 +698,17 @@ module.exports = {
|
||||||
});
|
});
|
||||||
const embed = new MessageEmbed()
|
const embed = new MessageEmbed()
|
||||||
.setTitle(
|
.setTitle(
|
||||||
`${data.weaponName}(${data.weaponType})'s ${all[tag]} build from ${data.author}`
|
`${all[tag]} build for ${data.weaponName} from ${data.author}`
|
||||||
)
|
)
|
||||||
.setDescription(
|
.setDescription(
|
||||||
`<:nyx_description:897379659665264650> **Description** \`\`\`\n ${data.notes}\n\`\`\``
|
`<:nyx_description:897379659665264650> **Description** \`\`\`\n${data.notes} \n\`\`\``
|
||||||
)
|
)
|
||||||
.setColor(16580400)
|
.setColor(16580400)
|
||||||
.setImage(data.imageUrl)
|
.setImage(data.imageUrl)
|
||||||
.setFooter(
|
.setFooter({
|
||||||
`Builds Aggregated by ${client.author}`,
|
text: `Builds Aggregated by ${client.author}`,
|
||||||
client.user.displayAvatarURL()
|
iconURL: client.user.displayAvatarURL(),
|
||||||
)
|
})
|
||||||
.setTimestamp()
|
.setTimestamp()
|
||||||
.addFields(
|
.addFields(
|
||||||
{
|
{
|
||||||
|
|
|
@ -39,11 +39,7 @@ function dmg(inpmsg) {
|
||||||
}
|
}
|
||||||
currDRM = currGun.drm[0];
|
currDRM = currGun.drm[0];
|
||||||
currStats = currGun.stats;
|
currStats = currGun.stats;
|
||||||
currAttachments = common.attachmentsIdentifier(
|
currAttachments = common.attachmentsIdentifier(inpmsg, currGun);
|
||||||
inpmsg,
|
|
||||||
currGun.aments,
|
|
||||||
currStats
|
|
||||||
);
|
|
||||||
if (typeof currAttachments == "string") {
|
if (typeof currAttachments == "string") {
|
||||||
hasError = true;
|
hasError = true;
|
||||||
return currAttachments;
|
return currAttachments;
|
||||||
|
|
6
command/CODM/effects.js
vendored
6
command/CODM/effects.js
vendored
|
@ -114,11 +114,7 @@ function attachments(inpmsg) {
|
||||||
hasAttachments = common.hasAttachments(inpmsg);
|
hasAttachments = common.hasAttachments(inpmsg);
|
||||||
currAttachments = [];
|
currAttachments = [];
|
||||||
if (hasAttachments) {
|
if (hasAttachments) {
|
||||||
currAttachments = common.attachmentsIdentifier(
|
currAttachments = common.attachmentsIdentifier(inpmsg, currGun);
|
||||||
inpmsg,
|
|
||||||
currGun.aments,
|
|
||||||
currGun.stats
|
|
||||||
);
|
|
||||||
if (typeof currAttachments == "string") {
|
if (typeof currAttachments == "string") {
|
||||||
hasError = true;
|
hasError = true;
|
||||||
return currAttachments;
|
return currAttachments;
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
const { MessageEmbed } = require("discord.js");
|
const { MessageEmbed } = require("discord.js");
|
||||||
const { CODMClient } = require("cath");
|
const c = require("../../client/CODMClient");
|
||||||
const c = new CODMClient("Gae");
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "perk",
|
name: "perk",
|
||||||
description: "Get perk stats",
|
description: "Get perk stats",
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
const { MessageEmbed } = require("discord.js");
|
const { MessageEmbed } = require("discord.js");
|
||||||
const { CODMClient } = require("cath");
|
const c = require("../../client/CODMClient");
|
||||||
const c = new CODMClient("Gae");
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "scorestreak",
|
name: "scorestreak",
|
||||||
description: "Get Scorestreak stats",
|
description: "Get Scorestreak stats",
|
||||||
|
@ -60,8 +59,8 @@ module.exports = {
|
||||||
value: "clusterstrike",
|
value: "clusterstrike",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "XS1 Goliath",
|
name: "Chopper Gunner",
|
||||||
value: "xs1goliath",
|
value: "choppergunner",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Stealth Chopper",
|
name: "Stealth Chopper",
|
||||||
|
@ -131,47 +130,37 @@ module.exports = {
|
||||||
const val = args[1];
|
const val = args[1];
|
||||||
const d = await c.getscorestreak(val);
|
const d = await c.getscorestreak(val);
|
||||||
const embed = new MessageEmbed()
|
const embed = new MessageEmbed()
|
||||||
.setTitle(d.scorestreak)
|
.setTitle(d.name)
|
||||||
.setURL(d.preview_video)
|
.setURL(d.preview_video)
|
||||||
.setDescription(`\`\`\`${d.description}\`\`\``)
|
.setDescription(
|
||||||
|
`<:nyx_description:897379659665264650> **Description** \`\`\`\n${d.description}\`\`\``
|
||||||
|
)
|
||||||
.addFields(
|
.addFields(
|
||||||
{
|
{
|
||||||
name: "Cost",
|
name: "Cost",
|
||||||
value: `\`\`\`${d.cost}\`\`\``,
|
value: `${d.cost}`,
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Lethal",
|
|
||||||
value: `
|
|
||||||
${
|
|
||||||
d.lethal == true
|
|
||||||
? "<a:nyx_checkmark:897240322411724841> Yes"
|
|
||||||
: "<a:nyx_cross:897244999211696198> No"
|
|
||||||
}`,
|
|
||||||
inline: true,
|
inline: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "AI-Assisted",
|
name: "AI-Assisted",
|
||||||
value: `
|
value: `
|
||||||
${
|
${
|
||||||
d.manual == false
|
d.manual
|
||||||
? "<a:nyx_checkmark:897240322411724841> Yes"
|
? "<a:nyx_cross:897244999211696198> No"
|
||||||
: "<a:nyx_cross:897244999211696198> No"
|
: "<a:nyx_checkmark:897240322411724841> Yes"
|
||||||
}`,
|
}`,
|
||||||
inline: true,
|
inline: true,
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "More Info",
|
|
||||||
value: `\`\`\`${d.special}\`\`\``,
|
|
||||||
inline: false,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.setThumbnail(d.preview)
|
.setThumbnail(d.preview)
|
||||||
.setFooter(`Made by ${client.author}`, client.user.displayAvatarURL())
|
.setFooter({
|
||||||
|
text: `Made by ${client.author}`,
|
||||||
|
iconURL: client.user.displayAvatarURL(),
|
||||||
|
})
|
||||||
.setColor(
|
.setColor(
|
||||||
d.type == "lethal"
|
d.type == "lethal"
|
||||||
? "FF2222"
|
? "FF2222"
|
||||||
: d.type == "support"
|
: d.type == "assist"
|
||||||
? "22FF4A"
|
? "22FF4A"
|
||||||
: client.color
|
: client.color
|
||||||
)
|
)
|
|
@ -129,11 +129,7 @@ function statsHandler(inpmsg) {
|
||||||
currStats = currGun.stats;
|
currStats = currGun.stats;
|
||||||
currDRM = currGun.drm[0];
|
currDRM = currGun.drm[0];
|
||||||
currAttachments = [];
|
currAttachments = [];
|
||||||
currAttachments = common.attachmentsIdentifier(
|
currAttachments = common.attachmentsIdentifier(inpmsg, currGun);
|
||||||
inpmsg,
|
|
||||||
currGun.aments,
|
|
||||||
currStats
|
|
||||||
);
|
|
||||||
if (typeof currAttachments == "string") {
|
if (typeof currAttachments == "string") {
|
||||||
hasError = true;
|
hasError = true;
|
||||||
return currAttachments;
|
return currAttachments;
|
||||||
|
@ -299,7 +295,7 @@ function statsHandler(inpmsg) {
|
||||||
footer: {
|
footer: {
|
||||||
text: "[OUTDATED] All data courtesy of Project Lighthouse 2.0 and CoDM Research Crew",
|
text: "[OUTDATED] All data courtesy of Project Lighthouse 2.0 and CoDM Research Crew",
|
||||||
icon_url:
|
icon_url:
|
||||||
"https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png?width=638&height=638",
|
"https://media.discordapp.net/attachments/735590814662656102/806960573753327657/cc.png",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,20 @@
|
||||||
const { MessageEmbed } = require("discord.js");
|
const { MessageEmbed } = require("discord.js");
|
||||||
const dares = require("../../util/Data/dares.json");
|
const tnd = require("../../util/Data/tnd.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "dare",
|
name: "dare",
|
||||||
description: "The maturity level of the topics the question can relate to",
|
description: "The maturity level of the topics the question can relate to",
|
||||||
run: async (client, interaction) => {
|
run: async (client, interaction) => {
|
||||||
const embed = new MessageEmbed()
|
const embed = new MessageEmbed()
|
||||||
.setAuthor(
|
.setAuthor({
|
||||||
interaction.user.tag,
|
name: interaction.user.tag,
|
||||||
interaction.user.displayAvatarURL({ dyamic: true })
|
iconURL: interaction.user.displayAvatarURL({ dyamic: true }),
|
||||||
)
|
})
|
||||||
.setTitle(dares[Math.round(Math.random() * (dares.length - 1))])
|
.setTitle(dares[Math.round(Math.random() * tnd.dare.length - 1)])
|
||||||
.setColor(client.color)
|
.setColor(client.color)
|
||||||
.setFooter(`Made by ${client.author}`, client.user.displayAvatarURL())
|
.setFooter({
|
||||||
|
text: `Made by ${client.author}`,
|
||||||
|
iconURL: client.user.displayAvatarURL(),
|
||||||
|
})
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
interaction.followUp({ embeds: [embed] });
|
interaction.followUp({ embeds: [embed] });
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,18 +1,20 @@
|
||||||
const { MessageEmbed } = require("discord.js");
|
const { MessageEmbed } = require("discord.js");
|
||||||
const truth = require("../../util/Data/truth.json");
|
const tnd = require("../../util/Data/tnd.json");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "truth",
|
name: "truth",
|
||||||
description: "Gives a random question that has to be answered truthfully",
|
description: "Gives a random question that has to be answered truthfully",
|
||||||
run: async (client, interaction, args) => {
|
run: async (client, interaction, args) => {
|
||||||
const embed = new MessageEmbed()
|
const embed = new MessageEmbed()
|
||||||
.setAuthor(
|
.setAuthor({
|
||||||
interaction.user.tag,
|
name: interaction.user.tag,
|
||||||
interaction.user.displayAvatarURL({ dyamic: true })
|
iconURL: interaction.user.displayAvatarURL({ dyamic: true }),
|
||||||
)
|
})
|
||||||
.setTitle(truth[Math.round(Math.random() * truth.length)])
|
.setTitle(truth[Math.round(Math.random() * tnd.truth.length)])
|
||||||
.setColor(client.color)
|
.setColor(client.color)
|
||||||
.setFooter(`Made by ${client.author}`, client.user.displayAvatarURL())
|
.setFooter({
|
||||||
|
text: `Made by ${client.author}`,
|
||||||
|
iconURL: client.user.displayAvatarURL(),
|
||||||
|
})
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
interaction.followUp({ embeds: [embed] });
|
interaction.followUp({ embeds: [embed] });
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,31 +1,68 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "add",
|
name: "economy",
|
||||||
category: "Owner",
|
category: "Owner",
|
||||||
usage: "(Number)",
|
description: "Add/Remove coins from someone",
|
||||||
description: "Add coins from someone",
|
|
||||||
Owner: true,
|
Owner: true,
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
type: 6,
|
type: 1,
|
||||||
name: "user",
|
name: "add",
|
||||||
description: "The user you want to add",
|
description: "Remove coins from someone",
|
||||||
required: true,
|
options: [
|
||||||
|
{
|
||||||
|
type: 6,
|
||||||
|
name: "user",
|
||||||
|
description: "The user you want to add",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 4,
|
||||||
|
name: "cp",
|
||||||
|
description: "The amount of CP you want to add",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 4,
|
type: 1,
|
||||||
name: "cp",
|
name: "rmv",
|
||||||
description: "The amount of CP you want to add",
|
description: "Remove coins from someone",
|
||||||
required: true,
|
options: [
|
||||||
|
{
|
||||||
|
type: 6,
|
||||||
|
name: "user",
|
||||||
|
description: "The user you want to remove",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 4,
|
||||||
|
name: "cp",
|
||||||
|
description: "The amount of CP you want to remove",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
run: async (client, interaction, args) => {
|
run: async (client, interaction, args) => {
|
||||||
await client.add(args[0], args[1], interaction);
|
if (args[0] === "add") {
|
||||||
interaction.followUp({
|
await client.add(args[0], args[1], interaction);
|
||||||
content: `<a:nyx_checkmark:897240322411724841> Successfully added **${interaction.options.getInteger(
|
interaction.followUp({
|
||||||
"cp"
|
content: `<a:nyx_checkmark:897240322411724841> Successfully added **${interaction.options.getInteger(
|
||||||
)}** ${client.currency} in **${
|
"cp"
|
||||||
interaction.options.getUser("user").username
|
)}** ${client.currency} in **${
|
||||||
}**'s balance`,
|
interaction.options.getUser("user").username
|
||||||
});
|
}**'s balance`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (args[0] === "rmv") {
|
||||||
|
await client.rmv(args[0], args[1]);
|
||||||
|
interaction.followUp({
|
||||||
|
content: `<a:nyx_checkmark:897240322411724841> Successfully removed **${interaction.options.getInteger(
|
||||||
|
"cp"
|
||||||
|
)}** ${client.currency} from **${
|
||||||
|
interaction.options.getUser("user").username
|
||||||
|
}**'s balance`,
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -47,19 +47,22 @@ module.exports = {
|
||||||
evaled = err;
|
evaled = err;
|
||||||
}
|
}
|
||||||
if (typeof evaled !== "string") evaled = require("util").inspect(evaled);
|
if (typeof evaled !== "string") evaled = require("util").inspect(evaled);
|
||||||
evaled = utils.chunk(evaled, 750);
|
console.log(evaled);
|
||||||
|
evaled = chunk([evaled], 750);
|
||||||
|
console.log(evaled);
|
||||||
let reactions = ["❌", "⏪", "◀️", "⏹️", "▶️", "⏩"],
|
let reactions = ["❌", "⏪", "◀️", "⏹️", "▶️", "⏩"],
|
||||||
page = 0,
|
page = 0,
|
||||||
evaledEmbed = new Discord.MessageEmbed()
|
evaledEmbed = new Discord.MessageEmbed()
|
||||||
.setColor(client.color)
|
.setColor(client.color)
|
||||||
.setDescription(`\`\`\`js\n${evaled[0]}\n\`\`\``)
|
.setDescription(`\`\`\`js\n${evaled[0]}\n\`\`\``)
|
||||||
.setTimestamp()
|
.setTimestamp()
|
||||||
.setAuthor(
|
.setAuthor({
|
||||||
`Evaled by ${interaction.user.tag}`,
|
name: `Evaled by ${interaction.user.tag}`,
|
||||||
interaction.user.displayAvatarURL({ dynamic: true })
|
iconURL: interaction.user.displayAvatarURL({ dynamic: true }),
|
||||||
)
|
});
|
||||||
.addField(`Type of`, `\`\`\`js\n${typeof evaled[0]}\n\`\`\``);
|
const mainMessage = await interaction.channel.send({
|
||||||
const mainMessage = await interaction.channel.send({ embeds: [evaledEmbed] });
|
embeds: [evaledEmbed],
|
||||||
|
});
|
||||||
Discord.TextChannel.prototype.send = oldSend;
|
Discord.TextChannel.prototype.send = oldSend;
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
(evaled.length === 1 ? ["❌", "⏹️"] : reactions).map(r =>
|
(evaled.length === 1 ? ["❌", "⏹️"] : reactions).map(r =>
|
||||||
|
@ -112,12 +115,17 @@ module.exports = {
|
||||||
}
|
}
|
||||||
evaledEmbed = new Discord.MessageEmbed()
|
evaledEmbed = new Discord.MessageEmbed()
|
||||||
.setColor(interaction.guild.me.displayColor)
|
.setColor(interaction.guild.me.displayColor)
|
||||||
.setDescription(`\`\`\`js\n${evaled[page]}\n\`\`\``)
|
.setDescription(`\`\`\`js\n${evaled[page]}\n\`\`\``);
|
||||||
.addField(`Type of`, `\`\`\`js\n${typeof evaled[page]}\n\`\`\``);
|
|
||||||
|
|
||||||
await mainMessage.edit({
|
await mainMessage.edit({
|
||||||
embeds: [evaledEmbed],
|
embeds: [evaledEmbed],
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
function chunk(arr, size) {
|
||||||
|
let c;
|
||||||
|
Array.from({ length: Math.ceil(arr.length / size) }, (v, i) => {
|
||||||
|
c = arr.slice(i * size, i * size + size);
|
||||||
|
});
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
name: "rmv",
|
|
||||||
category: "Owner",
|
|
||||||
usage: "(Number)",
|
|
||||||
description: "Remove coins from someone",
|
|
||||||
Owner: true,
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
type: 6,
|
|
||||||
name: "user",
|
|
||||||
description: "The user you want to remove",
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 4,
|
|
||||||
name: "cp",
|
|
||||||
description: "The amount of CP you want to remove",
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
run: async (client, interaction, args) => {
|
|
||||||
await client.rmv(args[0], args[1]);
|
|
||||||
interaction.followUp({
|
|
||||||
content: `<a:nyx_checkmark:897240322411724841> Successfully removed **${interaction.options.getInteger(
|
|
||||||
"cp"
|
|
||||||
)}** ${client.currency} from **${
|
|
||||||
interaction.options.getUser("user").username
|
|
||||||
}**'s balance`,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -1,177 +0,0 @@
|
||||||
const { MessageEmbed } = require("discord.js");
|
|
||||||
const { CODMClient } = require("cath");
|
|
||||||
const c = new CODMClient("Gae");
|
|
||||||
module.exports = {
|
|
||||||
name: "scorestreak",
|
|
||||||
description: "Get Scorestreak stats",
|
|
||||||
type: "CHAT_INPUT",
|
|
||||||
usage: "{Scorestreak}",
|
|
||||||
category: "CODM",
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
type: "SUB_COMMAND",
|
|
||||||
name: "lethal",
|
|
||||||
description: "Lethal Scorestreak",
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
type: 3,
|
|
||||||
name: "scorestreak",
|
|
||||||
description: "Select a lethal scorestreak",
|
|
||||||
required: true,
|
|
||||||
choices: [
|
|
||||||
{
|
|
||||||
name: "Shield Turret",
|
|
||||||
value: "shieldturret",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Hunter Killer Drone",
|
|
||||||
value: "hunterkillerdrone",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "MQ-27 Dragonfire",
|
|
||||||
value: "mq27dragonfire",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Predator Missile",
|
|
||||||
value: "predatormissile",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Hawk X3",
|
|
||||||
value: "hawkx3",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Sentry Gun",
|
|
||||||
value: "sentrygun",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Lightning Strike",
|
|
||||||
value: "lightningstrike",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Orbital Laser",
|
|
||||||
value: "orbitallaser",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "XS1 Goliath",
|
|
||||||
value: "xs1goliath",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Cluster Strike",
|
|
||||||
value: "clusterstrike",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "XS1 Goliath",
|
|
||||||
value: "xs1goliath",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Stealth Chopper",
|
|
||||||
value: "stealthchopper",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Swarm",
|
|
||||||
value: "swarm",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Napalm",
|
|
||||||
value: "napalm",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "VTOL",
|
|
||||||
value: "vtol",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "SUB_COMMAND",
|
|
||||||
name: "support",
|
|
||||||
description: "Support Scorestreak",
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
type: 3,
|
|
||||||
name: "scorestreak",
|
|
||||||
description: "Select a Support Scorestreak",
|
|
||||||
required: true,
|
|
||||||
choices: [
|
|
||||||
{
|
|
||||||
name: "UAV",
|
|
||||||
value: "uav",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Shock RC",
|
|
||||||
value: "shockrc",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Care Package",
|
|
||||||
value: "carepackage",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Counter UAV",
|
|
||||||
value: "cuav",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "SAM Turret",
|
|
||||||
value: "samturret",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Advance UAV",
|
|
||||||
value: "auav",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "EMP Systems",
|
|
||||||
value: "empsystems",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
run: async (client, interaction, args) => {
|
|
||||||
const val = args[1];
|
|
||||||
const d = await c.getscorestreak(val);
|
|
||||||
const embed = new MessageEmbed()
|
|
||||||
.setTitle(d.scorestreak)
|
|
||||||
.setURL(d.preview_video)
|
|
||||||
.setDescription(`\`\`\`${d.description}\`\`\``)
|
|
||||||
.addFields(
|
|
||||||
{
|
|
||||||
name: "Cost",
|
|
||||||
value: `\`\`\`${d.cost}\`\`\``,
|
|
||||||
inline: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Lethal",
|
|
||||||
value: `
|
|
||||||
${d.lethal == true
|
|
||||||
? "<a:nyx_checkmark:897240322411724841> Yes"
|
|
||||||
: "<a:nyx_cross:897244999211696198> No"}`,
|
|
||||||
inline: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "AI-Assisted",
|
|
||||||
value: `
|
|
||||||
${d.manual == false
|
|
||||||
? "<a:nyx_checkmark:897240322411724841> Yes"
|
|
||||||
: "<a:nyx_cross:897244999211696198> No"}`,
|
|
||||||
inline: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "More Info",
|
|
||||||
value: `\`\`\`${d.special}\`\`\``,
|
|
||||||
inline: false
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.setThumbnail(`${d.preview}`)
|
|
||||||
.setFooter(`Made by ${client.author}`, client.user.displayAvatarURL())
|
|
||||||
.setColor(
|
|
||||||
d.type == "lethal"
|
|
||||||
? "FF2222"
|
|
||||||
: d.type == "support"
|
|
||||||
? "22FF4A"
|
|
||||||
: client.color
|
|
||||||
)
|
|
||||||
.setTimestamp();
|
|
||||||
interaction.followUp({ embeds: [embed] });
|
|
||||||
},
|
|
||||||
};
|
|
79
command/Utilities/poll.js
Normal file
79
command/Utilities/poll.js
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
const { MessageEmbed } = require("discord.js");
|
||||||
|
module.exports = {
|
||||||
|
name: "poll",
|
||||||
|
category: "Utilities",
|
||||||
|
description: "Creates a poll with many options",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "question",
|
||||||
|
description: "The question of the poll",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "choice1",
|
||||||
|
description: "Choice 1",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "choice2",
|
||||||
|
description: "Choice 2",
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "choice3",
|
||||||
|
description: "Choice 3",
|
||||||
|
required: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "choice4",
|
||||||
|
description: "Choice 4",
|
||||||
|
required: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "choice5",
|
||||||
|
description: "Choice 5",
|
||||||
|
required: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: "choice6",
|
||||||
|
description: "Choice 6",
|
||||||
|
required: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
run: async (client, interaction, args) => {
|
||||||
|
const pollCreateEmbed = new MessageEmbed()
|
||||||
|
.setTitle(`📣 **${args[0]}**`)
|
||||||
|
.setColor("RED")
|
||||||
|
.setFooter({
|
||||||
|
text: `Made by ${client.author}`,
|
||||||
|
iconURL: client.user.displayAvatarURL(),
|
||||||
|
})
|
||||||
|
.setTimestamp();
|
||||||
|
for (let i = 0; i < args.length - 1; i++) {
|
||||||
|
pollCreateEmbed.addField(
|
||||||
|
"",
|
||||||
|
`:regional_indicator_${String.fromCharCode(97 + i)}: ${args[i + 1]}
|
||||||
|
`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
let embedMessage = await interaction.followUp({
|
||||||
|
embeds: [pollCreateEmbed],
|
||||||
|
});
|
||||||
|
55356;
|
||||||
|
for (let i = 0; i < args.length - 1; i++) {
|
||||||
|
if (i === 0) embedMessage.react("\ud83c\udde6");
|
||||||
|
if (i === 1) embedMessage.react("\ud83c\udde7");
|
||||||
|
if (i === 2) embedMessage.react("\ud83c\udde8");
|
||||||
|
if (i === 3) embedMessage.react("\ud83c\udde9");
|
||||||
|
if (i === 4) embedMessage.react("\ud83c\uddea");
|
||||||
|
if (i === 5) embedMessage.react("\ud83c\uddeb");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
|
@ -1,7 +1,7 @@
|
||||||
const client = require("..");
|
const client = require("..");
|
||||||
const { MessageEmbed } = require("discord.js");
|
const { MessageEmbed } = require("discord.js");
|
||||||
const utils = require("../util/functions/function");
|
const utils = require("../util/functions/function");
|
||||||
const scams = require("../util/Data/scam.json");
|
const domains = require("../util/Data/domains.json");
|
||||||
client.on("messageCreate", async message => {
|
client.on("messageCreate", async message => {
|
||||||
if (message.author.bot || !message.guild) return;
|
if (message.author.bot || !message.guild) return;
|
||||||
const data = {};
|
const data = {};
|
||||||
|
@ -66,7 +66,17 @@ client.on("messageCreate", async message => {
|
||||||
}
|
}
|
||||||
if (data.User?.Blacklist) return;
|
if (data.User?.Blacklist) return;
|
||||||
if (
|
if (
|
||||||
scams.includes(
|
domains.iplogger.includes(
|
||||||
|
message.content
|
||||||
|
.toLowerCase()
|
||||||
|
.match(
|
||||||
|
/(https|http):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+~-]*[\w.,@?^=%&:/~+~-])+/g
|
||||||
|
)?.[0]
|
||||||
|
.replace(/(https|http):\/\/+/g, "")
|
||||||
|
.match(/\s*([^)]+?)\s*\/+/g, "")[0]
|
||||||
|
.slice(0, -1)
|
||||||
|
) ||
|
||||||
|
domains.scam.includes(
|
||||||
message.content
|
message.content
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.match(
|
.match(
|
||||||
|
@ -77,14 +87,59 @@ client.on("messageCreate", async message => {
|
||||||
.slice(0, -1)
|
.slice(0, -1)
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
message.delete();
|
const _ = new MessageEmbed()
|
||||||
|
.setTitle(`Scam/IP Grabber detected`)
|
||||||
|
.setTimestamp()
|
||||||
|
.setColor(client.color)
|
||||||
|
.addFields(
|
||||||
|
{
|
||||||
|
name: "User",
|
||||||
|
value: `${message.author.tag} (${message.author.id})`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Scam/IP Logger URL",
|
||||||
|
value: `||https://${message.content
|
||||||
|
.toLowerCase()
|
||||||
|
.match(
|
||||||
|
/(https|http):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+~-]*[\w.,@?^=%&:/~+~-])+/g
|
||||||
|
)?.[0]
|
||||||
|
.replace(/(https|http):\/\/+/g, "")
|
||||||
|
.match(/\s*([^)]+?)\s*\/+/g, "")[0]
|
||||||
|
.slice(0, -1)}||`,
|
||||||
|
inline: true,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.setFooter({
|
||||||
|
text: `Tactical Protection by ${client.author}`,
|
||||||
|
icon_url: client.user.displayAvatarURL(),
|
||||||
|
});
|
||||||
message.channel.send({
|
message.channel.send({
|
||||||
content: `**${message.author.tag}** has sent a scam link and I have deleted it to prevent spread`,
|
embeds: [_],
|
||||||
});
|
});
|
||||||
|
client.channels.cache.get("936986641585799178").send({
|
||||||
|
embeds: [
|
||||||
|
_.addFields(
|
||||||
|
{
|
||||||
|
name: "Message",
|
||||||
|
value: message.content,
|
||||||
|
inline: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Guild",
|
||||||
|
value: message.guild ? message.guild.name : "None",
|
||||||
|
inline: true,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
message.delete().catch(() => {});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
message?.content.startsWith(data.Guild.Prefix) ||
|
message?.content.startsWith(data.Guild.Prefix) ||
|
||||||
message?.content.startsWith("C.")
|
message?.content.startsWith("C.") ||
|
||||||
|
message?.content.startsWith("c.")
|
||||||
) {
|
) {
|
||||||
const embed = new MessageEmbed()
|
const embed = new MessageEmbed()
|
||||||
.setTitle(`Message commands are now disabled`)
|
.setTitle(`Message commands are now disabled`)
|
||||||
|
@ -157,7 +212,15 @@ client.on("messageCreate", async message => {
|
||||||
}
|
}
|
||||||
if (message.content) {
|
if (message.content) {
|
||||||
client.channels.cache.get(client.config.DMLog).send({
|
client.channels.cache.get(client.config.DMLog).send({
|
||||||
content: `\`${message.author.tag}(${message.author.id})\`: ${message.content}`,
|
embeds: [
|
||||||
|
new MessageEmbed()
|
||||||
|
.setDescription(message.content)
|
||||||
|
.setColor(client.color)
|
||||||
|
.setAuthor({
|
||||||
|
name: message.author.tag,
|
||||||
|
iconURL: message.author.displayAvatarURL({ dynamic: true }),
|
||||||
|
}),
|
||||||
|
],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,144 +0,0 @@
|
||||||
//made by the shadow himself.
|
|
||||||
|
|
||||||
client.on('message', message => {
|
|
||||||
|
|
||||||
const grabifyEmbed = new Discord.MessageEmbed()
|
|
||||||
grabifyEmbed.setTitle("**IP Grabber Detected!**")
|
|
||||||
grabifyEmbed.addField("**Username :** ", `${message.author.username}`)
|
|
||||||
grabifyEmbed.addField("**User ID :** ", `${message.author.id}`)
|
|
||||||
grabifyEmbed.addField("**Domain :** Grabify", `**Link sent :** ||${message}||`)
|
|
||||||
grabifyEmbed.setTimestamp()
|
|
||||||
grabifyEmbed.addField("`Tactical Protection by`", "`Team NYX`")
|
|
||||||
|
|
||||||
const discordEmbed = new Discord.MessageEmbed()
|
|
||||||
discordEmbed.setTitle("**IP Grabber Detected!**")
|
|
||||||
discordEmbed.addField("**Username :** ", `${message.author.username}`)
|
|
||||||
discordEmbed.addField("**User ID :** ", `${message.author.id}`)
|
|
||||||
discordEmbed.addField("**Domain :** Discord", `**Link sent :** ||${message}||`)
|
|
||||||
discordEmbed.setTimestamp()
|
|
||||||
discordEmbed.addField("`Tactical Protection by`", "`Team NYX`")
|
|
||||||
|
|
||||||
|
|
||||||
if ((message.content.includes("https://dlscord.org/nitro-gift")) || (message.content.includes("http://dlscord.org/nitro-gift"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(discordEmbed)
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://lovebird.guru")) || (message.content.includes("http://lovebird.guru"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed)
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://trulove.guru")) || (message.content.includes("http://trulove.guru"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://dateing.club")) || (message.content.includes("http://dateing.club"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://shrekis.life")) || (message.content.includes("http://shrekis.life"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if ((message.content.includes("https://headshot.monster")) || (message.content.includes("http://headshot.monster"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://gamihg-at-my.best")) || (message.content.includes("http://gaming-at-my.best"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://progaming.monster")) || (message.content.includes("http://programing.monster"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://yourmy.monster")) || (message.content.includes("http://yourmg.monster"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://imageshare.best")) || (message.content.includes("http://imageshere.best"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.startsWith("https://screenshot.best")) || (message.content.includes("http://screenshot.best"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
if ((message.content.includes("https://gamingfun.me")) || (message.content.includes("http://gamingfun.me"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://catsnthing.com")) || (message.content.includes("http://catsnthing.com"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://catsnthings.fun")) || (message.content.includes("http://catsnthings.fun"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://joinmy.site")) || (message.content.includes("http://joinmy.site"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://fortnitechat.site")) || (message.content.includes("http://fortnitechat.site"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://fortnight.space")) || (message.content.includes("http://fortnight.space"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://freegiftcards.co")) || (message.content.includes("http://freegiftcards.co"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://grabify.link")) || (message.content.includes("http://grabify.link"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://partpicker.shop")) || (message.content.includes("http://partpicker.shop"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://websafe.online")) || (message.content.includes("http://websafe.online"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://sportshub.bar")) || (message.content.includes("http://sportshub.bar"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://herald.sbs")) || (message.content.includes("http://herald.sbs"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((message.content.includes("https://locations.quest")) || (message.content.includes("http://locations.quest"))) {
|
|
||||||
message.delete();
|
|
||||||
message.channel.send(grabifyEmbed);
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
//MORE DOMAINS COMING IN A WEEK HEHE BOI
|
|
|
@ -41,9 +41,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.25.0",
|
"axios": "^0.25.0",
|
||||||
"cath": "^1.4.6",
|
"cath": "^1.4.7",
|
||||||
"discord.js": "^13.6.0",
|
"discord.js": "^13.6.0",
|
||||||
"dotenv": "^14.2.0",
|
"dotenv": "^15.0.0",
|
||||||
"erela.js": "^2.3.3",
|
"erela.js": "^2.3.3",
|
||||||
"erela.js-spotify": "^1.2.0",
|
"erela.js-spotify": "^1.2.0",
|
||||||
"goosecache": "^9.0.14",
|
"goosecache": "^9.0.14",
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
//use eval if you wanna.
|
|
||||||
//this gives you the invite link in a server of a channel.
|
|
||||||
//code by Tac Shadow#5920
|
|
||||||
|
|
||||||
async function asyncCall() {
|
|
||||||
const result = await client.channels.cache.get("CHANNEL_ID").createInvite();
|
|
||||||
|
|
||||||
message.channel.send(`${result}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
asyncCall();
|
|
|
@ -26,7 +26,8 @@
|
||||||
"CR-56 AMAX",
|
"CR-56 AMAX",
|
||||||
"Shorty",
|
"Shorty",
|
||||||
"Crossbow",
|
"Crossbow",
|
||||||
"R9-0"
|
"R9-0",
|
||||||
|
"PPSh-41"
|
||||||
],
|
],
|
||||||
"weaponAlliasName": [
|
"weaponAlliasName": [
|
||||||
["MoW"],
|
["MoW"],
|
||||||
|
@ -48,14 +49,15 @@
|
||||||
["Slow Outlaw", "Slower Outlaw"],
|
["Slow Outlaw", "Slower Outlaw"],
|
||||||
["bae"],
|
["bae"],
|
||||||
["Reneti", "Renneti", "Rennetti", "Burst Pistol"],
|
["Reneti", "Renneti", "Rennetti", "Burst Pistol"],
|
||||||
["pp bizon", "pp"],
|
["pp bizon", "pp19"],
|
||||||
["AUG"],
|
["AUG"],
|
||||||
["AKBP", "Vepr"],
|
["AKBP", "Vepr"],
|
||||||
["AN94"],
|
["AN94"],
|
||||||
["CR56", "AMAX"],
|
["CR56", "AMAX"],
|
||||||
["725"],
|
["725"],
|
||||||
["cb", "bow"],
|
["cb", "bow"],
|
||||||
["r9", "R9-O"]
|
["r9", "R9-O"],
|
||||||
|
["ppsh", "pp41"]
|
||||||
],
|
],
|
||||||
"attachmentActualName": [
|
"attachmentActualName": [
|
||||||
["akimbo", "Stopping Power"],
|
["akimbo", "Stopping Power"],
|
||||||
|
|
|
@ -1043,6 +1043,65 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"Kilo_141": [
|
||||||
|
{
|
||||||
|
"muzzle": [
|
||||||
|
"Tactical Suppressor",
|
||||||
|
"OWC Light Suppressor",
|
||||||
|
"OWC Light Compensator",
|
||||||
|
"Monolithic Suppressor",
|
||||||
|
"MIP Light FLash Guard",
|
||||||
|
"RTC Light Muzzle Brake"
|
||||||
|
],
|
||||||
|
"barrel": [
|
||||||
|
"YKM Integral Suppressor Light",
|
||||||
|
"MIP Light Extended Barrel",
|
||||||
|
"OWC Marksman"
|
||||||
|
],
|
||||||
|
"optic": [
|
||||||
|
"Red Dot Sight",
|
||||||
|
"Holographic Sight",
|
||||||
|
"3x Tactical Scope",
|
||||||
|
"4x Tactical Scope",
|
||||||
|
"4.4x Tactical Scope"
|
||||||
|
],
|
||||||
|
"stock": [
|
||||||
|
"No Stock",
|
||||||
|
"YKM Combat Stock",
|
||||||
|
"OWC Skeleton Stock",
|
||||||
|
"RTC Steady Stock"
|
||||||
|
],
|
||||||
|
"perk": [
|
||||||
|
"FMJ",
|
||||||
|
"Sleight of Hand",
|
||||||
|
"Wounding",
|
||||||
|
"Full Ammo",
|
||||||
|
"Disable",
|
||||||
|
"Tough",
|
||||||
|
"Long Shot",
|
||||||
|
"Melee Master"
|
||||||
|
],
|
||||||
|
"laser": ["RTC Laser 1mW", "MIP Laser 5mW", "OWC Laser - Tactical"],
|
||||||
|
"underbarrel": [
|
||||||
|
"Strike Foregrip",
|
||||||
|
"Merc Foregrip",
|
||||||
|
"Operator Foregrip",
|
||||||
|
"Ranger Foregrip",
|
||||||
|
"Tactical Foregrip A",
|
||||||
|
"Bipod"
|
||||||
|
],
|
||||||
|
"ammo": [
|
||||||
|
"Extended Mag A",
|
||||||
|
"Large Extended Mag B",
|
||||||
|
"100 round LMG Drum Mag"
|
||||||
|
],
|
||||||
|
"rear_grip": [
|
||||||
|
"Granulated Grip Tape",
|
||||||
|
"Ruberized Grip Tape",
|
||||||
|
"Stippled Grip Tape"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"XPR_50": [
|
"XPR_50": [
|
||||||
{
|
{
|
||||||
"muzzle": [
|
"muzzle": [
|
||||||
|
|
74
util/Data/cwts.json
Normal file
74
util/Data/cwts.json
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{
|
||||||
|
"A01": "Type 25",
|
||||||
|
"A02": "M16",
|
||||||
|
"A03": "AK117",
|
||||||
|
"A04": "AK-47",
|
||||||
|
"A05": "ASM10",
|
||||||
|
"A06": "M4",
|
||||||
|
"A07": "BK57",
|
||||||
|
"A08": "LK24",
|
||||||
|
"A09": "ICR-1",
|
||||||
|
"A10": "Man-o-War",
|
||||||
|
"A11": "KN-44",
|
||||||
|
"A12": "HBRa3",
|
||||||
|
"A13": "HVK-30",
|
||||||
|
"A14": "DR-H",
|
||||||
|
"A15": "Peacekeeper MK2",
|
||||||
|
"A16": "FR .556",
|
||||||
|
"A17": "AS VAL",
|
||||||
|
"A18": "CR-56 AMAX",
|
||||||
|
"A19": "M13",
|
||||||
|
"A20": "Swordfish",
|
||||||
|
"A21": "Kilo 141",
|
||||||
|
"B01": "XPR-50",
|
||||||
|
"B02": "Arctic .50",
|
||||||
|
"B03": "M21 EBR",
|
||||||
|
"B04": "DL Q33",
|
||||||
|
"B05": "Locus",
|
||||||
|
"B06": "NA-45",
|
||||||
|
"B07": "Outlaw",
|
||||||
|
"B08": "Rytec AMR",
|
||||||
|
"B09": "SVD",
|
||||||
|
"C01": "S36",
|
||||||
|
"C02": "UL736",
|
||||||
|
"C03": "RPD",
|
||||||
|
"C04": "M4 LMG",
|
||||||
|
"C05": "Chopper",
|
||||||
|
"C06": "Holger 26",
|
||||||
|
"C07": "Hades",
|
||||||
|
"C08": "PKM",
|
||||||
|
"D01": "RUS-79u",
|
||||||
|
"D02": "Chicom",
|
||||||
|
"D03": "PDW-57",
|
||||||
|
"D04": "Razorback",
|
||||||
|
"D05": "MSMC",
|
||||||
|
"D06": "HG40",
|
||||||
|
"D07": "Pharo",
|
||||||
|
"D08": "GKS",
|
||||||
|
"D09": "Cordite",
|
||||||
|
"D10": "QQ9",
|
||||||
|
"D11": "Fennec",
|
||||||
|
"D12": "AGR 556",
|
||||||
|
"D13": "QXR",
|
||||||
|
"D14": "PP19 Bizon",
|
||||||
|
"D15": "MX9",
|
||||||
|
"D16": "CBR4",
|
||||||
|
"D17": "PPSh 41",
|
||||||
|
"E01": "HS2126",
|
||||||
|
"E02": "BY15",
|
||||||
|
"E03": "HS0405",
|
||||||
|
"E04": "Striker",
|
||||||
|
"E05": "KRM 262",
|
||||||
|
"E06": "Echo",
|
||||||
|
"E07": "R9-0",
|
||||||
|
"F01": "Kilo Bolt-Action",
|
||||||
|
"F02": "SKS",
|
||||||
|
"F03": "SP-R 208",
|
||||||
|
"F04": "MK2",
|
||||||
|
"G01": "J358",
|
||||||
|
"G02": "MW11",
|
||||||
|
"G03": ".50 GS",
|
||||||
|
"G04": "Renetti",
|
||||||
|
"G05": "Shorty",
|
||||||
|
"G06": "Crossbow"
|
||||||
|
}
|
|
@ -1,26 +0,0 @@
|
||||||
[
|
|
||||||
"Shave your arms and send me a pic.",
|
|
||||||
"Record yourself singing a song and post it on YouTube.",
|
|
||||||
"Try to lick your own foot!",
|
|
||||||
"Message someone you haven’t talked to in at least 1 year on Facebook or Instagram and take a screenshot.",
|
|
||||||
"Text your crush and ask them out on a date.",
|
|
||||||
"Cut a piece of your hair.",
|
|
||||||
"List everyone as the emoji(s) you think best fits them.",
|
|
||||||
"Change your nickname/username to whatever the group wants.",
|
|
||||||
"Send me a screenshot of your messages with the last person besides me you texted.",
|
|
||||||
"Brush your teeth with peanut butter or another condiment and send me a pic.",
|
|
||||||
"Rate everyone here 1-10 in terms of personality.",
|
|
||||||
"Take a really unflattering picture and make it your profile picture for one full day.",
|
|
||||||
"Send me a screenshot of your selfies gallery.",
|
|
||||||
"Text a random number and write “I see dead people”.",
|
|
||||||
"Tell the group in detail about your first kiss.",
|
|
||||||
"Tell a joke until it makes everyone laugh.",
|
|
||||||
"Tell your girlfriend that your friends don’t like her so you can’t be with her anymore.",
|
|
||||||
"Brush your teeth with your best friend’s toothbrush.",
|
|
||||||
"Show everyone your unshaved legs.",
|
|
||||||
"Break a raw egg on your forehead.",
|
|
||||||
"Call 5 different people and talk to them in 5 different accents.",
|
|
||||||
"Set your crush’s picture as your FB profile picture.",
|
|
||||||
"Show everyone your search history for the past week."
|
|
||||||
|
|
||||||
]
|
|
4131
util/Data/domains.json
Normal file
4131
util/Data/domains.json
Normal file
File diff suppressed because it is too large
Load diff
98
util/Data/loadout.json
Normal file
98
util/Data/loadout.json
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
{
|
||||||
|
"secondary": [
|
||||||
|
"Knife / Base Melee",
|
||||||
|
"Axe",
|
||||||
|
"Shovel",
|
||||||
|
"Baseball Bat",
|
||||||
|
"Nunchucks",
|
||||||
|
"Prizefighter",
|
||||||
|
"Wrench",
|
||||||
|
"Sickle",
|
||||||
|
"Machete",
|
||||||
|
"Katana",
|
||||||
|
"FHJ-18",
|
||||||
|
"SMRS",
|
||||||
|
"D13 Sector",
|
||||||
|
"Thumper"
|
||||||
|
],
|
||||||
|
"perk_1": [
|
||||||
|
"Fast Recover",
|
||||||
|
"Persistence",
|
||||||
|
"Flak Jacket",
|
||||||
|
"Skulker",
|
||||||
|
"Agile",
|
||||||
|
"Lightweight",
|
||||||
|
"Restock",
|
||||||
|
"Tactician",
|
||||||
|
"Overclock",
|
||||||
|
"Martyrdom",
|
||||||
|
"Iron Lungs"
|
||||||
|
],
|
||||||
|
"perk_2": [
|
||||||
|
"Vulture",
|
||||||
|
"Toughness",
|
||||||
|
"Tracker",
|
||||||
|
"Ghost",
|
||||||
|
"Cold Blooded",
|
||||||
|
"Hard Wired",
|
||||||
|
"Quick Fix",
|
||||||
|
"Amped",
|
||||||
|
"Recon",
|
||||||
|
"Gung-Ho"
|
||||||
|
],
|
||||||
|
"perk_3": [
|
||||||
|
"Hard Line",
|
||||||
|
"Demo Expert",
|
||||||
|
"Tactical Mask",
|
||||||
|
"Alert",
|
||||||
|
"Engineer",
|
||||||
|
"Dead Silence",
|
||||||
|
"Shrapnel",
|
||||||
|
"Hard Alert",
|
||||||
|
"Launcher Plus"
|
||||||
|
],
|
||||||
|
"scorestreek": [
|
||||||
|
"Shield Turret",
|
||||||
|
"UAV",
|
||||||
|
"Shock RC",
|
||||||
|
"Hunter Killer Drone",
|
||||||
|
"Care Package",
|
||||||
|
"Counter UAV",
|
||||||
|
"MQ-27 Dragonfire",
|
||||||
|
"SAM Turret",
|
||||||
|
"Predator Missile",
|
||||||
|
"Hawk X3",
|
||||||
|
"Sentry Gun",
|
||||||
|
"Lightning Strike",
|
||||||
|
"Orbital Laser",
|
||||||
|
"XS1 Goliath",
|
||||||
|
"Cluster Strike",
|
||||||
|
"Chopper Gunner",
|
||||||
|
"Stealth Chopper",
|
||||||
|
"Swarm",
|
||||||
|
"Napalm",
|
||||||
|
"Advance UAV",
|
||||||
|
"EMP Systems",
|
||||||
|
"VTOL"
|
||||||
|
],
|
||||||
|
"operator_skill": [
|
||||||
|
"Purifier",
|
||||||
|
"War Machine",
|
||||||
|
"Death Machine",
|
||||||
|
"Tranform Shield",
|
||||||
|
"K9 UNIT",
|
||||||
|
"Sparrow",
|
||||||
|
"Tempest",
|
||||||
|
"H.I.V.E. ",
|
||||||
|
"Gravity Spikes",
|
||||||
|
"Annihilator",
|
||||||
|
"Shadow Blade",
|
||||||
|
"Equalizer",
|
||||||
|
"Ballistic Shield",
|
||||||
|
"Gravity Vortex Gun",
|
||||||
|
"Bull Charge",
|
||||||
|
"Kinetic Armor",
|
||||||
|
"TAK-5",
|
||||||
|
"Munitions Box"
|
||||||
|
]
|
||||||
|
}
|
4103
util/Data/scam.json
4103
util/Data/scam.json
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,5 @@
|
||||||
[
|
{
|
||||||
|
"truth": [
|
||||||
"When was the last time you lied?",
|
"When was the last time you lied?",
|
||||||
"When was the last time you cried?",
|
"When was the last time you cried?",
|
||||||
"What's your biggest fear?",
|
"What's your biggest fear?",
|
||||||
|
@ -59,5 +60,31 @@
|
||||||
"What's your biggest turn on?",
|
"What's your biggest turn on?",
|
||||||
"What's the silliest reason you've left a club early?",
|
"What's the silliest reason you've left a club early?",
|
||||||
"What have you purchased that's been the biggest waste of money?",
|
"What have you purchased that's been the biggest waste of money?",
|
||||||
"If you could swap lives with someone in this room, who would it be?"
|
"If you could swap lives with someone in this room, who would it be?"
|
||||||
]
|
],
|
||||||
|
"dare": [
|
||||||
|
"Shave your arms and send me a pic.",
|
||||||
|
"Record yourself singing a song and post it on YouTube.",
|
||||||
|
"Try to lick your own foot!",
|
||||||
|
"Message someone you haven’t talked to in at least 1 year on Facebook or Instagram and take a screenshot.",
|
||||||
|
"Text your crush and ask them out on a date.",
|
||||||
|
"Cut a piece of your hair.",
|
||||||
|
"List everyone as the emoji(s) you think best fits them.",
|
||||||
|
"Change your nickname/username to whatever the group wants.",
|
||||||
|
"Send me a screenshot of your messages with the last person besides me you texted.",
|
||||||
|
"Brush your teeth with peanut butter or another condiment and send me a pic.",
|
||||||
|
"Rate everyone here 1-10 in terms of personality.",
|
||||||
|
"Take a really unflattering picture and make it your profile picture for one full day.",
|
||||||
|
"Send me a screenshot of your selfies gallery.",
|
||||||
|
"Text a random number and write “I see dead people”.",
|
||||||
|
"Tell the group in detail about your first kiss.",
|
||||||
|
"Tell a joke until it makes everyone laugh.",
|
||||||
|
"Tell your girlfriend that your friends don’t like her so you can’t be with her anymore.",
|
||||||
|
"Brush your teeth with your best friend’s toothbrush.",
|
||||||
|
"Show everyone your unshaved legs.",
|
||||||
|
"Break a raw egg on your forehead.",
|
||||||
|
"Call 5 different people and talk to them in 5 different accents.",
|
||||||
|
"Set your crush’s picture as your FB profile picture.",
|
||||||
|
"Show everyone your search history for the past week."
|
||||||
|
]
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ const weaponActualName = nmDt.weaponActualName;
|
||||||
const weaponAlliasName = nmDt.weaponAlliasName;
|
const weaponAlliasName = nmDt.weaponAlliasName;
|
||||||
Object.defineProperty(String.prototype, "Simplify", {
|
Object.defineProperty(String.prototype, "Simplify", {
|
||||||
// Function to remove all characters except 0-9 and a-z
|
// Function to remove all characters except 0-9 and a-z
|
||||||
|
// Eg "AK-47" -> "ak47"
|
||||||
value: function Simplify() {
|
value: function Simplify() {
|
||||||
return this.toLowerCase().replace(/[^0-9a-z]/g, "");
|
return this.toLowerCase().replace(/[^0-9a-z]/g, "");
|
||||||
},
|
},
|
||||||
|
@ -55,7 +56,7 @@ Object.defineProperty(Number.prototype, "PlusHL", {
|
||||||
|
|
||||||
/* Function to fix the input statement */
|
/* Function to fix the input statement */
|
||||||
function inpFixer(inpmsg) {
|
function inpFixer(inpmsg) {
|
||||||
const parts = partExtracter(inpmsg);
|
const parts = PartSpliter(inpmsg);
|
||||||
// parts will be an array
|
// parts will be an array
|
||||||
//eg: ["fennec", "akimbo, mono"]
|
//eg: ["fennec", "akimbo, mono"]
|
||||||
nmDt.attachmentAlliasName[0].map((x, i) =>
|
nmDt.attachmentAlliasName[0].map((x, i) =>
|
||||||
|
@ -72,8 +73,8 @@ function inpFixer(inpmsg) {
|
||||||
// so it fking only fix akimbo and stopping power wtf
|
// so it fking only fix akimbo and stopping power wtf
|
||||||
return inpmsg;
|
return inpmsg;
|
||||||
}
|
}
|
||||||
// Function to extract the attachments from the input statement
|
// Function to split weapon name and the attachments from the input statement
|
||||||
function partExtracter(inpmsg) {
|
function PartSpliter(inpmsg) {
|
||||||
if (inpmsg.includes(" + ")) {
|
if (inpmsg.includes(" + ")) {
|
||||||
// If the input statement has multiple attachments joined by "+", split them and output them as an array of strings [0] is the weapon name, [1] is the attachments
|
// If the input statement has multiple attachments joined by "+", split them and output them as an array of strings [0] is the weapon name, [1] is the attachments
|
||||||
// Eg: "M4A1 + Silencer + Flashlight" -> ["M4A1", "Silencer + Flashlight"]
|
// Eg: "M4A1 + Silencer + Flashlight" -> ["M4A1", "Silencer + Flashlight"]
|
||||||
|
@ -90,7 +91,7 @@ function partExtracter(inpmsg) {
|
||||||
|
|
||||||
function hasAttachments(inpmsg) {
|
function hasAttachments(inpmsg) {
|
||||||
inpmsg = inpFixer(inpmsg);
|
inpmsg = inpFixer(inpmsg);
|
||||||
// If
|
// If the input statement has multiple attachments joined by "+" or "with", split them and output them as an array of strings [0] is the weapon name, [1] is the attachments
|
||||||
if (
|
if (
|
||||||
inpmsg.split(" with ").filter(x => x.Simplify()).length > 1 ||
|
inpmsg.split(" with ").filter(x => x.Simplify()).length > 1 ||
|
||||||
inpmsg.split(" + ").filter(x => x.Simplify()).length > 1
|
inpmsg.split(" + ").filter(x => x.Simplify()).length > 1
|
||||||
|
@ -101,68 +102,83 @@ function hasAttachments(inpmsg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function isolator(inpmsg) {
|
function isolator(inpmsg) {
|
||||||
return partExtracter(inpFixer(inpmsg));
|
return PartSpliter(inpFixer(inpmsg));
|
||||||
}
|
}
|
||||||
|
// identifying the weapon
|
||||||
function weaponIdentifier(inpmsg) {
|
function weaponIdentifier(inpmsg) {
|
||||||
const inpWeaponName = isolator(inpmsg)[0];
|
const inpWeaponName = isolator(inpmsg)[0];
|
||||||
|
// ["ak", "mono"] -> inpWeaponName: "ak"
|
||||||
|
// if weapon name is too short, return the error
|
||||||
if (inpWeaponName.length < 2) {
|
if (inpWeaponName.length < 2) {
|
||||||
return inpmsg.trim().length
|
return inpmsg.trim().length
|
||||||
? `The name ${inpmsg.trim()} is too short.`
|
? `The name ${inpmsg.trim()} is too short.`
|
||||||
: "There isn't any weapon name.";
|
: "There isn't any weapon name.";
|
||||||
}
|
}
|
||||||
let probableWeapons = [];
|
let probableWeapons = [];
|
||||||
|
// Loop through all the weapons to find the probable weapons
|
||||||
|
// Eg: "ak"
|
||||||
for (let i = 0; i < data.cguns.length; i++) {
|
for (let i = 0; i < data.cguns.length; i++) {
|
||||||
if (inpWeaponName.Simplify() == data.cguns[i].gunname.Simplify()) {
|
if (inpWeaponName.Simplify() == data.cguns[i].gunname.Simplify()) {
|
||||||
|
// if the simplified name of the weapon is the same as the weapon name in the database, return the only one stats object
|
||||||
return JSON.parse(JSON.stringify(data.cguns[i]));
|
return JSON.parse(JSON.stringify(data.cguns[i]));
|
||||||
} else if (
|
} else if (
|
||||||
data.cguns[i].gunname.Simplify().includes(inpWeaponName.Simplify())
|
data.cguns[i].gunname.Simplify().includes(inpWeaponName.Simplify())
|
||||||
) {
|
) {
|
||||||
|
// If the weapon name is included in the actual name of the weapon
|
||||||
|
// push the weapon to the probableWeapons array
|
||||||
probableWeapons.push(i);
|
probableWeapons.push(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// if there is only one probable weapon, mean the gun has already been identified
|
||||||
if (probableWeapons.length == 1) {
|
if (probableWeapons.length == 1) {
|
||||||
|
// if there is only one probable weapon, return the only one stats object
|
||||||
return JSON.parse(JSON.stringify(data.cguns[probableWeapons[0]]));
|
return JSON.parse(JSON.stringify(data.cguns[probableWeapons[0]]));
|
||||||
}
|
}
|
||||||
|
// continue loop when there is no identified weapons or there are more than one identfied weaponds
|
||||||
|
// detecting aliases
|
||||||
|
// getting total number of weapons that had added aliases
|
||||||
for (let i = 0; i < weaponAlliasName.length; i++) {
|
for (let i = 0; i < weaponAlliasName.length; i++) {
|
||||||
|
// getting the number of aliases of each weapon
|
||||||
for (let j = 0; j < weaponAlliasName[i].length; j++) {
|
for (let j = 0; j < weaponAlliasName[i].length; j++) {
|
||||||
|
// weaponAliases[i][j] is the each alias of each weapon
|
||||||
|
// finding if simplified alias is same as input weapon name
|
||||||
if (weaponAlliasName[i][j].Simplify() == inpWeaponName.Simplify()) {
|
if (weaponAlliasName[i][j].Simplify() == inpWeaponName.Simplify()) {
|
||||||
|
// if simplified alias is same as input weapon name
|
||||||
|
// eg "mow" == "mow", run the loop
|
||||||
for (let i2 = 0; i2 < data.cguns.length; i2++) {
|
for (let i2 = 0; i2 < data.cguns.length; i2++) {
|
||||||
if (
|
if (weaponActualName[i] == data.cguns[i2].gunname) {
|
||||||
weaponActualName[i].Simplify() == data.cguns[i2].gunname.Simplify()
|
// use the actual name of the weapon to find the weapon
|
||||||
) {
|
|
||||||
return JSON.parse(JSON.stringify(data.cguns[i2]));
|
return JSON.parse(JSON.stringify(data.cguns[i2]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// removing duplicates in the array
|
||||||
probableWeapons = [...new Set(probableWeapons)];
|
probableWeapons = [...new Set(probableWeapons)];
|
||||||
if (probableWeapons.length == 1) {
|
// if there is only one probable weapon, return the only one stats object
|
||||||
|
if (probableWeapons.length == 1)
|
||||||
return JSON.parse(JSON.stringify(data.cguns[probableWeapons[0]]));
|
return JSON.parse(JSON.stringify(data.cguns[probableWeapons[0]]));
|
||||||
}
|
else if (probableWeapons.length > 1) {
|
||||||
if (probableWeapons.length > 1) {
|
// reply with the question of probable weapons
|
||||||
return `Did you mean ${probableWeapons
|
return `Did you mean ${probableWeapons
|
||||||
.map(x => data.cguns[x].gunname)
|
.map(x => data.cguns[x].gunname)
|
||||||
.reduce((out, x, i) =>
|
.reduce((out, x, i) =>
|
||||||
[out, x].join(i === probableWeapons.length - 1 ? "` or `" : "`, `")
|
[out, x].join(i === probableWeapons.length - 1 ? "` or `" : "`, `")
|
||||||
)}
|
)}
|
||||||
?`;
|
?`;
|
||||||
}
|
} else return `Couldn't identify the weapon: "${inpWeaponName}"`;
|
||||||
return `Couldn't identify the weapon: "${inpWeaponName}"`;
|
|
||||||
}
|
}
|
||||||
|
// identifying attachments and return array or error
|
||||||
function attachmentsIdentifier(inpmsg, attachmentsData, inpStats) {
|
function attachmentsIdentifier(inpmsg, gun) {
|
||||||
if (!hasAttachments(inpmsg)) {
|
if (!hasAttachments(inpmsg)) return [];
|
||||||
return [];
|
|
||||||
}
|
|
||||||
// no need for isolator because using slash commands, we get individual attachment
|
// no need for isolator because using slash commands, we get individual attachment
|
||||||
let inputAttachmentsNames = isolator(inpmsg)[1]
|
let inputAttachmentsNames = isolator(inpmsg)[1]
|
||||||
.split(/ & |, |,| and /)
|
.split(/ & |, |,| and /)
|
||||||
.filter(x => x);
|
.filter(x => x);
|
||||||
|
|
||||||
const tooSmall = inputAttachmentsNames.filter(x => x.length < 3);
|
const tooSmall = inputAttachmentsNames.filter(x => x.length < 3);
|
||||||
|
// filter all elements thats shorter than 2 characters
|
||||||
inputAttachmentsNames = inputAttachmentsNames.filter(x => !(x.length < 3));
|
inputAttachmentsNames = inputAttachmentsNames.filter(x => !(x.length < 3));
|
||||||
let errorMsgs = "",
|
let errorMsgs = "",
|
||||||
errors = [],
|
errors = [],
|
||||||
|
@ -170,25 +186,21 @@ function attachmentsIdentifier(inpmsg, attachmentsData, inpStats) {
|
||||||
|
|
||||||
if (inputAttachmentsNames.length == 0)
|
if (inputAttachmentsNames.length == 0)
|
||||||
errorMsgs += "\nAttachments are missing!\n";
|
errorMsgs += "\nAttachments are missing!\n";
|
||||||
|
// if (inputAttachmentsNames.length >= 10) return "Cocaineeeeee"; ?????????
|
||||||
if (inputAttachmentsNames.length >= 10) return "Cocaineeeeee";
|
|
||||||
|
|
||||||
// Can directly use args[] to return, no need for isolator, partExtractor, inpFixer
|
// Can directly use args[] to return, no need for isolator, partExtractor, inpFixer
|
||||||
const splitAttachmentsDataName = [],
|
const splitAttachmentsDataName = [],
|
||||||
outAttachments = [];
|
outAttachments = [];
|
||||||
|
|
||||||
for (let i = 0; i < attachmentsData.length; i++) {
|
for (let i = 0; i < gun.aments.length; i++) {
|
||||||
splitAttachmentsDataName.push([
|
splitAttachmentsDataName.push([
|
||||||
...new Set(
|
...new Set(
|
||||||
attachmentsData[i].name
|
gun.aments[i].name
|
||||||
.split(" ")
|
.split(" ")
|
||||||
.filter(x => x)
|
.filter(x => x)
|
||||||
.map(x => x.trim())
|
.map(x => x.trim())
|
||||||
),
|
),
|
||||||
]);
|
]);
|
||||||
if (Math.max(...splitAttachmentsDataName.map(x => x.length)) > 6) {
|
|
||||||
return "Cocaineeeeee";
|
|
||||||
}
|
|
||||||
for (let j = 0; j < splitAttachmentsDataName[i].length; j++) {
|
for (let j = 0; j < splitAttachmentsDataName[i].length; j++) {
|
||||||
splitAttachmentsDataName[i][j] =
|
splitAttachmentsDataName[i][j] =
|
||||||
splitAttachmentsDataName[i][j].Simplify();
|
splitAttachmentsDataName[i][j].Simplify();
|
||||||
|
@ -235,9 +247,9 @@ function attachmentsIdentifier(inpmsg, attachmentsData, inpStats) {
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
var tmp1 = parseInt(inputAttachmentsNames[i]);
|
var tmp1 = parseInt(inputAttachmentsNames[i]);
|
||||||
const tmp2 = attachmentsData.filter(
|
const tmp2 = gun.aments.filter(
|
||||||
x =>
|
x =>
|
||||||
x.type === 8 && x.effects[27] + x.effects[28] + inpStats[17] === tmp1
|
x.type === 8 && x.effects[27] + x.effects[28] + gun.stats[17] === tmp1
|
||||||
);
|
);
|
||||||
if (tmp2.length === 1) {
|
if (tmp2.length === 1) {
|
||||||
outAttachments.push(tmp2[0]);
|
outAttachments.push(tmp2[0]);
|
||||||
|
@ -284,9 +296,7 @@ function attachmentsIdentifier(inpmsg, attachmentsData, inpStats) {
|
||||||
|
|
||||||
var curr = probables[probables.length - 1];
|
var curr = probables[probables.length - 1];
|
||||||
const temp1 = probables[probables.length - 1].filter(
|
const temp1 = probables[probables.length - 1].filter(
|
||||||
x =>
|
x => gun.aments[x].name.Simplify() == inputAttachmentsNames[i].Simplify()
|
||||||
attachmentsData[x].name.Simplify() ==
|
|
||||||
inputAttachmentsNames[i].Simplify()
|
|
||||||
);
|
);
|
||||||
const temp2 = probables[probables.length - 1].filter(
|
const temp2 = probables[probables.length - 1].filter(
|
||||||
x =>
|
x =>
|
||||||
|
@ -310,7 +320,7 @@ function attachmentsIdentifier(inpmsg, attachmentsData, inpStats) {
|
||||||
errors.push(
|
errors.push(
|
||||||
"`" +
|
"`" +
|
||||||
curr
|
curr
|
||||||
.map(x => attachmentsData[x].name)
|
.map(x => gun.aments[x].name)
|
||||||
.reduce((out, x, i) =>
|
.reduce((out, x, i) =>
|
||||||
[out, x].join(i === curr.length - 1 ? "` or `" : "`, `")
|
[out, x].join(i === curr.length - 1 ? "` or `" : "`, `")
|
||||||
) +
|
) +
|
||||||
|
@ -319,7 +329,7 @@ function attachmentsIdentifier(inpmsg, attachmentsData, inpStats) {
|
||||||
'"`'
|
'"`'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
outAttachments.push(attachmentsData[probables[probables.length - 1][0]]);
|
outAttachments.push(gun.aments[probables[probables.length - 1][0]]);
|
||||||
}
|
}
|
||||||
const outAttachmentsTypes = outAttachments.map(x => x.type - 1),
|
const outAttachmentsTypes = outAttachments.map(x => x.type - 1),
|
||||||
t1 = outAttachments
|
t1 = outAttachments
|
||||||
|
@ -379,7 +389,7 @@ function attachmentsIdentifier(inpmsg, attachmentsData, inpStats) {
|
||||||
return errorMsgs ? errorMsgs.trim() : outAttachments;
|
return errorMsgs ? errorMsgs.trim() : outAttachments;
|
||||||
}
|
}
|
||||||
// console.log(attachmentsIdentifier("chopper with heavy handle, red sight, granulated", data.cguns[38].aments)); makeError();
|
// console.log(attachmentsIdentifier("chopper with heavy handle, red sight, granulated", data.cguns[38].aments)); makeError();
|
||||||
// console.log(attachmentsIdentifier("ak + 5mw lazer", data.cguns[0].aments)); //makeError();
|
// console.log(attachmentsIdentifier("ak + 5mw lazer", data.cguns[0].aments)); makeError();
|
||||||
// console.log(attachmentsIdentifier("117 + 40 round mag", data.cguns[0].aments, data.cguns[0].stats)); makeError();
|
// console.log(attachmentsIdentifier("117 + 40 round mag", data.cguns[0].aments, data.cguns[0].stats)); makeError();
|
||||||
// console.log(attachmentsIdentifier("117 + rtc muzzle brake, rubberized griptape, tac lazer sight, 40 round mag, no stock", data.cguns[1].aments)); makeError();
|
// console.log(attachmentsIdentifier("117 + rtc muzzle brake, rubberized griptape, tac lazer sight, 40 round mag, no stock", data.cguns[1].aments)); makeError();
|
||||||
|
|
||||||
|
|
|
@ -503,6 +503,7 @@ const leven = (te, t) => {
|
||||||
function chunk(arr, size) {
|
function chunk(arr, size) {
|
||||||
Array.from({ length: Math.ceil(arr.length / size) }, (v, i) => {
|
Array.from({ length: Math.ceil(arr.length / size) }, (v, i) => {
|
||||||
arr.slice(i * size, i * size + size);
|
arr.slice(i * size, i * size + size);
|
||||||
|
return arr;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function progressBar(value, maxValue, size) {
|
function progressBar(value, maxValue, size) {
|
||||||
|
|
Loading…
Reference in a new issue