availabilityStatus info from websocket

This commit is contained in:
Piotr 'pwh' Hanusiak
2022-05-10 15:10:01 +02:00
committed by David Négrier
parent 2b15faf4e8
commit a566f8d661
17 changed files with 86 additions and 53 deletions
@@ -20,6 +20,7 @@ import {
FollowAbortMessage,
VariableMessage,
LockGroupPromptMessage,
AvailabilityStatus,
} from "../Messages/generated/messages_pb";
import { UserMovesMessage } from "../Messages/generated/messages_pb";
import { parse } from "query-string";
@@ -53,6 +54,7 @@ interface UpgradeData {
roomId: string;
name: string;
companion: CompanionMessage | undefined;
availabilityStatus: AvailabilityStatus;
characterLayers: WokaDetail[];
messages: unknown[];
tags: string[];
@@ -259,6 +261,7 @@ export class IoSocketController {
const left = Number(query.left);
const right = Number(query.right);
const name = query.name;
const availabilityStatus = Number(query.availabilityStatus);
let companion: CompanionMessage | undefined = undefined;
@@ -270,6 +273,9 @@ export class IoSocketController {
if (typeof name !== "string") {
throw new Error("Expecting name");
}
if (typeof availabilityStatus !== "number") {
throw new Error("Expecting availability status");
}
if (name === "") {
throw new Error("No empty name");
}
@@ -411,6 +417,7 @@ export class IoSocketController {
roomId,
name,
companion,
availabilityStatus,
characterLayers: characterLayerObjs,
messages: memberMessages,
tags: memberTags,
@@ -612,6 +619,7 @@ export class IoSocketController {
client.visitCardUrl = ws.visitCardUrl;
client.characterLayers = ws.characterLayers;
client.companion = ws.companion;
client.availabilityStatus = ws.availabilityStatus;
client.roomId = ws.roomId;
client.listenedZones = new Set<Zone>();
return client;
@@ -2,6 +2,7 @@ import { PointInterface } from "./PointInterface";
import { Identificable } from "./Identificable";
import { ViewportInterface } from "../../Model/Websocket/ViewportMessage";
import {
AvailabilityStatus,
BatchMessage,
CompanionMessage,
PusherToBackMessage,
@@ -26,6 +27,7 @@ export interface ExSocketInterface extends compressors.WebSocket, Identificable
position: PointInterface;
viewport: ViewportInterface;
companion?: CompanionMessage;
availabilityStatus: AvailabilityStatus;
/**
* Pushes an event that will be sent in the next batch of events
*/
+6 -6
View File
@@ -50,7 +50,7 @@ export class UserDescriptor {
private name: string,
private characterLayers: CharacterLayerMessage[],
private position: PositionMessage,
private status: AvailabilityStatus,
private availabilityStatus: AvailabilityStatus,
private visitCardUrl: string | null,
private companion?: CompanionMessage,
private outlineColor?: number
@@ -71,7 +71,7 @@ export class UserDescriptor {
message.getName(),
message.getCharacterlayersList(),
position,
message.getStatus(),
message.getAvailabilitystatus(),
message.getVisitcardurl(),
message.getCompanion(),
message.getHasoutline() ? message.getOutlinecolor() : undefined
@@ -92,9 +92,9 @@ export class UserDescriptor {
} else {
this.outlineColor = playerDetails.getOutlinecolor()?.getValue();
}
const status = playerDetails.getStatus();
if (status !== undefined) {
this.status = status;
const availabilityStatus = playerDetails.getAvailabilitystatus();
if (availabilityStatus !== undefined) {
this.availabilityStatus = availabilityStatus;
}
}
@@ -105,7 +105,7 @@ export class UserDescriptor {
userJoinedMessage.setName(this.name);
userJoinedMessage.setCharacterlayersList(this.characterLayers);
userJoinedMessage.setPosition(this.position);
userJoinedMessage.setStatus(this.status);
userJoinedMessage.setAvailabilitystatus(this.availabilityStatus);
if (this.visitCardUrl) {
userJoinedMessage.setVisitcardurl(this.visitCardUrl);
}
+1
View File
@@ -175,6 +175,7 @@ export class SocketManager implements ZoneEventListener {
joinRoomMessage.setIpaddress(client.IPAddress);
joinRoomMessage.setRoomid(client.roomId);
joinRoomMessage.setName(client.name);
joinRoomMessage.setAvailabilitystatus(client.availabilityStatus);
joinRoomMessage.setPositionmessage(ProtobufUtils.toPositionMessage(client.position));
joinRoomMessage.setTagList(client.tags);