48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
import Peer from "./Peer";
 | 
						|
 | 
						|
export class PeerInfo
 | 
						|
{
 | 
						|
    public peer : Peer;
 | 
						|
    public info : {[key:string]: any} = {};
 | 
						|
    constructor(mwse : Peer){
 | 
						|
        this.peer = mwse;
 | 
						|
    };
 | 
						|
    public async fetch(name?:string)
 | 
						|
    {
 | 
						|
        if(name)
 | 
						|
        {
 | 
						|
            let rinfo = await this.peer.mwse.EventPooling.request(({
 | 
						|
                type: "peer/info",
 | 
						|
                peer: this.peer.socketId,
 | 
						|
                name
 | 
						|
            }));
 | 
						|
            if(rinfo.status == "success")
 | 
						|
            {
 | 
						|
                this.info = rinfo.info;
 | 
						|
            }else console.warn(rinfo.message);
 | 
						|
        }else{
 | 
						|
            let rinfo = await this.peer.mwse.EventPooling.request(({
 | 
						|
                type: "peer/info",
 | 
						|
                peer: this.peer.socketId
 | 
						|
            }));
 | 
						|
            if(rinfo.status == "success")
 | 
						|
            {
 | 
						|
                this.info = rinfo.info;
 | 
						|
            }else console.warn(rinfo.message);
 | 
						|
        };
 | 
						|
        return this.info;
 | 
						|
    }
 | 
						|
    public set(name: string, value: string | number)
 | 
						|
    {
 | 
						|
        this.info[name] = value;
 | 
						|
        this.peer.mwse.WSTSProtocol.SendOnly({
 | 
						|
            type: "auth/info",
 | 
						|
            name,
 | 
						|
            value
 | 
						|
        });
 | 
						|
    }
 | 
						|
    public get(name?:string)
 | 
						|
    {
 | 
						|
        return name ? this.info[name] : this.info;
 | 
						|
    }
 | 
						|
} |