Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for self_stream field on voice state #583

Merged
merged 5 commits into from Dec 1, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions index.d.ts
Expand Up @@ -100,6 +100,7 @@ declare namespace Eris {
deaf: boolean;
selfMute: boolean;
selfDeaf: boolean;
selfStream: boolean;
}

interface OAuthApplicationInfo {
Expand Down Expand Up @@ -1634,6 +1635,7 @@ declare namespace Eris {
suppress: boolean;
selfMute: boolean;
selfDeaf: boolean;
selfStream: boolean;
constructor(data: BaseData);
toJSON(arg?: any, cache?: (string | any)[]): JSONCache;
}
Expand Down
6 changes: 4 additions & 2 deletions lib/gateway/Shard.js
Expand Up @@ -338,7 +338,8 @@ class Shard extends EventEmitter {
mute: member.voiceState.mute,
deaf: member.voiceState.deaf,
selfMute: member.voiceState.selfMute,
selfDeaf: member.voiceState.selfDeaf
selfDeaf: member.voiceState.selfDeaf,
selfStream: member.voiceState.selfStream
};
const oldChannelID = member.voiceState.channelID;
member.update(packet.d, this.client);
Expand Down Expand Up @@ -383,7 +384,7 @@ class Shard extends EventEmitter {
this.emit("voiceChannelLeave", oldChannel.voiceMembers.remove(member), oldChannel);
}
}
if(oldState.mute !== member.mute || oldState.deaf !== member.deaf || oldState.selfMute !== member.selfMute || oldState.selfDeaf !== member.selfDeaf) {
if(oldState.mute !== member.mute || oldState.deaf !== member.deaf || oldState.selfMute !== member.selfMute || oldState.selfDeaf !== member.selfDeaf || oldState.selfStream !== member.selfStream) {
/**
* Fired when a guild member's voice state changes
* @event Client#voiceStateUpdate
Expand All @@ -393,6 +394,7 @@ class Shard extends EventEmitter {
* @prop {Boolean} oldState.deaf The previous server deaf status
* @prop {Boolean} oldState.selfMute The previous self mute status
* @prop {Boolean} oldState.selfDeaf The previous self deaf status
* @prop {Boolean} oldState.selfStream The previous self stream status
*/
this.emit("voiceStateUpdate", member, oldState);
}
Expand Down
3 changes: 3 additions & 0 deletions lib/structures/VoiceState.js
Expand Up @@ -12,6 +12,7 @@ const Base = require("./Base");
* @prop {Boolean} suppress Whether the member is suppressed or not
* @prop {Boolean} selfMute Whether the member is self muted or not
* @prop {Boolean} selfDeaf Whether the member is self deafened or not
* @prop {Boolean} selfStream Whether the member is streaming using "Go Live"
*/
class VoiceState extends Base {
constructor(data) {
Expand All @@ -31,6 +32,7 @@ class VoiceState extends Base {
this.suppress = data.suppress !== undefined ? data.suppress : this.suppress || false; // Bots ignore this
this.selfMute = data.self_mute !== undefined ? data.self_mute : this.selfMute || false;
this.selfDeaf = data.self_deaf !== undefined ? data.self_deaf : this.selfDeaf || false;
this.selfStream = data.self_stream || false;
abalabahaha marked this conversation as resolved.
Show resolved Hide resolved
}

toJSON(props = []) {
Expand All @@ -40,6 +42,7 @@ class VoiceState extends Base {
"mute",
"selfMute",
"selfDeaf",
"selfStream",
"sessionID",
"suppress",
...props
Expand Down