Merge pull request #66 from H4CK3R-01/fix_duplicate_user

User with the same name as another user is rejected
This commit is contained in:
Fabian Thomé 2021-07-12 13:45:24 +02:00 committed by GitHub
commit c4efe23c3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 11 deletions

View File

@ -48,22 +48,26 @@ io.on('connection', socket => {
game[socket.room] = new Game(); game[socket.room] = new Game();
} }
if (game[socket.room].add_player(socket.username)) { if (game[socket.room].get_player_index(socket.username) === -1) {
if (game[socket.room].add_player(socket.username)) {
game[socket.room].addPlayerName(data.username); game[socket.room].addPlayerName(data.username);
addedUser = true; addedUser = true;
socket.emit('login', game[socket.room].get_player_index(socket.username)); socket.emit('login', game[socket.room].get_player_index(socket.username));
socket.join(socket.room); socket.join(socket.room);
io.in(socket.room).emit('updatePlayerNames', game[socket.room].getPlayerNames()); io.in(socket.room).emit('updatePlayerNames', game[socket.room].getPlayerNames());
if (game[socket.room].players.length === 1) io.to(socket.id).emit('first player'); if (game[socket.room].players.length === 1) io.to(socket.id).emit('first player');
socket.broadcast.to(socket.room).emit('user joined', socket.username); socket.broadcast.to(socket.room).emit('user joined', socket.username);
generate_log_message(socket.room, socket.username, "JOINED", ""); generate_log_message(socket.room, socket.username, "JOINED", "");
} else {
io.to(socket.id).emit('error', 'Game started already or room has too many members');
}
} else { } else {
io.to(socket.id).emit('error', 'Game started already or room has too many members'); io.to(socket.id).emit('error', 'Username already exists');
} }
}); });

View File

@ -47,7 +47,7 @@ document.getElementById('ok').addEventListener('click', function () {
}); });
socket.on('error', function (data) { socket.on('error', function (data) {
if (data === 'Game started already or room has too many members') { if (data === 'Game started already or room has too many members' || data === 'Username already exists') {
document.getElementById('login').style.display = 'flex'; document.getElementById('login').style.display = 'flex';
document.getElementById('game').style.display = 'none'; document.getElementById('game').style.display = 'none';
document.getElementById('chat').style.display = 'none'; document.getElementById('chat').style.display = 'none';