Custom Rooms + Server global
All checks were successful
Galvanic Corrosion Cross-Compile / build (push) Successful in 49s
All checks were successful
Galvanic Corrosion Cross-Compile / build (push) Successful in 49s
* Added Storage and room saving (will be moved to events later)
* Moved `UnifiedProfile` to new `Server` object, along with `CDN`
- Will move `Rooms` and others to this later
This commit is contained in:
@@ -16,13 +16,14 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
import Logging from "@proxnet/undead-logging";
|
||||
import UnifiedProfile, { Profile } from "../profiles.ts";
|
||||
import { Profile } from "../profiles.ts";
|
||||
import { RoomInstance, InstanceOptions } from "./types.ts";
|
||||
import { Config } from "../../config.ts";
|
||||
import Presence from "./presence.ts";
|
||||
import { RoomFactory } from "../content/rooms/RoomFactory.ts";
|
||||
import { RoomDataTypes } from "../content/rooms/DataTypes.ts";
|
||||
import { PushNotificationId } from "../../socket/types.ts";
|
||||
import Server from "../server.ts";
|
||||
|
||||
const log = new Logging("Instances");
|
||||
|
||||
@@ -55,13 +56,14 @@ export class Instance {
|
||||
async init(options: InstanceOptions) {
|
||||
|
||||
const scene = options.Room.Scenes[options.SceneIndex];
|
||||
if (!scene) throw new Error("The specified scene did not exist.");
|
||||
if (!scene) throw new Error("The specified scene does not exist.");
|
||||
|
||||
let instanceName;
|
||||
if (scene.Name == 'Home' || scene.Name === options.Room.Room.Name) instanceName = `^${options.Room.Room.Name}`;
|
||||
else instanceName = `^${options.Room.Room.Name}.${scene.Name}`;
|
||||
if (options.IsDorm) {
|
||||
const dormCreatorPlayer = UnifiedProfile.get(options.Room.Room.CreatorPlayerId);
|
||||
const dormCreatorPlayer = Server.UnifiedProfile.get(options.Room.Room.CreatorPlayerId);
|
||||
if (!dormCreatorPlayer) throw new Error("Creator of dorm does not exist.");
|
||||
const player = await dormCreatorPlayer.export();
|
||||
if (player) instanceName = `@${player.displayName}'s Dorm`;
|
||||
}
|
||||
@@ -95,6 +97,10 @@ export class Instance {
|
||||
player.setInstance(null);
|
||||
}
|
||||
|
||||
updatePlayers() {
|
||||
for (const player of this.#players.values()) player.getSocketHandler()?.sendNotification(PushNotificationId.SubscriptionUpdateGameSession, this.snapshot());
|
||||
}
|
||||
|
||||
async addPlayer(player: Profile) {
|
||||
const currentInstance = player.getInstance();
|
||||
if (currentInstance && currentInstance.equalInstance(this)) return;
|
||||
|
||||
Reference in New Issue
Block a user