2021-11-18 18:56:42 +01:00
|
|
|
const { MessageEmbed } = require("discord.js");
|
|
|
|
const model = require("../../models/weapons");
|
|
|
|
const Attachments = require("../../util/Data/attachments.json");
|
|
|
|
module.exports = {
|
|
|
|
name: "class",
|
|
|
|
description: "Generate random class in CODM",
|
|
|
|
category: "CODM",
|
|
|
|
run: async (client, interaction) => {
|
|
|
|
const data = async () => {
|
|
|
|
const d = await model.findOne({});
|
2023-04-18 11:47:47 +02:00
|
|
|
const types = d.Categories;
|
|
|
|
const names = d.Primary;
|
|
|
|
const category = types[Math.floor(Math.random() * types.length)];
|
|
|
|
const weapons = names[0][category];
|
2021-11-18 18:56:42 +01:00
|
|
|
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)
|
|
|
|
.setTitle(`🎲 A Randomly Generated Class for ${primary_weapon} 🎲`)
|
|
|
|
.setDescription(
|
|
|
|
`**Attachments**\n**${getAttachment(
|
|
|
|
primary,
|
|
|
|
slot_1
|
|
|
|
)}**\n**${getAttachment(primary, slot_2)}**\n**${getAttachment(
|
|
|
|
primary,
|
|
|
|
slot_3
|
|
|
|
)}**\n**${getAttachment(primary, slot_4)}**\n**${getAttachment(
|
|
|
|
primary,
|
|
|
|
slot_5
|
|
|
|
)}**`
|
|
|
|
)
|
|
|
|
.setURL(client.web)
|
|
|
|
.setFooter(`Made by ${client.author}`, client.user.displayAvatarURL())
|
|
|
|
.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)];
|
|
|
|
}
|
|
|
|
},
|
|
|
|
};
|