HotFix ban user (#1318)

* HotFix ban user

 - Fix to permit to ban user with more sub tab openned
 - Fix to permit to send message ban to the user with more sub tab oppened

* Fix CI

* Run pretty
This commit is contained in:
grégoire parant 2021-07-27 14:42:32 +02:00 committed by GitHub
parent 95af568653
commit 3d657b4a18
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 20 deletions

View File

@ -72,6 +72,15 @@ export class GameRoom {
public getUserById(id: number): User | undefined {
return this.users.get(id);
}
public getUsersByUuid(uuid: string): User[] {
const userList: User[] = [];
for (const user of this.users.values()) {
if (user.uuid === uuid) {
userList.push(user);
}
}
return userList;
}
public join(socket: UserSocket, joinRoomMessage: JoinRoomMessage): User {
const positionMessage = joinRoomMessage.getPositionmessage();

View File

@ -675,8 +675,8 @@ export class SocketManager {
return;
}
const recipient = room.getUserByUuid(recipientUuid);
if (recipient === undefined) {
const recipients = room.getUsersByUuid(recipientUuid);
if (recipients.length === 0) {
console.error(
"In sendAdminMessage, could not find user with id '" +
recipientUuid +
@ -685,6 +685,7 @@ export class SocketManager {
return;
}
for (const recipient of recipients) {
const sendUserMessage = new SendUserMessage();
sendUserMessage.setMessage(message);
sendUserMessage.setType("ban"); //todo: is the type correct?
@ -694,6 +695,7 @@ export class SocketManager {
recipient.socket.write(serverToClientMessage);
}
}
public banUser(roomId: string, recipientUuid: string, message: string): void {
const room = this.rooms.get(roomId);
@ -706,8 +708,8 @@ export class SocketManager {
return;
}
const recipient = room.getUserByUuid(recipientUuid);
if (recipient === undefined) {
const recipients = room.getUsersByUuid(recipientUuid);
if (recipients.length === 0) {
console.error(
"In banUser, could not find user with id '" +
recipientUuid +
@ -716,6 +718,7 @@ export class SocketManager {
return;
}
for (const recipient of recipients) {
// Let's leave the room now.
room.leave(recipient);
@ -730,6 +733,7 @@ export class SocketManager {
recipient.socket.write(serverToClientMessage);
recipient.socket.end();
}
}
sendAdminRoomMessage(roomId: string, message: string) {
const room = this.rooms.get(roomId);