From d0b04f57413ba95830fe5ba0b4f2348730712859 Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Thu, 11 Feb 2021 09:08:21 +0000 Subject: [PATCH 1/2] Restyled by clang-format --- commands/help.js | 174 ++++----- commands/hivemc.js | 119 +++---- commands/hypixel.js | 690 +++++++++++++++++++----------------- commands/minecraftstatus.js | 69 ++-- commands/ping.js | 24 +- commands/play.js | 164 +++++---- commands/purge.js | 62 ++-- commands/queue.js | 40 +-- commands/removeQueue.js | 12 +- commands/skip.js | 38 +- commands/stop.js | 45 ++- index.js | 50 ++- listeners/error.js | 15 +- listeners/ready.js | 46 ++- 14 files changed, 787 insertions(+), 761 deletions(-) diff --git a/commands/help.js b/commands/help.js index efc040e..7e0d234 100644 --- a/commands/help.js +++ b/commands/help.js @@ -1,100 +1,110 @@ -const { Command } = require('discord-akairo'); -const { version } = require('../package.json') +const {Command} = require('discord-akairo'); +const {version} = require('../package.json') class HelpCommand extends Command { - constructor() { - super('help', { - aliases: ['help', 'halp', 'h'], - category: 'general', - clientPermissions: ['EMBED_LINKS'], - args: [ - { - id: 'command', - type: 'commandAlias', - prompt: { - start: 'Which command do you need help with?', - retry: 'Please provide a valid command.', - optional: true - } - } - ], - description: { - content: 'Displays a list of commands or information about a command.', - usage: '[command]', - examples: ['', 'star', 'remove-rep'] - } - }); - } + constructor() { + super('help', { + aliases : [ 'help', 'halp', 'h' ], + category : 'general', + clientPermissions : [ 'EMBED_LINKS' ], + args : [ { + id : 'command', + type : 'commandAlias', + prompt : { + start : 'Which command do you need help with?', + retry : 'Please provide a valid command.', + optional : true + } + } ], + description : { + content : 'Displays a list of commands or information about a command.', + usage : '[command]', + examples : [ '', 'star', 'remove-rep' ] + } + }); + } - exec(message, { command }) { - message.delete(); - if (!command) return this.execCommandList(message); + exec(message, {command}) { + message.delete(); + if (!command) + return this.execCommandList(message); - const prefix = this.handler.prefix; - const description = Object.assign({ - content: 'No description available.', - usage: '', - examples: [], - fields: [] - }, command.description); + const prefix = this.handler.prefix; + const description = Object.assign({ + content : 'No description available.', + usage : '', + examples : [], + fields : [] + }, + command.description); - const embed = this.client.util.embed() - .setColor(0xFFAC33) - .setTitle(`\`${prefix}${command.aliases[0]} ${description.usage}\``) - .addField('Description', description.content); + const embed = + this.client.util.embed() + .setColor(0xFFAC33) + .setTitle(`\`${prefix}${command.aliases[0]} ${description.usage}\``) + .addField('Description', description.content); - for (const field of description.fields) embed.addField(field.name, field.value); + for (const field of description.fields) + embed.addField(field.name, field.value); - if (description.examples.length) { - const text = `${prefix}${command.aliases[0]}`; - embed.addField('Examples', `\`${text} ${description.examples.join(`\`\n\`${text} `)}\``, true); - } + if (description.examples.length) { + const text = `${prefix}${command.aliases[0]}`; + embed.addField( + 'Examples', + `\`${text} ${description.examples.join(`\`\n\`${text} `)}\``, true); + } - if (command.aliases.length > 1) { - embed.addField('Aliases', `\`${command.aliases.join('` `')}\``, true); - } + if (command.aliases.length > 1) { + embed.addField('Aliases', `\`${command.aliases.join('` `')}\``, true); + } - return message.util.send({ embed }); - } + return message.util.send({embed}); + } - async execCommandList(message) { - const embed = this.client.util.embed() - .setTitle("Panda Jr. **Help**") - .setFooter(`Panda Jr. v${version}`) - .setThumbnail('https://minecraft-mp.com/images/favicon/277055.png') - .setColor('#FF0033') - .addField('Command List', - [ - 'This is a list of commands.', - 'To view details for a command, do `!!help `.' - ]); + async execCommandList(message) { + const embed = + this.client.util.embed() + .setTitle("Panda Jr. **Help**") + .setFooter(`Panda Jr. v${version}`) + .setThumbnail('https://minecraft-mp.com/images/favicon/277055.png') + .setColor('#FF0033') + .addField('Command List', [ + 'This is a list of commands.', + 'To view details for a command, do `!!help `.' + ]); - for (const category of this.handler.categories.values()) { - const title = { - general: '📝\u2000General', - music: '🎵\u2000Music', - utility: ':briefcase:\u2000Utility', - minecraft: '🧱\u2000Minecraft' - }[category.id]; + for (const category of this.handler.categories.values()) { + const title = { + general : '📝\u2000General', + music : '🎵\u2000Music', + utility : ':briefcase:\u2000Utility', + minecraft : '🧱\u2000Minecraft' + }[category.id]; - if (title) embed.addField(title, `\`${category.map(cmd => cmd.aliases[0]).join('` `')}\``, true); - } + if (title) + embed.addField(title, + `\`${category.map(cmd => cmd.aliases[0]).join('` `')}\``, + true); + } - const shouldReply = message.guild && message.channel.permissionsFor(this.client.user).has('SEND_MESSAGES'); + const shouldReply = + message.guild && + message.channel.permissionsFor(this.client.user).has('SEND_MESSAGES'); - try { - await message.author.send({ embed }); - if (shouldReply) return message.util.reply('I\'ve sent you a DM with the command list.').then(msg => { - msg.delete({ timeout: 10000 }) - }); - } catch (err) { - if (shouldReply) return message.util.reply('I could not send you the command list in DMs.').then(msg => { - msg.delete({ timeout: 10000 }) - }); - } + try { + await message.author.send({embed}); + if (shouldReply) + return message.util.reply('I\'ve sent you a DM with the command list.') + .then(msg => {msg.delete({timeout : 10000})}); + } catch (err) { + if (shouldReply) + return message.util + .reply('I could not send you the command list in DMs.') + .then(msg => {msg.delete({timeout : 10000})}); + } - return undefined; - } + return undefined; + } } module.exports = HelpCommand; \ No newline at end of file diff --git a/commands/hivemc.js b/commands/hivemc.js index 75cc230..2a7f1eb 100644 --- a/commands/hivemc.js +++ b/commands/hivemc.js @@ -1,77 +1,68 @@ // HiveAPI const hive = require('hive-api'); -const { version } = require('../package.json'); +const {version} = require('../package.json'); const Discord = require('discord.js'); -const { Command } = require('discord-akairo'); +const {Command} = require('discord-akairo'); class HiveCommand extends Command { - constructor(){ - super('hive', { - aliases: ['hivemc', 'hmc'], - category: 'minecraft', - description: { - content: "Get's your hive stats", - usage: '', - examples: ['TheCuddlyBear', 'TheDevilsRoses', 'MagixSpellz'] - }, - args: [{ - id: 'playername', - }] - }) - } - - exec(message, { playername }){ - let player = new hive.Player(playername); + constructor() { + super('hive', { + aliases : [ 'hivemc', 'hmc' ], + category : 'minecraft', + description : { + content : "Get's your hive stats", + usage : '', + examples : [ 'TheCuddlyBear', 'TheDevilsRoses', 'MagixSpellz' ] + }, + args : [ { + id : 'playername', + } ] + }) + } - player.info().then(info => { + exec(message, {playername}) { + let player = new hive.Player(playername); - if (playername.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + player.info() + .then(info => { + if (playername.endsWith('s')) { + var suffix = "'" + } else { + var suffix = "'s" + } - const statEmbed = new Discord.MessageEmbed() - .setColor('#FF0033') - .setTitle(playername + suffix + " HiveMC stats") - .setThumbnail('https://minotar.net/avatar/' + playername) - .setTimestamp() - .setFooter(`HiveMC Stats • Panda Jr. v${version}`) - .addFields({ - name: 'Rank', - value: info.rank.humanName, - inline: true - }, { - name: 'Tokens', - value: info.tokens, - inline: true - }, { - name: 'Medals', - value: info.medals, - inline: true - }, { - name: 'Credits', - value: info.credits, - inline: true - }, { - name: 'First login', - value: info.firstLogin, - inline: true - }, { - name: 'Last login', - value: info.lastLogin, - inline: true - }, { - name: 'Last logout', - value: info.lastLogout - }) - message.channel.send(statEmbed); - message.delete(); - }).catch(e => { - console.log(e) + const statEmbed = + new Discord.MessageEmbed() + .setColor('#FF0033') + .setTitle(playername + suffix + " HiveMC stats") + .setThumbnail('https://minotar.net/avatar/' + playername) + .setTimestamp() + .setFooter(`HiveMC Stats • Panda Jr. v${version}`) + .addFields( + { + name : 'Rank', + value : info.rank.humanName, + inline : true + }, + {name : 'Tokens', value : info.tokens, inline : true}, + {name : 'Medals', value : info.medals, inline : true}, + {name : 'Credits', value : info.credits, inline : true}, { + name : 'First login', + value : info.firstLogin, + inline : true + }, + { + name : 'Last login', + value : info.lastLogin, + inline : true + }, + {name : 'Last logout', value : info.lastLogout}) + message.channel.send(statEmbed); + message.delete(); }) - } + .catch(e => {console.log(e)}) + } } module.exports = HiveCommand; \ No newline at end of file diff --git a/commands/hypixel.js b/commands/hypixel.js index e1b0efc..a7ed16d 100644 --- a/commands/hypixel.js +++ b/commands/hypixel.js @@ -1,370 +1,426 @@ -const { Command } = require('discord-akairo'); +const {Command} = require('discord-akairo'); const discord = require('discord.js'); // Require Hypixel Api wrapper -const { hypixel_api } = require('../config.json'); +const {hypixel_api} = require('../config.json'); const Hypixel = require('hypixel-api-reborn'); const hypixel = new Hypixel.Client(hypixel_api); -const { version } = require('../package.json'); - +const {version} = require('../package.json'); class HypixelCommand extends Command { - constructor(){ - super('hypixel', { - aliases: ['hypixel', 'hp', 'hyp'], - category: 'minecraft', - description: { - content: "Get's your hypixel stats from various games.", - usage: ' [game]', - examples: ['TheCuddlyBear', 'TheDevilsRoses bedwars', 'MagixSpellz murdermystery'] - }, - args: [{ - id: 'playername', - }, { - id: 'stattype', - default: 'player' - }] - }) - } + constructor() { + super('hypixel', { + aliases : [ 'hypixel', 'hp', 'hyp' ], + category : 'minecraft', + description : { + content : "Get's your hypixel stats from various games.", + usage : ' [game]', + examples : [ + 'TheCuddlyBear', 'TheDevilsRoses bedwars', 'MagixSpellz murdermystery' + ] + }, + args : [ + { + id : 'playername', + }, + {id : 'stattype', default : 'player'} + ] + }) + } - exec(message, { stattype, playername }){ - if (stattype !== 'player') { // checks which stats user wants - switch (stattype) { - case 'skywars': - getSkywarsStats(playername, message) - message.delete(); - break; - case 'bedwars': - getBedwarsStats(playername, message) - message.delete(); - break; - case 'murdermystery': - getMurderStats(playername, message) - message.delete(); - break; - case 'buildbattle': - getBuildStats(playername, message) - message.delete(); - break; - case 'skyblock': - message.channel.send("You can view your skyblock stats here: https://sky.shiiyu.moe/stats/" + playername) - message.delete(); - break; - case 'vampirez': - getVampireStats(playername, message) - message.delete(); - break; - case 'guild': - getGuildStats(playername, message) - message.delete(); - break; + exec(message, {stattype, playername}) { + if (stattype !== 'player') { // checks which stats user wants + switch (stattype) { + case 'skywars': + getSkywarsStats(playername, message) + message.delete(); + break; + case 'bedwars': + getBedwarsStats(playername, message) + message.delete(); + break; + case 'murdermystery': + getMurderStats(playername, message) + message.delete(); + break; + case 'buildbattle': + getBuildStats(playername, message) + message.delete(); + break; + case 'skyblock': + message.channel.send( + "You can view your skyblock stats here: https://sky.shiiyu.moe/stats/" + + playername) + message.delete(); + break; + case 'vampirez': + getVampireStats(playername, message) + message.delete(); + break; + case 'guild': + getGuildStats(playername, message) + message.delete(); + break; + } + } else { + hypixel.getPlayer(playername) + .then(player => { + if (player.nickname.endsWith('s')) { + var suffix = "'" + } else { + var suffix = "'s" } - } else { - hypixel.getPlayer(playername).then(player => { - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } - const statEmbed = new discord.MessageEmbed() + const statEmbed = + new discord.MessageEmbed() .setColor('#FF0033') .setTitle(player.nickname + suffix + " Hypixel stats") - .setThumbnail('https://minotar.net/avatar/' + player.nickname) + .setThumbnail('https://minotar.net/avatar/' + + player.nickname) .setTimestamp() .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields({ - name: 'Rank', - value: player.rank, - inline: true - }, { - name: 'Karma', - value: player.karma, - inline: true - }, { - name: 'Level', - value: player.level, - inline: true - }, { - name: 'First login', - value: player.firstLogin, - inline: true - }, { - name: 'Last login', - value: player.lastLogin, - inline: true - }, { - name: 'Last played game', - value: player.recentlyPlayedGame.toString() - }) - message.channel.send(statEmbed); - message.delete(); - }).catch(e => { - console.log(e) - }) - } + .addFields( + {name : 'Rank', value : player.rank, inline : true}, + {name : 'Karma', value : player.karma, inline : true}, + {name : 'Level', value : player.level, inline : true}, { + name : 'First login', + value : player.firstLogin, + inline : true + }, + { + name : 'Last login', + value : player.lastLogin, + inline : true + }, + { + name : 'Last played game', + value : player.recentlyPlayedGame.toString() + }) + message.channel.send(statEmbed); + message.delete(); + }) + .catch(e => {console.log(e)}) + } - function getSkywarsStats(player, message) { - hypixel.getPlayer(player).then(player => { // requests api for the player object - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + function getSkywarsStats(player, message) { + hypixel.getPlayer(player) + .then(player => { // requests api for the player object + if (player.nickname.endsWith('s')) { + var suffix = "'" + } else { + var suffix = "'s" + } - const statEmbed = new discord.MessageEmbed() // creates embed message with stats + const statEmbed = + new discord + .MessageEmbed() // creates embed message with stats .setColor('#FF0033') .setTitle(player.nickname + suffix + " Skywars stats") - .setThumbnail('https://minotar.net/avatar/' + player.nickname) + .setThumbnail('https://minotar.net/avatar/' + + player.nickname) .setTimestamp() .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields({ - name: 'Coins', - value: player.stats.skywars.coins, - inline: true - }, { - name: 'Souls', - value: player.stats.skywars.souls, - inline: true - }, { - name: 'Level', - value: player.stats.skywars.level, - inline: true - }, { - name: 'Wins', - value: player.stats.skywars.wins, - inline: true - }, { - name: 'Losses', - value: player.stats.skywars.losses, - inline: true - }, { - name: 'Kills', - value: player.stats.skywars.kills, - inline: true - }, { - name: 'K/D ration', - value: player.stats.skywars.KDRatio, - inline: true - }, ) - message.channel.send(statEmbed); - }).catch(e => { - console.log(e) - }) - } + .addFields( + { + name : 'Coins', + value : player.stats.skywars.coins, + inline : true + }, + { + name : 'Souls', + value : player.stats.skywars.souls, + inline : true + }, + { + name : 'Level', + value : player.stats.skywars.level, + inline : true + }, + { + name : 'Wins', + value : player.stats.skywars.wins, + inline : true + }, + { + name : 'Losses', + value : player.stats.skywars.losses, + inline : true + }, + { + name : 'Kills', + value : player.stats.skywars.kills, + inline : true + }, + { + name : 'K/D ration', + value : player.stats.skywars.KDRatio, + inline : true + }, + ) + message.channel.send(statEmbed); + }) + .catch(e => {console.log(e)}) + } - function getMurderStats(player, message) { - hypixel.getPlayer(player).then(player => { - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + function getMurderStats(player, message) { + hypixel.getPlayer(player) + .then(player => { + if (player.nickname.endsWith('s')) { + var suffix = "'" + } else { + var suffix = "'s" + } - const statEmbed = new discord.MessageEmbed() + const statEmbed = + new discord.MessageEmbed() .setColor('#FF0033') - .setTitle(player.nickname + suffix + " Murder Mystery stats") - .setThumbnail('https://minotar.net/avatar/' + player.nickname) + .setTitle(player.nickname + suffix + + " Murder Mystery stats") + .setThumbnail('https://minotar.net/avatar/' + + player.nickname) .setTimestamp() .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields({ - name: 'Coins', - value: player.stats.murdermystery.coins, - inline: true - }, { - name: 'Murderer Wins', - value: player.stats.murdermystery.winsAsMurderer, - inline: true - }, { - name: 'Detective Wins', - value: player.stats.murdermystery.winsAsDetective, - inline: true - }, { - name: 'Wins', - value: player.stats.murdermystery.wins, - inline: true - }, { - name: 'Kills', - value: player.stats.murdermystery.kills, - inline: true - }, { - name: 'Deaths', - value: player.stats.murdermystery.deaths, - inline: true - }, { - name: 'K/D ratio', - value: player.stats.murdermystery.KDRatio, - inline: true - }, ) - message.channel.send(statEmbed); - }).catch(e => { - console.log(e) - }) - } + .addFields( + { + name : 'Coins', + value : player.stats.murdermystery.coins, + inline : true + }, + { + name : 'Murderer Wins', + value : player.stats.murdermystery.winsAsMurderer, + inline : true + }, + { + name : 'Detective Wins', + value : player.stats.murdermystery.winsAsDetective, + inline : true + }, + { + name : 'Wins', + value : player.stats.murdermystery.wins, + inline : true + }, + { + name : 'Kills', + value : player.stats.murdermystery.kills, + inline : true + }, + { + name : 'Deaths', + value : player.stats.murdermystery.deaths, + inline : true + }, + { + name : 'K/D ratio', + value : player.stats.murdermystery.KDRatio, + inline : true + }, + ) + message.channel.send(statEmbed); + }) + .catch(e => {console.log(e)}) + } - function getBedwarsStats(player, message) { - hypixel.getPlayer(player).then(player => { - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + function getBedwarsStats(player, message) { + hypixel.getPlayer(player) + .then(player => { + if (player.nickname.endsWith('s')) { + var suffix = "'" + } else { + var suffix = "'s" + } - const statEmbed = new discord.MessageEmbed() + const statEmbed = + new discord.MessageEmbed() .setColor('#FF0033') .setTitle(player.nickname + suffix + " Bedwars stats") - .setThumbnail('https://minotar.net/avatar/' + player.nickname) + .setThumbnail('https://minotar.net/avatar/' + + player.nickname) .setTimestamp() .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields({ - name: 'Coins', - value: player.stats.bedwars.coins, - inline: true - }, { - name: 'Level', - value: player.stats.bedwars.level, - inline: true - }, { - name: 'Wins', - value: player.stats.bedwars.wins, - inline: true - }, { - name: 'Losses', - value: player.stats.bedwars.losses, - inline: true - }, { - name: 'Deaths', - value: player.stats.bedwars.deaths, - inline: true - }, { - name: 'Final Deaths', - value: player.stats.bedwars.finalDeaths, - inline: true - }, { - name: 'Kills', - value: player.stats.bedwars.kills, - inline: true - }, { - name: 'K/D ration', - value: player.stats.skywars.KDRatio, - inline: true - }, ) - message.channel.send(statEmbed); - }).catch(e => { - console.log(e) - }) - } + .addFields( + { + name : 'Coins', + value : player.stats.bedwars.coins, + inline : true + }, + { + name : 'Level', + value : player.stats.bedwars.level, + inline : true + }, + { + name : 'Wins', + value : player.stats.bedwars.wins, + inline : true + }, + { + name : 'Losses', + value : player.stats.bedwars.losses, + inline : true + }, + { + name : 'Deaths', + value : player.stats.bedwars.deaths, + inline : true + }, + { + name : 'Final Deaths', + value : player.stats.bedwars.finalDeaths, + inline : true + }, + { + name : 'Kills', + value : player.stats.bedwars.kills, + inline : true + }, + { + name : 'K/D ration', + value : player.stats.skywars.KDRatio, + inline : true + }, + ) + message.channel.send(statEmbed); + }) + .catch(e => {console.log(e)}) + } - function getBuildStats(player, message) { - hypixel.getPlayer(player).then(player => { - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + function getBuildStats(player, message) { + hypixel.getPlayer(player) + .then(player => { + if (player.nickname.endsWith('s')) { + var suffix = "'" + } else { + var suffix = "'s" + } - const statEmbed = new discord.MessageEmbed() + const statEmbed = + new discord.MessageEmbed() .setColor('#FF0033') .setTitle(player.nickname + suffix + " Build Battle stats") - .setThumbnail('https://minotar.net/avatar/' + player.nickname) + .setThumbnail('https://minotar.net/avatar/' + + player.nickname) .setTimestamp() .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields({ - name: 'Score', - value: player.stats.buildbattle.score, - inline: true - }, { - name: 'Played Games', - value: player.stats.buildbattle.playedGames, - inline: true - }, { - name: 'Coins', - value: player.stats.buildbattle.coins, - inline: true - }, { - name: 'Total wins', - value: player.stats.buildbattle.totalWins, - inline: true - }, { - name: 'Solo wins', - value: player.stats.buildbattle.wins.solo, - inline: true - }, { - name: 'Team wins', - value: player.stats.buildbattle.wins.team, - inline: true - }, { - name: 'Pro wins', - value: player.stats.buildbattle.wins.pro, - inline: true - }, { - name: 'GTB Wins', - value: player.stats.buildbattle.wins.gtb, - inline: true - }, ) - message.channel.send(statEmbed); - }).catch(e => { - console.log(e) - }) - } + .addFields( + { + name : 'Score', + value : player.stats.buildbattle.score, + inline : true + }, + { + name : 'Played Games', + value : player.stats.buildbattle.playedGames, + inline : true + }, + { + name : 'Coins', + value : player.stats.buildbattle.coins, + inline : true + }, + { + name : 'Total wins', + value : player.stats.buildbattle.totalWins, + inline : true + }, + { + name : 'Solo wins', + value : player.stats.buildbattle.wins.solo, + inline : true + }, + { + name : 'Team wins', + value : player.stats.buildbattle.wins.team, + inline : true + }, + { + name : 'Pro wins', + value : player.stats.buildbattle.wins.pro, + inline : true + }, + { + name : 'GTB Wins', + value : player.stats.buildbattle.wins.gtb, + inline : true + }, + ) + message.channel.send(statEmbed); + }) + .catch(e => {console.log(e)}) + } - function getVampireStats(player, message) { - hypixel.getPlayer(player).then(player => { - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + function getVampireStats(player, message) { + hypixel.getPlayer(player) + .then(player => { + if (player.nickname.endsWith('s')) { + var suffix = "'" + } else { + var suffix = "'s" + } - const statEmbed = new discord.MessageEmbed() + const statEmbed = + new discord.MessageEmbed() .setColor('#FF0033') .setTitle(player.nickname + suffix + " VampireZ stats") - .setThumbnail('https://minotar.net/avatar/' + player.nickname) + .setThumbnail('https://minotar.net/avatar/' + + player.nickname) .setTimestamp() .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields({ - name: 'Human', - value: `Kills: ${player.stats.vampirez.human.kills} \n Deaths: ${player.stats.vampirez.human.deaths} \n K/D Ratio: ${player.stats.vampirez.human.KDRatio} \n Wins: ${player.stats.vampirez.human.wins}`, - inline: true - }, { - name: 'Vampire', - value: `Kills: ${player.stats.vampirez.vampire.kills} \n Deaths: ${player.stats.vampirez.vampire.deaths} \n K/D Ratio: ${player.stats.vampirez.vampire.KDRatio}`, - inline: true - }, { - name: 'Zombie', - value: `Kills: ${player.stats.vampirez.vampire.kills}`, - inline: true - }, ) - message.channel.send(statEmbed); - }).catch(e => { - console.log(e) - }) - } + .addFields( + { + name : 'Human', + value : `Kills: ${ + player.stats.vampirez.human.kills} \n Deaths: ${ + player.stats.vampirez.human + .deaths} \n K/D Ratio: ${ + player.stats.vampirez.human.KDRatio} \n Wins: ${ + player.stats.vampirez.human.wins}`, + inline : true + }, + { + name : 'Vampire', + value : `Kills: ${ + player.stats.vampirez.vampire.kills} \n Deaths: ${ + player.stats.vampirez.vampire + .deaths} \n K/D Ratio: ${ + player.stats.vampirez.vampire.KDRatio}`, + inline : true + }, + { + name : 'Zombie', + value : + `Kills: ${player.stats.vampirez.vampire.kills}`, + inline : true + }, + ) + message.channel.send(statEmbed); + }) + .catch(e => {console.log(e)}) + } - function getGuildStats(guildArg, message) { - hypixel.getGuild('name', guildArg).then(guild => { - if (guild.name.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + function getGuildStats(guildArg, message) { + hypixel.getGuild('name', guildArg) + .then(guild => { + if (guild.name.endsWith('s')) { + var suffix = "'" + } else { + var suffix = "'s" + } - const statEmbed = new discord.MessageEmbed() + const statEmbed = + new discord.MessageEmbed() .setColor('#FF0033') .setTitle(guild.name + suffix + " stats") .setTimestamp() .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields({ - name: 'Level', - value: guild.level, - inline: true - }) - message.channel.send(statEmbed); - }).catch(e => { - console.log(e) - }) - } + .addFields( + {name : 'Level', value : guild.level, inline : true}) + message.channel.send(statEmbed); + }) + .catch(e => {console.log(e)}) } + } } module.exports = HypixelCommand; \ No newline at end of file diff --git a/commands/minecraftstatus.js b/commands/minecraftstatus.js index 33f383b..5e6e973 100644 --- a/commands/minecraftstatus.js +++ b/commands/minecraftstatus.js @@ -1,41 +1,44 @@ const minecraftUtil = require('minecraft-server-util'); const Discord = require('discord.js'); -const { Command } = require('discord-akairo') -const { version } = require('../package.json'); +const {Command} = require('discord-akairo') +const {version} = require('../package.json'); class MinecraftStatusCommand extends Command { - constructor(){ - super('minecraftstatus', { - aliases: ['mcstatus', 'mc'], - category: 'minecraft', - description: { - content: 'Displays the server status of the Roses Minecraft Server', - } - }); - } + constructor() { + super('minecraftstatus', { + aliases : [ 'mcstatus', 'mc' ], + category : 'minecraft', + description : { + content : 'Displays the server status of the Roses Minecraft Server', + } + }); + } - async exec(message){ - minecraftUtil.status('play.takato.eu', { port: 25565}) // Get status - .then((response) => { - const statusEmbed = new Discord.MessageEmbed() // Create embed with status - .setColor('#FF0033') - .setTitle('Roses Minecraft Status') - .setFooter(`Panda Jr. v${version}`) - .setThumbnail('https://minecraft-mp.com/images/favicon/277055.png') - .addFields( - { name: 'Server IP', value: 'play.takato.eu' }, - { name: 'Server Version', value: response.version }, - { name: 'Online players', value: response.onlinePlayers }, - { name: 'Max player', value: response.maxPlayers } - ) - .setTimestamp(); - message.channel.send(statusEmbed); // send message - message.delete(); - }) - .catch((error) => { // catch errors - throw error; - }) - } + async exec(message) { + minecraftUtil + .status('play.takato.eu', {port : 25565}) // Get status + .then((response) => { + const statusEmbed = + new Discord + .MessageEmbed() // Create embed with status + .setColor('#FF0033') + .setTitle('Roses Minecraft Status') + .setFooter(`Panda Jr. v${version}`) + .setThumbnail( + 'https://minecraft-mp.com/images/favicon/277055.png') + .addFields( + {name : 'Server IP', value : 'play.takato.eu'}, + {name : 'Server Version', value : response.version}, + {name : 'Online players', value : response.onlinePlayers}, + {name : 'Max player', value : response.maxPlayers}) + .setTimestamp(); + message.channel.send(statusEmbed); // send message + message.delete(); + }) + .catch((error) => { // catch errors + throw error; + }) + } } module.exports = MinecraftStatusCommand; \ No newline at end of file diff --git a/commands/ping.js b/commands/ping.js index a78994c..08aac9b 100644 --- a/commands/ping.js +++ b/commands/ping.js @@ -1,20 +1,16 @@ -const { Command } = require('discord-akairo'); +const {Command} = require('discord-akairo'); class PingCommand extends Command { - constructor() { - super('ping', { - aliases: ['ping'], - category: "general", - description: "Pong" - }) - } + constructor() { + super('ping', + {aliases : [ 'ping' ], category : "general", description : "Pong"}) + } - exec(message) { - message.delete(); - return message.channel.send("Pong!").then(msg => { - msg.delete( { timeout: 10000 }); - }) - } + exec(message) { + message.delete(); + return message.channel.send("Pong!").then( + msg => { msg.delete({timeout : 10000}); }) + } } module.exports = PingCommand; \ No newline at end of file diff --git a/commands/play.js b/commands/play.js index 6568dce..9c6c8f6 100644 --- a/commands/play.js +++ b/commands/play.js @@ -1,97 +1,105 @@ -const { Command } = require('discord-akairo'); +const {Command} = require('discord-akairo'); // Youtube -const { youtube_api } = require('../config.json') +const {youtube_api} = require('../config.json') const YoutubeAPI = require('discord-youtube-api'); const searcher = new YoutubeAPI(youtube_api); const ytdl = require('ytdl-core'); - class PlayCommand extends Command { - constructor(){ - super('play', { - aliases: ['play', 'p'], - category: "music", - description: { - content: "Plays the song you've given", - usage: '[song]', - examples: ['Blank space', 'Murder song'] - }, - args: [ - { - id: 'song', - match: 'text', - } - ] - }) - } + constructor() { + super('play', { + aliases : [ 'play', 'p' ], + category : "music", + description : { + content : "Plays the song you've given", + usage : '[song]', + examples : [ 'Blank space', 'Murder song' ] + }, + args : [ { + id : 'song', + match : 'text', + } ] + }) + } - async exec(message, args){ - const serverQueue = this.client.queue.get(message.guild.id); - const client = this.client; + async exec(message, args) { + const serverQueue = this.client.queue.get(message.guild.id); + const client = this.client; - let vc = message.member.voice.channel; + let vc = message.member.voice.channel; - if(!vc){ - message.delete(); - return message.channel.send("You have to join a voice channel before you can use this command!").then(msg => { - msg.delete({ timeout: 10000 }); - }) - }else{ - const songSearch = await searcher.searchVideos(args.song); + if (!vc) { + message.delete(); + return message.channel + .send( + "You have to join a voice channel before you can use this command!") + .then(msg => { msg.delete({timeout : 10000}); }) + } else { + const songSearch = await searcher.searchVideos(args.song); - if(!serverQueue){ - const queueConstructor = { // constructor for the server queue - textChannel: message.channel, - voiceChannel: vc, - connection: null, - songs: [], - volume: 0.1, - playing: true - }; - client.queue.set(message.guild.id, queueConstructor); + if (!serverQueue) { + const queueConstructor = { + // constructor for the server queue + textChannel : message.channel, + voiceChannel : vc, + connection : null, + songs : [], + volume : 0.1, + playing : true + }; + client.queue.set(message.guild.id, queueConstructor); - queueConstructor.songs.push(songSearch); + queueConstructor.songs.push(songSearch); - try{ // try to join voice channel of user - let connection = await vc.join(); - queueConstructor.connection = connection; - play(message.guild, queueConstructor.songs[0]); - message.delete(); - }catch (err){ - console.error(err); - client.queue.delete(message.guild.id); - return message.channel.send(`I wasn't able to join the voice chat ${err}`) - } - }else { - serverQueue.songs.push(songSearch); - message.delete(); - return message.channel.send("I've added the song to the queue ```" + ` ${songSearch.title}` + "```").then(msg => { - msg.delete({ timeout: 10000 }) - }) - } - } - - function play(guild, song){ - const serverQueue = client.queue.get(guild.id); - if(!song){ // If there are no songs left, leave voice channel - serverQueue.voiceChannel.leave(); - client.queue.delete(guild.id); - return; - } - console.log(`Now playing: ${song.title}`); // Announce what song is now playing to console - const dispatcher = serverQueue.connection - .play(ytdl(song.url), { volume: serverQueue.volume }) - .on('finish', () =>{ - serverQueue.songs.shift(); - play(guild, serverQueue.songs[0]); - }) - serverQueue.textChannel.send("I'm now playing: ```" + `${serverQueue.songs[0].title} || Duration: ${serverQueue.songs[0].duration.minutes}:${serverQueue.songs[0].duration.seconds}` + "```" ).then(msg => { // announce to user what song is playing. - msg.delete({ timeout: 10000 }) - }) + try { // try to join voice channel of user + let connection = await vc.join(); + queueConstructor.connection = connection; + play(message.guild, queueConstructor.songs[0]); + message.delete(); + } catch (err) { + console.error(err); + client.queue.delete(message.guild.id); + return message.channel.send( + `I wasn't able to join the voice chat ${err}`) } + } else { + serverQueue.songs.push(songSearch); + message.delete(); + return message.channel + .send("I've added the song to the queue ```" + + ` ${songSearch.title}` + + "```") + .then(msg => {msg.delete({timeout : 10000})}) + } + } + function play(guild, song) { + const serverQueue = client.queue.get(guild.id); + if (!song) { // If there are no songs left, leave voice channel + serverQueue.voiceChannel.leave(); + client.queue.delete(guild.id); + return; + } + console.log(`Now playing: ${ + song.title}`); // Announce what song is now playing to console + const dispatcher = + serverQueue.connection + .play(ytdl(song.url), {volume : serverQueue.volume}) + .on('finish', () => { + serverQueue.songs.shift(); + play(guild, serverQueue.songs[0]); + }) + serverQueue.textChannel + .send("I'm now playing: ```" + + `${serverQueue.songs[0].title} || Duration: ${ + serverQueue.songs[0].duration.minutes}:${ + serverQueue.songs[0].duration.seconds}` + + "```") + .then(msg => {// announce to user what song is playing. + msg.delete({timeout : 10000})}) } + } } module.exports = PlayCommand; \ No newline at end of file diff --git a/commands/purge.js b/commands/purge.js index 0fc4fa5..881d6a9 100644 --- a/commands/purge.js +++ b/commands/purge.js @@ -1,42 +1,38 @@ -const { Command } = require('discord-akairo'); +const {Command} = require('discord-akairo'); class PurgeCommand extends Command { - constructor(){ - super('purge',{ - aliases: ['purge'], - category: 'utility', - clientPermissions: ['MANAGE_MESSAGES'], - description: { - content: 'Purges the given amount of messages', - usage: '', - examples: ['1', '10', '37'] - }, - args: [{ - id: 'purgeArg', - type: 'integer' - }] - }) - } - - exec(message, { purgeArg }){ - const amount = parseInt(purgeArg) + 1; + constructor() { + super('purge', { + aliases : [ 'purge' ], + category : 'utility', + clientPermissions : [ 'MANAGE_MESSAGES' ], + description : { + content : 'Purges the given amount of messages', + usage : '', + examples : [ '1', '10', '37' ] + }, + args : [ {id : 'purgeArg', type : 'integer'} ] + }) + } - if (isNaN(amount)) { - return message.reply('That isn\'t a valid number.').then(msg => { - msg.delete({ timeout: 10000 }); - }); + exec(message, {purgeArg}) { + const amount = parseInt(purgeArg) + 1; - } else if (amount <= 1 || amount > 100) { - return message.reply('The number needs to be between 1 and 99!').then(msg => { - msg.delete({ timeout: 10000 }); - }); - } + if (isNaN(amount)) { + return message.reply('That isn\'t a valid number.') + .then(msg => { msg.delete({timeout : 10000}); }); - message.channel.bulkDelete(amount, true).catch(err => { - console.error(err); - message.channel.send('An error occured whilst trying to purge the messages in this channel.'); - }) + } else if (amount <= 1 || amount > 100) { + return message.reply('The number needs to be between 1 and 99!') + .then(msg => { msg.delete({timeout : 10000}); }); } + + message.channel.bulkDelete(amount, true).catch(err => { + console.error(err); + message.channel.send( + 'An error occured whilst trying to purge the messages in this channel.'); + }) + } } module.exports = PurgeCommand; \ No newline at end of file diff --git a/commands/queue.js b/commands/queue.js index aac1fea..aad009a 100644 --- a/commands/queue.js +++ b/commands/queue.js @@ -1,32 +1,26 @@ -const { Command } = require('discord-akairo'); +const {Command} = require('discord-akairo'); class QueueCommand extends Command { - constructor(){ - super('queue', { - aliases: ['queue', 'q'], - category: 'music', - description: { - content: "Returns the current queue" - } - }) - } + constructor() { + super('queue', { + aliases : [ 'queue', 'q' ], + category : 'music', + description : {content : "Returns the current queue"} + }) + } - exec(message){ - const serverQueue = this.client.queue.get(message.guild.id); - const client = this.client - let messageA = "Current queue: \n ```" + exec(message) { + const serverQueue = this.client.queue.get(message.guild.id); + const client = this.client + let messageA = "Current queue: \n ```" - serverQueue.songs.forEach(song => { - messageA = messageA + `${song.title + "\n"}` - }) + serverQueue.songs.forEach( + song => {messageA = messageA + `${song.title + "\n"}`}) - messageA = messageA + "```"; + messageA = messageA + "```"; - message.channel.send(messageA).then(msg => { - msg.delete({ timeout: 10000 }) - }) - - } + message.channel.send(messageA).then(msg => {msg.delete({timeout : 10000})}) + } } module.exports = QueueCommand; \ No newline at end of file diff --git a/commands/removeQueue.js b/commands/removeQueue.js index 8d3b34d..4e07ccd 100644 --- a/commands/removeQueue.js +++ b/commands/removeQueue.js @@ -1,15 +1,9 @@ -const { Command } = require('discord-akairo'); +const {Command} = require('discord-akairo'); class RemoveQueueCommand extends Command { - constructor() { - super('rmqueue', { - aliases: ['rmqueue'] - }) - } + constructor() { super('rmqueue', {aliases : [ 'rmqueue' ]}) } - exec(message) { - this.client.queue.delete(message.guild.id) - } + exec(message) { this.client.queue.delete(message.guild.id) } } module.exports = RemoveQueueCommand; \ No newline at end of file diff --git a/commands/skip.js b/commands/skip.js index d449ac7..72c69ab 100644 --- a/commands/skip.js +++ b/commands/skip.js @@ -1,27 +1,25 @@ -const { Command } = require('discord-akairo'); +const {Command} = require('discord-akairo'); class SkipCommand extends Command { - constructor(){ - super('skip', { - aliases: ['skip'], - category: "music", - description: "Skips the currently playing song." - }) - } + constructor() { + super('skip', { + aliases : [ 'skip' ], + category : "music", + description : "Skips the currently playing song." + }) + } - exec(message){ - const serverQueue = this.client.queue.get(message.guild.id); + exec(message) { + const serverQueue = this.client.queue.get(message.guild.id); - if(!message.member.voice.channel)// check if user is in voice channel - return message.channel.send("You need to join the voice chat first").then(msg => { - msg.delete({ timeout: 10000 }) - }) - if(!serverQueue) - return message.channel.send("There is nothing to skip!").then(msg => { - msg.delete({ timeout: 10000 }) - }) - serverQueue.connection.dispatcher.end(); - } + if (!message.member.voice.channel) // check if user is in voice channel + return message.channel.send("You need to join the voice chat first") + .then(msg => {msg.delete({timeout : 10000})}) + if (!serverQueue) + return message.channel.send("There is nothing to skip!") + .then(msg => {msg.delete({timeout : 10000})}) + serverQueue.connection.dispatcher.end(); + } } module.exports = SkipCommand; \ No newline at end of file diff --git a/commands/stop.js b/commands/stop.js index 1b66766..a33fe14 100644 --- a/commands/stop.js +++ b/commands/stop.js @@ -1,31 +1,28 @@ -const { Command } = require("discord-akairo"); +const {Command} = require("discord-akairo"); class StopCommand extends Command { - constructor(){ - super('stop', { - aliases: ['stop'], - category: "music", - description: "Stops playing music and deletes the current queue" - }) - } + constructor() { + super('stop', { + aliases : [ 'stop' ], + category : "music", + description : "Stops playing music and deletes the current queue" + }) + } - exec(message){ - const serverQueue = this.client.queue.get(message.guild.id) + exec(message) { + const serverQueue = this.client.queue.get(message.guild.id) - if(!message.member.voice.channel) - return message.channel.send("You need to join the voice channel first!").then(msg => { - msg.delete({ timeout: 10000 }) - }) - if(!serverQueue) - return message.channel.send("I am not playing anything right now...").then(msg => { - msg.delete({ timeout: 10000 }) - }) - message.channel.send("I will stop playing now, see you next time :wink:").then(msg => { - msg.delete({ timeout: 10000 }) - }) - serverQueue.songs = [] - serverQueue.connection.dispatcher.end(); - } + if (!message.member.voice.channel) + return message.channel.send("You need to join the voice channel first!") + .then(msg => {msg.delete({timeout : 10000})}) + if (!serverQueue) + return message.channel.send("I am not playing anything right now...") + .then(msg => {msg.delete({timeout : 10000})}) + message.channel.send("I will stop playing now, see you next time :wink:") + .then(msg => {msg.delete({timeout : 10000})}) + serverQueue.songs = [] + serverQueue.connection.dispatcher.end(); + } } module.exports = StopCommand; \ No newline at end of file diff --git a/index.js b/index.js index d637c28..cc3459e 100644 --- a/index.js +++ b/index.js @@ -1,34 +1,30 @@ -const { AkairoClient, CommandHandler, InhibitorHandler, ListenerHandler } = require('discord-akairo'); +const {AkairoClient, CommandHandler, InhibitorHandler, ListenerHandler} = + require('discord-akairo'); const config = require('./config.json'); const Discord = require('discord.js') class PandaClient extends AkairoClient { - constructor() { - super({ - ownerID: '206879635059900417' - }); - - this.commandHandler = new CommandHandler(this, { - directory: './commands/', - prefix: config.prefix, - commandUtil: true - }) - - this.inhibitorHandler = new InhibitorHandler(this, { - directory: './inhibitors/' - }) - - this.listenerHandler = new ListenerHandler(this, { - directory: './listeners/' - }) - - this.commandHandler.useInhibitorHandler(this.inhibitorHandler); - this.commandHandler.useListenerHandler(this.listenerHandler); - this.commandHandler.loadAll(); - this.listenerHandler.loadAll(); - this.inhibitorHandler.loadAll(); - } - + constructor() { + super({ownerID : '206879635059900417'}); + + this.commandHandler = new CommandHandler(this, { + directory : './commands/', + prefix : config.prefix, + commandUtil : true + }) + + this.inhibitorHandler = + new InhibitorHandler(this, {directory : './inhibitors/'}) + + this.listenerHandler = + new ListenerHandler(this, {directory : './listeners/'}) + + this.commandHandler.useInhibitorHandler(this.inhibitorHandler); + this.commandHandler.useListenerHandler(this.listenerHandler); + this.commandHandler.loadAll(); + this.listenerHandler.loadAll(); + this.inhibitorHandler.loadAll(); + } } const client = new PandaClient(); diff --git a/listeners/error.js b/listeners/error.js index 9e79e00..0b7ba7f 100644 --- a/listeners/error.js +++ b/listeners/error.js @@ -1,16 +1,9 @@ -const { Listener } = require('discord-akairo'); +const {Listener} = require('discord-akairo'); -class ErrorListener extends Listener{ - constructor() { - super('error', { - emitter: 'client', - event: 'error' - }) - } +class ErrorListener extends Listener { + constructor() { super('error', {emitter : 'client', event : 'error'}) } - exec() { - console.error; - } + exec() { console.error; } } module.exports = ErrorListener; \ No newline at end of file diff --git a/listeners/ready.js b/listeners/ready.js index baebf19..0b7e7f6 100644 --- a/listeners/ready.js +++ b/listeners/ready.js @@ -1,34 +1,28 @@ -const { Listener } = require('discord-akairo'); +const {Listener} = require('discord-akairo'); const config = require('../config.json'); class ReadyListener extends Listener { - constructor() { - super('ready', { - emitter: 'client', - event: 'ready' - }) - } + constructor() { super('ready', {emitter : 'client', event : 'ready'}) } - exec() { - console.log(`I have logged in as ${this.client.user.username} (${this.client.user.id})`) - if(config.user.updated === true){ - this.client.user.setUsername(config.user.name); - this.client.user.setAvatar(config.user.avatar); - console.log("I have updated the username and avatar!") - } - if(config.status.enabled){ - if(config.status.type === "STREAMING"){ - this.client.user.setActivity(config.status.text, { - type: config.status.type, - url: config.status.url - }); - }else { - this.client.user.setActivity(config.status.text, { - type: config.status.type - }); - } - } + exec() { + console.log(`I have logged in as ${this.client.user.username} (${ + this.client.user.id})`) + if (config.user.updated === true) { + this.client.user.setUsername(config.user.name); + this.client.user.setAvatar(config.user.avatar); + console.log("I have updated the username and avatar!") + } + if (config.status.enabled) { + if (config.status.type === "STREAMING") { + this.client.user.setActivity( + config.status.text, + {type : config.status.type, url : config.status.url}); + } else { + this.client.user.setActivity(config.status.text, + {type : config.status.type}); + } } + } } module.exports = ReadyListener; \ No newline at end of file From 7081a2419ebebf81ef6c9a6c4079d4daae54f5e1 Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Thu, 11 Feb 2021 09:08:25 +0000 Subject: [PATCH 2/2] Restyled by prettier --- commands/help.js | 140 ++++--- commands/hivemc.js | 114 +++--- commands/hypixel.js | 766 ++++++++++++++++++------------------ commands/minecraftstatus.js | 65 ++- commands/ping.js | 16 +- commands/play.js | 110 +++--- commands/purge.js | 46 ++- commands/queue.js | 27 +- commands/removeQueue.js | 12 +- commands/skip.js | 33 +- commands/stop.js | 39 +- index.js | 36 +- listeners/error.js | 12 +- listeners/ready.js | 29 +- 14 files changed, 760 insertions(+), 685 deletions(-) diff --git a/commands/help.js b/commands/help.js index 7e0d234..c8db7da 100644 --- a/commands/help.js +++ b/commands/help.js @@ -1,48 +1,51 @@ -const {Command} = require('discord-akairo'); -const {version} = require('../package.json') +const { Command } = require("discord-akairo"); +const { version } = require("../package.json"); class HelpCommand extends Command { constructor() { - super('help', { - aliases : [ 'help', 'halp', 'h' ], - category : 'general', - clientPermissions : [ 'EMBED_LINKS' ], - args : [ { - id : 'command', - type : 'commandAlias', - prompt : { - start : 'Which command do you need help with?', - retry : 'Please provide a valid command.', - optional : true - } - } ], - description : { - content : 'Displays a list of commands or information about a command.', - usage : '[command]', - examples : [ '', 'star', 'remove-rep' ] - } + super("help", { + aliases: ["help", "halp", "h"], + category: "general", + clientPermissions: ["EMBED_LINKS"], + args: [ + { + id: "command", + type: "commandAlias", + prompt: { + start: "Which command do you need help with?", + retry: "Please provide a valid command.", + optional: true, + }, + }, + ], + description: { + content: "Displays a list of commands or information about a command.", + usage: "[command]", + examples: ["", "star", "remove-rep"], + }, }); } - exec(message, {command}) { + exec(message, { command }) { message.delete(); - if (!command) - return this.execCommandList(message); + if (!command) return this.execCommandList(message); const prefix = this.handler.prefix; - const description = Object.assign({ - content : 'No description available.', - usage : '', - examples : [], - fields : [] - }, - command.description); + const description = Object.assign( + { + content: "No description available.", + usage: "", + examples: [], + fields: [], + }, + command.description + ); - const embed = - this.client.util.embed() - .setColor(0xFFAC33) - .setTitle(`\`${prefix}${command.aliases[0]} ${description.usage}\``) - .addField('Description', description.content); + const embed = this.client.util + .embed() + .setColor(0xffac33) + .setTitle(`\`${prefix}${command.aliases[0]} ${description.usage}\``) + .addField("Description", description.content); for (const field of description.fields) embed.addField(field.name, field.value); @@ -50,61 +53,70 @@ class HelpCommand extends Command { if (description.examples.length) { const text = `${prefix}${command.aliases[0]}`; embed.addField( - 'Examples', - `\`${text} ${description.examples.join(`\`\n\`${text} `)}\``, true); + "Examples", + `\`${text} ${description.examples.join(`\`\n\`${text} `)}\``, + true + ); } if (command.aliases.length > 1) { - embed.addField('Aliases', `\`${command.aliases.join('` `')}\``, true); + embed.addField("Aliases", `\`${command.aliases.join("` `")}\``, true); } - return message.util.send({embed}); + return message.util.send({ embed }); } async execCommandList(message) { - const embed = - this.client.util.embed() - .setTitle("Panda Jr. **Help**") - .setFooter(`Panda Jr. v${version}`) - .setThumbnail('https://minecraft-mp.com/images/favicon/277055.png') - .setColor('#FF0033') - .addField('Command List', [ - 'This is a list of commands.', - 'To view details for a command, do `!!help `.' - ]); + const embed = this.client.util + .embed() + .setTitle("Panda Jr. **Help**") + .setFooter(`Panda Jr. v${version}`) + .setThumbnail("https://minecraft-mp.com/images/favicon/277055.png") + .setColor("#FF0033") + .addField("Command List", [ + "This is a list of commands.", + "To view details for a command, do `!!help `.", + ]); for (const category of this.handler.categories.values()) { const title = { - general : '📝\u2000General', - music : '🎵\u2000Music', - utility : ':briefcase:\u2000Utility', - minecraft : '🧱\u2000Minecraft' + general: "📝\u2000General", + music: "🎵\u2000Music", + utility: ":briefcase:\u2000Utility", + minecraft: "🧱\u2000Minecraft", }[category.id]; if (title) - embed.addField(title, - `\`${category.map(cmd => cmd.aliases[0]).join('` `')}\``, - true); + embed.addField( + title, + `\`${category.map((cmd) => cmd.aliases[0]).join("` `")}\``, + true + ); } const shouldReply = - message.guild && - message.channel.permissionsFor(this.client.user).has('SEND_MESSAGES'); + message.guild && + message.channel.permissionsFor(this.client.user).has("SEND_MESSAGES"); try { - await message.author.send({embed}); + await message.author.send({ embed }); if (shouldReply) - return message.util.reply('I\'ve sent you a DM with the command list.') - .then(msg => {msg.delete({timeout : 10000})}); + return message.util + .reply("I've sent you a DM with the command list.") + .then((msg) => { + msg.delete({ timeout: 10000 }); + }); } catch (err) { if (shouldReply) return message.util - .reply('I could not send you the command list in DMs.') - .then(msg => {msg.delete({timeout : 10000})}); + .reply("I could not send you the command list in DMs.") + .then((msg) => { + msg.delete({ timeout: 10000 }); + }); } return undefined; } } -module.exports = HelpCommand; \ No newline at end of file +module.exports = HelpCommand; diff --git a/commands/hivemc.js b/commands/hivemc.js index 2a7f1eb..ea09df8 100644 --- a/commands/hivemc.js +++ b/commands/hivemc.js @@ -1,68 +1,74 @@ // HiveAPI -const hive = require('hive-api'); -const {version} = require('../package.json'); -const Discord = require('discord.js'); +const hive = require("hive-api"); +const { version } = require("../package.json"); +const Discord = require("discord.js"); -const {Command} = require('discord-akairo'); +const { Command } = require("discord-akairo"); class HiveCommand extends Command { constructor() { - super('hive', { - aliases : [ 'hivemc', 'hmc' ], - category : 'minecraft', - description : { - content : "Get's your hive stats", - usage : '', - examples : [ 'TheCuddlyBear', 'TheDevilsRoses', 'MagixSpellz' ] + super("hive", { + aliases: ["hivemc", "hmc"], + category: "minecraft", + description: { + content: "Get's your hive stats", + usage: "", + examples: ["TheCuddlyBear", "TheDevilsRoses", "MagixSpellz"], }, - args : [ { - id : 'playername', - } ] - }) + args: [ + { + id: "playername", + }, + ], + }); } - exec(message, {playername}) { + exec(message, { playername }) { let player = new hive.Player(playername); - player.info() - .then(info => { - if (playername.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + player + .info() + .then((info) => { + if (playername.endsWith("s")) { + var suffix = "'"; + } else { + var suffix = "'s"; + } - const statEmbed = - new Discord.MessageEmbed() - .setColor('#FF0033') - .setTitle(playername + suffix + " HiveMC stats") - .setThumbnail('https://minotar.net/avatar/' + playername) - .setTimestamp() - .setFooter(`HiveMC Stats • Panda Jr. v${version}`) - .addFields( - { - name : 'Rank', - value : info.rank.humanName, - inline : true - }, - {name : 'Tokens', value : info.tokens, inline : true}, - {name : 'Medals', value : info.medals, inline : true}, - {name : 'Credits', value : info.credits, inline : true}, { - name : 'First login', - value : info.firstLogin, - inline : true - }, - { - name : 'Last login', - value : info.lastLogin, - inline : true - }, - {name : 'Last logout', value : info.lastLogout}) - message.channel.send(statEmbed); - message.delete(); - }) - .catch(e => {console.log(e)}) + const statEmbed = new Discord.MessageEmbed() + .setColor("#FF0033") + .setTitle(playername + suffix + " HiveMC stats") + .setThumbnail("https://minotar.net/avatar/" + playername) + .setTimestamp() + .setFooter(`HiveMC Stats • Panda Jr. v${version}`) + .addFields( + { + name: "Rank", + value: info.rank.humanName, + inline: true, + }, + { name: "Tokens", value: info.tokens, inline: true }, + { name: "Medals", value: info.medals, inline: true }, + { name: "Credits", value: info.credits, inline: true }, + { + name: "First login", + value: info.firstLogin, + inline: true, + }, + { + name: "Last login", + value: info.lastLogin, + inline: true, + }, + { name: "Last logout", value: info.lastLogout } + ); + message.channel.send(statEmbed); + message.delete(); + }) + .catch((e) => { + console.log(e); + }); } } -module.exports = HiveCommand; \ No newline at end of file +module.exports = HiveCommand; diff --git a/commands/hypixel.js b/commands/hypixel.js index a7ed16d..2ac510b 100644 --- a/commands/hypixel.js +++ b/commands/hypixel.js @@ -1,426 +1,428 @@ -const {Command} = require('discord-akairo'); -const discord = require('discord.js'); +const { Command } = require("discord-akairo"); +const discord = require("discord.js"); // Require Hypixel Api wrapper -const {hypixel_api} = require('../config.json'); -const Hypixel = require('hypixel-api-reborn'); +const { hypixel_api } = require("../config.json"); +const Hypixel = require("hypixel-api-reborn"); const hypixel = new Hypixel.Client(hypixel_api); -const {version} = require('../package.json'); +const { version } = require("../package.json"); class HypixelCommand extends Command { constructor() { - super('hypixel', { - aliases : [ 'hypixel', 'hp', 'hyp' ], - category : 'minecraft', - description : { - content : "Get's your hypixel stats from various games.", - usage : ' [game]', - examples : [ - 'TheCuddlyBear', 'TheDevilsRoses bedwars', 'MagixSpellz murdermystery' - ] + super("hypixel", { + aliases: ["hypixel", "hp", "hyp"], + category: "minecraft", + description: { + content: "Get's your hypixel stats from various games.", + usage: " [game]", + examples: [ + "TheCuddlyBear", + "TheDevilsRoses bedwars", + "MagixSpellz murdermystery", + ], }, - args : [ + args: [ { - id : 'playername', + id: "playername", }, - {id : 'stattype', default : 'player'} - ] - }) + { id: "stattype", default: "player" }, + ], + }); } - exec(message, {stattype, playername}) { - if (stattype !== 'player') { // checks which stats user wants + exec(message, { stattype, playername }) { + if (stattype !== "player") { + // checks which stats user wants switch (stattype) { - case 'skywars': - getSkywarsStats(playername, message) - message.delete(); - break; - case 'bedwars': - getBedwarsStats(playername, message) - message.delete(); - break; - case 'murdermystery': - getMurderStats(playername, message) - message.delete(); - break; - case 'buildbattle': - getBuildStats(playername, message) - message.delete(); - break; - case 'skyblock': - message.channel.send( + case "skywars": + getSkywarsStats(playername, message); + message.delete(); + break; + case "bedwars": + getBedwarsStats(playername, message); + message.delete(); + break; + case "murdermystery": + getMurderStats(playername, message); + message.delete(); + break; + case "buildbattle": + getBuildStats(playername, message); + message.delete(); + break; + case "skyblock": + message.channel.send( "You can view your skyblock stats here: https://sky.shiiyu.moe/stats/" + - playername) - message.delete(); - break; - case 'vampirez': - getVampireStats(playername, message) - message.delete(); - break; - case 'guild': - getGuildStats(playername, message) - message.delete(); - break; + playername + ); + message.delete(); + break; + case "vampirez": + getVampireStats(playername, message); + message.delete(); + break; + case "guild": + getGuildStats(playername, message); + message.delete(); + break; } } else { - hypixel.getPlayer(playername) - .then(player => { - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + hypixel + .getPlayer(playername) + .then((player) => { + if (player.nickname.endsWith("s")) { + var suffix = "'"; + } else { + var suffix = "'s"; + } - const statEmbed = - new discord.MessageEmbed() - .setColor('#FF0033') - .setTitle(player.nickname + suffix + " Hypixel stats") - .setThumbnail('https://minotar.net/avatar/' + - player.nickname) - .setTimestamp() - .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields( - {name : 'Rank', value : player.rank, inline : true}, - {name : 'Karma', value : player.karma, inline : true}, - {name : 'Level', value : player.level, inline : true}, { - name : 'First login', - value : player.firstLogin, - inline : true - }, - { - name : 'Last login', - value : player.lastLogin, - inline : true - }, - { - name : 'Last played game', - value : player.recentlyPlayedGame.toString() - }) - message.channel.send(statEmbed); - message.delete(); - }) - .catch(e => {console.log(e)}) + const statEmbed = new discord.MessageEmbed() + .setColor("#FF0033") + .setTitle(player.nickname + suffix + " Hypixel stats") + .setThumbnail("https://minotar.net/avatar/" + player.nickname) + .setTimestamp() + .setFooter(`Hypixel Stats • Panda Jr. v${version}`) + .addFields( + { name: "Rank", value: player.rank, inline: true }, + { name: "Karma", value: player.karma, inline: true }, + { name: "Level", value: player.level, inline: true }, + { + name: "First login", + value: player.firstLogin, + inline: true, + }, + { + name: "Last login", + value: player.lastLogin, + inline: true, + }, + { + name: "Last played game", + value: player.recentlyPlayedGame.toString(), + } + ); + message.channel.send(statEmbed); + message.delete(); + }) + .catch((e) => { + console.log(e); + }); } function getSkywarsStats(player, message) { - hypixel.getPlayer(player) - .then(player => { // requests api for the player object - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + hypixel + .getPlayer(player) + .then((player) => { + // requests api for the player object + if (player.nickname.endsWith("s")) { + var suffix = "'"; + } else { + var suffix = "'s"; + } - const statEmbed = - new discord - .MessageEmbed() // creates embed message with stats - .setColor('#FF0033') - .setTitle(player.nickname + suffix + " Skywars stats") - .setThumbnail('https://minotar.net/avatar/' + - player.nickname) - .setTimestamp() - .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields( - { - name : 'Coins', - value : player.stats.skywars.coins, - inline : true - }, - { - name : 'Souls', - value : player.stats.skywars.souls, - inline : true - }, - { - name : 'Level', - value : player.stats.skywars.level, - inline : true - }, - { - name : 'Wins', - value : player.stats.skywars.wins, - inline : true - }, - { - name : 'Losses', - value : player.stats.skywars.losses, - inline : true - }, - { - name : 'Kills', - value : player.stats.skywars.kills, - inline : true - }, - { - name : 'K/D ration', - value : player.stats.skywars.KDRatio, - inline : true - }, - ) - message.channel.send(statEmbed); - }) - .catch(e => {console.log(e)}) + const statEmbed = new discord.MessageEmbed() // creates embed message with stats + .setColor("#FF0033") + .setTitle(player.nickname + suffix + " Skywars stats") + .setThumbnail("https://minotar.net/avatar/" + player.nickname) + .setTimestamp() + .setFooter(`Hypixel Stats • Panda Jr. v${version}`) + .addFields( + { + name: "Coins", + value: player.stats.skywars.coins, + inline: true, + }, + { + name: "Souls", + value: player.stats.skywars.souls, + inline: true, + }, + { + name: "Level", + value: player.stats.skywars.level, + inline: true, + }, + { + name: "Wins", + value: player.stats.skywars.wins, + inline: true, + }, + { + name: "Losses", + value: player.stats.skywars.losses, + inline: true, + }, + { + name: "Kills", + value: player.stats.skywars.kills, + inline: true, + }, + { + name: "K/D ration", + value: player.stats.skywars.KDRatio, + inline: true, + } + ); + message.channel.send(statEmbed); + }) + .catch((e) => { + console.log(e); + }); } function getMurderStats(player, message) { - hypixel.getPlayer(player) - .then(player => { - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + hypixel + .getPlayer(player) + .then((player) => { + if (player.nickname.endsWith("s")) { + var suffix = "'"; + } else { + var suffix = "'s"; + } - const statEmbed = - new discord.MessageEmbed() - .setColor('#FF0033') - .setTitle(player.nickname + suffix + - " Murder Mystery stats") - .setThumbnail('https://minotar.net/avatar/' + - player.nickname) - .setTimestamp() - .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields( - { - name : 'Coins', - value : player.stats.murdermystery.coins, - inline : true - }, - { - name : 'Murderer Wins', - value : player.stats.murdermystery.winsAsMurderer, - inline : true - }, - { - name : 'Detective Wins', - value : player.stats.murdermystery.winsAsDetective, - inline : true - }, - { - name : 'Wins', - value : player.stats.murdermystery.wins, - inline : true - }, - { - name : 'Kills', - value : player.stats.murdermystery.kills, - inline : true - }, - { - name : 'Deaths', - value : player.stats.murdermystery.deaths, - inline : true - }, - { - name : 'K/D ratio', - value : player.stats.murdermystery.KDRatio, - inline : true - }, - ) - message.channel.send(statEmbed); - }) - .catch(e => {console.log(e)}) + const statEmbed = new discord.MessageEmbed() + .setColor("#FF0033") + .setTitle(player.nickname + suffix + " Murder Mystery stats") + .setThumbnail("https://minotar.net/avatar/" + player.nickname) + .setTimestamp() + .setFooter(`Hypixel Stats • Panda Jr. v${version}`) + .addFields( + { + name: "Coins", + value: player.stats.murdermystery.coins, + inline: true, + }, + { + name: "Murderer Wins", + value: player.stats.murdermystery.winsAsMurderer, + inline: true, + }, + { + name: "Detective Wins", + value: player.stats.murdermystery.winsAsDetective, + inline: true, + }, + { + name: "Wins", + value: player.stats.murdermystery.wins, + inline: true, + }, + { + name: "Kills", + value: player.stats.murdermystery.kills, + inline: true, + }, + { + name: "Deaths", + value: player.stats.murdermystery.deaths, + inline: true, + }, + { + name: "K/D ratio", + value: player.stats.murdermystery.KDRatio, + inline: true, + } + ); + message.channel.send(statEmbed); + }) + .catch((e) => { + console.log(e); + }); } function getBedwarsStats(player, message) { - hypixel.getPlayer(player) - .then(player => { - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + hypixel + .getPlayer(player) + .then((player) => { + if (player.nickname.endsWith("s")) { + var suffix = "'"; + } else { + var suffix = "'s"; + } - const statEmbed = - new discord.MessageEmbed() - .setColor('#FF0033') - .setTitle(player.nickname + suffix + " Bedwars stats") - .setThumbnail('https://minotar.net/avatar/' + - player.nickname) - .setTimestamp() - .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields( - { - name : 'Coins', - value : player.stats.bedwars.coins, - inline : true - }, - { - name : 'Level', - value : player.stats.bedwars.level, - inline : true - }, - { - name : 'Wins', - value : player.stats.bedwars.wins, - inline : true - }, - { - name : 'Losses', - value : player.stats.bedwars.losses, - inline : true - }, - { - name : 'Deaths', - value : player.stats.bedwars.deaths, - inline : true - }, - { - name : 'Final Deaths', - value : player.stats.bedwars.finalDeaths, - inline : true - }, - { - name : 'Kills', - value : player.stats.bedwars.kills, - inline : true - }, - { - name : 'K/D ration', - value : player.stats.skywars.KDRatio, - inline : true - }, - ) - message.channel.send(statEmbed); - }) - .catch(e => {console.log(e)}) + const statEmbed = new discord.MessageEmbed() + .setColor("#FF0033") + .setTitle(player.nickname + suffix + " Bedwars stats") + .setThumbnail("https://minotar.net/avatar/" + player.nickname) + .setTimestamp() + .setFooter(`Hypixel Stats • Panda Jr. v${version}`) + .addFields( + { + name: "Coins", + value: player.stats.bedwars.coins, + inline: true, + }, + { + name: "Level", + value: player.stats.bedwars.level, + inline: true, + }, + { + name: "Wins", + value: player.stats.bedwars.wins, + inline: true, + }, + { + name: "Losses", + value: player.stats.bedwars.losses, + inline: true, + }, + { + name: "Deaths", + value: player.stats.bedwars.deaths, + inline: true, + }, + { + name: "Final Deaths", + value: player.stats.bedwars.finalDeaths, + inline: true, + }, + { + name: "Kills", + value: player.stats.bedwars.kills, + inline: true, + }, + { + name: "K/D ration", + value: player.stats.skywars.KDRatio, + inline: true, + } + ); + message.channel.send(statEmbed); + }) + .catch((e) => { + console.log(e); + }); } function getBuildStats(player, message) { - hypixel.getPlayer(player) - .then(player => { - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + hypixel + .getPlayer(player) + .then((player) => { + if (player.nickname.endsWith("s")) { + var suffix = "'"; + } else { + var suffix = "'s"; + } - const statEmbed = - new discord.MessageEmbed() - .setColor('#FF0033') - .setTitle(player.nickname + suffix + " Build Battle stats") - .setThumbnail('https://minotar.net/avatar/' + - player.nickname) - .setTimestamp() - .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields( - { - name : 'Score', - value : player.stats.buildbattle.score, - inline : true - }, - { - name : 'Played Games', - value : player.stats.buildbattle.playedGames, - inline : true - }, - { - name : 'Coins', - value : player.stats.buildbattle.coins, - inline : true - }, - { - name : 'Total wins', - value : player.stats.buildbattle.totalWins, - inline : true - }, - { - name : 'Solo wins', - value : player.stats.buildbattle.wins.solo, - inline : true - }, - { - name : 'Team wins', - value : player.stats.buildbattle.wins.team, - inline : true - }, - { - name : 'Pro wins', - value : player.stats.buildbattle.wins.pro, - inline : true - }, - { - name : 'GTB Wins', - value : player.stats.buildbattle.wins.gtb, - inline : true - }, - ) - message.channel.send(statEmbed); - }) - .catch(e => {console.log(e)}) + const statEmbed = new discord.MessageEmbed() + .setColor("#FF0033") + .setTitle(player.nickname + suffix + " Build Battle stats") + .setThumbnail("https://minotar.net/avatar/" + player.nickname) + .setTimestamp() + .setFooter(`Hypixel Stats • Panda Jr. v${version}`) + .addFields( + { + name: "Score", + value: player.stats.buildbattle.score, + inline: true, + }, + { + name: "Played Games", + value: player.stats.buildbattle.playedGames, + inline: true, + }, + { + name: "Coins", + value: player.stats.buildbattle.coins, + inline: true, + }, + { + name: "Total wins", + value: player.stats.buildbattle.totalWins, + inline: true, + }, + { + name: "Solo wins", + value: player.stats.buildbattle.wins.solo, + inline: true, + }, + { + name: "Team wins", + value: player.stats.buildbattle.wins.team, + inline: true, + }, + { + name: "Pro wins", + value: player.stats.buildbattle.wins.pro, + inline: true, + }, + { + name: "GTB Wins", + value: player.stats.buildbattle.wins.gtb, + inline: true, + } + ); + message.channel.send(statEmbed); + }) + .catch((e) => { + console.log(e); + }); } function getVampireStats(player, message) { - hypixel.getPlayer(player) - .then(player => { - if (player.nickname.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + hypixel + .getPlayer(player) + .then((player) => { + if (player.nickname.endsWith("s")) { + var suffix = "'"; + } else { + var suffix = "'s"; + } - const statEmbed = - new discord.MessageEmbed() - .setColor('#FF0033') - .setTitle(player.nickname + suffix + " VampireZ stats") - .setThumbnail('https://minotar.net/avatar/' + - player.nickname) - .setTimestamp() - .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields( - { - name : 'Human', - value : `Kills: ${ - player.stats.vampirez.human.kills} \n Deaths: ${ - player.stats.vampirez.human - .deaths} \n K/D Ratio: ${ - player.stats.vampirez.human.KDRatio} \n Wins: ${ - player.stats.vampirez.human.wins}`, - inline : true - }, - { - name : 'Vampire', - value : `Kills: ${ - player.stats.vampirez.vampire.kills} \n Deaths: ${ - player.stats.vampirez.vampire - .deaths} \n K/D Ratio: ${ - player.stats.vampirez.vampire.KDRatio}`, - inline : true - }, - { - name : 'Zombie', - value : - `Kills: ${player.stats.vampirez.vampire.kills}`, - inline : true - }, - ) - message.channel.send(statEmbed); - }) - .catch(e => {console.log(e)}) + const statEmbed = new discord.MessageEmbed() + .setColor("#FF0033") + .setTitle(player.nickname + suffix + " VampireZ stats") + .setThumbnail("https://minotar.net/avatar/" + player.nickname) + .setTimestamp() + .setFooter(`Hypixel Stats • Panda Jr. v${version}`) + .addFields( + { + name: "Human", + value: `Kills: ${player.stats.vampirez.human.kills} \n Deaths: ${player.stats.vampirez.human.deaths} \n K/D Ratio: ${player.stats.vampirez.human.KDRatio} \n Wins: ${player.stats.vampirez.human.wins}`, + inline: true, + }, + { + name: "Vampire", + value: `Kills: ${player.stats.vampirez.vampire.kills} \n Deaths: ${player.stats.vampirez.vampire.deaths} \n K/D Ratio: ${player.stats.vampirez.vampire.KDRatio}`, + inline: true, + }, + { + name: "Zombie", + value: `Kills: ${player.stats.vampirez.vampire.kills}`, + inline: true, + } + ); + message.channel.send(statEmbed); + }) + .catch((e) => { + console.log(e); + }); } function getGuildStats(guildArg, message) { - hypixel.getGuild('name', guildArg) - .then(guild => { - if (guild.name.endsWith('s')) { - var suffix = "'" - } else { - var suffix = "'s" - } + hypixel + .getGuild("name", guildArg) + .then((guild) => { + if (guild.name.endsWith("s")) { + var suffix = "'"; + } else { + var suffix = "'s"; + } - const statEmbed = - new discord.MessageEmbed() - .setColor('#FF0033') - .setTitle(guild.name + suffix + " stats") - .setTimestamp() - .setFooter(`Hypixel Stats • Panda Jr. v${version}`) - .addFields( - {name : 'Level', value : guild.level, inline : true}) - message.channel.send(statEmbed); - }) - .catch(e => {console.log(e)}) + const statEmbed = new discord.MessageEmbed() + .setColor("#FF0033") + .setTitle(guild.name + suffix + " stats") + .setTimestamp() + .setFooter(`Hypixel Stats • Panda Jr. v${version}`) + .addFields({ name: "Level", value: guild.level, inline: true }); + message.channel.send(statEmbed); + }) + .catch((e) => { + console.log(e); + }); } } } -module.exports = HypixelCommand; \ No newline at end of file +module.exports = HypixelCommand; diff --git a/commands/minecraftstatus.js b/commands/minecraftstatus.js index 5e6e973..fb62cca 100644 --- a/commands/minecraftstatus.js +++ b/commands/minecraftstatus.js @@ -1,44 +1,43 @@ -const minecraftUtil = require('minecraft-server-util'); -const Discord = require('discord.js'); -const {Command} = require('discord-akairo') -const {version} = require('../package.json'); +const minecraftUtil = require("minecraft-server-util"); +const Discord = require("discord.js"); +const { Command } = require("discord-akairo"); +const { version } = require("../package.json"); class MinecraftStatusCommand extends Command { constructor() { - super('minecraftstatus', { - aliases : [ 'mcstatus', 'mc' ], - category : 'minecraft', - description : { - content : 'Displays the server status of the Roses Minecraft Server', - } + super("minecraftstatus", { + aliases: ["mcstatus", "mc"], + category: "minecraft", + description: { + content: "Displays the server status of the Roses Minecraft Server", + }, }); } async exec(message) { minecraftUtil - .status('play.takato.eu', {port : 25565}) // Get status - .then((response) => { - const statusEmbed = - new Discord - .MessageEmbed() // Create embed with status - .setColor('#FF0033') - .setTitle('Roses Minecraft Status') - .setFooter(`Panda Jr. v${version}`) - .setThumbnail( - 'https://minecraft-mp.com/images/favicon/277055.png') - .addFields( - {name : 'Server IP', value : 'play.takato.eu'}, - {name : 'Server Version', value : response.version}, - {name : 'Online players', value : response.onlinePlayers}, - {name : 'Max player', value : response.maxPlayers}) - .setTimestamp(); - message.channel.send(statusEmbed); // send message - message.delete(); - }) - .catch((error) => { // catch errors - throw error; - }) + .status("play.takato.eu", { port: 25565 }) // Get status + .then((response) => { + const statusEmbed = new Discord.MessageEmbed() // Create embed with status + .setColor("#FF0033") + .setTitle("Roses Minecraft Status") + .setFooter(`Panda Jr. v${version}`) + .setThumbnail("https://minecraft-mp.com/images/favicon/277055.png") + .addFields( + { name: "Server IP", value: "play.takato.eu" }, + { name: "Server Version", value: response.version }, + { name: "Online players", value: response.onlinePlayers }, + { name: "Max player", value: response.maxPlayers } + ) + .setTimestamp(); + message.channel.send(statusEmbed); // send message + message.delete(); + }) + .catch((error) => { + // catch errors + throw error; + }); } } -module.exports = MinecraftStatusCommand; \ No newline at end of file +module.exports = MinecraftStatusCommand; diff --git a/commands/ping.js b/commands/ping.js index 08aac9b..6eaa962 100644 --- a/commands/ping.js +++ b/commands/ping.js @@ -1,16 +1,20 @@ -const {Command} = require('discord-akairo'); +const { Command } = require("discord-akairo"); class PingCommand extends Command { constructor() { - super('ping', - {aliases : [ 'ping' ], category : "general", description : "Pong"}) + super("ping", { + aliases: ["ping"], + category: "general", + description: "Pong", + }); } exec(message) { message.delete(); - return message.channel.send("Pong!").then( - msg => { msg.delete({timeout : 10000}); }) + return message.channel.send("Pong!").then((msg) => { + msg.delete({ timeout: 10000 }); + }); } } -module.exports = PingCommand; \ No newline at end of file +module.exports = PingCommand; diff --git a/commands/play.js b/commands/play.js index 9c6c8f6..82d5983 100644 --- a/commands/play.js +++ b/commands/play.js @@ -1,26 +1,28 @@ -const {Command} = require('discord-akairo'); +const { Command } = require("discord-akairo"); // Youtube -const {youtube_api} = require('../config.json') -const YoutubeAPI = require('discord-youtube-api'); +const { youtube_api } = require("../config.json"); +const YoutubeAPI = require("discord-youtube-api"); const searcher = new YoutubeAPI(youtube_api); -const ytdl = require('ytdl-core'); +const ytdl = require("ytdl-core"); class PlayCommand extends Command { constructor() { - super('play', { - aliases : [ 'play', 'p' ], - category : "music", - description : { - content : "Plays the song you've given", - usage : '[song]', - examples : [ 'Blank space', 'Murder song' ] + super("play", { + aliases: ["play", "p"], + category: "music", + description: { + content: "Plays the song you've given", + usage: "[song]", + examples: ["Blank space", "Murder song"], }, - args : [ { - id : 'song', - match : 'text', - } ] - }) + args: [ + { + id: "song", + match: "text", + }, + ], + }); } async exec(message, args) { @@ -32,27 +34,31 @@ class PlayCommand extends Command { if (!vc) { message.delete(); return message.channel - .send( - "You have to join a voice channel before you can use this command!") - .then(msg => { msg.delete({timeout : 10000}); }) + .send( + "You have to join a voice channel before you can use this command!" + ) + .then((msg) => { + msg.delete({ timeout: 10000 }); + }); } else { const songSearch = await searcher.searchVideos(args.song); if (!serverQueue) { const queueConstructor = { // constructor for the server queue - textChannel : message.channel, - voiceChannel : vc, - connection : null, - songs : [], - volume : 0.1, - playing : true + textChannel: message.channel, + voiceChannel: vc, + connection: null, + songs: [], + volume: 0.1, + playing: true, }; client.queue.set(message.guild.id, queueConstructor); queueConstructor.songs.push(songSearch); - try { // try to join voice channel of user + try { + // try to join voice channel of user let connection = await vc.join(); queueConstructor.connection = connection; play(message.guild, queueConstructor.songs[0]); @@ -61,45 +67,51 @@ class PlayCommand extends Command { console.error(err); client.queue.delete(message.guild.id); return message.channel.send( - `I wasn't able to join the voice chat ${err}`) + `I wasn't able to join the voice chat ${err}` + ); } } else { serverQueue.songs.push(songSearch); message.delete(); return message.channel - .send("I've added the song to the queue ```" + - ` ${songSearch.title}` + - "```") - .then(msg => {msg.delete({timeout : 10000})}) + .send( + "I've added the song to the queue ```" + + ` ${songSearch.title}` + + "```" + ) + .then((msg) => { + msg.delete({ timeout: 10000 }); + }); } } function play(guild, song) { const serverQueue = client.queue.get(guild.id); - if (!song) { // If there are no songs left, leave voice channel + if (!song) { + // If there are no songs left, leave voice channel serverQueue.voiceChannel.leave(); client.queue.delete(guild.id); return; } - console.log(`Now playing: ${ - song.title}`); // Announce what song is now playing to console - const dispatcher = - serverQueue.connection - .play(ytdl(song.url), {volume : serverQueue.volume}) - .on('finish', () => { - serverQueue.songs.shift(); - play(guild, serverQueue.songs[0]); - }) + console.log(`Now playing: ${song.title}`); // Announce what song is now playing to console + const dispatcher = serverQueue.connection + .play(ytdl(song.url), { volume: serverQueue.volume }) + .on("finish", () => { + serverQueue.songs.shift(); + play(guild, serverQueue.songs[0]); + }); serverQueue.textChannel - .send("I'm now playing: ```" + - `${serverQueue.songs[0].title} || Duration: ${ - serverQueue.songs[0].duration.minutes}:${ - serverQueue.songs[0].duration.seconds}` + - "```") - .then(msg => {// announce to user what song is playing. - msg.delete({timeout : 10000})}) + .send( + "I'm now playing: ```" + + `${serverQueue.songs[0].title} || Duration: ${serverQueue.songs[0].duration.minutes}:${serverQueue.songs[0].duration.seconds}` + + "```" + ) + .then((msg) => { + // announce to user what song is playing. + msg.delete({ timeout: 10000 }); + }); } } } -module.exports = PlayCommand; \ No newline at end of file +module.exports = PlayCommand; diff --git a/commands/purge.js b/commands/purge.js index 881d6a9..df4ffb4 100644 --- a/commands/purge.js +++ b/commands/purge.js @@ -1,38 +1,42 @@ -const {Command} = require('discord-akairo'); +const { Command } = require("discord-akairo"); class PurgeCommand extends Command { constructor() { - super('purge', { - aliases : [ 'purge' ], - category : 'utility', - clientPermissions : [ 'MANAGE_MESSAGES' ], - description : { - content : 'Purges the given amount of messages', - usage : '', - examples : [ '1', '10', '37' ] + super("purge", { + aliases: ["purge"], + category: "utility", + clientPermissions: ["MANAGE_MESSAGES"], + description: { + content: "Purges the given amount of messages", + usage: "", + examples: ["1", "10", "37"], }, - args : [ {id : 'purgeArg', type : 'integer'} ] - }) + args: [{ id: "purgeArg", type: "integer" }], + }); } - exec(message, {purgeArg}) { + exec(message, { purgeArg }) { const amount = parseInt(purgeArg) + 1; if (isNaN(amount)) { - return message.reply('That isn\'t a valid number.') - .then(msg => { msg.delete({timeout : 10000}); }); - + return message.reply("That isn't a valid number.").then((msg) => { + msg.delete({ timeout: 10000 }); + }); } else if (amount <= 1 || amount > 100) { - return message.reply('The number needs to be between 1 and 99!') - .then(msg => { msg.delete({timeout : 10000}); }); + return message + .reply("The number needs to be between 1 and 99!") + .then((msg) => { + msg.delete({ timeout: 10000 }); + }); } - message.channel.bulkDelete(amount, true).catch(err => { + message.channel.bulkDelete(amount, true).catch((err) => { console.error(err); message.channel.send( - 'An error occured whilst trying to purge the messages in this channel.'); - }) + "An error occured whilst trying to purge the messages in this channel." + ); + }); } } -module.exports = PurgeCommand; \ No newline at end of file +module.exports = PurgeCommand; diff --git a/commands/queue.js b/commands/queue.js index aad009a..f2c03bd 100644 --- a/commands/queue.js +++ b/commands/queue.js @@ -1,26 +1,29 @@ -const {Command} = require('discord-akairo'); +const { Command } = require("discord-akairo"); class QueueCommand extends Command { constructor() { - super('queue', { - aliases : [ 'queue', 'q' ], - category : 'music', - description : {content : "Returns the current queue"} - }) + super("queue", { + aliases: ["queue", "q"], + category: "music", + description: { content: "Returns the current queue" }, + }); } exec(message) { const serverQueue = this.client.queue.get(message.guild.id); - const client = this.client - let messageA = "Current queue: \n ```" + const client = this.client; + let messageA = "Current queue: \n ```"; - serverQueue.songs.forEach( - song => {messageA = messageA + `${song.title + "\n"}`}) + serverQueue.songs.forEach((song) => { + messageA = messageA + `${song.title + "\n"}`; + }); messageA = messageA + "```"; - message.channel.send(messageA).then(msg => {msg.delete({timeout : 10000})}) + message.channel.send(messageA).then((msg) => { + msg.delete({ timeout: 10000 }); + }); } } -module.exports = QueueCommand; \ No newline at end of file +module.exports = QueueCommand; diff --git a/commands/removeQueue.js b/commands/removeQueue.js index 4e07ccd..1ca5e16 100644 --- a/commands/removeQueue.js +++ b/commands/removeQueue.js @@ -1,9 +1,13 @@ -const {Command} = require('discord-akairo'); +const { Command } = require("discord-akairo"); class RemoveQueueCommand extends Command { - constructor() { super('rmqueue', {aliases : [ 'rmqueue' ]}) } + constructor() { + super("rmqueue", { aliases: ["rmqueue"] }); + } - exec(message) { this.client.queue.delete(message.guild.id) } + exec(message) { + this.client.queue.delete(message.guild.id); + } } -module.exports = RemoveQueueCommand; \ No newline at end of file +module.exports = RemoveQueueCommand; diff --git a/commands/skip.js b/commands/skip.js index 72c69ab..55de773 100644 --- a/commands/skip.js +++ b/commands/skip.js @@ -1,25 +1,30 @@ -const {Command} = require('discord-akairo'); +const { Command } = require("discord-akairo"); class SkipCommand extends Command { constructor() { - super('skip', { - aliases : [ 'skip' ], - category : "music", - description : "Skips the currently playing song." - }) + super("skip", { + aliases: ["skip"], + category: "music", + description: "Skips the currently playing song.", + }); } exec(message) { const serverQueue = this.client.queue.get(message.guild.id); - if (!message.member.voice.channel) // check if user is in voice channel - return message.channel.send("You need to join the voice chat first") - .then(msg => {msg.delete({timeout : 10000})}) - if (!serverQueue) - return message.channel.send("There is nothing to skip!") - .then(msg => {msg.delete({timeout : 10000})}) - serverQueue.connection.dispatcher.end(); + if (!message.member.voice.channel) + // check if user is in voice channel + return message.channel + .send("You need to join the voice chat first") + .then((msg) => { + msg.delete({ timeout: 10000 }); + }); + if (!serverQueue) + return message.channel.send("There is nothing to skip!").then((msg) => { + msg.delete({ timeout: 10000 }); + }); + serverQueue.connection.dispatcher.end(); } } -module.exports = SkipCommand; \ No newline at end of file +module.exports = SkipCommand; diff --git a/commands/stop.js b/commands/stop.js index a33fe14..b871354 100644 --- a/commands/stop.js +++ b/commands/stop.js @@ -1,28 +1,37 @@ -const {Command} = require("discord-akairo"); +const { Command } = require("discord-akairo"); class StopCommand extends Command { constructor() { - super('stop', { - aliases : [ 'stop' ], - category : "music", - description : "Stops playing music and deletes the current queue" - }) + super("stop", { + aliases: ["stop"], + category: "music", + description: "Stops playing music and deletes the current queue", + }); } exec(message) { - const serverQueue = this.client.queue.get(message.guild.id) + const serverQueue = this.client.queue.get(message.guild.id); if (!message.member.voice.channel) - return message.channel.send("You need to join the voice channel first!") - .then(msg => {msg.delete({timeout : 10000})}) + return message.channel + .send("You need to join the voice channel first!") + .then((msg) => { + msg.delete({ timeout: 10000 }); + }); if (!serverQueue) - return message.channel.send("I am not playing anything right now...") - .then(msg => {msg.delete({timeout : 10000})}) - message.channel.send("I will stop playing now, see you next time :wink:") - .then(msg => {msg.delete({timeout : 10000})}) - serverQueue.songs = [] + return message.channel + .send("I am not playing anything right now...") + .then((msg) => { + msg.delete({ timeout: 10000 }); + }); + message.channel + .send("I will stop playing now, see you next time :wink:") + .then((msg) => { + msg.delete({ timeout: 10000 }); + }); + serverQueue.songs = []; serverQueue.connection.dispatcher.end(); } } -module.exports = StopCommand; \ No newline at end of file +module.exports = StopCommand; diff --git a/index.js b/index.js index cc3459e..439b798 100644 --- a/index.js +++ b/index.js @@ -1,25 +1,31 @@ -const {AkairoClient, CommandHandler, InhibitorHandler, ListenerHandler} = - require('discord-akairo'); -const config = require('./config.json'); -const Discord = require('discord.js') +const { + AkairoClient, + CommandHandler, + InhibitorHandler, + ListenerHandler, +} = require("discord-akairo"); +const config = require("./config.json"); +const Discord = require("discord.js"); class PandaClient extends AkairoClient { constructor() { - super({ownerID : '206879635059900417'}); + super({ ownerID: "206879635059900417" }); this.commandHandler = new CommandHandler(this, { - directory : './commands/', - prefix : config.prefix, - commandUtil : true - }) + directory: "./commands/", + prefix: config.prefix, + commandUtil: true, + }); - this.inhibitorHandler = - new InhibitorHandler(this, {directory : './inhibitors/'}) + this.inhibitorHandler = new InhibitorHandler(this, { + directory: "./inhibitors/", + }); - this.listenerHandler = - new ListenerHandler(this, {directory : './listeners/'}) + this.listenerHandler = new ListenerHandler(this, { + directory: "./listeners/", + }); - this.commandHandler.useInhibitorHandler(this.inhibitorHandler); + this.commandHandler.useInhibitorHandler(this.inhibitorHandler); this.commandHandler.useListenerHandler(this.listenerHandler); this.commandHandler.loadAll(); this.listenerHandler.loadAll(); @@ -32,4 +38,4 @@ const client = new PandaClient(); // music queue client.queue = new Discord.Collection(); -client.login(config.token); \ No newline at end of file +client.login(config.token); diff --git a/listeners/error.js b/listeners/error.js index 0b7ba7f..e1c6254 100644 --- a/listeners/error.js +++ b/listeners/error.js @@ -1,9 +1,13 @@ -const {Listener} = require('discord-akairo'); +const { Listener } = require("discord-akairo"); class ErrorListener extends Listener { - constructor() { super('error', {emitter : 'client', event : 'error'}) } + constructor() { + super("error", { emitter: "client", event: "error" }); + } - exec() { console.error; } + exec() { + console.error; + } } -module.exports = ErrorListener; \ No newline at end of file +module.exports = ErrorListener; diff --git a/listeners/ready.js b/listeners/ready.js index 0b7e7f6..9ef8b18 100644 --- a/listeners/ready.js +++ b/listeners/ready.js @@ -1,28 +1,33 @@ -const {Listener} = require('discord-akairo'); -const config = require('../config.json'); +const { Listener } = require("discord-akairo"); +const config = require("../config.json"); class ReadyListener extends Listener { - constructor() { super('ready', {emitter : 'client', event : 'ready'}) } + constructor() { + super("ready", { emitter: "client", event: "ready" }); + } exec() { - console.log(`I have logged in as ${this.client.user.username} (${ - this.client.user.id})`) + console.log( + `I have logged in as ${this.client.user.username} (${this.client.user.id})` + ); if (config.user.updated === true) { this.client.user.setUsername(config.user.name); this.client.user.setAvatar(config.user.avatar); - console.log("I have updated the username and avatar!") + console.log("I have updated the username and avatar!"); } if (config.status.enabled) { if (config.status.type === "STREAMING") { - this.client.user.setActivity( - config.status.text, - {type : config.status.type, url : config.status.url}); + this.client.user.setActivity(config.status.text, { + type: config.status.type, + url: config.status.url, + }); } else { - this.client.user.setActivity(config.status.text, - {type : config.status.type}); + this.client.user.setActivity(config.status.text, { + type: config.status.type, + }); } } } } -module.exports = ReadyListener; \ No newline at end of file +module.exports = ReadyListener;