Fix rename messages assuming having joined
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing

This commit is contained in:
Hamcha 2019-10-15 14:36:29 +02:00
parent 3a5989ea0d
commit 07d5e9b2ba
Signed by: hamcha
GPG key ID: 44AD3571EB09A39E

View file

@ -29,6 +29,10 @@ export abstract class Client extends EventEmitter {
this.metadata.name = data.newname; this.metadata.name = data.newname;
} }
// Only mutate player list if we have one
// This is because rename messages can be received during the initial
// handshake, to signal a forced name change before joining.
if (this.players) {
let idx = this.players.indexOf(data.oldname); let idx = this.players.indexOf(data.oldname);
if (idx < 0) { if (idx < 0) {
// Weird // Weird
@ -39,6 +43,7 @@ export abstract class Client extends EventEmitter {
break; break;
} }
Vue.set(this.players, idx, data.newname); Vue.set(this.players, idx, data.newname);
}
this.emit("rename", data.oldname, data.newname); this.emit("rename", data.oldname, data.newname);
break; break;
// A new player joined the room (this includes us) // A new player joined the room (this includes us)