diff options
| author | 8cy <[email protected]> | 2020-04-29 04:36:14 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-04-29 04:36:14 -0700 |
| commit | 68d32ab1fa9c79e848038ca1c451e7d8f368531b (patch) | |
| tree | 6142669ecc054e8a94bad4723dc6fb5c83f8cee1 /src/commands/minecraft/minecraftserverstatus.ts | |
| parent | The Return, v8.2.0 (diff) | |
| download | dep-core-68d32ab1fa9c79e848038ca1c451e7d8f368531b.tar.xz dep-core-68d32ab1fa9c79e848038ca1c451e7d8f368531b.zip | |
Cerasus, v9.0.0
basically just add an insane amount of things
- all new animal commands
- waifu cmds
- change/ move clientid, invite, uwufy, support, howify, say, pfp
- add ip, security key, vote, datefacts, githubzen, fmk, fml, offsptring, facts, rate, opinion, onion, quantum coin, rolldie, romannumerals, russianrullete, smashorpass, spoiler, sub
- minecraft cmds
- SERVER check cmds
- lewd cmds
- roleplay commands
- fun commands and games
- utils
Diffstat (limited to 'src/commands/minecraft/minecraftserverstatus.ts')
| -rw-r--r-- | src/commands/minecraft/minecraftserverstatus.ts | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/commands/minecraft/minecraftserverstatus.ts b/src/commands/minecraft/minecraftserverstatus.ts new file mode 100644 index 0000000..156a04f --- /dev/null +++ b/src/commands/minecraft/minecraftserverstatus.ts @@ -0,0 +1,74 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed } from 'discord.js'; +import axios from 'axios' +import emoji from 'emoji-random' + +module.exports = class MinecraftServerMinecraft extends Command { + constructor(client) { + super(client, { + name: 'minecraftserverstatus', + aliases: [ + 'mcserverstatus', + 'minecraft-server-status', + 'mcss' + ], + group: 'utility', + memberName: 'minecraftserverstatus', + description: 'Grabs you the server status of a Minecraft server.', + examples: [ + 'uwu!minecraftserverstatus', + 'uwu!mcss' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + throttling: { + usages: 5, + duration: 30 + }, + args: [ + { + key: 'ip', + prompt: 'What is the IP of the server?', + type: 'string' + }, + { + key: 'port', + prompt: 'What is the port of the server?', + type: 'integer', + default: '25565', + max: 65535, + min: 1 + } + ] + }); + } + async run(msg: CommandoMessage, { ip, port }) { + const res = ( + await axios(`https://mcapi.us/server/status?ip=${ip}&port=${port}`).catch(err => { + console.error(err) + return msg.reply('Woops, an error has occured. ' + emoji.random()) + }) + ).data + + if (res.status !== 'success') { + return msg.reply('Woops, there was an error with your request. ' + emoji.random()) + } + + let emb = new MessageEmbed() + .setTitle(ip) + .setTimestamp(res.last_updated) + .setColor(0xFFCC4D) + + if (res.online) { + emb.addField('Server Status', 'Currentaly online.', true) + emb.addField('Version', res.server.name, true) + emb.addField('Members', `${res.players.now}/${res.players.max}`, true) + emb.addField('MOTD', `\`\`\`${res.motd}\`\`\``, true) + } else if (res.last_online) { + emb.addField('Server Status', `Offline. Last seen ${new Date(res.last_online)}`, true) + } else { + emb.addField('Server Status', 'Offline. Never seen online before.', true) + } + return msg.reply(emb) + } +};
\ No newline at end of file |