commit 8a004ee763d0e2f103326992cbce66dd233206dd
parent ae320aa2f1ecce1437a6f8a18d7c26088ee0ea3a
Author: night0721 <[email protected]>
Date: Wed, 2 Feb 2022 09:07:16 +0800
?
Diffstat:
3 files changed, 0 insertions(+), 855 deletions(-)
diff --git a/command/CODM/loadout.js b/command/CODM/loadout.js
@@ -1,78 +0,0 @@
-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, \`\`\`\`/class\`\`\`\` 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 Scorestreaks
- 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)];
- // }
- },
-};
diff --git a/command/CODM/new-stats.js b/command/CODM/new-stats.js
@@ -1,774 +0,0 @@
-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",
-// },
-// };
diff --git a/util/functions/common.js b/util/functions/common.js
@@ -201,9 +201,6 @@ function attachmentsIdentifier(inpmsg, gun) {
.map(x => x.trim())
),
]);
- // if (Math.max(...splitAttachmentsDataName.map(x => x.length)) > 6) {
- // return "Cocaineeeeee";
- // } ??????????????????? Thats not gonna happen right?
for (let j = 0; j < splitAttachmentsDataName[i].length; j++) {
splitAttachmentsDataName[i][j] =
splitAttachmentsDataName[i][j].Simplify();