send group userIds to players
This commit is contained in:
@@ -147,9 +147,9 @@ export class Group implements Movable {
|
||||
|
||||
join(user: User): void {
|
||||
// Broadcast on the right event
|
||||
this.connectCallback(user, this);
|
||||
this.users.add(user);
|
||||
user.group = this;
|
||||
this.connectCallback(user, this);
|
||||
}
|
||||
|
||||
leave(user: User): void {
|
||||
|
||||
@@ -38,6 +38,7 @@ import {
|
||||
SubToPusherRoomMessage,
|
||||
SetPlayerDetailsMessage,
|
||||
PlayerDetailsUpdatedMessage,
|
||||
GroupUsersUpdateMessage,
|
||||
} from "../Messages/generated/messages_pb";
|
||||
import { User, UserSocket } from "../Model/User";
|
||||
import { ProtobufUtils } from "../Model/Websocket/ProtobufUtils";
|
||||
@@ -265,8 +266,14 @@ export class SocketManager {
|
||||
if (roomPromise === undefined) {
|
||||
roomPromise = GameRoom.create(
|
||||
roomId,
|
||||
(user: User, group: Group) => this.joinWebRtcRoom(user, group),
|
||||
(user: User, group: Group) => this.disConnectedUser(user, group),
|
||||
(user: User, group: Group) => {
|
||||
this.joinWebRtcRoom(user, group);
|
||||
this.sendGroupUsersUpdateToGroupMembers(group);
|
||||
},
|
||||
(user: User, group: Group) => {
|
||||
this.disConnectedUser(user, group);
|
||||
this.sendGroupUsersUpdateToGroupMembers(group);
|
||||
},
|
||||
MINIMUM_DISTANCE,
|
||||
GROUP_RADIUS,
|
||||
(thing: Movable, fromZone: Zone | null, listener: ZoneSocket) =>
|
||||
@@ -438,6 +445,19 @@ export class SocketManager {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
private sendGroupUsersUpdateToGroupMembers(group: Group) {
|
||||
const groupUserUpdateMessage = new GroupUsersUpdateMessage();
|
||||
groupUserUpdateMessage.setGroupid(group.getId());
|
||||
groupUserUpdateMessage.setUseridsList(group.getUsers().map((user) => user.id));
|
||||
|
||||
const clientMessage = new ServerToClientMessage();
|
||||
clientMessage.setGroupusersupdatemessage(groupUserUpdateMessage);
|
||||
|
||||
group.getUsers().forEach((currentUser: User) => {
|
||||
currentUser.socket.write(clientMessage);
|
||||
});
|
||||
}
|
||||
|
||||
private joinWebRtcRoom(user: User, group: Group) {
|
||||
for (const otherUser of group.getUsers()) {
|
||||
if (user === otherUser) {
|
||||
|
||||
Reference in New Issue
Block a user