-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
75 lines (51 loc) · 2.04 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/** Inicia o dotenv */
require('dotenv').config()
/** Cheque se a versão do node.js é a 8.0.0 ou acima */
if (process.version.slice(1).split('.')[0] < 8) throw new Error('Node 8.0.0 or higher is required. Update Node on your system.')
/** Carrega o discord.js */
const Discord = require('discord.js')
/** Carrega outros modulos uteis */
const { promisify } = require('util')
const readdir = promisify(require('fs').readdir)
const Enmap = require('enmap')
const bot = new Discord.Client()
/** Instancia o Client do Discord. */
const client = new Discord.Client()
/** Instancia de uma nova collection de comandos. */
client.commands = new Enmap()
// Guarda o timestamp do inicio para medir o uptime
client.startTime = Date.now()
const init = async () => {
/** Carregamos os commandos como uma collection. */
const cmdFiles = await readdir('./commands/')
console.log('log', `Carregando o total de ${cmdFiles.length} comandos.`)
/** Para cada comando então é registrado na memoria,
* e monstrado ao console que o comando foi carregado com sucesso. */
cmdFiles.forEach(f => {
try {
const props = require(`./commands/${f}`)
if (f.split('.').slice(-1)[0] !== 'js') return
console.log('log', `Carregando comando: ${props.help.name}`)
if (props.init) {
props.init(client)
}
client.commands.set(props.help.name, props)
} catch (e) {
console.log(`Impossivel executar comando ${f}: ${e}`)
}
})
/** Então carregamos o evento quase do mesmo modo que o processo dos comandos. */
const evtFiles = await readdir('./events/')
console.log('log', `Carregando o total de ${evtFiles.length} eventos`)
evtFiles.forEach(f => {
const eventName = f.split('.')[0]
const event = require(`./events/${f}`)
client.on(eventName, event.bind(null, client))
})
client.on('error', (err) => {
console.log('error', err)
})
/** Então finalmente iniciamos o Bot. */
client.login(process.env.AUTH_TOKEN)
}
init()