@andreabiagini5/applicazioni-e-servizi-web-project
Version:
Project for Applicazioni e Servizi Web.
51 lines • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.guestMatchmaking = exports.authMatchmaking = void 0;
const matchmaking_1 = require("../controllers/matchmaking");
const socket_1 = require("../sockets/socket");
const authMatchmaking = (socket) => {
socket.on('requestMatch', async (data) => {
await (0, matchmaking_1.requestMatch)(socket, socket.data.username);
});
socket.on('requestMatchWithBot', async (data) => {
await (0, matchmaking_1.requestMatchWithBot)(socket, socket.data.username);
});
};
exports.authMatchmaking = authMatchmaking;
const guestMatchmaking = (socket) => {
socket.on('requestMatch', async (data) => {
let guestUsername = socket.data.guestUsername;
if (!guestUsername) {
guestUsername = setGuestUsername(socket);
}
await (0, matchmaking_1.requestMatch)(socket, guestUsername);
});
socket.on('requestMatchWithBot', async (data) => {
let guestUsername = socket.data.guestUsername;
if (!guestUsername) {
guestUsername = setGuestUsername(socket);
}
await (0, matchmaking_1.requestMatchWithBot)(socket, guestUsername);
});
};
exports.guestMatchmaking = guestMatchmaking;
const setGuestUsername = (socket) => {
let guestUsername;
if (!socket.data.guestUsername) {
guestUsername = getGuestUsername(socket, 0);
socket.data.username = guestUsername;
}
return guestUsername;
};
const getGuestUsername = (socket, postfix) => {
const candidateUsername = postfix === 0 ? `guest-${socket.id}` : `guest-${socket.id}-${postfix}`;
if ((0, socket_1.getPlayerSockets)().has(candidateUsername)) {
// Username exists, try next postfix
return getGuestUsername(socket, postfix + 1);
}
else {
// Username is available
return candidateUsername;
}
};
//# sourceMappingURL=matchmaking.js.map