@colyseus/core
Version:
Multiplayer Framework for Node.js.
58 lines (57 loc) • 1.39 kB
JavaScript
// packages/core/src/matchmaker/driver/local/RoomData.ts
import { spliceOne } from "../../../utils/Utils.mjs";
var RoomData = class {
constructor(initialValues, rooms) {
this.clients = 0;
this.locked = false;
this.private = false;
this.maxClients = Infinity;
this.unlisted = false;
this.createdAt = /* @__PURE__ */ new Date();
for (const field in initialValues) {
if (initialValues.hasOwnProperty(field)) {
this[field] = initialValues[field];
}
}
Object.defineProperty(this, "$rooms", {
value: rooms,
enumerable: false,
writable: true
});
}
save() {
if (this.$rooms.indexOf(this) === -1) {
this.$rooms.push(this);
}
}
updateOne(operations) {
if (operations.$set) {
for (const field in operations.$set) {
if (operations.$set.hasOwnProperty(field)) {
this[field] = operations.$set[field];
}
}
}
if (operations.$inc) {
for (const field in operations.$inc) {
if (operations.$inc.hasOwnProperty(field)) {
this[field] += operations.$inc[field];
}
}
}
}
remove() {
if (!this.$rooms) {
return;
}
const roomIndex = this.$rooms.indexOf(this);
if (roomIndex === -1) {
return;
}
spliceOne(this.$rooms, roomIndex);
this.$rooms = null;
}
};
export {
RoomData
};