tournament: add: player can join tournament now

This commit is contained in:
2023-12-24 16:58:36 +01:00
parent 2932c2af1f
commit 8ba55d5be2
6 changed files with 191 additions and 24 deletions

View File

@ -20,6 +20,8 @@ class Tourmanent
this.levels = levels;
this.state = this.get_state();
this.id = id
this.connected = false;
}
get_state()
@ -50,6 +52,48 @@ class Tourmanent
this.levels = response_data.levels;
this.id = response_data.id
}
leave(event)
{
if (this.connected == false)
return
this.connected = false;
this._socket.close()
this.disconnect_func(event);
}
toggle_participation()
{
if (!this.connected)
return
console.log(this.isParticipating);
this.isParticipating = !this.isParticipating;
console.log(this.isParticipating);
this._socket.send(JSON.stringify({participate: this.isParticipating}));
}
async join(receive_func, disconnect_func)
{
if (!await this.client.isAuthentificate())
return null;
let url = `wss://${window.location.host}/ws/tournaments/${this.id}`;
this._socket = new WebSocket(url);
this.connected = true;
this.isParticipating = false;
this.receive_func = receive_func;
this.disconnect_func = disconnect_func;
this._socket.onmessage = function (event) {
const data = JSON.parse(event.data);
receive_func(data);
};
this._socket.onclose = this.leave.bind(this);
}
}