mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 03:23:29 +01:00
voiceStateUpdate stored per-server, some docs
This commit is contained in:
@@ -49,3 +49,8 @@ remove(data)
|
|||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
Removes an object from the cache if it exists.
|
Removes an object from the cache if it exists.
|
||||||
|
|
||||||
|
random()
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Get a random object from the cache.
|
||||||
@@ -26,3 +26,13 @@ isPrivate
|
|||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
|
|
||||||
Indicates whether the channel is PM channel, is `Boolean`.
|
Indicates whether the channel is PM channel, is `Boolean`.
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
Functions
|
||||||
|
---------
|
||||||
|
|
||||||
|
delete()
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Deletes the channel.
|
||||||
@@ -140,7 +140,7 @@ sendFile(channel, attachment, name, `callback`)
|
|||||||
Sends a file to the specified channel.
|
Sends a file to the specified channel.
|
||||||
|
|
||||||
- **channel** - a `Channel Resolvable`_
|
- **channel** - a `Channel Resolvable`_
|
||||||
- **attachment** - A ReadableStream, String or Buffer
|
- **attachment** - A `File Resolvable`_
|
||||||
- **name** - (Optional) `String`, name of the file containing the extension
|
- **name** - (Optional) `String`, name of the file containing the extension
|
||||||
- **callback** - `function` taking the following:
|
- **callback** - `function` taking the following:
|
||||||
- **error** - error if any occurred
|
- **error** - error if any occurred
|
||||||
@@ -520,21 +520,19 @@ addMemberToRole(member, role, `callback`)
|
|||||||
Adds a member of a server to a role in the server
|
Adds a member of a server to a role in the server
|
||||||
|
|
||||||
- **member** - A `User Resolvable`_
|
- **member** - A `User Resolvable`_
|
||||||
- **role** - A Role_
|
- **role** - A `Role Resolvable`_ or an array of `Role Resolvable`_
|
||||||
- **callback** - `function` that takes the following:
|
- **callback** - `function` that takes the following:
|
||||||
- **error** - error if any occurred
|
- **error** - error if any occurred
|
||||||
|
|
||||||
addMemberToRoles(member, roles, `callback`)
|
memberHasRole(member, role)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
**Aliases** : `addUserToRole`
|
**Aliases** : `userHasRole`
|
||||||
|
|
||||||
Adds a member of a server to a role in the server
|
Returns if a user has a role
|
||||||
|
|
||||||
- **member** - A `User Resolvable`_
|
- **member** - A `User Resolvable`_
|
||||||
- **roles** - An array of Role_ objects
|
- **role** - A `Role Resolvable`_ or an array of `Role Resolvable`_
|
||||||
- **callback** - `function` that takes the following:
|
|
||||||
- **error** - error if any occurred
|
|
||||||
|
|
||||||
removeMemberFromRole(member, role, `callback`)
|
removeMemberFromRole(member, role, `callback`)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@@ -544,19 +542,7 @@ removeMemberFromRole(member, role, `callback`)
|
|||||||
Removes a member of a server from a role in the server
|
Removes a member of a server from a role in the server
|
||||||
|
|
||||||
- **member** - A `User Resolvable`_
|
- **member** - A `User Resolvable`_
|
||||||
- **role** - A Role_
|
- **role** - A `Role Resolvable`_ or an array of `Role Resolvable`_
|
||||||
- **callback** - `function` that takes the following:
|
|
||||||
- **error** - error if any occurred
|
|
||||||
|
|
||||||
removeMemberFromRoles(member, roles, `callback`)
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
**Aliases** : `removeUserFromRole`
|
|
||||||
|
|
||||||
Removes a member of a server from a role in the server
|
|
||||||
|
|
||||||
- **member** - A `User Resolvable`_
|
|
||||||
- **role** - A array of Role_ objects
|
|
||||||
- **callback** - `function` that takes the following:
|
- **callback** - `function` that takes the following:
|
||||||
- **error** - error if any occurred
|
- **error** - error if any occurred
|
||||||
|
|
||||||
@@ -716,9 +702,14 @@ Emitted when a user is unbanned from a server. Supplies two parameters, a User_
|
|||||||
voiceJoin
|
voiceJoin
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
|
|
||||||
Emitted when a user joins a voice channel, supplies a User_ and a VoiceChannel_
|
Emitted when a user joins a voice channel, supplies a VoiceChannel_ and a User_
|
||||||
|
|
||||||
voiceLeave
|
voiceLeave
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
|
|
||||||
Emitted when a user leaves a voice channel, supplies a User_ and a VoiceChannel_
|
Emitted when a user leaves a voice channel, supplies a VoiceChannel_ and a User_
|
||||||
|
|
||||||
|
voiceStateUpdate
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
Emitted when a user mutes/deafens, supplies a VoiceChannel_, User_, an object containing the old mute/self_mute/deaf/self_deaf properties, and an object containing the new mute/self_mute/deaf/self_deaf properties
|
||||||
|
|||||||
@@ -69,6 +69,11 @@ content
|
|||||||
|
|
||||||
`String`, content of the message.
|
`String`, content of the message.
|
||||||
|
|
||||||
|
cleanContent
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
`String`, content of the message with valid user mentions (<@123>) replaced with "@username".
|
||||||
|
|
||||||
mentions
|
mentions
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,23 @@ A Channel Resolvable allows:
|
|||||||
- User_ (in some instances)
|
- User_ (in some instances)
|
||||||
- String of Channel ID
|
- String of Channel ID
|
||||||
|
|
||||||
|
File Resolvable
|
||||||
|
------------------
|
||||||
|
|
||||||
|
A File Resolvable allows:
|
||||||
|
|
||||||
|
- URL
|
||||||
|
- Local file path
|
||||||
|
- Readable stream
|
||||||
|
|
||||||
|
Role Resolvable
|
||||||
|
------------------
|
||||||
|
|
||||||
|
A Role Resolvable allows:
|
||||||
|
|
||||||
|
- Role ID
|
||||||
|
- Role_
|
||||||
|
|
||||||
Voice Channel Resolvable
|
Voice Channel Resolvable
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -85,16 +85,21 @@ Functions
|
|||||||
rolesOfUser(user)
|
rolesOfUser(user)
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
**Aliases**: `rolesOf`
|
**Aliases**: `rolesOf`, `rolesOfMember`
|
||||||
|
|
||||||
Returns an array of the roles affecting a user server-wide.
|
Returns an array of the roles affecting a user server-wide.
|
||||||
|
|
||||||
------
|
usersWithRole(user, role)
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
**Aliases**: `membersWithRole`
|
||||||
|
|
||||||
|
Returns an array of users that have the specified role.
|
||||||
|
|
||||||
detailsOfUser(user)
|
detailsOfUser(user)
|
||||||
~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
**Aliases** `detailsOf`
|
**Aliases** `detailsOf`, `detailsOfMember`
|
||||||
|
|
||||||
Returns an object containing metadata of a user within the server, containing a structure similar to the following:
|
Returns an object containing metadata of a user within the server, containing a structure similar to the following:
|
||||||
|
|
||||||
@@ -102,12 +107,13 @@ Returns an object containing metadata of a user within the server, containing a
|
|||||||
|
|
||||||
{
|
{
|
||||||
joinedAt : 1449339323747,
|
joinedAt : 1449339323747,
|
||||||
mute : false,
|
roles: [],
|
||||||
deaf : false
|
mute : false,
|
||||||
|
self_mute : false,
|
||||||
|
deaf : false,
|
||||||
|
self_deaf : false
|
||||||
}
|
}
|
||||||
|
|
||||||
----------
|
|
||||||
|
|
||||||
leave()
|
leave()
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
@@ -115,45 +121,29 @@ leave()
|
|||||||
| **Aliases** `delete`
|
| **Aliases** `delete`
|
||||||
| **See** client.leaveServer_
|
| **See** client.leaveServer_
|
||||||
|
|
||||||
------
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
createInvite(`options`, `callback`)
|
createInvite(`options`, `callback`)
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
| **Shortcut of** ``client.createInvite(server, options, callback)``
|
| **Shortcut of** ``client.createInvite(server, options, callback)``
|
||||||
| **See** client.createInvite_
|
| **See** client.createInvite_
|
||||||
|
|
|
||||||
|
|
||||||
------
|
|
||||||
|
|
||||||
createRole(`data`, `callback`)
|
createRole(`data`, `callback`)
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
| **Shortcut of** ``client.createRole(server, data, callback)``
|
| **Shortcut of** ``client.createRole(server, data, callback)``
|
||||||
| **See** client.createRole_
|
| **See** client.createRole_
|
||||||
|
|
|
||||||
|
|
||||||
------
|
|
||||||
|
|
||||||
createChannel(name, `type`, `callback`)
|
createChannel(name, `type`, `callback`)
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
| **Shortcut of** ``client.createChannel(server, name, type, callback)``
|
| **Shortcut of** ``client.createChannel(server, name, type, callback)``
|
||||||
| **See** client.createChannel_
|
| **See** client.createChannel_
|
||||||
|
|
|
||||||
|
|
||||||
------
|
|
||||||
|
|
||||||
getBans(`callback`)
|
getBans(`callback`)
|
||||||
~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
| **Shortcut of** ``client.getBans(server, callback)``
|
| **Shortcut of** ``client.getBans(server, callback)``
|
||||||
| **See** client.getBans_
|
| **See** client.getBans_
|
||||||
|
|
|
||||||
|
|
||||||
------
|
|
||||||
|
|
||||||
banMember(user, `length`, `callback`)
|
banMember(user, `length`, `callback`)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@@ -161,9 +151,6 @@ banMember(user, `length`, `callback`)
|
|||||||
| **Shortcut of** ``client.banMember(member, server, length, callback)``
|
| **Shortcut of** ``client.banMember(member, server, length, callback)``
|
||||||
| **Aliases** `banUser, ban`
|
| **Aliases** `banUser, ban`
|
||||||
| **See** client.banMember_
|
| **See** client.banMember_
|
||||||
|
|
|
||||||
|
|
||||||
------
|
|
||||||
|
|
||||||
unbanMember(user, `callback`)
|
unbanMember(user, `callback`)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@@ -171,9 +158,6 @@ unbanMember(user, `callback`)
|
|||||||
| **Shortcut of** ``client.unbanMember(member, server, callback)``
|
| **Shortcut of** ``client.unbanMember(member, server, callback)``
|
||||||
| **Aliases** `unbanUser, unban`
|
| **Aliases** `unbanUser, unban`
|
||||||
| **See** client.unbanMember_
|
| **See** client.unbanMember_
|
||||||
|
|
|
||||||
|
|
||||||
------
|
|
||||||
|
|
||||||
kickMember(user, `callback`)
|
kickMember(user, `callback`)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@@ -181,9 +165,6 @@ kickMember(user, `callback`)
|
|||||||
| **Shortcut of** ``client.kickMember(member, server, callback)``
|
| **Shortcut of** ``client.kickMember(member, server, callback)``
|
||||||
| **Aliases** `kickUser, kick`
|
| **Aliases** `kickUser, kick`
|
||||||
| **See** client.kickMember_
|
| **See** client.kickMember_
|
||||||
|
|
|
||||||
|
|
||||||
------
|
|
||||||
|
|
||||||
.. _client.leaveServer : ./docs_client.html#leaveserver-server-callback
|
.. _client.leaveServer : ./docs_client.html#leaveserver-server-callback
|
||||||
.. _client.createInvite : ./docs_client.html#createinvite-channel-options-callback
|
.. _client.createInvite : ./docs_client.html#createinvite-channel-options-callback
|
||||||
|
|||||||
@@ -406,9 +406,7 @@ var Client = (function (_EventEmitter) {
|
|||||||
// def addUserToRole
|
// def addUserToRole
|
||||||
|
|
||||||
Client.prototype.userHasRole = function userHasRole(member, role) {
|
Client.prototype.userHasRole = function userHasRole(member, role) {
|
||||||
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () /*err, {}*/{} : arguments[2];
|
return this.memberHasRole(member, role);
|
||||||
|
|
||||||
return this.memberHasRole(member, role, callback);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// def removeMemberFromRole
|
// def removeMemberFromRole
|
||||||
|
|||||||
@@ -1710,22 +1710,7 @@ var InternalClient = (function () {
|
|||||||
// in voice channel
|
// in voice channel
|
||||||
var channel = self.channels.get("id", data.channel_id);
|
var channel = self.channels.get("id", data.channel_id);
|
||||||
if (channel && channel.type === "voice") {
|
if (channel && channel.type === "voice") {
|
||||||
var oldState = {
|
server.eventVoiceStateUpdate(channel, user, data);
|
||||||
mute: user.voiceState.mute,
|
|
||||||
self_mute: user.voiceState.self_mute,
|
|
||||||
deaf: user.voiceState.deaf,
|
|
||||||
self_deaf: user.voiceState.self_deaf
|
|
||||||
};
|
|
||||||
user.voiceState.mute = data.mute;
|
|
||||||
user.voiceState.self_mute = data.self_mute;
|
|
||||||
user.voiceState.deaf = data.deaf;
|
|
||||||
user.voiceState.self_deaf = data.self_deaf;
|
|
||||||
if ((oldState.mute != user.voiceState.mute || oldState.self_mute != user.voiceState.self_mute || oldState.deaf != user.voiceState.deaf || oldState.self_deaf != user.voiceState.self_deaf) && oldState.mute !== undefined) {
|
|
||||||
client.emit("voiceStateUpdate", channel, user, oldState);
|
|
||||||
} else {
|
|
||||||
server.eventVoiceJoin(user, channel);
|
|
||||||
client.emit("voiceJoin", channel, user);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
client.emit("warn", "voice state channel not in cache");
|
client.emit("warn", "voice state channel not in cache");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,9 @@ var Server = (function (_Equality) {
|
|||||||
return self.roles.get("id", pid);
|
return self.roles.get("id", pid);
|
||||||
}),
|
}),
|
||||||
mute: dataUser.mute,
|
mute: dataUser.mute,
|
||||||
|
self_mute: dataUser.self_mute,
|
||||||
deaf: dataUser.deaf,
|
deaf: dataUser.deaf,
|
||||||
|
self_deaf: dataUser.self_deaf,
|
||||||
joinedAt: Date.parse(dataUser.joined_at)
|
joinedAt: Date.parse(dataUser.joined_at)
|
||||||
};
|
};
|
||||||
var user = client.internal.users.add(new _User2["default"](dataUser.user, client));
|
var user = client.internal.users.add(new _User2["default"](dataUser.user, client));
|
||||||
@@ -174,6 +176,10 @@ var Server = (function (_Equality) {
|
|||||||
return this.detailsOf(user);
|
return this.detailsOf(user);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Server.prototype.detailsOfMember = function detailsOfMember(user) {
|
||||||
|
return this.detailsOf(user);
|
||||||
|
};
|
||||||
|
|
||||||
Server.prototype.details = function details(user) {
|
Server.prototype.details = function details(user) {
|
||||||
return this.detailsOf(user);
|
return this.detailsOf(user);
|
||||||
};
|
};
|
||||||
@@ -207,6 +213,29 @@ var Server = (function (_Equality) {
|
|||||||
user.voiceChannel = channel;
|
user.voiceChannel = channel;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Server.prototype.eventVoiceStateUpdate = function eventVoiceStateUpdate(channel, user, data) {
|
||||||
|
// removes from other speaking channels first
|
||||||
|
if (!this.memberMap[user.id]) {
|
||||||
|
this.memberMap[user.id] = {};
|
||||||
|
}
|
||||||
|
var oldState = {
|
||||||
|
mute: this.memberMap[user.id].mute,
|
||||||
|
self_mute: this.memberMap[user.id].self_mute,
|
||||||
|
deaf: this.memberMap[user.id].deaf,
|
||||||
|
self_deaf: this.memberMap[user.id].self_deaf
|
||||||
|
};
|
||||||
|
this.memberMap[user.id].mute = data.mute;
|
||||||
|
this.memberMap[user.id].self_mute = data.self_mute;
|
||||||
|
this.memberMap[user.id].deaf = data.deaf;
|
||||||
|
this.memberMap[user.id].self_deaf = data.self_deaf;
|
||||||
|
if ((oldState.mute != data.mute || oldState.self_mute != data.self_mute || oldState.deaf != data.deaf || oldState.self_deaf != data.self_deaf) && oldState.mute !== undefined) {
|
||||||
|
this.client.emit("voiceStateUpdate", channel, user, oldState, this.memberMap[user.id]);
|
||||||
|
} else {
|
||||||
|
this.eventVoiceJoin(user, channel);
|
||||||
|
this.client.emit("voiceJoin", channel, user);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
Server.prototype.eventVoiceLeave = function eventVoiceLeave(user) {
|
Server.prototype.eventVoiceLeave = function eventVoiceLeave(user) {
|
||||||
for (var _iterator3 = this.channels.getAll("type", "voice"), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
|
for (var _iterator3 = this.channels.getAll("type", "voice"), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
|
||||||
var _ref3;
|
var _ref3;
|
||||||
|
|||||||
@@ -344,8 +344,8 @@ export default class Client extends EventEmitter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// def addUserToRole
|
// def addUserToRole
|
||||||
userHasRole(member, role, callback = (/*err, {}*/) => { }) {
|
userHasRole(member, role) {
|
||||||
return this.memberHasRole(member, role, callback);
|
return this.memberHasRole(member, role);
|
||||||
}
|
}
|
||||||
|
|
||||||
// def removeMemberFromRole
|
// def removeMemberFromRole
|
||||||
|
|||||||
@@ -1373,7 +1373,9 @@ export default class InternalClient {
|
|||||||
server.memberMap[data.user.id] = {
|
server.memberMap[data.user.id] = {
|
||||||
roles: data.roles.map(pid => server.roles.get("id", pid)),
|
roles: data.roles.map(pid => server.roles.get("id", pid)),
|
||||||
mute: false,
|
mute: false,
|
||||||
|
self_mute: false,
|
||||||
deaf: false,
|
deaf: false,
|
||||||
|
self_deaf: false,
|
||||||
joinedAt: Date.parse(data.joined_at)
|
joinedAt: Date.parse(data.joined_at)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1409,7 +1411,9 @@ export default class InternalClient {
|
|||||||
if (user) {
|
if (user) {
|
||||||
server.memberMap[data.user.id].roles = data.roles.map(pid => server.roles.get("id", pid));
|
server.memberMap[data.user.id].roles = data.roles.map(pid => server.roles.get("id", pid));
|
||||||
server.memberMap[data.user.id].mute = data.mute;
|
server.memberMap[data.user.id].mute = data.mute;
|
||||||
|
server.memberMap[data.user.id].self_mute = data.self_mute;
|
||||||
server.memberMap[data.user.id].deaf = data.deaf;
|
server.memberMap[data.user.id].deaf = data.deaf;
|
||||||
|
server.memberMap[data.user.id].self_deaf = data.self_deaf;
|
||||||
client.emit("serverMemberUpdated", server, user);
|
client.emit("serverMemberUpdated", server, user);
|
||||||
} else {
|
} else {
|
||||||
client.emit("warn", "server member removed but user doesn't exist in cache");
|
client.emit("warn", "server member removed but user doesn't exist in cache");
|
||||||
@@ -1500,24 +1504,7 @@ export default class InternalClient {
|
|||||||
// in voice channel
|
// in voice channel
|
||||||
var channel = self.channels.get("id", data.channel_id);
|
var channel = self.channels.get("id", data.channel_id);
|
||||||
if (channel && channel.type === "voice") {
|
if (channel && channel.type === "voice") {
|
||||||
var oldState = {
|
server.eventVoiceStateUpdate(channel, user, data);
|
||||||
mute: user.voiceState.mute,
|
|
||||||
self_mute: user.voiceState.self_mute,
|
|
||||||
deaf: user.voiceState.deaf,
|
|
||||||
self_deaf: user.voiceState.self_deaf
|
|
||||||
};
|
|
||||||
user.voiceState.mute = data.mute;
|
|
||||||
user.voiceState.self_mute = data.self_mute;
|
|
||||||
user.voiceState.deaf = data.deaf;
|
|
||||||
user.voiceState.self_deaf = data.self_deaf;
|
|
||||||
if ((oldState.mute != user.voiceState.mute || oldState.self_mute != user.voiceState.self_mute
|
|
||||||
|| oldState.deaf != user.voiceState.deaf || oldState.self_deaf != user.voiceState.self_deaf)
|
|
||||||
&& oldState.mute !== undefined) {
|
|
||||||
client.emit("voiceStateUpdate", channel, user, oldState);
|
|
||||||
} else {
|
|
||||||
server.eventVoiceJoin(user, channel);
|
|
||||||
client.emit("voiceJoin", channel, user);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
client.emit("warn", "voice state channel not in cache");
|
client.emit("warn", "voice state channel not in cache");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,9 @@ export default class Server extends Equality {
|
|||||||
this.memberMap[dataUser.user.id] = {
|
this.memberMap[dataUser.user.id] = {
|
||||||
roles: dataUser.roles.map((pid) => self.roles.get("id", pid)),
|
roles: dataUser.roles.map((pid) => self.roles.get("id", pid)),
|
||||||
mute: dataUser.mute,
|
mute: dataUser.mute,
|
||||||
|
self_mute: dataUser.self_mute,
|
||||||
deaf: dataUser.deaf,
|
deaf: dataUser.deaf,
|
||||||
|
self_deaf: dataUser.self_deaf,
|
||||||
joinedAt: Date.parse(dataUser.joined_at)
|
joinedAt: Date.parse(dataUser.joined_at)
|
||||||
};
|
};
|
||||||
var user = client.internal.users.add(new User(dataUser.user, client));
|
var user = client.internal.users.add(new User(dataUser.user, client));
|
||||||
@@ -108,6 +110,10 @@ export default class Server extends Equality {
|
|||||||
return this.detailsOf(user);
|
return this.detailsOf(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
detailsOfMember(user) {
|
||||||
|
return this.detailsOf(user);
|
||||||
|
}
|
||||||
|
|
||||||
details(user) {
|
details(user) {
|
||||||
return this.detailsOf(user);
|
return this.detailsOf(user);
|
||||||
}
|
}
|
||||||
@@ -169,6 +175,31 @@ export default class Server extends Equality {
|
|||||||
user.voiceChannel = channel;
|
user.voiceChannel = channel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
eventVoiceStateUpdate(channel, user, data) {
|
||||||
|
// removes from other speaking channels first
|
||||||
|
if (!this.memberMap[user.id]) {
|
||||||
|
this.memberMap[user.id] = {};
|
||||||
|
}
|
||||||
|
var oldState = {
|
||||||
|
mute: this.memberMap[user.id].mute,
|
||||||
|
self_mute: this.memberMap[user.id].self_mute,
|
||||||
|
deaf: this.memberMap[user.id].deaf,
|
||||||
|
self_deaf: this.memberMap[user.id].self_deaf
|
||||||
|
};
|
||||||
|
this.memberMap[user.id].mute = data.mute;
|
||||||
|
this.memberMap[user.id].self_mute = data.self_mute;
|
||||||
|
this.memberMap[user.id].deaf = data.deaf;
|
||||||
|
this.memberMap[user.id].self_deaf = data.self_deaf;
|
||||||
|
if ((oldState.mute != data.mute || oldState.self_mute != data.self_mute
|
||||||
|
|| oldState.deaf != data.deaf || oldState.self_deaf != data.self_deaf)
|
||||||
|
&& oldState.mute !== undefined) {
|
||||||
|
this.client.emit("voiceStateUpdate", channel, user, oldState, this.memberMap[user.id]);
|
||||||
|
} else {
|
||||||
|
this.eventVoiceJoin(user, channel);
|
||||||
|
this.client.emit("voiceJoin", channel, user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
eventVoiceLeave(user) {
|
eventVoiceLeave(user) {
|
||||||
for (let chan of this.channels.getAll("type", "voice")) {
|
for (let chan of this.channels.getAll("type", "voice")) {
|
||||||
if (chan.members.has(user)) {
|
if (chan.members.has(user)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user