UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

58 lines (57 loc) 9.67 kB
import { NetworkUtil } from "../NetworkUtil.es.js"; import Identifiers from "../Identifiers.es.js"; import DataPacket from "./DataPacket.es.js"; import Device from "../../utils/Device.es.js"; import Skin from "../../utils/skin/Skin.es.js"; import fastJWT from "fast-jwt"; //#region src/network/packet/LoginPacket.ts var LoginPacket = class extends DataPacket { static NetID = Identifiers.LoginPacket; /** * The client's xbox live ID. */ XUID; identity; /** * The client's username. */ displayName; protocol; identityPublicKey; clientRandomId; serverAddress; languageCode; device; skin; decodePayload() { this.protocol = this.readInt(); this.readUnsignedVarInt(); const chainData = JSON.parse(NetworkUtil.readLELengthASCIIString(this)); const decode = fastJWT.createDecoder(); for (const chain of chainData.chain) { const decodedChain = decode(chain); if (decodedChain.extraData) { this.XUID = decodedChain.extraData.XUID; this.identity = decodedChain.extraData.identity; this.displayName = decodedChain.extraData.displayName; } this.identityPublicKey = decodedChain.identityPublicKey; } const decodedJWT = decode(NetworkUtil.readLELengthASCIIString(this)); this.skin = Skin.fromJWT(decodedJWT); this.device = new Device({ id: decodedJWT.DeviceId, os: decodedJWT.DeviceOS, model: decodedJWT.DeviceModel, inputMode: decodedJWT.CurrentInputMode, guiScale: decodedJWT.GuiScale }); this.clientRandomId = decodedJWT.ClientRandomId; this.serverAddress = decodedJWT.ServerAddress; this.languageCode = decodedJWT.LanguageCode; } encodePayload() {} }; //#endregion export { LoginPacket as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5QYWNrZXQuZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvcGFja2V0L0xvZ2luUGFja2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmYXN0SldUIGZyb20gJ2Zhc3Qtand0JztcbmltcG9ydCB7IE5ldHdvcmtVdGlsIH0gZnJvbSAnLi4vLi4vbmV0d29yay9OZXR3b3JrVXRpbCc7XG5pbXBvcnQgRGV2aWNlIGZyb20gJy4uLy4uL3V0aWxzL0RldmljZSc7XG5pbXBvcnQgU2tpbiBmcm9tICcuLi8uLi91dGlscy9za2luL1NraW4nO1xuaW1wb3J0IElkZW50aWZpZXJzIGZyb20gJy4uL0lkZW50aWZpZXJzJztcbmltcG9ydCBEYXRhUGFja2V0IGZyb20gJy4vRGF0YVBhY2tldCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvZ2luUGFja2V0IGV4dGVuZHMgRGF0YVBhY2tldCB7XG4gICAgcHVibGljIHN0YXRpYyBOZXRJRCA9IElkZW50aWZpZXJzLkxvZ2luUGFja2V0O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNsaWVudCdzIHhib3ggbGl2ZSBJRC5cbiAgICAgKi9cbiAgICBwdWJsaWMgWFVJRCE6IHN0cmluZztcbiAgICBwdWJsaWMgaWRlbnRpdHkhOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2xpZW50J3MgdXNlcm5hbWUuXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXlOYW1lITogc3RyaW5nO1xuICAgIHB1YmxpYyBwcm90b2NvbCE6IG51bWJlcjtcbiAgICBwdWJsaWMgaWRlbnRpdHlQdWJsaWNLZXkhOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgY2xpZW50UmFuZG9tSWQhOiBudW1iZXI7XG4gICAgcHVibGljIHNlcnZlckFkZHJlc3MhOiBzdHJpbmc7XG4gICAgcHVibGljIGxhbmd1YWdlQ29kZSE6IHN0cmluZztcblxuICAgIHB1YmxpYyBkZXZpY2UhOiBEZXZpY2U7XG4gICAgcHVibGljIHNraW4hOiBTa2luO1xuXG4gICAgcHVibGljIGRlY29kZVBheWxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvdG9jb2wgPSB0aGlzLnJlYWRJbnQoKTtcblxuICAgICAgICAvLyBUT0RPOiBjb250ZW50IGxlbmd0aCwgdG8gdmFsaWRhdGUgaXQncyBsZW5naHQuLi5cbiAgICAgICAgdGhpcy5yZWFkVW5zaWduZWRWYXJJbnQoKTtcbiAgICAgICAgY29uc3QgY2hhaW5EYXRhID0gSlNPTi5wYXJzZShOZXR3b3JrVXRpbC5yZWFkTEVMZW5ndGhBU0NJSVN0cmluZyh0aGlzKSkgYXMgYW55O1xuICAgICAgICBjb25zdCBkZWNvZGUgPSBmYXN0SldULmNyZWF0ZURlY29kZXIoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNoYWluIG9mIGNoYWluRGF0YS5jaGFpbikge1xuICAgICAgICAgICAgY29uc3QgZGVjb2RlZENoYWluID0gZGVjb2RlKGNoYWluKTtcblxuICAgICAgICAgICAgaWYgKGRlY29kZWRDaGFpbi5leHRyYURhdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLlhVSUQgPSBkZWNvZGVkQ2hhaW4uZXh0cmFEYXRhLlhVSUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5pZGVudGl0eSA9IGRlY29kZWRDaGFpbi5leHRyYURhdGEuaWRlbnRpdHk7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5TmFtZSA9IGRlY29kZWRDaGFpbi5leHRyYURhdGEuZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuaWRlbnRpdHlQdWJsaWNLZXkgPSBkZWNvZGVkQ2hhaW4uaWRlbnRpdHlQdWJsaWNLZXk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvZGVkSldUID0gZGVjb2RlKE5ldHdvcmtVdGlsLnJlYWRMRUxlbmd0aEFTQ0lJU3RyaW5nKHRoaXMpKTtcbiAgICAgICAgdGhpcy5za2luID0gU2tpbi5mcm9tSldUKGRlY29kZWRKV1QpO1xuICAgICAgICB0aGlzLmRldmljZSA9IG5ldyBEZXZpY2Uoe1xuICAgICAgICAgICAgaWQ6IGRlY29kZWRKV1QuRGV2aWNlSWQsXG4gICAgICAgICAgICBvczogZGVjb2RlZEpXVC5EZXZpY2VPUyxcbiAgICAgICAgICAgIG1vZGVsOiBkZWNvZGVkSldULkRldmljZU1vZGVsLFxuICAgICAgICAgICAgaW5wdXRNb2RlOiBkZWNvZGVkSldULkN1cnJlbnRJbnB1dE1vZGUsXG4gICAgICAgICAgICBndWlTY2FsZTogZGVjb2RlZEpXVC5HdWlTY2FsZVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNsaWVudFJhbmRvbUlkID0gZGVjb2RlZEpXVC5DbGllbnRSYW5kb21JZDtcbiAgICAgICAgdGhpcy5zZXJ2ZXJBZGRyZXNzID0gZGVjb2RlZEpXVC5TZXJ2ZXJBZGRyZXNzO1xuICAgICAgICB0aGlzLmxhbmd1YWdlQ29kZSA9IGRlY29kZWRKV1QuTGFuZ3VhZ2VDb2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICAvKlxuICAgICAgICBUT0RPXG4gICAgICAgIHRoaXMud3JpdGVJbnQoSWRlbnRpZmllcnMuUHJvdG9jb2wpO1xuXG4gICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBCaW5hcnlTdHJlYW0oKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGNoYWluOiBbXG4gICAgICAgICAgICAgICAgXCJleUpoYkdjaU9pSkZVek00TkNJc0luZzFkU0k2SWsxSVdYZEZRVmxJUzI5YVNYcHFNRU5CVVZsR1N6UkZSVUZEU1VSWlowRkZaaXRRTnk5NFJFb3pVRkZUSzJWc2IxTTVXamhEZHpjek1HMHZjbmRGWmxabWFXZzFRakJRWm10RWRXUjJRbWxJZVhKeFVqaG1hRWc1WVdKa1JXUkVMekUzU2s5eFpWZHdaVFJ6Y2pCM1NrOUZaRFJSVjA1d2JtNWtZazkwVjBZelRYbzFiazVhVlUxcmVrRXdhV0UyVjI4dlFuQlFRMGhYUjA5M1EzUjViV3dpZlFvLmV5SmpaWEowYVdacFkyRjBaVUYxZEdodmNtbDBlU0k2ZEhKMVpTd2laWGh3SWpveE5qQTJORFk1T1RnNExDSnBaR1Z1ZEdsMGVWQjFZbXhwWTB0bGVTSTZJazFJV1hkRlFWbElTMjlhU1hwcU1FTkJVVmxHU3pSRlJVRkRTVVJaWjBGRk9FVk1hMmw0ZVV4amQyeGFjbmxWVVdOMU1WUjJVRTl0U1RKQ04zWllPRE51Wkc1WFVsVmhXRzAzTkhkR1ptRTFaaTlzZDFGT1ZHWnlURlpJWVRKUWJXVnVjRWRKTmtwb1NVMVZTbUZYV25KcWJVMXFPVEJPYjB0T1JsTk9RblZMWkcwNGNsbHBXSE5tWVhvelN6TTJlQzh4VlRJMlNIQkhNRnA0U3k5V01WWWlMQ0p1WW1ZaU9qRTJNRFl5T1RjeE1qaDlDZy4yenZ4V0VEMHVtRTBmWWdabHg2aDNkSWZQdzFodjUwVWc1RHZ0T1hxVkhCdjJzZnJpVEI3amtKU01HcDJybnVOWVNfSXJfUTRlOUNTV0E1QXp1dXVKODJaM3BwMlNRdVg3WWgxTHBsbXZqQW9pWGZRcVFyNF9UYXVrQnRHWG1MZFwiLFxuICAgICAgICAgICAgICAgIFwiZXlKNE5YVWlPaUpOU0ZsM1JVRlpTRXR2V2tsNmFqQkRRVkZaUmtzMFJVVkJRMGxFV1dkQlJUaEZUR3RwZUhsTVkzZHNXbko1VlZGamRURlVkbEJQYlVreVFqZDJXRGd6Ym1SdVYxSlZZVmh0TnpSM1JtWmhOV1pjTDJ4M1VVNVVabkpNVmtoaE1sQnRaVzV3UjBrMlNtaEpUVlZLWVZkYWNtcHRUV281TUU1dlMwNUdVMDVDZFV0a2JUaHlXV2xZYzJaaGVqTkxNelo0WEM4eFZUSTJTSEJITUZwNFMxd3ZWakZXSWl3aVlXeG5Jam9pUlZNek9EUWlmUS5leUp1WW1ZaU9qRTJNRFl5T1RjeE1qZ3NJbkpoYm1SdmJVNXZibU5sSWpvdE1qVXhOakF6TkRRNE5qTTBOVEE1TlRrMU55d2lhWE56SWpvaVRXOXFZVzVuSWl3aVpYaHdJam94TmpBMk5EWTVPVGc0TENKalpYSjBhV1pwWTJGMFpVRjFkR2h2Y21sMGVTSTZkSEoxWlN3aWFXRjBJam94TmpBMk1qazNNVGc0TENKcFpHVnVkR2wwZVZCMVlteHBZMHRsZVNJNklrMUlXWGRGUVZsSVMyOWFTWHBxTUVOQlVWbEdTelJGUlVGRFNVUlpaMEZGWVVKVGJqbHZTV3hzTm05SGRrNXNUbTF3WEM5elJGSlpURVpGVlRsVFpESmhaVUZZTlRoU1NHcExLekIwTm14MFdXVnRXR0Z1YlhZMU5Wd3ZXbE5xYmpCWE5VZFpaa0ZIUzBZMFQxbG5jV04wV1dWaWVHeEVSV1ZZTUZ3dmNEQllUMXd2ZHl0TlVsd3ZTM1p3YW5GV2VqWlplbWRZTmxSbVFUYzNjM2R2VFhWTlVEUnpTU0o5LkZNZmlHUlVPanc2YkkzSDRDaFlxZ3NIWTR0OHlXaW1xM1F1MjdENjh3UXdsQlVpQmVPZEFGVmIyTkhMV0tCWEtCUDN5M3R4Ym45QTY1WHZyZzlCV2hWWlBaejVwR0x4d2lSTmw5ZjhpSkpmbGZpM1FmS01NYWlMcmpqOFpZUXdsXCIsXG4gICAgICAgICAgICAgICAgXCJleUo0TlhVaU9pSk5TRmwzUlVGWlNFdHZXa2w2YWpCRFFWRlpSa3MwUlVWQlEwbEVXV2RCUldGQ1UyNDViMGxzYkRadlIzWk9iRTV0Y0Z3dmMwUlNXVXhHUlZVNVUyUXlZV1ZCV0RVNFVraHFTeXN3ZERac2RGbGxiVmhoYm0xMk5UVmNMMXBUYW00d1Z6VkhXV1pCUjB0R05FOVpaM0ZqZEZsbFluaHNSRVZsV0RCY0wzQXdXRTljTDNjclRWSmNMMHQyY0dweFZubzJXWHBuV0RaVVprRTNOM04zYjAxMVRWQTBjMGtpTENKaGJHY2lPaUpGVXpNNE5DSjkuZXlKdVltWWlPakUyTURZeU9UazBNRGtzSW1WNGRISmhSR0YwWVNJNmV5SllWVWxFSWpvaU1qVXpOVFF4TXpZMk1UTXhNVFV3TWlJc0ltbGtaVzUwYVhSNUlqb2laRFJtTm1Rd05tSXRORGs0T1MwellXSXdMVGxrTURNdE9EQTJPVFJsTWpRM1pXSmlJaXdpWkdsemNHeGhlVTVoYldVaU9pSklaWEp5ZVZsVUlpd2lkR2wwYkdWSlpDSTZJamc1TmpreU9EYzNOU0o5TENKeVlXNWtiMjFPYjI1alpTSTZMVFl6T1RBMk1qZ3dOREEzTURnMk1Ea3lOaXdpYVhOeklqb2lUVzlxWVc1bklpd2laWGh3SWpveE5qQTJNemcxT0RZNUxDSnBZWFFpT2pFMk1EWXlPVGswTmprc0ltbGtaVzUwYVhSNVVIVmliR2xqUzJWNUlqb2lUVWhaZDBWQldVaExiMXBKZW1vd1EwRlJXVVpMTkVWRlFVTkpSRmxuUVVWbUsxQTNYQzk0UkVvelVGRlRLMlZzYjFNNVdqaERkemN6TUcxY0wzSjNSV1pXWm1sb05VSXdVR1pyUkhWa2RrSnBTSGx5Y1ZJNFptaElPV0ZpWkVWa1JGd3ZNVGRLVDNGbFYzQmxOSE55TUhkS1QwVmtORkZYVG5CdWJtUmlUM1JYUmpOTmVqVnVUbHBWVFd0NlFUQnBZVFpYYjF3dlFuQlFRMGhYUjA5M1EzUjViV3dpZlEueWE1MTVxb0NHbHVZaFN3TUhHSEtSR2FlQ2FyckJyNm1wMEg5Z0N4SlFfOHhMVEdqS2R5TkdLZVFGbGRvUnFEVExDWnNFSVRyTHVBS0JRa2dTd1hpVkliQWVoTzZIZUliakVTaW82aFZFTFVBOUMyZWVsQmFzUU9ETC1sRThrYXhcIlxuICAgICAgICAgICAgXVxuICAgICAgICB9KTtcblxuICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFZhckludCg1NTMwOSk7ICAvLyBGdWxsIGxlbmd0aFxuXG4gICAgICAgIHN0cmVhbS53cml0ZUxJbnQoQnVmZmVyLmJ5dGVMZW5ndGgoZGF0YSkpO1xuICAgICAgICBzdHJlYW0uYXBwZW5kKEJ1ZmZlci5mcm9tKGRhdGEsICd1dGY4JykpO1xuICAgICAgICAqL1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU9BLElBQXFCLGNBQXJCLGNBQXlDLFdBQVc7Q0FDaEQsT0FBYyxRQUFRLFlBQVk7Ozs7Q0FLbEM7Q0FDQTs7OztDQUtBO0NBQ0E7Q0FDQTtDQUVBO0NBQ0E7Q0FDQTtDQUVBO0NBQ0E7Q0FFQSxnQkFBNkI7RUFDekIsS0FBSyxXQUFXLEtBQUssUUFBUTtFQUc3QixLQUFLLG1CQUFtQjtFQUN4QixNQUFNLFlBQVksS0FBSyxNQUFNLFlBQVksd0JBQXdCLElBQUksQ0FBQztFQUN0RSxNQUFNLFNBQVMsUUFBUSxjQUFjO0VBRXJDLEtBQUssTUFBTSxTQUFTLFVBQVUsT0FBTztHQUNqQyxNQUFNLGVBQWUsT0FBTyxLQUFLO0dBRWpDLElBQUksYUFBYSxXQUFXO0lBQ3hCLEtBQUssT0FBTyxhQUFhLFVBQVU7SUFDbkMsS0FBSyxXQUFXLGFBQWEsVUFBVTtJQUN2QyxLQUFLLGNBQWMsYUFBYSxVQUFVO0dBQzlDO0dBRUEsS0FBSyxvQkFBb0IsYUFBYTtFQUMxQztFQUVBLE1BQU0sYUFBYSxPQUFPLFlBQVksd0JBQXdCLElBQUksQ0FBQztFQUNuRSxLQUFLLE9BQU8sS0FBSyxRQUFRLFVBQVU7RUFDbkMsS0FBSyxTQUFTLElBQUksT0FBTztHQUNyQixJQUFJLFdBQVc7R0FDZixJQUFJLFdBQVc7R0FDZixPQUFPLFdBQVc7R0FDbEIsV0FBVyxXQUFXO0dBQ3RCLFVBQVUsV0FBVztFQUN6QixDQUFDO0VBRUQsS0FBSyxpQkFBaUIsV0FBVztFQUNqQyxLQUFLLGdCQUFnQixXQUFXO0VBQ2hDLEtBQUssZUFBZSxXQUFXO0NBQ25DO0NBRUEsZ0JBQTZCLENBbUI3QjtBQUNKIn0=