mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
add member chunks
This commit is contained in:
@@ -564,6 +564,11 @@ Overwrites the permissions of a role or a user in a channel
|
||||
"attachFiles" : true
|
||||
}
|
||||
|
||||
forceFetchUsers()
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
As of 12/02/2016, the API will now only return the online users in a server if it has more than 250 users. If you want to be aware of ALL users in a server, use this function. As of yet, it doesn't return anything and users are just silently and gradually added to the relevant servers.
|
||||
|
||||
Events
|
||||
------
|
||||
|
||||
|
||||
@@ -675,6 +675,12 @@ var Client = (function (_EventEmitter) {
|
||||
return this.setStatus(null, game, callback);
|
||||
};
|
||||
|
||||
//def forceFetchUsers
|
||||
|
||||
Client.prototype.forceFetchUsers = function forceFetchUsers() {
|
||||
return this.internal.forceFetchUsers();
|
||||
};
|
||||
|
||||
_createClass(Client, [{
|
||||
key: "users",
|
||||
get: function get() {
|
||||
|
||||
@@ -319,6 +319,21 @@ var InternalClient = (function () {
|
||||
});
|
||||
};
|
||||
|
||||
// def forceFetchUsers
|
||||
|
||||
InternalClient.prototype.forceFetchUsers = function forceFetchUsers() {
|
||||
this.sendWS({
|
||||
op: 8,
|
||||
d: {
|
||||
guild_id: this.servers.map(function (srv) {
|
||||
return srv.id;
|
||||
}),
|
||||
query: "",
|
||||
limit: 0
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// def createServer
|
||||
|
||||
InternalClient.prototype.createServer = function createServer(name) {
|
||||
@@ -1717,14 +1732,18 @@ var InternalClient = (function () {
|
||||
var user = self.users.get("id", data.user_id);
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
|
||||
console.log("2 meowwww");
|
||||
if (user && server) {
|
||||
|
||||
console.log("1 meowwww");
|
||||
if (data.channel_id) {
|
||||
// in voice channel
|
||||
console.log("meowwww");
|
||||
var channel = self.channels.get("id", data.channel_id);
|
||||
if (channel && channel.type === "voice") {
|
||||
server.eventVoiceStateUpdate(channel, user, data);
|
||||
} else {
|
||||
console.log("mewarnow");
|
||||
client.emit("warn", "voice state channel not in cache");
|
||||
}
|
||||
} else {
|
||||
@@ -1735,6 +1754,33 @@ var InternalClient = (function () {
|
||||
client.emit("warn", "voice state update but user or server not in cache");
|
||||
}
|
||||
|
||||
break;
|
||||
case _Constants.PacketType.SERVER_MEMBERS_CHUNK:
|
||||
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
|
||||
if (server) {
|
||||
|
||||
for (var _iterator6 = data.members, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
|
||||
var _ref6;
|
||||
|
||||
if (_isArray6) {
|
||||
if (_i6 >= _iterator6.length) break;
|
||||
_ref6 = _iterator6[_i6++];
|
||||
} else {
|
||||
_i6 = _iterator6.next();
|
||||
if (_i6.done) break;
|
||||
_ref6 = _i6.value;
|
||||
}
|
||||
|
||||
var user = _ref6;
|
||||
|
||||
server.members.add(self.users.get("id", user.id) || self.users.add(new _StructuresUser2["default"](user, client)));
|
||||
}
|
||||
} else {
|
||||
client.emit("warn", "chunk update received but server not in cache");
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
client.emit("unknown", packet);
|
||||
|
||||
@@ -126,6 +126,7 @@ var PacketType = {
|
||||
TYPING: "TYPING_START",
|
||||
SERVER_BAN_ADD: "GUILD_BAN_ADD",
|
||||
SERVER_BAN_REMOVE: "GUILD_BAN_REMOVE",
|
||||
VOICE_STATE_UPDATE: "VOICE_STATE_UPDATE"
|
||||
VOICE_STATE_UPDATE: "VOICE_STATE_UPDATE",
|
||||
SERVER_MEMBERS_CHUNK: "GUILD_MEMBERS_CHUNK"
|
||||
};
|
||||
exports.PacketType = PacketType;
|
||||
|
||||
@@ -556,4 +556,9 @@ export default class Client extends EventEmitter {
|
||||
setPlayingGame(game, callback = (/*err, {}*/) => { }) {
|
||||
return this.setStatus(null, game, callback);
|
||||
}
|
||||
|
||||
//def forceFetchUsers
|
||||
forceFetchUsers(){
|
||||
return this.internal.forceFetchUsers();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -249,6 +249,18 @@ export default class InternalClient {
|
||||
});
|
||||
}
|
||||
|
||||
// def forceFetchUsers
|
||||
forceFetchUsers(){
|
||||
this.sendWS({
|
||||
op : 8,
|
||||
d : {
|
||||
guild_id : this.servers.map(srv => srv.id),
|
||||
query : "",
|
||||
limit : 0
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// def createServer
|
||||
createServer(name, region = "london") {
|
||||
name = this.resolver.resolveString(name);
|
||||
@@ -1526,6 +1538,21 @@ export default class InternalClient {
|
||||
client.emit("warn", "voice state update but user or server not in cache");
|
||||
}
|
||||
|
||||
break;
|
||||
case PacketType.SERVER_MEMBERS_CHUNK:
|
||||
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
|
||||
if(server){
|
||||
|
||||
for(var user of data.members){
|
||||
server.members.add(self.users.get("id", user.id) || self.users.add(new User(user, client)));
|
||||
}
|
||||
|
||||
}else{
|
||||
client.emit("warn", "chunk update received but server not in cache");
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
client.emit("unknown", packet);
|
||||
|
||||
@@ -84,5 +84,6 @@ export const PacketType = {
|
||||
TYPING : "TYPING_START",
|
||||
SERVER_BAN_ADD : "GUILD_BAN_ADD",
|
||||
SERVER_BAN_REMOVE: "GUILD_BAN_REMOVE",
|
||||
VOICE_STATE_UPDATE : "VOICE_STATE_UPDATE"
|
||||
VOICE_STATE_UPDATE : "VOICE_STATE_UPDATE",
|
||||
SERVER_MEMBERS_CHUNK : "GUILD_MEMBERS_CHUNK"
|
||||
};
|
||||
|
||||
@@ -79,10 +79,13 @@ client.on("message", msg => {
|
||||
|
||||
console.log("INIT");
|
||||
|
||||
client.forceFetchUsers();
|
||||
|
||||
client.on("debug", msg => console.log("[debug]", msg));
|
||||
client.on("unk", msg => console.log("[unknown]", msg));
|
||||
|
||||
client.login(process.env["ds_email"], process.env["ds_password"]).catch(console.log);
|
||||
|
||||
client.on("presence", (old, news) => console.log(`PRESENCE TEST ${old.username} $$ ${news.username}`))
|
||||
//client.on("presence", (old, news) => console.log(`PRESENCE TEST ${old.username} $$ ${news.username}`))
|
||||
var chan1, chan2;
|
||||
var msg1, msg2;
|
||||
|
||||
Reference in New Issue
Block a user