nodito
Version:
Una librería para aprender juegos por turnos en node.
47 lines • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const User_1 = require("./User");
class UserManager {
constructor(sendToClient = (_, x) => x) {
this.sendToClient = sendToClient;
this.users = [];
}
add(x) {
if (this.find(x.getId())) {
return false;
}
this.users.push(x);
return true;
}
remove(p) {
this.users = this.users.filter((x) => x !== p);
}
find(id) {
return this.users.find((x) => x.getId() === id);
}
findByMessage(m) {
return this.users.find((x) => x.getId() === m.clientId && x.getToken() === m.token);
}
count() {
return this.users.length;
}
makeUser(id, token) {
const sendToClient = (msg) => this.sendToClient(id, msg);
return new User_1.User(id, token, sendToClient);
}
sendToAll(msg) {
this.users.forEach((x) => x.send(msg));
}
toClient() {
return this.users.map((x) => x.toClient());
}
findByName(name) {
return this.users.find((x) => x.getName() === name);
}
getUsersForRemove() {
return this.users
.filter((p) => p.secondsFromLastSeen() > 20 && !p.isPlaying());
}
}
exports.UserManager = UserManager;
//# sourceMappingURL=UserManager.js.map