mirror of
https://github.com/gamedig/node-gamedig.git
synced 2024-11-17 17:25:19 +01:00
93a9095d99
* Add initial prettier and eslint configs * Modify prettierrc * Run eslint on everything * Actually remove prettier * Fix some eslints * Remove label in gs2 * Update CHANGELOG * Update eslintrc to specify es2021
29 lines
1,021 B
JavaScript
29 lines
1,021 B
JavaScript
import Core from './core.js'
|
|
|
|
export default class discord extends Core {
|
|
async run (state) {
|
|
const guildId = this.options.guildId
|
|
if (typeof guildId !== 'string') {
|
|
throw new Error('guildId option must be set when querying discord. Ensure the guildId is a string and not a number.' +
|
|
" (It's too large of a number for javascript to store without losing precision)")
|
|
}
|
|
this.usedTcp = true
|
|
const raw = await this.request({
|
|
url: 'https://discordapp.com/api/guilds/' + guildId + '/widget.json'
|
|
})
|
|
const json = JSON.parse(raw)
|
|
state.name = json.name
|
|
if (json.instant_invite) {
|
|
state.connect = json.instant_invite
|
|
} else {
|
|
state.connect = 'https://discordapp.com/channels/' + guildId
|
|
}
|
|
for (const member of json.members) {
|
|
const { username: name, ...rest } = member
|
|
state.players.push({ name, ...rest })
|
|
}
|
|
delete json.members
|
|
state.maxplayers = 500000
|
|
state.raw = json
|
|
}
|
|
}
|