From cc2ee46d447cff12f85aa110e848ce3be79be2f7 Mon Sep 17 00:00:00 2001 From: Guangcong Luo Date: Wed, 22 May 2013 21:25:39 -0500 Subject: [PATCH] Support new protocol for user updates --- js/client.js | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/js/client.js b/js/client.js index 0d50206f3..4ec3a49a5 100644 --- a/js/client.js +++ b/js/client.js @@ -514,7 +514,6 @@ userid: toUserid(data.name), named: data.named }); - if ('avatar' in data) self.user.set('avatar', data.avatar); } if (data.room) { // Correct way to initialize rooms: @@ -538,7 +537,8 @@ }, update: function (data) { if (data.name !== undefined) { - // Legacy + // Correct way to send user updates: + // |updateuser|NAME|NAMED|AVATAR self.user.set({ name: data.name, userid: toUserid(data.name), @@ -554,11 +554,13 @@ if (room) room.receive(data.updates.join('\n')); } if ('challengesFrom' in data) { - // Legacy + // Correct way to send challenge updates: + // |updatechallenges|CHALLENGEDATA if (self.rooms['']) self.rooms[''].updateChallenges(data); } if ('searching' in data) { - // Legacy + // Correct way to send search updates: + // |updatesearch|SEARCHDATA if (self.rooms['']) self.rooms[''].updateSearch(data); } if ('request' in data) { @@ -749,6 +751,30 @@ this.parseFormats(parts); break; + case 'updateuser': + var name = parts[1]; + var named = !!+parts[2]; + this.user.set({ + name: name, + userid: toUserid(name), + named: named, + avatar: +parts[3] + }); + this.user.setPersistentName(named ? name : null); + break; + + case 'updatechallenges': + if (self.rooms['']) { + self.rooms[''].updateChallenges($.parseJSON(data.substr(18))); + } + break; + + case 'updatesearch': + if (self.rooms['']) { + self.rooms[''].updateSearch($.parseJSON(data.substr(14))); + } + break; + case 'popup': this.addPopupMessage(data.substr(7).replace(/\|\|/g, '\n')); if (this.rooms['']) this.rooms[''].resetPending();