121 lines
5.0 KiB
JavaScript
121 lines
5.0 KiB
JavaScript
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
|
|
const torn = require('../../torn.js');
|
|
|
|
module.exports = {
|
|
data: new SlashCommandBuilder()
|
|
.setName('howiskzn')
|
|
.setDescription('How is KZNKing doing'),
|
|
async execute(interaction) {
|
|
const kznID = 3392710
|
|
const KZNKing = await torn.user.profile(kznID);
|
|
let message = `${KZNKing.name} has ${KZNKing.friends} friends and ${KZNKing.enemies} enemies. `;
|
|
(KZNKing.married.duration) ? message += `He has been married to [${KZNKing.married.spouse_name}](https://www.torn.com/profiles.php?XID=${KZNKing.married.spouse_id}) for ${KZNKing.married.duration} days. ` : message += `He is not married. `;
|
|
(KZNKing.property === "Private Island") ? message += `He has a Private Island. ` : message += `He does not have a Private Island. `;
|
|
(KZNKing.job.position === "Director") ? message += `He is director of ${KZNKing.job.company_name}. ` : message += `He is not director of a company. `;
|
|
(KZNKing.faction.position === "Leader") ? message += `He is leader of ${KZNKing.faction.faction_name}. ` : message += `He is not leader of his faction. `;
|
|
|
|
const company = (await torn.company(KZNKing.job.company_id));
|
|
const jobEmbed = new EmbedBuilder()
|
|
.setTitle(company.name)
|
|
.setURL(`https://www.torn.com/joblist.php#/p=corpinfo&ID=${company.ID}`)
|
|
.addFields(
|
|
{
|
|
name: "Daily Income",
|
|
value: `$${company.daily_income.toLocaleString()}`,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Weekly Income",
|
|
value: `$${company.weekly_income.toLocaleString()}`,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Days",
|
|
value: String(company.days_old),
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Daily Customers",
|
|
value: `${company.daily_customers}`,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Weekly Customers",
|
|
value: `${company.weekly_customers}`,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Employees",
|
|
value: `${company.employees_hired}/${company.employees_capacity}`,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Stars",
|
|
value: String(company.rating),
|
|
inline: true
|
|
}
|
|
)
|
|
|
|
const faction = await torn.faction.basic(KZNKing.faction.faction_id)
|
|
const facEmbed = new EmbedBuilder()
|
|
.setTitle(faction.name)
|
|
.setURL(`https://www.torn.com/factions.php?step=profile&ID=${faction.id}`)
|
|
.addFields(
|
|
{
|
|
name: "Members",
|
|
value: `${faction.members}/${faction.capacity}`,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Rank",
|
|
value: `${faction.rank.name} ${faction.rank.division}`,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Respect",
|
|
value: `${faction.respect.toLocaleString()}`,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Age",
|
|
value: `${faction.days_old}`,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Wars Won",
|
|
value: `${faction.rank.wins}`,
|
|
inline: true
|
|
},
|
|
);
|
|
|
|
let companyFemales = 0;
|
|
const companyFemalePromises = Object.entries(company.employees).map(([user]) => {
|
|
return torn.cache.user(user).then(data => {
|
|
if (data.gender === "Female") {
|
|
companyFemales++;
|
|
}
|
|
});
|
|
});
|
|
|
|
let factionFemales = 0;
|
|
const factionMembers = await torn.faction.members(KZNKing.faction.faction_id);
|
|
const factionFemalePromises = factionMembers.map((user) => {
|
|
return torn.cache.user(user.id).then(data => {
|
|
if (data.gender === "Female") {
|
|
factionFemales++;
|
|
}
|
|
});
|
|
});
|
|
|
|
// i hate async
|
|
await Promise.all(companyFemalePromises);
|
|
await Promise.all(factionFemalePromises);
|
|
|
|
const companyFemalePercent = (companyFemales / company.employees_capacity) * 100;
|
|
const factionFemalePercent = (factionFemales / faction.capacity) * 100;
|
|
|
|
message += `\nbtw lol his company has ${companyFemales}/${company.employees_capacity} female employees and ${factionFemales}/${faction.capacity} female faction members\n`;
|
|
message += `thats ${companyFemalePercent.toFixed(0)}% and ${factionFemalePercent.toFixed(0)}% respectively, and last i checked, torn has a 13% female population`;
|
|
interaction.reply({ content: message, embeds: [jobEmbed, facEmbed] });
|
|
},
|
|
}; |