Always fire messageUpdated, reset on login (#294,#295)

This commit is contained in:
abalabahaha
2016-05-31 10:24:19 -07:00
parent 00e3708e78
commit e6054c6ace
4 changed files with 42 additions and 34 deletions

View File

@@ -213,8 +213,10 @@ var InternalClient = (function () {
this.messageAwaits = {}; this.messageAwaits = {};
this.retryAfters = {}; this.retryAfters = {};
if (!this.tokenCacher) {
this.tokenCacher = new _UtilTokenCacher2["default"](this.client); this.tokenCacher = new _UtilTokenCacher2["default"](this.client);
this.tokenCacher.init(0); this.tokenCacher.init(0);
}
}; };
InternalClient.prototype.cleanIntervals = function cleanIntervals() { InternalClient.prototype.cleanIntervals = function cleanIntervals() {
@@ -255,7 +257,6 @@ var InternalClient = (function () {
if (!_this2.email && !_this2.token) { if (!_this2.email && !_this2.token) {
return; return;
} }
_this2.setup();
// Check whether the email is set (if not, only a token has been used for login) // Check whether the email is set (if not, only a token has been used for login)
_this2.loginWithToken(_this2.token, _this2.email, _this2.password)["catch"](function () { _this2.loginWithToken(_this2.token, _this2.email, _this2.password)["catch"](function () {
@@ -588,6 +589,8 @@ var InternalClient = (function () {
InternalClient.prototype.loginWithToken = function loginWithToken(token, email, password) { InternalClient.prototype.loginWithToken = function loginWithToken(token, email, password) {
var _this10 = this; var _this10 = this;
this.setup();
this.state = _ConnectionState2["default"].LOGGED_IN; this.state = _ConnectionState2["default"].LOGGED_IN;
this.token = token; this.token = token;
this.email = email; this.email = email;
@@ -1819,8 +1822,11 @@ var InternalClient = (function () {
data.content = data.content || msg.content; data.content = data.content || msg.content;
data.mentions = data.mentions || msg.mentions; data.mentions = data.mentions || msg.mentions;
data.author = data.author || msg.author; data.author = data.author || msg.author;
msg = new _StructuresMessage2["default"](msg, channel, client);
}
var nmsg = new _StructuresMessage2["default"](data, channel, client); var nmsg = new _StructuresMessage2["default"](data, channel, client);
client.emit("messageUpdated", new _StructuresMessage2["default"](msg, channel, client), nmsg); client.emit("messageUpdated", msg, nmsg);
if (msg) {
channel.messages.update(msg, nmsg); channel.messages.update(msg, nmsg);
} }
} else { } else {

View File

@@ -133,12 +133,10 @@ var Server = (function (_Equality) {
var presence = _ref; var presence = _ref;
var user = client.internal.users.get("id", presence.user.id); var user = client.internal.users.get("id", presence.user.id);
if (user) {
user.status = presence.status; user.status = presence.status;
user.game = presence.game; user.game = presence.game;
} }
} }
}
if (data.voice_states) { if (data.voice_states) {
for (var _iterator2 = data.voice_states, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { for (var _iterator2 = data.voice_states, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {

View File

@@ -150,9 +150,11 @@ export default class InternalClient {
this.messageAwaits = {}; this.messageAwaits = {};
this.retryAfters = {}; this.retryAfters = {};
if (!this.tokenCacher) {
this.tokenCacher = new TokenCacher(this.client); this.tokenCacher = new TokenCacher(this.client);
this.tokenCacher.init(0); this.tokenCacher.init(0);
} }
}
cleanIntervals() { cleanIntervals() {
for (let interval of this.intervals.typing.concat(this.intervals.misc).concat(this.intervals.kai)) { for (let interval of this.intervals.typing.concat(this.intervals.misc).concat(this.intervals.kai)) {
@@ -176,7 +178,6 @@ export default class InternalClient {
if (!this.email && !this.token) { if (!this.email && !this.token) {
return; return;
} }
this.setup();
// Check whether the email is set (if not, only a token has been used for login) // Check whether the email is set (if not, only a token has been used for login)
this.loginWithToken(this.token, this.email, this.password).catch(() => this.disconnected(true)); this.loginWithToken(this.token, this.email, this.password).catch(() => this.disconnected(true));
@@ -489,6 +490,8 @@ export default class InternalClient {
// def loginWithToken // def loginWithToken
// email and password are optional // email and password are optional
loginWithToken(token, email, password) { loginWithToken(token, email, password) {
this.setup();
this.state = ConnectionState.LOGGED_IN; this.state = ConnectionState.LOGGED_IN;
this.token = token; this.token = token;
this.email = email; this.email = email;
@@ -1591,8 +1594,11 @@ export default class InternalClient {
data.content = data.content || msg.content; data.content = data.content || msg.content;
data.mentions = data.mentions || msg.mentions; data.mentions = data.mentions || msg.mentions;
data.author = data.author || msg.author; data.author = data.author || msg.author;
msg = new Message(msg, channel, client);
}
var nmsg = new Message(data, channel, client); var nmsg = new Message(data, channel, client);
client.emit("messageUpdated", new Message(msg, channel, client), nmsg); client.emit("messageUpdated", msg, nmsg);
if (msg) {
channel.messages.update(msg, nmsg); channel.messages.update(msg, nmsg);
} }
} else { } else {

View File

@@ -83,12 +83,10 @@ export default class Server extends Equality {
if (data.presences) { if (data.presences) {
for (var presence of data.presences) { for (var presence of data.presences) {
var user = client.internal.users.get("id", presence.user.id); var user = client.internal.users.get("id", presence.user.id);
if (user) {
user.status = presence.status; user.status = presence.status;
user.game = presence.game; user.game = presence.game;
} }
} }
}
if (data.voice_states) { if (data.voice_states) {
for (var voiceState of data.voice_states) { for (var voiceState of data.voice_states) {