Compare commits
	
		
			3 Commits
		
	
	
		
			3564b4bee7
			...
			b1df3297a9
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b1df3297a9 | |||
| dc820b934f | |||
| 41602eadae | 
@ -1,5 +1,5 @@
 | 
			
		||||
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
 | 
			
		||||
const { getCoverURL, getGameJson, getCompanyInfo, getGenres, getFranchise, getReleaseDates, getInvolvedCompanies, getCompanies } = require('../../igdbHelperFunctions.js');
 | 
			
		||||
const { getCoverURL, getGameJson, getGenres, getFranchise, getReleaseDates, getInvolvedCompanies, getCompanies } = require('../../igdbHelperFunctions.js');
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    data: new SlashCommandBuilder()
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
 | 
			
		||||
const { getCoverURL, getGameJson, getCompanyInfo, getGenres, getReleaseDates } = require('../../igdbHelperFunctions.js');
 | 
			
		||||
const { getCoverURL, getGameJson, getInvolvedCompanies, getCompanies, getGenres, getReleaseDates, getFranchise } = require('../../igdbHelperFunctions.js');
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    data: new SlashCommandBuilder()
 | 
			
		||||
@ -8,7 +8,7 @@ module.exports = {
 | 
			
		||||
        .addBooleanOption(option => option.setName('madness').setDescription('Let The Ochulus off the rails at your own risk')),
 | 
			
		||||
        async execute(interaction) {
 | 
			
		||||
 | 
			
		||||
        await interaction.deferReply('The Ochulus is pondering its options...');
 | 
			
		||||
        await interaction.deferReply();
 | 
			
		||||
 | 
			
		||||
        let games = [];
 | 
			
		||||
        const count = interaction.options.getBoolean('madness') ? 0 : 27;
 | 
			
		||||
@ -32,11 +32,13 @@ module.exports = {
 | 
			
		||||
            release_date = await getReleaseDates(game.release_dates[0]);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const genres = [];
 | 
			
		||||
        if (game.genres) {
 | 
			
		||||
            for (const genreId of game.genres) {
 | 
			
		||||
                const genre = await getGenres(genreId);
 | 
			
		||||
                genres.push(genre);
 | 
			
		||||
        const genreNames = [];
 | 
			
		||||
        if (game.genres)
 | 
			
		||||
        {
 | 
			
		||||
            const genres = await getGenres(game.genres);
 | 
			
		||||
 | 
			
		||||
            for (const genre of genres) {
 | 
			
		||||
                genreNames.push(genre.name);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -58,30 +60,69 @@ module.exports = {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (game.involved_companies) {
 | 
			
		||||
            const companies = [];
 | 
			
		||||
 | 
			
		||||
            for (const company of game.involved_companies) {
 | 
			
		||||
                const info = await getCompanyInfo(company);
 | 
			
		||||
                if (info.name) {
 | 
			
		||||
                    companies.push(info.name);
 | 
			
		||||
            const involvedCompanies = await getInvolvedCompanies(game.involved_companies);
 | 
			
		||||
            const companyIds = new Set();
 | 
			
		||||
            for (let i = 0; i < involvedCompanies.length; i++) {
 | 
			
		||||
                if (involvedCompanies[i].company)
 | 
			
		||||
                {
 | 
			
		||||
                    companyIds.add(involvedCompanies[i].company);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            embed.addFields({ name: 'Developers', value: `${companies.join(', ')}`, inline: true });
 | 
			
		||||
            const compIds = [...companyIds];
 | 
			
		||||
            const companies = await getCompanies(compIds);
 | 
			
		||||
 | 
			
		||||
            const developers = [];
 | 
			
		||||
            const publishers = [];
 | 
			
		||||
 | 
			
		||||
            for (const company of companies) {
 | 
			
		||||
 | 
			
		||||
                if (company.developed)
 | 
			
		||||
                {
 | 
			
		||||
                    if (company.developed.find(item => item === game.id)) {
 | 
			
		||||
                        developers.push(company.name);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                if (company.published)
 | 
			
		||||
                {
 | 
			
		||||
                    if (company.published.find(item => item === game.id)) {
 | 
			
		||||
                        publishers.push(company.name);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (developers.length > 0)
 | 
			
		||||
            {
 | 
			
		||||
                embed.addFields({ name: 'Developers', value: `${developers.join(', ')}`, inline: true });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (publishers.length > 0)
 | 
			
		||||
            {
 | 
			
		||||
                embed.addFields({ name: 'Publishers', value: `${publishers.join(', ')}`, inline: true });
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (release_date) {
 | 
			
		||||
            embed.addFields({ name: 'Release Date', value: `${release_date}`, inline: true });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (genres.length > 0) {
 | 
			
		||||
            embed.addFields({ name: 'Genres', value: `${genres.join(', ')}`, inline: true });
 | 
			
		||||
        if (genreNames.length > 0) {
 | 
			
		||||
            embed.addFields({ name: 'Genres', value: `${genreNames.join(', ')}`, inline: true });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if (game.total_rating) {
 | 
			
		||||
            embed.addFields({ name: 'Rating', value: `${game.total_rating.toFixed(0)} / 100, ${game.total_rating_count } ratings`, inline: true });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (game.franchises) {
 | 
			
		||||
            const franchise = await getFranchise(game.franchises);
 | 
			
		||||
            embed.addFields({ name: 'Franchise', value: `${franchise}`, inline: true });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        embed.addFields({ name: 'ID', value: `${game.id}`, inline: true });
 | 
			
		||||
 | 
			
		||||
        embed.setFooter({ text: 'The Ochulus • 100 Games Challenge', iconURL: interaction.client.user.avatarURL() });
 | 
			
		||||
 | 
			
		||||
@ -42,10 +42,8 @@ module.exports = {
 | 
			
		||||
            const start = new Date(2024, 0, 1);
 | 
			
		||||
            const days = (today - start) / (1000 * 60 * 60 * 24);
 | 
			
		||||
            const timepergame = days / beatenGamesDatabaseEntries.length;
 | 
			
		||||
            embed.addFields({ name: 'Average Beat Interval', value: `${Math.round(timepergame)} days`, inline: true });
 | 
			
		||||
            const finishdate = new Date();
 | 
			
		||||
            finishdate.setDate(start.getDate() + (timepergame * 100));
 | 
			
		||||
            const date = finishdate.toLocaleDateString('en-GB', { year: 'numeric', month: '2-digit', day: '2-digit' }).replace(/\//g, '/');
 | 
			
		||||
            start.setDate(start.getDate() + (timepergame * 100));
 | 
			
		||||
            const date = start.toLocaleDateString('en-GB', { year: 'numeric', month: '2-digit', day: '2-digit' }).replace(/\//g, '/');
 | 
			
		||||
            embed.addFields({ name: 'Estimated Finish Date', value: `${date}`, inline: true });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user