mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-17 20:13:30 +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
|
"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
|
Events
|
||||||
------
|
------
|
||||||
|
|
||||||
|
|||||||
@@ -675,6 +675,12 @@ var Client = (function (_EventEmitter) {
|
|||||||
return this.setStatus(null, game, callback);
|
return this.setStatus(null, game, callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//def forceFetchUsers
|
||||||
|
|
||||||
|
Client.prototype.forceFetchUsers = function forceFetchUsers() {
|
||||||
|
return this.internal.forceFetchUsers();
|
||||||
|
};
|
||||||
|
|
||||||
_createClass(Client, [{
|
_createClass(Client, [{
|
||||||
key: "users",
|
key: "users",
|
||||||
get: function get() {
|
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
|
// def createServer
|
||||||
|
|
||||||
InternalClient.prototype.createServer = function createServer(name) {
|
InternalClient.prototype.createServer = function createServer(name) {
|
||||||
@@ -1717,14 +1732,18 @@ var InternalClient = (function () {
|
|||||||
var user = self.users.get("id", data.user_id);
|
var user = self.users.get("id", data.user_id);
|
||||||
var server = self.servers.get("id", data.guild_id);
|
var server = self.servers.get("id", data.guild_id);
|
||||||
|
|
||||||
|
console.log("2 meowwww");
|
||||||
if (user && server) {
|
if (user && server) {
|
||||||
|
|
||||||
|
console.log("1 meowwww");
|
||||||
if (data.channel_id) {
|
if (data.channel_id) {
|
||||||
// in voice channel
|
// in voice channel
|
||||||
|
console.log("meowwww");
|
||||||
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") {
|
||||||
server.eventVoiceStateUpdate(channel, user, data);
|
server.eventVoiceStateUpdate(channel, user, data);
|
||||||
} else {
|
} else {
|
||||||
|
console.log("mewarnow");
|
||||||
client.emit("warn", "voice state channel not in cache");
|
client.emit("warn", "voice state channel not in cache");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -1735,6 +1754,33 @@ var InternalClient = (function () {
|
|||||||
client.emit("warn", "voice state update but user or server not in cache");
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
client.emit("unknown", packet);
|
client.emit("unknown", packet);
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ var PacketType = {
|
|||||||
TYPING: "TYPING_START",
|
TYPING: "TYPING_START",
|
||||||
SERVER_BAN_ADD: "GUILD_BAN_ADD",
|
SERVER_BAN_ADD: "GUILD_BAN_ADD",
|
||||||
SERVER_BAN_REMOVE: "GUILD_BAN_REMOVE",
|
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;
|
exports.PacketType = PacketType;
|
||||||
|
|||||||
@@ -556,4 +556,9 @@ export default class Client extends EventEmitter {
|
|||||||
setPlayingGame(game, callback = (/*err, {}*/) => { }) {
|
setPlayingGame(game, callback = (/*err, {}*/) => { }) {
|
||||||
return this.setStatus(null, game, callback);
|
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
|
// def createServer
|
||||||
createServer(name, region = "london") {
|
createServer(name, region = "london") {
|
||||||
name = this.resolver.resolveString(name);
|
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");
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
client.emit("unknown", packet);
|
client.emit("unknown", packet);
|
||||||
|
|||||||
@@ -84,5 +84,6 @@ export const PacketType = {
|
|||||||
TYPING : "TYPING_START",
|
TYPING : "TYPING_START",
|
||||||
SERVER_BAN_ADD : "GUILD_BAN_ADD",
|
SERVER_BAN_ADD : "GUILD_BAN_ADD",
|
||||||
SERVER_BAN_REMOVE: "GUILD_BAN_REMOVE",
|
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");
|
console.log("INIT");
|
||||||
|
|
||||||
|
client.forceFetchUsers();
|
||||||
|
|
||||||
client.on("debug", msg => console.log("[debug]", msg));
|
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.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 chan1, chan2;
|
||||||
var msg1, msg2;
|
var msg1, msg2;
|
||||||
|
|||||||
Reference in New Issue
Block a user