summaryrefslogtreecommitdiff
path: root/src/commands/minecraft/minecraftserverstatus.ts
diff options
context:
space:
mode:
author8cy <[email protected]>2020-04-29 04:36:14 -0700
committer8cy <[email protected]>2020-04-29 04:36:14 -0700
commit68d32ab1fa9c79e848038ca1c451e7d8f368531b (patch)
tree6142669ecc054e8a94bad4723dc6fb5c83f8cee1 /src/commands/minecraft/minecraftserverstatus.ts
parentThe Return, v8.2.0 (diff)
downloaddep-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.ts74
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