import NetworkPeer from "./peer"; import { DataConnection } from "peerjs"; import { RoomInfo, PasswordRequest, Room } from "./types"; export default class PeerServer extends NetworkPeer { private room: Room; public constructor(roomInfo: RoomInfo) { super(); this.room = { info: roomInfo, players: {} }; this.peer.on("connection", this._connection); } private async _connection(conn: DataConnection) { // Check if this connection should be allowed console.info("%s (%s) connected!", conn.metadata.name, conn.label); // Check if room is full if (this.playerCount >= this.room.info.max_players) { //TODO Reject } if (this.room.info.password != "") { this.send(conn, { kind: "password-req" }); } else { //TODO Add player } } private get playerCount(): number { return Object.keys(this.room.players).length; } }