From 7ed7e9fe097e8af11a0bb3de32de3b1306b64a6f Mon Sep 17 00:00:00 2001 From: Kirk Scheibelhut Date: Mon, 22 Apr 2019 15:20:45 -0400 Subject: [PATCH] Fix other references to Room.users --- js/client-chat.js | 7 ++++--- src/battle.ts | 22 ++++++++++++++-------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/js/client-chat.js b/js/client-chat.js index bab96268de..e8b9d1d0aa 100644 --- a/js/client-chat.js +++ b/js/client-chat.js @@ -314,7 +314,7 @@ if (m2 && (m2[0] === '/' || m2[0] === '!')) spaceprefix = ''; for (var i in users) { - if (spaceprefix && users[i].substr(1).replace(/[^A-Za-z0-9 ]+/g, '').toLowerCase().substr(0, spaceprefix.length) === spaceprefix) { + if (spaceprefix && users[i].name.substr(1).replace(/[^A-Za-z0-9 ]+/g, '').toLowerCase().substr(0, spaceprefix.length) === spaceprefix) { candidates.push([i, m2[1].length]); } else if (idprefix && i.substr(0, idprefix.length) === idprefix) { candidates.push([i, m1[1].length]); @@ -352,8 +352,9 @@ // Substitute in the tab-completed name. var candidate = this.tabComplete.candidates[this.tabComplete.index]; var substituteUserId = candidate[0]; - if (!users[substituteUserId]) return true; - var name = users[substituteUserId].substr(1); + var substituteUser = users[substituteUserId]; + if (!substituteUser) return true; + var name = substituteUser.name.substr(1); name = Dex.getShortName(name); var fullPrefix = this.tabComplete.prefix.substr(0, candidate[1]) + name; $textbox.val(fullPrefix + text.substr(idx)); diff --git a/src/battle.ts b/src/battle.ts index 03fed43c73..0f3ca7073b 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -3139,9 +3139,9 @@ class Battle { case 'join': case 'j': { if (this.roomid) { let room = app!.rooms[this.roomid]; - let user = args[1]; - let userid = toUserid(user); - if (/^[a-z0-9]/i.test(user)) user = ' ' + user; + let user = BattleTextParser.parseNameParts(args[1]); + let userid = toUserid(user.name); + if (/^[a-z0-9]/i.test(user.name)) user.name = ' ' + user.name; if (!room.users[userid]) room.userCount.users++; room.users[userid] = user; room.userList.add(userid); @@ -3172,11 +3172,17 @@ class Battle { case 'name': case 'n': { if (this.roomid) { let room = app!.rooms[this.roomid]; - let newuser = args[1]; - let olduser = args[2]; - let userid = toUserid(newuser); - room.users[userid] = newuser; - room.userList.remove(olduser); + let user = BattleTextParser.parseNameParts(args[1]); + let oldid = args[2]; + if (toUserid(oldid) === app!.user.get('userid')) { + app!.user.set({ + away: user.away, + status: user.status, + }); + } + let userid = toUserid(user.name); + room.users[userid] = user; + room.userList.remove(oldid); room.userList.add(userid); } if (!this.ignoreSpects) {