gamelet-cli
Version:
Download project from code.gamelet.com, edit/test in vscode and sync back to server.
58 lines • 4.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.userManager = exports.UserManager = void 0;
const IntUtil_1 = require("../utils/IntUtil");
const StringUtil_1 = require("../utils/StringUtil");
const PlayerManager_1 = require("./PlayerManager");
class UserManager {
constructor() {
this.users = [];
this.userIconColors = [
'blue',
'green',
'orange',
'pink',
'red',
'yellow',
];
this.users.push({
username: 'LocalServerMonitor',
nickname: 'Monitor',
token: 'localServerMonitor',
admin: true,
iconUrl: 'https://gamelet.online/img/default_usericon_red.png',
ip: '1.1.1.1',
});
}
getByToken(toiken) {
return this.users.find(u => u.token == toiken);
}
getByUsername(username) {
return this.users.find(u => u.username == username);
}
listByUsernames(usernames) {
return this.users.filter(u => usernames.includes(u.username));
}
login(clientCode, guest) {
let onlineUsernames = PlayerManager_1.playerManager.listPlayers().map(player => player.user.username);
let user = this.users.find(u => !onlineUsernames.includes(u.username) && !u.guest == !guest && !u.admin);
if (!user) {
let userIndex = this.users.length + 1;
let username = `DevUser_${userIndex}@devserver`;
let userColor = this.userIconColors[userIndex % this.userIconColors.length];
user = {
username: username,
nickname: `User ${userIndex}`,
iconUrl: `https://gamelet.online/img/default_usericon_${userColor}.png`,
token: `${username}|${clientCode}|Dev` + StringUtil_1.StringUtil.generateRandomString(3),
ip: [192, 168, IntUtil_1.IntUtil.randInt(100, 200), IntUtil_1.IntUtil.randInt(100, 200)].join('.'),
guest: !!guest,
};
this.users.push(user);
}
return user;
}
}
exports.UserManager = UserManager;
exports.userManager = new UserManager();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlck1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmVyL21hbmFnZXJzL1VzZXJNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUEyQztBQUMzQyxvREFBaUQ7QUFDakQsbURBQWdEO0FBRWhELE1BQWEsV0FBVztJQWFwQjtRQVhRLFVBQUssR0FBYyxFQUFFLENBQUM7UUFFdEIsbUJBQWMsR0FBYTtZQUMvQixNQUFNO1lBQ04sT0FBTztZQUNQLFFBQVE7WUFDUixNQUFNO1lBQ04sS0FBSztZQUNMLFFBQVE7U0FDWCxDQUFDO1FBR0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDWixRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLEtBQUssRUFBRSxvQkFBb0I7WUFDM0IsS0FBSyxFQUFFLElBQUk7WUFDWCxPQUFPLEVBQUUscURBQXFEO1lBQzlELEVBQUUsRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFDRCxVQUFVLENBQUMsTUFBYztRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQWdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFrQixFQUFFLEtBQWM7UUFDcEMsSUFBSSxlQUFlLEdBQUcsNkJBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RGLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekcsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN0QyxJQUFJLFFBQVEsR0FBRyxXQUFXLFNBQVMsWUFBWSxDQUFDO1lBQ2hELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUUsSUFBSSxHQUFHO2dCQUNILFFBQVEsRUFBRSxRQUFRO2dCQUNsQixRQUFRLEVBQUUsUUFBUSxTQUFTLEVBQUU7Z0JBQzdCLE9BQU8sRUFBRSwrQ0FBK0MsU0FBUyxNQUFNO2dCQUN2RSxLQUFLLEVBQUUsR0FBRyxRQUFRLElBQUksVUFBVSxNQUFNLEdBQUcsdUJBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7Z0JBQzNFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsaUJBQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLGlCQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQzlFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSzthQUNqQixDQUFBO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFyREQsa0NBcURDO0FBQ1ksUUFBQSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyJ9