Fix rename messages assuming having joined
This commit is contained in:
parent
3a5989ea0d
commit
07d5e9b2ba
1 changed files with 14 additions and 9 deletions
|
@ -29,16 +29,21 @@ export abstract class Client extends EventEmitter {
|
|||
this.metadata.name = data.newname;
|
||||
}
|
||||
|
||||
let idx = this.players.indexOf(data.oldname);
|
||||
if (idx < 0) {
|
||||
// Weird
|
||||
console.warn(
|
||||
`Someone (${data.oldname}) changed name but wasn't on the player list`
|
||||
);
|
||||
this.players.push(data.newname);
|
||||
break;
|
||||
// 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);
|
||||
if (idx < 0) {
|
||||
// Weird
|
||||
console.warn(
|
||||
`Someone (${data.oldname}) changed name but wasn't on the player list`
|
||||
);
|
||||
this.players.push(data.newname);
|
||||
break;
|
||||
}
|
||||
Vue.set(this.players, idx, data.newname);
|
||||
}
|
||||
Vue.set(this.players, idx, data.newname);
|
||||
this.emit("rename", data.oldname, data.newname);
|
||||
break;
|
||||
// A new player joined the room (this includes us)
|
||||
|
|
Loading…
Reference in a new issue