text: // Dependencies
  const { get } = require('axios'),
  	{ Embed } = require('../../utils'),
  	Command = require('../../structures/Command.js');
  
  module.exports = class K4 extends Command {
  	constructor(bot) {
  		super(bot, {
  			name: '4k',
  			nsfw: true,
  			dirname: __dirname,
  			botPermissions: [ 'SEND_MESSAGES', 'EMBED_LINKS'],
  			description: 'Look at NSFW images.',
  			usage: '4k',
  			cooldown: 2000,
  			slash: true,
  		});
  	}
  
  	// Function for message command
  	async run(bot, message) {
  		// send 'waiting' message to show bot has recieved message
  		const msg = await message.channel.send(message.translate('nsfw/4k:FETCHING', {
  			EMOJI: message.checkEmoji() ? bot.customEmojis['loading'] : '', ITEM: this.help.name }));
  
  		try {
  			get('https://nekobot.xyz/api/image?type=4k')
  				.then(res => {
  					msg.delete();
  					const embed = new Embed(bot, message.guild)
  						.setImage(res.data.message);
  					message.channel.send({ embeds: [embed] });
  				});
  		} catch (err) {
  			if (message.deletable) message.delete();
  			msg.delete();
  			bot.logger.error(`Command: '${this.help.name}' has error: ${err.message}.`);
  			message.channel.error('misc:ERROR_MESSAGE', { ERROR: err.message }).then(m => m.timedDelete({ timeout: 5000 }));
  		}
  	}
  
  	// Function for slash command
  	async callback(bot, interaction, guild) {
  		const channel = guild.channels.cache.get(interaction.channelId);
  		try {
  			get('https://nekobot.xyz/api/image?type=4k')
  				.then(res => {
  					const embed = new Embed(bot, guild)
  						.setImage(res.data.message);
  					bot.send(interaction, { embeds: [embed], ephemeral: true });
  				});
  		} catch (err) {
  			bot.logger.error(`Command: '${this.help.name}' has error: ${err.message}.`);
  			return bot.send(interaction, { embeds: [channel.error('misc:ERROR_MESSAGE', { ERROR: err.message }, true)], ephemeral: true });
  		}
  	}
  };
  