UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

95 lines (90 loc) 11.9 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const network_Identifiers = require('../Identifiers.cjs.cjs'); const network_NetworkUtil = require('../NetworkUtil.cjs.cjs'); const network_type_TextType = require('../type/TextType.cjs.cjs'); const network_packet_DataPacket = require('./DataPacket.cjs.cjs'); class TextPacket extends network_packet_DataPacket.default { static NetID = network_Identifiers.default.TextPacket; /** * The type of the chat message. * Eg. Chat, Announcement, Json, etc. */ type; needsTranslation; sourceName; /** * The actual chat message. */ message; parameters = []; xuid; platformChatId; filtered; decodePayload() { this.type = this.readByte(); this.needsTranslation = this.readBoolean(); switch (this.type) { case network_type_TextType.default.Chat: case network_type_TextType.default.Whisper: case network_type_TextType.default.Announcement: this.sourceName = network_NetworkUtil.NetworkUtil.readString(this); this.message = network_NetworkUtil.NetworkUtil.readString(this); break; case network_type_TextType.default.Raw: case network_type_TextType.default.Tip: case network_type_TextType.default.System: case network_type_TextType.default.JsonWhisper: case network_type_TextType.default.Json: this.message = network_NetworkUtil.NetworkUtil.readString(this); break; case network_type_TextType.default.Translation: case network_type_TextType.default.Popup: case network_type_TextType.default.JukeboxPopup: this.message = network_NetworkUtil.NetworkUtil.readString(this); const count = this.readUnsignedVarInt(); for (let i = 0; i < count; i++) { this.parameters.push(network_NetworkUtil.NetworkUtil.readString(this)); } break; default: throw new Error("Invalid TextType"); } this.xuid = network_NetworkUtil.NetworkUtil.readString(this); this.platformChatId = network_NetworkUtil.NetworkUtil.readString(this); this.filtered = network_NetworkUtil.NetworkUtil.readString(this); } encodePayload() { this.writeByte(this.type); this.writeBoolean(this.needsTranslation); switch (this.type) { case network_type_TextType.default.Chat: case network_type_TextType.default.Whisper: case network_type_TextType.default.Announcement: network_NetworkUtil.NetworkUtil.writeString(this, this.sourceName); case network_type_TextType.default.Raw: case network_type_TextType.default.Tip: case network_type_TextType.default.System: case network_type_TextType.default.JsonWhisper: case network_type_TextType.default.Json: network_NetworkUtil.NetworkUtil.writeString(this, this.message); break; case network_type_TextType.default.Translation: case network_type_TextType.default.Popup: case network_type_TextType.default.JukeboxPopup: network_NetworkUtil.NetworkUtil.writeString(this, this.message); this.writeUnsignedVarInt(this.parameters.length); for (const parameter of this.parameters) { network_NetworkUtil.NetworkUtil.writeString(this, parameter); } break; default: throw new Error("Invalid TextType"); } network_NetworkUtil.NetworkUtil.writeString(this, this.xuid); network_NetworkUtil.NetworkUtil.writeString(this, this.platformChatId); network_NetworkUtil.NetworkUtil.writeString(this, this.filtered); } } exports.default = TextPacket; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dFBhY2tldC5janMuY2pzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9wYWNrZXQvVGV4dFBhY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSWRlbnRpZmllcnMgZnJvbSAnLi4vSWRlbnRpZmllcnMnO1xuaW1wb3J0IHsgTmV0d29ya1V0aWwgfSBmcm9tICcuLi9OZXR3b3JrVXRpbCc7XG5pbXBvcnQgVGV4dFR5cGUgZnJvbSAnLi4vdHlwZS9UZXh0VHlwZSc7XG5pbXBvcnQgRGF0YVBhY2tldCBmcm9tICcuL0RhdGFQYWNrZXQnO1xuXG4vKipcbiAqIFBhY2tldCBmb3IgY2hhdCBtZXNzYWdlcywgYW5ub3VuY2VtZW50cyBldGMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRleHRQYWNrZXQgZXh0ZW5kcyBEYXRhUGFja2V0IHtcbiAgICBwdWJsaWMgc3RhdGljIE5ldElEID0gSWRlbnRpZmllcnMuVGV4dFBhY2tldDtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSBjaGF0IG1lc3NhZ2UuXG4gICAgICogRWcuIENoYXQsIEFubm91bmNlbWVudCwgSnNvbiwgZXRjLlxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlITogVGV4dFR5cGU7XG4gICAgcHVibGljIG5lZWRzVHJhbnNsYXRpb24hOiBib29sZWFuO1xuICAgIHB1YmxpYyBzb3VyY2VOYW1lITogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGFjdHVhbCBjaGF0IG1lc3NhZ2UuXG4gICAgICovXG4gICAgcHVibGljIG1lc3NhZ2UhOiBzdHJpbmc7XG4gICAgcHVibGljIHBhcmFtZXRlcnM6IHN0cmluZ1tdID0gW107XG4gICAgcHVibGljIHh1aWQhOiBzdHJpbmc7XG4gICAgcHVibGljIHBsYXRmb3JtQ2hhdElkITogc3RyaW5nO1xuICAgIHB1YmxpYyBmaWx0ZXJlZCE6IHN0cmluZztcblxuICAgIHB1YmxpYyBkZWNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnR5cGUgPSB0aGlzLnJlYWRCeXRlKCk7XG4gICAgICAgIHRoaXMubmVlZHNUcmFuc2xhdGlvbiA9IHRoaXMucmVhZEJvb2xlYW4oKTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBUZXh0VHlwZS5DaGF0OlxuICAgICAgICAgICAgY2FzZSBUZXh0VHlwZS5XaGlzcGVyOlxuICAgICAgICAgICAgY2FzZSBUZXh0VHlwZS5Bbm5vdW5jZW1lbnQ6XG4gICAgICAgICAgICAgICAgdGhpcy5zb3VyY2VOYW1lID0gTmV0d29ya1V0aWwucmVhZFN0cmluZyh0aGlzKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBOZXR3b3JrVXRpbC5yZWFkU3RyaW5nKHRoaXMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIFRleHRUeXBlLlJhdzpcbiAgICAgICAgICAgIGNhc2UgVGV4dFR5cGUuVGlwOlxuICAgICAgICAgICAgY2FzZSBUZXh0VHlwZS5TeXN0ZW06XG4gICAgICAgICAgICBjYXNlIFRleHRUeXBlLkpzb25XaGlzcGVyOlxuICAgICAgICAgICAgY2FzZSBUZXh0VHlwZS5Kc29uOlxuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9IE5ldHdvcmtVdGlsLnJlYWRTdHJpbmcodGhpcyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgVGV4dFR5cGUuVHJhbnNsYXRpb246XG4gICAgICAgICAgICBjYXNlIFRleHRUeXBlLlBvcHVwOlxuICAgICAgICAgICAgY2FzZSBUZXh0VHlwZS5KdWtlYm94UG9wdXA6XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gTmV0d29ya1V0aWwucmVhZFN0cmluZyh0aGlzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb3VudCA9IHRoaXMucmVhZFVuc2lnbmVkVmFySW50KCk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFyYW1ldGVycy5wdXNoKE5ldHdvcmtVdGlsLnJlYWRTdHJpbmcodGhpcykpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBUZXh0VHlwZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy54dWlkID0gTmV0d29ya1V0aWwucmVhZFN0cmluZyh0aGlzKTtcbiAgICAgICAgdGhpcy5wbGF0Zm9ybUNoYXRJZCA9IE5ldHdvcmtVdGlsLnJlYWRTdHJpbmcodGhpcyk7XG4gICAgICAgIHRoaXMuZmlsdGVyZWQgPSBOZXR3b3JrVXRpbC5yZWFkU3RyaW5nKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlQnl0ZSh0aGlzLnR5cGUpO1xuICAgICAgICB0aGlzLndyaXRlQm9vbGVhbih0aGlzLm5lZWRzVHJhbnNsYXRpb24pO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFRleHRUeXBlLkNoYXQ6XG4gICAgICAgICAgICBjYXNlIFRleHRUeXBlLldoaXNwZXI6XG4gICAgICAgICAgICBjYXNlIFRleHRUeXBlLkFubm91bmNlbWVudDpcbiAgICAgICAgICAgICAgICBOZXR3b3JrVXRpbC53cml0ZVN0cmluZyh0aGlzLCB0aGlzLnNvdXJjZU5hbWUpO1xuICAgICAgICAgICAgY2FzZSBUZXh0VHlwZS5SYXc6XG4gICAgICAgICAgICBjYXNlIFRleHRUeXBlLlRpcDpcbiAgICAgICAgICAgIGNhc2UgVGV4dFR5cGUuU3lzdGVtOlxuICAgICAgICAgICAgY2FzZSBUZXh0VHlwZS5Kc29uV2hpc3BlcjpcbiAgICAgICAgICAgIGNhc2UgVGV4dFR5cGUuSnNvbjpcbiAgICAgICAgICAgICAgICBOZXR3b3JrVXRpbC53cml0ZVN0cmluZyh0aGlzLCB0aGlzLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIFRleHRUeXBlLlRyYW5zbGF0aW9uOlxuICAgICAgICAgICAgY2FzZSBUZXh0VHlwZS5Qb3B1cDpcbiAgICAgICAgICAgIGNhc2UgVGV4dFR5cGUuSnVrZWJveFBvcHVwOlxuICAgICAgICAgICAgICAgIE5ldHdvcmtVdGlsLndyaXRlU3RyaW5nKHRoaXMsIHRoaXMubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVVuc2lnbmVkVmFySW50KHRoaXMucGFyYW1ldGVycy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFyYW1ldGVyIG9mIHRoaXMucGFyYW1ldGVycykge1xuICAgICAgICAgICAgICAgICAgICBOZXR3b3JrVXRpbC53cml0ZVN0cmluZyh0aGlzLCBwYXJhbWV0ZXIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgVGV4dFR5cGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIE5ldHdvcmtVdGlsLndyaXRlU3RyaW5nKHRoaXMsIHRoaXMueHVpZCk7XG4gICAgICAgIE5ldHdvcmtVdGlsLndyaXRlU3RyaW5nKHRoaXMsIHRoaXMucGxhdGZvcm1DaGF0SWQpO1xuICAgICAgICBOZXR3b3JrVXRpbC53cml0ZVN0cmluZyh0aGlzLCB0aGlzLmZpbHRlcmVkKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiRGF0YVBhY2tldCIsIklkZW50aWZpZXJzIiwiVGV4dFR5cGUiLCJOZXR3b3JrVXRpbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBUUEsTUFBcUIsbUJBQW1C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