Fix previous fix

This commit is contained in:
calzoneman 2016-06-26 21:15:33 -07:00
parent e9fdb1a7e5
commit c70dc83504
2 changed files with 24 additions and 16 deletions

View File

@ -322,22 +322,31 @@ Channel.prototype.joinUser = function (user, data) {
return;
}
if (self.is(Flags.C_REGISTERED)) {
user.waitFlag(Flags.U_LOGGED_IN, () => {
user.refreshAccount({
channel: self.name,
name: user.getName()
}, function (err, account) {
if (err) {
Logger.errlog.log("user.refreshAccount failed at Channel.joinUser");
Logger.errlog.log(err.stack);
self.refCounter.unref("Channel::user");
return;
}
function refreshUserAccount(cb) {
user.refreshAccount({
channel: self.name,
name: user.getName()
}, function (err, account) {
if (err) {
Logger.errlog.log("user.refreshAccount failed at Channel.joinUser");
Logger.errlog.log(err.stack);
self.refCounter.unref("Channel::user");
return;
}
afterAccount();
});
if (cb) {
process.nextTick(cb);
}
});
}
if (self.is(Flags.C_REGISTERED) && user.is(Flags.U_LOGGED_IN)) {
refreshUserAccount(afterAccount);
} else if (self.is(Flags.C_REGISTERED)) {
user.waitFlag(Flags.U_LOGGED_IN, () => {
refreshUserAccount();
});
afterAccount();
} else {
afterAccount();
}

View File

@ -301,7 +301,6 @@ User.prototype.login = function (name, pw) {
name: user.name
});
db.recordVisit(self.realip, self.getName());
self.socket.emit("rank", self.account.effectiveRank);
Logger.syslog.log(self.realip + " logged in as " + user.name);
self.setFlag(Flags.U_LOGGED_IN);
self.clearFlag(Flags.U_LOGGING_IN);
@ -388,7 +387,6 @@ User.prototype.guestLogin = function (name) {
guest: true
});
db.recordVisit(self.realip, self.getName());
self.socket.emit("rank", 0);
Logger.syslog.log(self.realip + " signed in as " + name);
self.setFlag(Flags.U_LOGGED_IN);
self.emit("login", self.account);
@ -443,6 +441,7 @@ User.prototype.refreshAccount = function (opts, cb) {
}
self.account = account;
if (account.effectiveRank !== old.effectiveRank) {
self.socket.emit("rank", self.account.effectiveRank);
self.emit("effectiveRankChange", self.account.effectiveRank);
}
}