UNPKG

gamelet-cli

Version:

Download project from code.gamelet.com, edit/test in vscode and sync back to server.

127 lines 9.44 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.userManager = exports.UserManager = void 0; const net_1 = require("../../utils/net"); const IntUtil_1 = require("../utils/IntUtil"); const StringUtil_1 = require("../utils/StringUtil"); const PlayerManager_1 = require("./PlayerManager"); const jwt = __importStar(require("jsonwebtoken")); 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; } async loginPortal(clientCode, portal, token) { try { const login = loginPortal[portal]; const user = login && await login(clientCode, portal, token); if (user) { this.users.push(user); return { user, time: (0, net_1.getServerTimestamp)(), ip: user.ip, token: user.token, }; } } catch (err) { console.error('[loginPortal error] ', err); } return null; } } exports.UserManager = UserManager; const loginPortal = { crazygames: async (clientCode, portal, token) => { const data = await (0, net_1.getUrlData)('https://sdk.crazygames.com/publicKey.json'); const key = data['publicKey']; const payload = jwt.verify(token, key, { algorithms: ["RS256"] }); const username = payload['userId'] + '.local@' + portal; return { username: username, nickname: payload['username'], iconUrl: payload['profilePictureUrl'], 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('.'), }; } }; exports.userManager = new UserManager(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlck1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmVyL21hbmFnZXJzL1VzZXJNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUFpRTtBQUNqRSw4Q0FBMkM7QUFDM0Msb0RBQWlEO0FBQ2pELG1EQUFnRDtBQUNoRCxrREFBb0M7QUFFcEMsTUFBYSxXQUFXO0lBYXBCO1FBWFEsVUFBSyxHQUFjLEVBQUUsQ0FBQztRQUV0QixtQkFBYyxHQUFhO1lBQy9CLE1BQU07WUFDTixPQUFPO1lBQ1AsUUFBUTtZQUNSLE1BQU07WUFDTixLQUFLO1lBQ0wsUUFBUTtTQUNYLENBQUM7UUFHRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNaLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsUUFBUSxFQUFFLFNBQVM7WUFDbkIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixLQUFLLEVBQUUsSUFBSTtZQUNYLE9BQU8sRUFBRSxxREFBcUQ7WUFDOUQsRUFBRSxFQUFFLFNBQVM7U0FDaEIsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUNELFVBQVUsQ0FBQyxNQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxhQUFhLENBQUMsUUFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUFtQjtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMs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