Merge branch 'develop' into master
This commit is contained in:
commit
68431c5242
54 changed files with 1994 additions and 2067 deletions
|
@ -1,5 +1,5 @@
|
|||
import Axios from "axios";
|
||||
import { PUSHER_URL, START_ROOM_URL } from "../Enum/EnvironmentVariable";
|
||||
import { PUSHER_URL } from "../Enum/EnvironmentVariable";
|
||||
import { RoomConnection } from "./RoomConnection";
|
||||
import type { OnConnectInterface, PositionInterface, ViewportInterface } from "./ConnexionModels";
|
||||
import { GameConnexionTypes, urlManager } from "../Url/UrlManager";
|
||||
|
|
|
@ -14,6 +14,7 @@ const audioPlayerMuteKey = "audioMute";
|
|||
const helpCameraSettingsShown = "helpCameraSettingsShown";
|
||||
const fullscreenKey = "fullscreen";
|
||||
const forceCowebsiteTriggerKey = "forceCowebsiteTrigger";
|
||||
const ignoreFollowRequests = "ignoreFollowRequests";
|
||||
const lastRoomUrl = "lastRoomUrl";
|
||||
const authToken = "authToken";
|
||||
const state = "state";
|
||||
|
@ -128,6 +129,13 @@ class LocalUserStore {
|
|||
return localStorage.getItem(forceCowebsiteTriggerKey) === "true";
|
||||
}
|
||||
|
||||
setIgnoreFollowRequests(value: boolean): void {
|
||||
localStorage.setItem(ignoreFollowRequests, value.toString());
|
||||
}
|
||||
getIgnoreFollowRequests(): boolean {
|
||||
return localStorage.getItem(ignoreFollowRequests) === "true";
|
||||
}
|
||||
|
||||
setLastRoomUrl(roomUrl: string): void {
|
||||
localStorage.setItem(lastRoomUrl, roomUrl.toString());
|
||||
if ("caches" in window) {
|
||||
|
|
|
@ -30,6 +30,9 @@ import {
|
|||
PingMessage,
|
||||
EmoteEventMessage,
|
||||
EmotePromptMessage,
|
||||
FollowRequestMessage,
|
||||
FollowConfirmationMessage,
|
||||
FollowAbortMessage,
|
||||
SendUserMessage,
|
||||
BanUserMessage,
|
||||
VariableMessage,
|
||||
|
@ -59,7 +62,10 @@ import { adminMessagesService } from "./AdminMessagesService";
|
|||
import { worldFullMessageStream } from "./WorldFullMessageStream";
|
||||
import { connectionManager } from "./ConnectionManager";
|
||||
import { emoteEventStream } from "./EmoteEventStream";
|
||||
import { get } from "svelte/store";
|
||||
import { warningContainerStore } from "../Stores/MenuStore";
|
||||
import { followStateStore, followRoleStore, followUsersStore } from "../Stores/FollowStore";
|
||||
import { localUserStore } from "./LocalUserStore";
|
||||
|
||||
const manualPingDelay = 20000;
|
||||
|
||||
|
@ -262,6 +268,21 @@ export class RoomConnection implements RoomConnection {
|
|||
warningContainerStore.activateWarningContainer();
|
||||
} else if (message.hasRefreshroommessage()) {
|
||||
//todo: implement a way to notify the user the room was refreshed.
|
||||
} else if (message.hasFollowrequestmessage()) {
|
||||
const requestMessage = message.getFollowrequestmessage() as FollowRequestMessage;
|
||||
if (!localUserStore.getIgnoreFollowRequests()) {
|
||||
followUsersStore.addFollowRequest(requestMessage.getLeader());
|
||||
}
|
||||
} else if (message.hasFollowconfirmationmessage()) {
|
||||
const responseMessage = message.getFollowconfirmationmessage() as FollowConfirmationMessage;
|
||||
followUsersStore.addFollower(responseMessage.getFollower());
|
||||
} else if (message.hasFollowabortmessage()) {
|
||||
const abortMessage = message.getFollowabortmessage() as FollowAbortMessage;
|
||||
if (get(followRoleStore) === "follower") {
|
||||
followUsersStore.stopFollowing();
|
||||
} else {
|
||||
followUsersStore.removeFollower(abortMessage.getFollower());
|
||||
}
|
||||
} else if (message.hasErrormessage()) {
|
||||
const errorMessage = message.getErrormessage() as ErrorMessage;
|
||||
console.error("An error occurred server side: " + errorMessage.getMessage());
|
||||
|
@ -746,6 +767,43 @@ export class RoomConnection implements RoomConnection {
|
|||
this.socket.send(clientToServerMessage.serializeBinary().buffer);
|
||||
}
|
||||
|
||||
public emitFollowRequest(): void {
|
||||
if (!this.userId) {
|
||||
return;
|
||||
}
|
||||
const message = new FollowRequestMessage();
|
||||
message.setLeader(this.userId);
|
||||
const clientToServerMessage = new ClientToServerMessage();
|
||||
clientToServerMessage.setFollowrequestmessage(message);
|
||||
this.socket.send(clientToServerMessage.serializeBinary().buffer);
|
||||
}
|
||||
|
||||
public emitFollowConfirmation(): void {
|
||||
if (!this.userId) {
|
||||
return;
|
||||
}
|
||||
const message = new FollowConfirmationMessage();
|
||||
message.setLeader(get(followUsersStore)[0]);
|
||||
message.setFollower(this.userId);
|
||||
const clientToServerMessage = new ClientToServerMessage();
|
||||
clientToServerMessage.setFollowconfirmationmessage(message);
|
||||
this.socket.send(clientToServerMessage.serializeBinary().buffer);
|
||||
}
|
||||
|
||||
public emitFollowAbort(): void {
|
||||
const isLeader = get(followRoleStore) === "leader";
|
||||
const hasFollowers = get(followUsersStore).length > 0;
|
||||
if (!this.userId || (isLeader && !hasFollowers)) {
|
||||
return;
|
||||
}
|
||||
const message = new FollowAbortMessage();
|
||||
message.setLeader(isLeader ? this.userId : get(followUsersStore)[0]);
|
||||
message.setFollower(isLeader ? 0 : this.userId);
|
||||
const clientToServerMessage = new ClientToServerMessage();
|
||||
clientToServerMessage.setFollowabortmessage(message);
|
||||
this.socket.send(clientToServerMessage.serializeBinary().buffer);
|
||||
}
|
||||
|
||||
public getAllTags(): string[] {
|
||||
return this.tags;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue