Small Bug fixed when member send msg to a member that blocked guest broadcasts

This commit is contained in:
NigeParis 2026-01-08 13:19:29 +01:00 committed by Nigel
parent b89fa8504a
commit dda51c1499

View file

@ -49,32 +49,30 @@ export async function sendPrivMessage(fastify: FastifyInstance, data: ClientMess
const sockets = await fastify.io.fetchSockets(); const sockets = await fastify.io.fetchSockets();
const allUsers: User[] = fastify.db.getAllUsers() ?? []; const allUsers: User[] = fastify.db.getAllUsers() ?? [];
const senderSocket = sockets.find(socket => socket.id === sender); const senderSocket = sockets.find(socket => socket.id === sender);
for (const socket of sockets) { for (const socket of sockets) {
if (socket.id === sender) continue;
const UserID = getUserByName(allUsers, data.user)?.id ?? ''; const UserID = getUserByName(allUsers, data.user)?.id ?? '';
const list:BlockRelation[] = whoBlockedMe(fastify, UserID); const list:BlockRelation[] = whoBlockedMe(fastify, UserID);
const clientInfo = clientChat.get(socket.id); const clientInfo = clientChat.get(socket.id);
if (!clientInfo?.user) { if (!clientInfo) continue;
continue;
}
let blockMsgFlag: boolean = false; let blockMsgFlag: boolean = false;
const UserByID = getUserByName(allUsers, clientInfo.user) ?? ''; const receiverUser: User | null = getUserByName(allUsers, clientInfo.user);
if (UserByID === '') { if (!receiverUser) return;
return;
}
const user: string = clientChat.get(socket.id)?.user ?? ''; const user: string = clientChat.get(socket.id)?.user ?? '';
const atUser = `@${user}`; const targetUser = `@${user}`;
if (atUser !== data.command || atUser === '' || data.text === '') { if (targetUser !== data.command || targetUser === '' || data.text === '') {
continue; continue;
} }
blockMsgFlag = checkNamePair(list, UserID, UserByID.id) || false; blockMsgFlag = checkNamePair(list, UserID, receiverUser.id) || false;
if (socket.id === sender) {
continue;
}
if (!blockMsgFlag) { if (!blockMsgFlag) {
socket.emit('MsgObjectServer', { message: data }); socket.emit('MsgObjectServer', { message: data });
fastify.log.info({ senderID: `${UserID}`, msgPriv: data.text, target: `${UserByID.id}` }); fastify.log.info({ senderID: `${UserID}`, msgPriv: data.text, target: `${receiverUser.id}` });
if (senderSocket) { if (senderSocket) {
senderSocket.emit('privMessageCopy', `${data.command}: ${data.text}🔒`); senderSocket.emit('privMessageCopy', `${data.command}: ${data.text}🔒`);
} }