@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
95 lines (90 loc) • 11.9 kB
JavaScript
'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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