diff options
Diffstat (limited to 'src/utils/gameDigHelper.ts')
| -rw-r--r-- | src/utils/gameDigHelper.ts | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/utils/gameDigHelper.ts b/src/utils/gameDigHelper.ts new file mode 100644 index 0000000..647777d --- /dev/null +++ b/src/utils/gameDigHelper.ts @@ -0,0 +1,46 @@ +import ms from "ms"; +import { Util, MessageEmbed } from 'discord.js' + +/** +* Quickly create an embed for a GameDig status using values found in all responses +* @name gamedigHelper +* @param {Object} res Result from GameDig +* @returns {MessageEmbed} +*/ +module.exports = res => { + const playerCount = res.players.length + const maxPlayers = res.maxPlayers + + const emb = new MessageEmbed() + .setTitle(res.name) + .setFooter(`Took ${ms(res.ping)} to complete.`) + .addFields([ + { + name: 'Connect', + value: `${res.connect}` + }, + { + name: 'Online Players', + value: `${playerCount}/${maxPlayers} (${Math.round((playerCount / maxPlayers) * 100)}%)` + }, + { + name: 'Map', + value: Util.escapeMarkdown(res.map) + }, + { + name: 'Password Required', + value: res.password ? 'Yes' : 'No' + } + ]) + + const unconfirmedValues = new Map([ + [res.raw.secure, secure => emb.addField('Vac Secured', secure ? 'Yes' : 'No')], + [res.raw.games, game => emb.addField('Game', Util.escapeMarkdown(game))] + ]) + + unconfirmedValues.forEach((val, key) => { + if (typeof key !== 'undefined') val(key) + }) + + return emb +}
\ No newline at end of file |