avatar display on game pages

+ multiples user.status bug unresolved, temp rollback in generateToken()
+ STATUS enum fix game.service.ts
+ multiples smalls refactoring
This commit is contained in:
LuckyLaszlo
2023-01-11 12:00:03 +01:00
parent 0f60b83121
commit de26c3c89c
10 changed files with 191 additions and 73 deletions

View File

@@ -94,10 +94,15 @@ async function clientAnnounceListener(this: WebSocket, data: string)
"Content-Type": "application/json",
},
body: JSON.stringify(body)
});
if (!response.ok)
})
.catch(error => console.log("ERROR : " + error));
if (!response || !response.ok)
{
this.send(JSON.stringify( new ev.EventError((await response.json()).message) ));
let errMessage = "validate token error";
if (response) {
errMessage = (await response.json()).message;
}
this.send(JSON.stringify( new ev.EventError(errMessage) ));
clientTerminate(clientsMap.get(this.id));
return;
}
@@ -154,6 +159,8 @@ function publicMatchmaking(player: ClientPlayer)
const compatiblePlayers: ClientPlayer[] = [];
compatiblePlayers.push(player);
/* // Replace with this code to enable the possibility to play against self
for (const [id, client] of matchmakingMap)
{
if (client.matchOptions === matchOptions)
@@ -163,10 +170,9 @@ function publicMatchmaking(player: ClientPlayer)
break;
}
}
}
} */
// TODO: Replace with this code to disable the possibility to play against self
/* for (const [id, client] of matchmakingMap)
for (const [id, client] of matchmakingMap)
{
if (client.matchOptions === matchOptions && client.username !== player.username)
{
@@ -175,7 +181,7 @@ function publicMatchmaking(player: ClientPlayer)
break;
}
}
} */
}
if (compatiblePlayers.length >= minPlayersNumber) {
compatiblePlayers.forEach((client) => {
@@ -231,7 +237,6 @@ function privateMatchmaking(player: ClientPlayer)
token : player.token
})
})
.then(x => x.json())
.catch(error => console.log("ERROR : " + error));
clientTerminate(player);
}
@@ -252,18 +257,26 @@ function createGameSession(playersArr: ClientPlayer[], matchOptions: en.MatchOpt
gameSession.unreadyPlayersMap.set(client.id, client);
client.socket.once("message", playerReadyConfirmationListener);
});
let gameSessionPlayersIterator = gameSession.playersMap.values();
const eventMatchmakingComplete = new ev.EventMatchmakingComplete(
(<ClientPlayer>gameSessionPlayersIterator.next().value).username,
(<ClientPlayer>gameSessionPlayersIterator.next().value).username
);
// REFACTORING: Not pretty, hardcoded two players.
// Could be done in gameSession maybe ?
const gameSessionPlayersIterator = gameSession.playersMap.values();
gameSessionPlayersIterator = gameSession.playersMap.values();
let player: ClientPlayer;
player = (<ClientPlayer>gameSessionPlayersIterator.next().value);
player.racket = gameSession.components.playerLeft;
player.socket.send(JSON.stringify( new ev.EventMatchmakingComplete(en.PlayerSide.left) ));
eventMatchmakingComplete.side = en.PlayerSide.left;
player.socket.send(JSON.stringify( eventMatchmakingComplete ));
player = (<ClientPlayer>gameSessionPlayersIterator.next().value);
player.racket = gameSession.components.playerRight;
player.socket.send(JSON.stringify( new ev.EventMatchmakingComplete(en.PlayerSide.right) ));
eventMatchmakingComplete.side = en.PlayerSide.right;
player.socket.send(JSON.stringify( eventMatchmakingComplete ));
// REFACTORING
setTimeout(function abortMatch() {

View File

@@ -18,10 +18,13 @@ export class EventAssignId extends ServerEvent {
}
export class EventMatchmakingComplete extends ServerEvent {
side: en.PlayerSide;
constructor(side: en.PlayerSide) {
side: en.PlayerSide = en.PlayerSide.noSide;
playerOneUsername: string;
playerTwoUsername: string;
constructor(playerOneUsername: string, playerTwoUsername: string) {
super(en.EventTypes.matchmakingComplete);
this.side = side;
this.playerOneUsername = playerOneUsername;
this.playerTwoUsername = playerTwoUsername;
}
}