Skip to content
This repository was archived by the owner on May 16, 2022. It is now read-only.

Commit 3272231

Browse files
committed
Directly connec to the gayeway instead of using Eris
1 parent 7f679ab commit 3272231

File tree

3 files changed

+48
-56
lines changed

3 files changed

+48
-56
lines changed

package-lock.json

Lines changed: 14 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"main": "index.js",
66
"dependencies": {
77
"@switchblade/service-utils": "^1.0.0",
8-
"eris": "^0.13.1",
8+
"detritus-client-socket": "^0.5.0",
99
"influx": "^5.5.1",
1010
"winston": "^3.2.1"
1111
},

src/index.js

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const ServiceUtils = require('@switchblade/service-utils')
22
const winston = require('winston')
33
const Influx = require('influx')
4-
const { Client } = require('eris')
4+
const { Gateway } = require('detritus-client-socket')
55
const logger = winston.createLogger()
66

77
const DATABASE = process.env.INFLUXDB_DATABASE
@@ -46,7 +46,7 @@ const influx = new Influx.InfluxDB({
4646
})
4747

4848
influx.getDatabaseNames().then(names => {
49-
if (!names.includes(DATABASE)) this.influx.createDatabase(DATABASE)
49+
if (!names.includes(DATABASE)) influx.createDatabase(DATABASE)
5050
})
5151

5252
function writeBotMeasurement (measurement, fields, tags) {
@@ -69,42 +69,42 @@ function writeBotEvent (eventName, tags) {
6969
}).catch(error => { logger.error(error, { label: 'InfluxDB' }) })
7070
}
7171

72-
const client = new Client(process.env.DISCORD_TOKEN)
73-
74-
client.on('debug', message => {
75-
logger.debug(message)
72+
const client = new Gateway.Socket(process.env.DISCORD_TOKEN, {
73+
intents: [
74+
1 << 9,
75+
1 << 1
76+
]
7677
})
7778

78-
client.on('messageCreate', message => {
79-
writeBotEvent('messageCreate', {
80-
guild_id: message.channel.guild.id,
81-
channel_id: message.channel.id,
82-
user_id: message.author.id
83-
})
79+
client.on('ready', () => {
80+
logger.info('Connected', { label: 'Discord' })
8481
})
8582

86-
client.on('guildMemberAdd', (guild, member) => {
87-
writeBotEvent('guildMemberAdd', {
88-
guild_id: guild.id,
89-
user_id: member.id
90-
})
91-
writeBotMeasurement('members', {
92-
member_count: guild.memberCount
93-
}, {
94-
guild_id: guild.id
95-
})
83+
client.on('warn', error => {
84+
logger.error(error, { label: 'Discord' })
9685
})
9786

98-
client.on('guildMemberRemove', (guild, member) => {
99-
writeBotEvent('guildMemberRemove', {
100-
guild_id: guild.id,
101-
user_id: member.id
102-
})
103-
writeBotMeasurement('members', {
104-
member_count: guild.memberCount
105-
}, {
106-
guild_id: guild.id
107-
})
87+
client.on('packet', packet => {
88+
logger.debug(`${packet.op}${packet.t ? ` ${packet.t}` : ''}`)
89+
if (packet.op === 0) {
90+
switch (packet.t) {
91+
case 'MESSAGE_CREATE':
92+
writeBotEvent(packet.t, {
93+
guild_id: packet.d.guild_id,
94+
channel_id: packet.d.channel_id,
95+
user_id: packet.d.author.id
96+
})
97+
break
98+
// TODO: Find a way to get the guild's member count
99+
case 'GUILD_MEMBER_ADD':
100+
case 'GUILD_MEMBER_REMOVE':
101+
writeBotEvent(packet.t, {
102+
guild_id: packet.d.guild_id,
103+
user_id: packet.d.user.id
104+
})
105+
break
106+
}
107+
}
108108
})
109109

110-
client.connect()
110+
client.connect('wss://gateway.discord.gg/')

0 commit comments

Comments
 (0)