import Room from "./Room"; export class RoomInfo { public room : Room; public info : {[key:string]: any} = {}; constructor(room : Room){ this.room = room; this.room.on('updateinfo',(name:string,value:any) => { this.info[name] = value; }) }; public async fetch(name?:string) { if(name) { let rinfo = await this.room.mwse.EventPooling.request(({ type: "room/getinfo", roomId: this.room.roomId, name })); if(rinfo.status == "success") { this.info = rinfo.value; }else console.warn(rinfo.message); }else{ let rinfo = await this.room.mwse.EventPooling.request(({ type: "room/info", roomId: this.room.roomId })); if(rinfo.status == "success") { this.info = rinfo.value; }else console.warn(rinfo.message); }; return this.info; } public set(name: string, value: string | number) { this.info[name] = value; this.room.mwse.WSTSProtocol.SendOnly({ type: "room/setinfo", roomId: this.room.roomId, name, value }); } public get(name?:string) { return name ? this.info[name] : this.info; } }