Updating GroupDescriptors on LockGroupMessage
This commit is contained in:
@@ -22,6 +22,7 @@ import {
|
||||
FollowAbortMessage,
|
||||
VariableMessage,
|
||||
LockGroupMessage,
|
||||
LockGroupPromptMessage,
|
||||
} from "../Messages/generated/messages_pb";
|
||||
import { UserMovesMessage } from "../Messages/generated/messages_pb";
|
||||
import { TemplatedApp } from "uWebSockets.js";
|
||||
@@ -495,8 +496,11 @@ export class IoSocketController {
|
||||
);
|
||||
} else if (message.hasFollowabortmessage()) {
|
||||
socketManager.handleFollowAbort(client, message.getFollowabortmessage() as FollowAbortMessage);
|
||||
} else if (message.hasLockgroupmessage()) {
|
||||
socketManager.handleLockGroup(client, message.getLockgroupmessage() as LockGroupMessage);
|
||||
} else if (message.hasLockgrouppromptmessage()) {
|
||||
socketManager.handleLockGroup(
|
||||
client,
|
||||
message.getLockgrouppromptmessage() as LockGroupPromptMessage
|
||||
);
|
||||
}
|
||||
|
||||
/* Ok is false if backpressure was built up, wait for drain */
|
||||
|
||||
@@ -63,6 +63,7 @@ export class PositionDispatcher {
|
||||
const addedZones = [...newZones].filter((x) => !oldZones.has(x));
|
||||
const removedZones = [...oldZones].filter((x) => !newZones.has(x));
|
||||
|
||||
console.log("START LISTENING");
|
||||
for (const zone of addedZones) {
|
||||
zone.startListening(socket);
|
||||
}
|
||||
|
||||
@@ -140,6 +140,10 @@ export class GroupDescriptor {
|
||||
return new GroupDescriptor(message.getGroupid(), message.getGroupsize(), position, message.getLocked());
|
||||
}
|
||||
|
||||
public updateFromLockGroupMessage(message: LockGroupMessage): void {
|
||||
this.locked = message.getLock();
|
||||
}
|
||||
|
||||
public update(groupDescriptor: GroupDescriptor) {
|
||||
this.groupSize = groupDescriptor.groupSize;
|
||||
this.position = groupDescriptor.position;
|
||||
@@ -214,11 +218,17 @@ export class Zone {
|
||||
this.notifyGroupMove(groupDescriptor);
|
||||
} else {
|
||||
this.groups.set(groupId, groupDescriptor);
|
||||
|
||||
const fromZone = groupUpdateZoneMessage.getFromzone();
|
||||
|
||||
this.notifyGroupEnter(groupDescriptor, fromZone?.toObject());
|
||||
}
|
||||
} else if (message.hasLockgroupmessage()) {
|
||||
const lockGroupMessage = message.getLockgroupmessage() as LockGroupMessage;
|
||||
const groupId = lockGroupMessage.getGroupid();
|
||||
const oldGroupDescriptor = this.groups.get(groupId);
|
||||
if (oldGroupDescriptor !== undefined) {
|
||||
oldGroupDescriptor.updateFromLockGroupMessage(lockGroupMessage);
|
||||
this.notifyLockGroup(lockGroupMessage);
|
||||
}
|
||||
} else if (message.hasUserleftzonemessage()) {
|
||||
const userLeftMessage = message.getUserleftzonemessage() as UserLeftZoneMessage;
|
||||
this.users.delete(userLeftMessage.getUserid());
|
||||
|
||||
@@ -39,6 +39,7 @@ import {
|
||||
WorldFullMessage,
|
||||
PlayerDetailsUpdatedMessage,
|
||||
LockGroupMessage,
|
||||
LockGroupPromptMessage,
|
||||
} from "../Messages/generated/messages_pb";
|
||||
import { ProtobufUtils } from "../Model/Websocket/ProtobufUtils";
|
||||
import { ADMIN_API_URL, JITSI_ISS, JITSI_URL, SECRET_JITSI_KEY } from "../Enum/EnvironmentVariable";
|
||||
@@ -293,9 +294,9 @@ export class SocketManager implements ZoneEventListener {
|
||||
client.backConnection.write(pusherToBackMessage);
|
||||
}
|
||||
|
||||
handleLockGroup(client: ExSocketInterface, message: LockGroupMessage): void {
|
||||
handleLockGroup(client: ExSocketInterface, message: LockGroupPromptMessage): void {
|
||||
const pusherToBackMessage = new PusherToBackMessage();
|
||||
pusherToBackMessage.setLockgroupmessage(message);
|
||||
pusherToBackMessage.setLockgrouppromptmessage(message);
|
||||
client.backConnection.write(pusherToBackMessage);
|
||||
}
|
||||
|
||||
@@ -614,6 +615,7 @@ export class SocketManager implements ZoneEventListener {
|
||||
|
||||
public onGroupEnters(group: GroupDescriptor, listener: ExSocketInterface): void {
|
||||
const subMessage = new SubMessage();
|
||||
console.log("ON GROUP ENTERS");
|
||||
subMessage.setGroupupdatemessage(group.toGroupUpdateMessage());
|
||||
|
||||
emitInBatch(listener, subMessage);
|
||||
|
||||
Reference in New Issue
Block a user