3.0.0 • Published 1 year ago

@jgtools/lobbyserver v3.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

LobbyServer

npm npm GitHub

Lobby system for online games

Installation

Using npm

npm i @jgtools/lobbyserver
import LobbyServer from "@jgtools/lobbyserver";
// ...

Using cdn

<script type="module">
    import LobbyServer from "https://cdn.jsdelivr.net/npm/@jgtools/lobbyserver@1.0.3/dist/index.min.js";
    // ...
</script>

Usage

import LobbyServer, { LobbyUser_I } from "@jgtools/lobbyserver";

interface LobbyPlayer_I extends LobbyUser_I {
  color: number;
}
interface MetaData_I {
  maxPlayers: number;
}

const lobby = new LobbyServer<MetaData_I, LobbyPlayer_I>({
  maxPlayers: 8,
});

const user: LobbyPlayer_I = {
  id: "123",
  name: "Bob",
  color: 0xff0000,
};

lobby.addUser(user);
console.log(lobby.getUsers());
lobby.setMeta(user, { maxPlayers: 9 });
console.log(lobby.getMeta());
lobby.removeUser(user.id);
console.log(lobby.getUsers());
lobby.addUser(user);

const u = lobby.getUsers().get("123");
if (u) {
  console.log(u.id);
  console.log(u.color);
}

License

MIT