Merge pull request #806 from thecodingmachine/hot-fix-moderate-controls
Hot fix moderate controls
This commit is contained in:
commit
ce6976ec34
@ -204,7 +204,7 @@ const roomManager: IRoomManagerServer = {
|
|||||||
},
|
},
|
||||||
ban(call: ServerUnaryCall<BanMessage>, callback: sendUnaryData<EmptyMessage>): void {
|
ban(call: ServerUnaryCall<BanMessage>, callback: sendUnaryData<EmptyMessage>): void {
|
||||||
// FIXME Work in progress
|
// FIXME Work in progress
|
||||||
socketManager.banUser(call.request.getRoomid(), call.request.getRecipientuuid(), 'foo bar TODO change this');
|
socketManager.banUser(call.request.getRoomid(), call.request.getRecipientuuid(), call.request.getMessage());
|
||||||
|
|
||||||
callback(null, new EmptyMessage());
|
callback(null, new EmptyMessage());
|
||||||
},
|
},
|
||||||
|
@ -795,7 +795,7 @@ export class SocketManager {
|
|||||||
public sendAdminMessage(roomId: string, recipientUuid: string, message: string): void {
|
public sendAdminMessage(roomId: string, recipientUuid: string, message: string): void {
|
||||||
const room = this.rooms.get(roomId);
|
const room = this.rooms.get(roomId);
|
||||||
if (!room) {
|
if (!room) {
|
||||||
console.error("In sendAdminMessage, could not find room with id '" + roomId + "'. Maybe the room was closed a few milliseconds ago and there was a race condition?");
|
console.error("In sendAdminMessage, could not find room with id '" + roomId + "'. Maybe the room was closed a few milliseconds ago and there was a race condition?");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -809,10 +809,10 @@ export class SocketManager {
|
|||||||
sendUserMessage.setMessage(message);
|
sendUserMessage.setMessage(message);
|
||||||
sendUserMessage.setType('ban');
|
sendUserMessage.setType('ban');
|
||||||
|
|
||||||
const subToPusherMessage = new SubToPusherMessage();
|
const serverToClientMessage = new ServerToClientMessage();
|
||||||
subToPusherMessage.setSendusermessage(sendUserMessage);
|
serverToClientMessage.setSendusermessage(sendUserMessage);
|
||||||
|
|
||||||
recipient.socket.write(subToPusherMessage);
|
recipient.socket.write(serverToClientMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public banUser(roomId: string, recipientUuid: string, message: string): void {
|
public banUser(roomId: string, recipientUuid: string, message: string): void {
|
||||||
@ -831,16 +831,15 @@ export class SocketManager {
|
|||||||
// Let's leave the room now.
|
// Let's leave the room now.
|
||||||
room.leave(recipient);
|
room.leave(recipient);
|
||||||
|
|
||||||
const sendUserMessage = new SendUserMessage();
|
const banUserMessage = new BanUserMessage();
|
||||||
sendUserMessage.setMessage(message);
|
banUserMessage.setMessage(message);
|
||||||
sendUserMessage.setType('banned');
|
banUserMessage.setType('banned');
|
||||||
|
|
||||||
const subToPusherMessage = new SubToPusherMessage();
|
const serverToClientMessage = new ServerToClientMessage();
|
||||||
subToPusherMessage.setSendusermessage(sendUserMessage);
|
serverToClientMessage.setBanusermessage(banUserMessage);
|
||||||
|
|
||||||
recipient.socket.write(subToPusherMessage);
|
|
||||||
|
|
||||||
// Let's close the connection when the user is banned.
|
// Let's close the connection when the user is banned.
|
||||||
|
recipient.socket.write(serverToClientMessage);
|
||||||
recipient.socket.end();
|
recipient.socket.end();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -186,6 +186,8 @@ export class RoomConnection implements RoomConnection {
|
|||||||
this.dispatch(EventMessage.START_JITSI_ROOM, message.getSendjitsijwtmessage());
|
this.dispatch(EventMessage.START_JITSI_ROOM, message.getSendjitsijwtmessage());
|
||||||
} else if (message.hasSendusermessage()) {
|
} else if (message.hasSendusermessage()) {
|
||||||
this.dispatch(EventMessage.USER_MESSAGE, message.getSendusermessage());
|
this.dispatch(EventMessage.USER_MESSAGE, message.getSendusermessage());
|
||||||
|
} else if (message.hasBanusermessage()) {
|
||||||
|
this.dispatch(EventMessage.USER_MESSAGE, message.getBanusermessage());
|
||||||
} else {
|
} else {
|
||||||
throw new Error('Unknown message received');
|
throw new Error('Unknown message received');
|
||||||
}
|
}
|
||||||
|
@ -104,14 +104,13 @@ export class ReportMenu extends Phaser.GameObjects.DOMElement {
|
|||||||
gamePError.innerText = '';
|
gamePError.innerText = '';
|
||||||
gamePError.style.display = 'none';
|
gamePError.style.display = 'none';
|
||||||
const gameTextArea = this.getChildByID('gameReportInput') as HTMLInputElement;
|
const gameTextArea = this.getChildByID('gameReportInput') as HTMLInputElement;
|
||||||
const gameIdUserReported = this.getChildByID('idUserReported') as HTMLInputElement;
|
if(!gameTextArea || !gameTextArea.value){
|
||||||
if(!gameTextArea || !gameTextArea.value || !gameIdUserReported || !gameIdUserReported.value){
|
|
||||||
gamePError.innerText = 'Report message cannot to be empty.';
|
gamePError.innerText = 'Report message cannot to be empty.';
|
||||||
gamePError.style.display = 'block';
|
gamePError.style.display = 'block';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
gameManager.getCurrentGameScene(this.scene).connection.emitReportPlayerMessage(
|
gameManager.getCurrentGameScene(this.scene).connection.emitReportPlayerMessage(
|
||||||
parseInt(gameIdUserReported.value),
|
this.userId,
|
||||||
gameTextArea.value
|
gameTextArea.value
|
||||||
);
|
);
|
||||||
this.close();
|
this.close();
|
||||||
|
@ -349,6 +349,7 @@ message AdminMessage {
|
|||||||
string message = 1;
|
string message = 1;
|
||||||
string recipientUuid = 2;
|
string recipientUuid = 2;
|
||||||
string roomId = 3;
|
string roomId = 3;
|
||||||
|
string type = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// A message sent by an administrator to absolutely everybody
|
// A message sent by an administrator to absolutely everybody
|
||||||
@ -359,6 +360,8 @@ message AdminGlobalMessage {
|
|||||||
message BanMessage {
|
message BanMessage {
|
||||||
string recipientUuid = 1;
|
string recipientUuid = 1;
|
||||||
string roomId = 2;
|
string roomId = 2;
|
||||||
|
string type = 3;
|
||||||
|
string message = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message EmptyMessage {
|
message EmptyMessage {
|
||||||
|
@ -92,10 +92,10 @@ export class IoSocketController {
|
|||||||
if(message.event === 'user-message') {
|
if(message.event === 'user-message') {
|
||||||
const messageToEmit = (message.message as { message: string, type: string, userUuid: string });
|
const messageToEmit = (message.message as { message: string, type: string, userUuid: string });
|
||||||
if(messageToEmit.type === 'banned'){
|
if(messageToEmit.type === 'banned'){
|
||||||
socketManager.emitBan(messageToEmit.userUuid, messageToEmit.message, messageToEmit.type);
|
socketManager.emitBan(messageToEmit.userUuid, messageToEmit.message, messageToEmit.type, ws.roomId as string);
|
||||||
}
|
}
|
||||||
if(messageToEmit.type === 'ban') {
|
if(messageToEmit.type === 'ban') {
|
||||||
socketManager.emitSendUserMessage(messageToEmit.userUuid, messageToEmit.message, messageToEmit.type);
|
socketManager.emitSendUserMessage(messageToEmit.userUuid, messageToEmit.message, messageToEmit.type, ws.roomId as string);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch (err) {
|
}catch (err) {
|
||||||
|
@ -23,7 +23,7 @@ import {
|
|||||||
AdminPusherToBackMessage,
|
AdminPusherToBackMessage,
|
||||||
ServerToAdminClientMessage,
|
ServerToAdminClientMessage,
|
||||||
SendUserMessage,
|
SendUserMessage,
|
||||||
BanUserMessage, UserJoinedRoomMessage, UserLeftRoomMessage
|
BanUserMessage, UserJoinedRoomMessage, UserLeftRoomMessage, AdminMessage, BanMessage
|
||||||
} from "../Messages/generated/messages_pb";
|
} from "../Messages/generated/messages_pb";
|
||||||
import {PointInterface} from "../Model/Websocket/PointInterface";
|
import {PointInterface} from "../Model/Websocket/PointInterface";
|
||||||
import {ProtobufUtils} from "../Model/Websocket/ProtobufUtils";
|
import {ProtobufUtils} from "../Model/Websocket/ProtobufUtils";
|
||||||
@ -549,54 +549,54 @@ export class SocketManager implements ZoneEventListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public emitSendUserMessage(userUuid: string, message: string, type: string): void {
|
public async emitSendUserMessage(userUuid: string, message: string, type: string, roomId: string) {
|
||||||
const client = this.searchClientByUuid(userUuid);
|
const client = this.searchClientByUuid(userUuid);
|
||||||
if(!client){
|
if(client) {
|
||||||
throw Error('client not found');
|
const adminMessage = new SendUserMessage();
|
||||||
|
adminMessage.setMessage(message);
|
||||||
|
adminMessage.setType(type);
|
||||||
|
const pusherToBackMessage = new PusherToBackMessage();
|
||||||
|
pusherToBackMessage.setSendusermessage(adminMessage);
|
||||||
|
client.backConnection.write(pusherToBackMessage);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const adminMessage = new SendUserMessage();
|
const backConnection = await apiClientRepository.getClient(roomId);
|
||||||
adminMessage.setMessage(message);
|
const backAdminMessage = new AdminMessage();
|
||||||
adminMessage.setType(type);
|
backAdminMessage.setMessage(message);
|
||||||
const pusherToBackMessage = new PusherToBackMessage();
|
backAdminMessage.setRoomid(roomId);
|
||||||
pusherToBackMessage.setSendusermessage(adminMessage);
|
backAdminMessage.setRecipientuuid(userUuid);
|
||||||
client.backConnection.write(pusherToBackMessage);
|
backAdminMessage.setType(type);
|
||||||
|
backConnection.sendAdminMessage(backAdminMessage, (error) => {
|
||||||
/*const backConnection = await apiClientRepository.getClient(client.roomId);
|
|
||||||
const adminMessage = new AdminMessage();
|
|
||||||
adminMessage.setMessage(message);
|
|
||||||
adminMessage.setRoomid(client.roomId);
|
|
||||||
adminMessage.setRecipientuuid(client.userUuid);
|
|
||||||
backConnection.sendAdminMessage(adminMessage, (error) => {
|
|
||||||
if (error !== null) {
|
if (error !== null) {
|
||||||
console.error('Error while sending admin message', error);
|
console.error('Error while sending admin message', error);
|
||||||
}
|
}
|
||||||
});*/
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public emitBan(userUuid: string, message: string, type: string): void {
|
public async emitBan(userUuid: string, message: string, type: string, roomId: string) {
|
||||||
const client = this.searchClientByUuid(userUuid);
|
const client = this.searchClientByUuid(userUuid);
|
||||||
if(!client){
|
if(client) {
|
||||||
throw Error('client not found');
|
const banUserMessage = new BanUserMessage();
|
||||||
|
banUserMessage.setMessage(message);
|
||||||
|
banUserMessage.setType(type);
|
||||||
|
const pusherToBackMessage = new PusherToBackMessage();
|
||||||
|
pusherToBackMessage.setBanusermessage(banUserMessage);
|
||||||
|
client.backConnection.write(pusherToBackMessage);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const banUserMessage = new BanUserMessage();
|
const backConnection = await apiClientRepository.getClient(roomId);
|
||||||
banUserMessage.setMessage(message);
|
const banMessage = new BanMessage();
|
||||||
banUserMessage.setType(type);
|
banMessage.setMessage(message);
|
||||||
const pusherToBackMessage = new PusherToBackMessage();
|
banMessage.setRoomid(roomId);
|
||||||
pusherToBackMessage.setBanusermessage(banUserMessage);
|
banMessage.setRecipientuuid(userUuid);
|
||||||
client.backConnection.write(pusherToBackMessage);
|
banMessage.setType(type);
|
||||||
|
backConnection.ban(banMessage, (error) => {
|
||||||
/*const backConnection = await apiClientRepository.getClient(client.roomId);
|
|
||||||
const adminMessage = new AdminMessage();
|
|
||||||
adminMessage.setMessage(message);
|
|
||||||
adminMessage.setRoomid(client.roomId);
|
|
||||||
adminMessage.setRecipientuuid(client.userUuid);
|
|
||||||
backConnection.sendAdminMessage(adminMessage, (error) => {
|
|
||||||
if (error !== null) {
|
if (error !== null) {
|
||||||
console.error('Error while sending admin message', error);
|
console.error('Error while sending admin message', error);
|
||||||
}
|
}
|
||||||
});*/
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user