core: tournament

This commit is contained in:
2024-04-16 19:13:18 +02:00
parent 14886c8ac9
commit 630ef709ab
10 changed files with 160 additions and 216 deletions

View File

@ -9,13 +9,13 @@ class Tourmanent
* @param {Number} name
* @param {Number} nb_players
* @param {Number} nb_players_by_game
* @param {Number} level
* @param {Number} round
* @param {Boolean} started
* @param {Boolean} finished
* @param {[]} levels
* @param {[]} rounds
* @param {String} state
*/
constructor(client, id, name = undefined, nb_players = undefined, nb_players_by_game = undefined, level = undefined, started = undefined, finished = undefined, levels = undefined, state = undefined)
constructor(client, id, name = undefined, nb_players = undefined, round = undefined, started = undefined, finished = undefined, rounds = undefined, state = undefined)
{
/**
* @type {Client}
@ -31,16 +31,11 @@ class Tourmanent
* @type {Number}
*/
this.nb_players = nb_players;
/**
* @type {Number}
*/
this.nb_players_by_game = nb_players_by_game;
/**
* @type {Number}
*/
this.level = level;
this.round = round;
/**
* @type {Number}
@ -55,7 +50,7 @@ class Tourmanent
/**
* @type {[]}
*/
this.levels = levels;
this.rounds = rounds;
/**
* @type {String} must be "finished", or "started", or "waiting". Any other return all elements
@ -86,13 +81,12 @@ class Tourmanent
let response_data = await response.json();
this.name = response_data.name || `${response_data.nb_players_by_game}x1, ${response_data.nb_players} players`;
this.name = response_data.name || `${response_data.nb_players} players tournament`;
this.nb_players = response_data.nb_players;
this.nb_players_by_game = response_data.nb_players_by_game;
this.level = response_data.level;
this.round = response_data.round;
this.started = response_data.started;
this.finished = response_data.finished;
this.levels = response_data.levels;
this.rounds = response_data.rounds;
this.state = response_data.state;
}
@ -112,11 +106,11 @@ class Tourmanent
this._socket.send(JSON.stringify({participate: ""}));
}
async onParticipantsUpdate(data)
async onPlayersUpdate(data)
{
oldParticipantList = this.par
oldPlayerList = this.par
await this.participantsUpdateHandler();
await this.playersUpdateHandler();
}
async onError(data)
@ -134,18 +128,18 @@ class Tourmanent
if (data?.detail === "error")
this.onError(data);
else if (data?.detail === "participants_update")
this.onParticipantsUpdate(data);
else if (data?.detail === "players_update")
this.onPlayersUpdate(data);
}
/**
* Join the tournament Websocket
* @param {CallableFunction} errorHandler
* @param {CallableFunction} participantsUpdateHandler
* @param {CallableFunction} playersUpdateHandler
* @param {CallableFunction} disconnectHandler
* @returns {?}
*/
async join(participantsUpdateHandler, errorHandler, disconnectHandler)
async join(playersUpdateHandler, errorHandler, disconnectHandler)
{
if (!await this.client.isAuthenticated())
return null;
@ -157,7 +151,7 @@ class Tourmanent
this.connected = true;
this.isParticipating = false;
this.participantsUpdateHandler = participantsUpdateHandler;
this.playersUpdateHandler = playersUpdateHandler;
this.errorHandler = errorHandler;
this.disconnectHandler = disconnectHandler;