Use USER_UPDATE

This commit is contained in:
abalabahaha
2016-02-14 13:19:07 -08:00
parent 315ae22a7f
commit f49600af17
6 changed files with 102 additions and 55 deletions

View File

@@ -1285,6 +1285,8 @@ var InternalClient = (function () {
};
InternalClient.prototype.createWS = function createWS(url) {
var _this36 = this;
var self = this;
var client = self.client;
@@ -1681,6 +1683,27 @@ var InternalClient = (function () {
client.emit("warn", "presence update but user/server not in cache");
}
break;
case _Constants.PacketType.USER_UPDATE:
var user = self.users.get("id", data.id);
if (user) {
data.username = data.username || user.username;
data.id = data.id || user.id;
data.avatar = data.avatar || user.avatar;
data.discriminator = data.discriminator || user.discriminator;
_this36.email = data.email || _this36.email;
var presenceUser = new _StructuresUser2["default"](data, client);
client.emit("presence", user, presenceUser);
self.users.update(user, presenceUser);
} else {
client.emit("warn", "user update but user not in cache (this should never happen)");
}
break;
case _Constants.PacketType.TYPING:

View File

@@ -106,27 +106,28 @@ var Permissions = {
exports.Permissions = Permissions;
var PacketType = {
READY: "READY",
MESSAGE_CREATE: "MESSAGE_CREATE",
MESSAGE_UPDATE: "MESSAGE_UPDATE",
MESSAGE_DELETE: "MESSAGE_DELETE",
SERVER_CREATE: "GUILD_CREATE",
SERVER_DELETE: "GUILD_DELETE",
SERVER_UPDATE: "GUILD_UPDATE",
CHANNEL_CREATE: "CHANNEL_CREATE",
CHANNEL_DELETE: "CHANNEL_DELETE",
CHANNEL_UPDATE: "CHANNEL_UPDATE",
SERVER_ROLE_CREATE: "GUILD_ROLE_CREATE",
SERVER_ROLE_DELETE: "GUILD_ROLE_DELETE",
SERVER_ROLE_UPDATE: "GUILD_ROLE_UPDATE",
MESSAGE_CREATE: "MESSAGE_CREATE",
MESSAGE_DELETE: "MESSAGE_DELETE",
MESSAGE_UPDATE: "MESSAGE_UPDATE",
PRESENCE_UPDATE: "PRESENCE_UPDATE",
READY: "READY",
SERVER_BAN_ADD: "GUILD_BAN_ADD",
SERVER_BAN_REMOVE: "GUILD_BAN_REMOVE",
SERVER_CREATE: "GUILD_CREATE",
SERVER_DELETE: "GUILD_DELETE",
SERVER_MEMBER_ADD: "GUILD_MEMBER_ADD",
SERVER_MEMBER_REMOVE: "GUILD_MEMBER_REMOVE",
SERVER_MEMBER_UPDATE: "GUILD_MEMBER_UPDATE",
PRESENCE_UPDATE: "PRESENCE_UPDATE",
SERVER_MEMBERS_CHUNK: "GUILD_MEMBERS_CHUNK",
SERVER_ROLE_CREATE: "GUILD_ROLE_CREATE",
SERVER_ROLE_DELETE: "GUILD_ROLE_DELETE",
SERVER_ROLE_UPDATE: "GUILD_ROLE_UPDATE",
SERVER_UPDATE: "GUILD_UPDATE",
TYPING: "TYPING_START",
SERVER_BAN_ADD: "GUILD_BAN_ADD",
SERVER_BAN_REMOVE: "GUILD_BAN_REMOVE",
VOICE_STATE_UPDATE: "VOICE_STATE_UPDATE",
SERVER_MEMBERS_CHUNK: "GUILD_MEMBERS_CHUNK"
USER_UPDATE: "USER_UPDATE",
VOICE_STATE_UPDATE: "VOICE_STATE_UPDATE"
};
exports.PacketType = PacketType;

View File

@@ -6,23 +6,23 @@ exports.__esModule = true;
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var TokenCacher = (function () {
function TokenCacher() {
_classCallCheck(this, TokenCacher);
}
function TokenCacher() {
_classCallCheck(this, TokenCacher);
}
TokenCacher.prototype.setToken = function setToken() {};
TokenCacher.prototype.setToken = function setToken() {};
TokenCacher.prototype.save = function save() {};
TokenCacher.prototype.save = function save() {};
TokenCacher.prototype.getToken = function getToken() {
return null;
};
TokenCacher.prototype.getToken = function getToken() {
return null;
};
TokenCacher.prototype.init = function init(ind) {
this.done = true;
};
TokenCacher.prototype.init = function init(ind) {
this.done = true;
};
return TokenCacher;
return TokenCacher;
})();
exports["default"] = TokenCacher;

View File

@@ -5,24 +5,24 @@ exports.__esModule = true;
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var VoicePacket = function VoicePacket(data, sequence, time, ssrc) {
_classCallCheck(this, VoicePacket);
_classCallCheck(this, VoicePacket);
var audioBuffer = data,
returnBuffer = new Buffer(audioBuffer.length + 12);
var audioBuffer = data,
returnBuffer = new Buffer(audioBuffer.length + 12);
returnBuffer.fill(0);
returnBuffer[0] = 0x80;
returnBuffer[1] = 0x78;
returnBuffer.fill(0);
returnBuffer[0] = 0x80;
returnBuffer[1] = 0x78;
returnBuffer.writeUIntBE(sequence, 2, 2);
returnBuffer.writeUIntBE(time, 4, 4);
returnBuffer.writeUIntBE(ssrc, 8, 4);
returnBuffer.writeUIntBE(sequence, 2, 2);
returnBuffer.writeUIntBE(time, 4, 4);
returnBuffer.writeUIntBE(ssrc, 8, 4);
for (var i = 0; i < audioBuffer.length; i++) {
returnBuffer[i + 12] = audioBuffer[i];
}
for (var i = 0; i < audioBuffer.length; i++) {
returnBuffer[i + 12] = audioBuffer[i];
}
return returnBuffer;
return returnBuffer;
};
exports["default"] = VoicePacket;

View File

@@ -1467,6 +1467,28 @@ export default class InternalClient {
client.emit("warn", "presence update but user/server not in cache");
}
break;
case PacketType.USER_UPDATE:
var user = self.users.get("id", data.id);
if (user) {
data.username = data.username || user.username;
data.id = data.id || user.id;
data.avatar = data.avatar || user.avatar;
data.discriminator = data.discriminator || user.discriminator;
this.email = data.email || this.email;
var presenceUser = new User(data, client);
client.emit("presence", user, presenceUser);
self.users.update(user, presenceUser);
} else {
client.emit("warn", "user update but user not in cache (this should never happen)");
}
break;
case PacketType.TYPING:

View File

@@ -64,26 +64,27 @@ export const Permissions = {
};
export const PacketType = {
READY : "READY",
MESSAGE_CREATE : "MESSAGE_CREATE",
MESSAGE_UPDATE : "MESSAGE_UPDATE",
MESSAGE_DELETE : "MESSAGE_DELETE",
SERVER_CREATE : "GUILD_CREATE",
SERVER_DELETE : "GUILD_DELETE",
SERVER_UPDATE : "GUILD_UPDATE",
CHANNEL_CREATE : "CHANNEL_CREATE",
CHANNEL_DELETE : "CHANNEL_DELETE",
CHANNEL_UPDATE : "CHANNEL_UPDATE",
SERVER_ROLE_CREATE : "GUILD_ROLE_CREATE",
SERVER_ROLE_DELETE : "GUILD_ROLE_DELETE",
SERVER_ROLE_UPDATE : "GUILD_ROLE_UPDATE",
MESSAGE_CREATE : "MESSAGE_CREATE",
MESSAGE_DELETE : "MESSAGE_DELETE",
MESSAGE_UPDATE : "MESSAGE_UPDATE",
PRESENCE_UPDATE : "PRESENCE_UPDATE",
READY : "READY",
SERVER_BAN_ADD : "GUILD_BAN_ADD",
SERVER_BAN_REMOVE: "GUILD_BAN_REMOVE",
SERVER_CREATE : "GUILD_CREATE",
SERVER_DELETE : "GUILD_DELETE",
SERVER_MEMBER_ADD : "GUILD_MEMBER_ADD",
SERVER_MEMBER_REMOVE : "GUILD_MEMBER_REMOVE",
SERVER_MEMBER_UPDATE : "GUILD_MEMBER_UPDATE",
PRESENCE_UPDATE : "PRESENCE_UPDATE",
SERVER_MEMBERS_CHUNK : "GUILD_MEMBERS_CHUNK",
SERVER_ROLE_CREATE : "GUILD_ROLE_CREATE",
SERVER_ROLE_DELETE : "GUILD_ROLE_DELETE",
SERVER_ROLE_UPDATE : "GUILD_ROLE_UPDATE",
SERVER_UPDATE : "GUILD_UPDATE",
TYPING : "TYPING_START",
SERVER_BAN_ADD : "GUILD_BAN_ADD",
SERVER_BAN_REMOVE: "GUILD_BAN_REMOVE",
VOICE_STATE_UPDATE : "VOICE_STATE_UPDATE",
SERVER_MEMBERS_CHUNK : "GUILD_MEMBERS_CHUNK"
USER_UPDATE : "USER_UPDATE",
VOICE_STATE_UPDATE : "VOICE_STATE_UPDATE"
};