FLINT AND STEEL!!!! THE NETHER!!!!!! RELEASE!!!!!!!!!
* Account bio support (fetch only route right now)
* Room cloning fixes
- Dorm Room cloning is still broken
* Instance changing fixes
* Presence: VRMovementMode and StatusVisibility updates automatically
* Routes for the above two properties
* Settings can take numbers, too (enums)
* No microtransations in my game (parental controls)
* A whole lotta routes for various unfinished but planned features
- Equipment
- Consumables
- Objectives
- Checklist (orientation rewards)
- Objectives (three daily tasks)
- Image metadata
- Community Board
- Player Events
- Storefronts
* Matchmaking instance querying
- Empty instances are not yet cleared
* Avatar items, saved avatars, save current avatar routes
* No loading screen tips for now
* Send presence at an interval over the socket
- Error FROSTBITE is reported in the game logs during bootup sometimes. Maybe due to the lack of ping messages?
* Socket push notifications
Note to self: Set up deno compilation in runners on gitea
This commit is contained in:
@@ -131,7 +131,7 @@ class RoomsBase {
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.Name, details.Room.Name),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.Description, details.Room.Description),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.CreatorPlayerId, details.Room.CreatorPlayerId),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.ImageName, `DefaultProfileImage.png`),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.ImageName, details.Room.ImageName),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.State, details.Room.State),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.Accessibility, details.Room.Accessibility),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.SupportsLevelVoting, `${details.Room.SupportsLevelVoting}`),
|
||||
@@ -144,7 +144,7 @@ class RoomsBase {
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.AllowsJuniors, `${details.Room.AllowsJuniors}`),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.RoomWarningMask, details.Room.RoomWarningMask),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.CustomRoomWarning, details.Room.CustomRoomWarning),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.DisableMicAutoMute, `${details.Room.DisableMicAutoMute}`),
|
||||
Redis.Database.hset(roomMetaRootKey, this.roomMetaKeys.DisableMicAutoMute, `${details.Room.DisableMicAutoMute ? details.Room.DisableMicAutoMute : 'null'}`),
|
||||
]);
|
||||
|
||||
for (const subroom of details.Scenes) {
|
||||
@@ -159,7 +159,7 @@ class RoomsBase {
|
||||
|
||||
await Promise.all([
|
||||
Redis.Database.hset(subRootMetaKey, this.subroomMetaKeys.RoomSceneLocationId, subroom.RoomSceneLocationId),
|
||||
Redis.Database.hset(subRootMetaKey, this.subroomMetaKeys.Name, subroom.RoomSceneLocationId),
|
||||
Redis.Database.hset(subRootMetaKey, this.subroomMetaKeys.Name, subroom.Name),
|
||||
Redis.Database.hset(subRootMetaKey, this.subroomMetaKeys.IsSandbox, `${subroom.IsSandbox}`),
|
||||
Redis.Database.hset(subRootMetaKey, this.subroomMetaKeys.DataBlobName, subroom.DataBlobName),
|
||||
Redis.Database.hset(subRootMetaKey, this.subroomMetaKeys.MaxPlayers, subroom.MaxPlayers),
|
||||
@@ -168,9 +168,9 @@ class RoomsBase {
|
||||
]);
|
||||
await Redis.Database.sadd(Redis.buildKey(Redis.KeyGroups.Rooms.Root, details.Room.RoomId.toString(), this.roomRootKeys.Subrooms), newSubId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
await Redis.Database.set(Redis.buildKey(Redis.KeyGroups.Room_Names, details.Room.Name), details.Room.RoomId);
|
||||
}
|
||||
|
||||
async cloneRoom(roomid: number, newname: string, newowner: Profile, dorm?: boolean) {
|
||||
const canBeClonedRaw = await Redis.Database.hget(Redis.buildKey(
|
||||
@@ -188,7 +188,7 @@ class RoomsBase {
|
||||
if (!canBeCloned) return null;
|
||||
const beforeRoom = await Rooms.get(roomid); // room must exist
|
||||
if (!beforeRoom || !beforeRoom.Room.CloningAllowed) return null; // room must be cloneable
|
||||
if (await Rooms.getByName(newname)) return null; // room name cannot be taken
|
||||
if (await Rooms.getByName(newname) && beforeRoom.Room.Name !== 'DormRoom') return null; // room name cannot be taken
|
||||
|
||||
const newId = await this.#getAvailableRoomId();
|
||||
beforeRoom.Room.CreatorPlayerId = newowner.getId();
|
||||
@@ -197,9 +197,9 @@ class RoomsBase {
|
||||
if (dorm) {
|
||||
beforeRoom.Room.IsAGRoom = true;
|
||||
beforeRoom.Room.IsDormRoom = true;
|
||||
beforeRoom.Room.CloningAllowed = false;
|
||||
}
|
||||
|
||||
await Redis.Database.set(Redis.buildKey(Redis.KeyGroups.Room_Names, newname), newId);
|
||||
await Rooms.#setRoom(beforeRoom);
|
||||
return beforeRoom;
|
||||
|
||||
@@ -217,17 +217,17 @@ class RoomsBase {
|
||||
|
||||
const baseDorm = await Rooms.getByName("DormRoom");
|
||||
|
||||
log.d('got base dorm');
|
||||
log.d('Base dorm existed');
|
||||
if (!baseDorm) return null;
|
||||
log.d('base dorm is not null');
|
||||
log.d('Base dorm was not null');
|
||||
const newDorm = await this.cloneRoom(baseDorm.Room.RoomId, "DormRoom", player, true);
|
||||
log.d('New dorm existed');
|
||||
if (!newDorm) return null;
|
||||
log.d('New dorm was not null');
|
||||
await Redis.Database.hset(Redis.buildKey(
|
||||
Redis.KeyGroups.Rooms.Root,
|
||||
Redis.KeyGroups.Rooms.PlayerDorms
|
||||
), player.getId().toString(), baseDorm.Room.RoomId);
|
||||
log.d('got new dorm');
|
||||
if (!newDorm) return null;
|
||||
log.d('new dorm is not null');
|
||||
), player.getId().toString(), newDorm.Room.RoomId);
|
||||
return newDorm;
|
||||
}
|
||||
|
||||
@@ -249,7 +249,7 @@ class RoomsBase {
|
||||
SupportsLevelVoting: builtinRoom.SupportsLevelVoting,
|
||||
IsAGRoom: true,
|
||||
IsDormRoom: builtinRoom.Name == 'DormRoom',
|
||||
CloningAllowed: builtinRoom.CloningAllowed,
|
||||
CloningAllowed: builtinRoom.Name == 'DormRoom' ? true : builtinRoom.CloningAllowed,
|
||||
SupportsScreens: builtinRoom.SupportsScreens,
|
||||
SupportsWalkVR: builtinRoom.SupportsWalkVR,
|
||||
SupportsTeleportVR: builtinRoom.SupportsTeleportVR,
|
||||
|
||||
Reference in New Issue
Block a user