diff --git a/gateway/src/opcodes/Identify.ts b/gateway/src/opcodes/Identify.ts
index 3984be73..f1d96959 100644
--- a/gateway/src/opcodes/Identify.ts
+++ b/gateway/src/opcodes/Identify.ts
@@ -80,11 +80,12 @@ export async function onIdentify(this: WebSocket, data: Payload) {
user_id: this.user_id,
session_id: session_id,
status: "online", //does the session always start as online?
- client_info: { //TODO read from identity
+ client_info: {
+ //TODO read from identity
client: "desktop",
os: "linux",
- version: 0
- }
+ version: 0,
+ },
});
//We save the session and we delete it when the websocket is closed
diff --git a/gateway/src/opcodes/VoiceStateUpdate.ts b/gateway/src/opcodes/VoiceStateUpdate.ts
index 4719949c..04392b62 100644
--- a/gateway/src/opcodes/VoiceStateUpdate.ts
+++ b/gateway/src/opcodes/VoiceStateUpdate.ts
@@ -11,16 +11,20 @@ export async function onVoiceStateUpdate(this: WebSocket, data: Payload) {
check.call(this, VoiceStateUpdateSchema, data.d);
const body = data.d as VoiceStateUpdateSchema;
- let voiceState
+ let voiceState;
try {
- voiceState = await VoiceState.findOneOrFail({where:{ user_id: this.user_id },relations: ["member", "member.user", "member.roles"]});
- if(voiceState.session_id !== this.session_id && body.channel_id === null) { //Should we also check guild_id === null?
+ voiceState = await VoiceState.findOneOrFail({
+ where: { user_id: this.user_id },
+ relations: ["member", "member.user", "member.roles"],
+ });
+ if (voiceState.session_id !== this.session_id && body.channel_id === null) {
+ //Should we also check guild_id === null?
//changing deaf or mute on a client that's not the one with the same session of the voicestate in the database should be ignored
- return
+ return;
}
//The event send by Discord's client on channel leave has both guild_id and channel_id as null
- if(body.guild_id === null) body.guild_id = voiceState.guild_id;
+ if (body.guild_id === null) body.guild_id = voiceState.guild_id;
voiceState.assign(body);
} catch (error) {
voiceState = new VoiceState({
@@ -28,32 +32,39 @@ export async function onVoiceStateUpdate(this: WebSocket, data: Payload) {
user_id: this.user_id,
deaf: false,
mute: false,
- suppress: false
- })
+ suppress: false,
+ });
}
//If the session changed we generate a new token
- if(voiceState.session_id !== this.session_id)
- voiceState.token = genVoiceToken()
- voiceState.session_id = this.session_id
+ if (voiceState.session_id !== this.session_id) voiceState.token = genVoiceToken();
+ voiceState.session_id = this.session_id;
//TODO the member should only have these properties: hoisted_role, deaf, joined_at, mute, roles, user
//TODO the member.user should only have these properties: avatar, discriminator, id, username
- const {id, ...newObj} = voiceState;
+ const { id, ...newObj } = voiceState;
await Promise.all([
voiceState.save(),
- emitEvent({ event: "VOICE_STATE_UPDATE", data: newObj, guild_id: voiceState.guild_id} as VoiceStateUpdateEvent),
+ emitEvent({
+ event: "VOICE_STATE_UPDATE",
+ data: newObj,
+ guild_id: voiceState.guild_id,
+ } as VoiceStateUpdateEvent),
]);
//If it's null it means that we are leaving the channel and this event is not needed
- if(voiceState.channel_id !== null) {
+ if (voiceState.channel_id !== null) {
const regions = Config.get().regions;
- await emitEvent({ event: "VOICE_SERVER_UPDATE", data: {
+ await emitEvent({
+ event: "VOICE_SERVER_UPDATE",
+ data: {
token: voiceState.token,
guild_id: voiceState.guild_id,
endpoint: regions.available[0].endpoint, //TODO return best endpoint or default
- }, guild_id: voiceState.guild_id } as VoiceServerUpdateEvent)
+ },
+ guild_id: voiceState.guild_id,
+ } as VoiceServerUpdateEvent);
}
-}
\ No newline at end of file
+}
|