UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

83 lines (82 loc) 9.53 kB
import Identifiers from "../Identifiers.es.js"; import DataPacket from "./DataPacket.es.js"; //#region src/network/packet/UpdateAbilitiesPacket.ts var AbilityLayerType = /* @__PURE__ */ function(AbilityLayerType) { AbilityLayerType[AbilityLayerType["CACHE"] = 0] = "CACHE"; AbilityLayerType[AbilityLayerType["BASE"] = 1] = "BASE"; AbilityLayerType[AbilityLayerType["SPECTATOR"] = 2] = "SPECTATOR"; AbilityLayerType[AbilityLayerType["COMMANDS"] = 3] = "COMMANDS"; AbilityLayerType[AbilityLayerType["EDITOR"] = 4] = "EDITOR"; return AbilityLayerType; }({}); var AbilityLayerFlag = /* @__PURE__ */ function(AbilityLayerFlag) { AbilityLayerFlag[AbilityLayerFlag["BUILD"] = 0] = "BUILD"; AbilityLayerFlag[AbilityLayerFlag["MINE"] = 1] = "MINE"; AbilityLayerFlag[AbilityLayerFlag["DOORS_AND_SWITCHES"] = 2] = "DOORS_AND_SWITCHES"; AbilityLayerFlag[AbilityLayerFlag["OPEN_CONTAINERS"] = 3] = "OPEN_CONTAINERS"; AbilityLayerFlag[AbilityLayerFlag["ATTACK_PLAYERS"] = 4] = "ATTACK_PLAYERS"; AbilityLayerFlag[AbilityLayerFlag["ATTACK_MOBS"] = 5] = "ATTACK_MOBS"; AbilityLayerFlag[AbilityLayerFlag["OPERATOR_COMMANDS"] = 6] = "OPERATOR_COMMANDS"; AbilityLayerFlag[AbilityLayerFlag["TELEPORT"] = 7] = "TELEPORT"; AbilityLayerFlag[AbilityLayerFlag["INVULNERABLE"] = 8] = "INVULNERABLE"; AbilityLayerFlag[AbilityLayerFlag["FLYING"] = 9] = "FLYING"; AbilityLayerFlag[AbilityLayerFlag["MAY_FLY"] = 10] = "MAY_FLY"; AbilityLayerFlag[AbilityLayerFlag["INSTABUILD"] = 11] = "INSTABUILD"; AbilityLayerFlag[AbilityLayerFlag["LIGHTNING"] = 12] = "LIGHTNING"; AbilityLayerFlag[AbilityLayerFlag["FLY_SPEED"] = 13] = "FLY_SPEED"; AbilityLayerFlag[AbilityLayerFlag["WALK_SPEED"] = 14] = "WALK_SPEED"; AbilityLayerFlag[AbilityLayerFlag["MUTED"] = 15] = "MUTED"; AbilityLayerFlag[AbilityLayerFlag["WORLD_BUILDER"] = 16] = "WORLD_BUILDER"; AbilityLayerFlag[AbilityLayerFlag["NO_CLIP"] = 17] = "NO_CLIP"; AbilityLayerFlag[AbilityLayerFlag["PRIVILEGED_BUILDER"] = 18] = "PRIVILEGED_BUILDER"; return AbilityLayerFlag; }({}); var AbilityLayer = class { layerType; layerFlags; flySpeed; walkSpeed; getEncodedFlags() { let [flagsHash, valuesHash] = [0, 0]; for (const [flag, value] of this.layerFlags.entries()) { flagsHash |= 1 << flag; if ([14, 13].includes(flag)) continue; valuesHash |= value ? 1 << flag : 0; } return { flagsHash, valuesHash }; } }; var UpdateAbilitiesPacket = class extends DataPacket { static NetID = Identifiers.UpdateAbilitiesPacket; commandPermission; playerPermission; targetActorUniqueId; abilityLayers; encodePayload() { this.writeLongLE(this.targetActorUniqueId); this.writeByte(this.playerPermission); this.writeByte(this.commandPermission); this.writeByte(this.abilityLayers.length); for (const abilityLayer of this.abilityLayers) { this.writeShortLE(abilityLayer.layerType); const encodedFlags = abilityLayer.getEncodedFlags(); this.writeIntLE(encodedFlags.flagsHash); this.writeIntLE(encodedFlags.valuesHash); this.writeFloatLE(abilityLayer.flySpeed); this.writeFloatLE(abilityLayer.walkSpeed); } } decodePayload() { this.targetActorUniqueId = this.readLongLE(); this.playerPermission = this.readByte(); this.commandPermission = this.readByte(); const len = this.readByte(); for (let i = 0; i < len; i++); } }; //#endregion export { AbilityLayer, AbilityLayerFlag, AbilityLayerType, UpdateAbilitiesPacket as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRlQWJpbGl0aWVzUGFja2V0LmVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZXR3b3JrL3BhY2tldC9VcGRhdGVBYmlsaXRpZXNQYWNrZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERhdGFQYWNrZXQgZnJvbSAnLi9EYXRhUGFja2V0JztcbmltcG9ydCBJZGVudGlmaWVycyBmcm9tICcuLi9JZGVudGlmaWVycyc7XG5pbXBvcnQgdHlwZSBQZXJtaXNzaW9uVHlwZSBmcm9tICcuLi90eXBlL1Blcm1pc3Npb25UeXBlJztcbmltcG9ydCB0eXBlIFBsYXllclBlcm1pc3Npb25UeXBlIGZyb20gJy4uL3R5cGUvUGxheWVyUGVybWlzc2lvblR5cGUnO1xuXG5leHBvcnQgZW51bSBBYmlsaXR5TGF5ZXJUeXBlIHtcbiAgICBDQUNIRSxcbiAgICBCQVNFLFxuICAgIFNQRUNUQVRPUixcbiAgICBDT01NQU5EUyxcbiAgICBFRElUT1Jcbn1cblxuZXhwb3J0IGVudW0gQWJpbGl0eUxheWVyRmxhZyB7XG4gICAgQlVJTEQsXG4gICAgTUlORSxcbiAgICBET09SU19BTkRfU1dJVENIRVMsXG4gICAgT1BFTl9DT05UQUlORVJTLFxuICAgIEFUVEFDS19QTEFZRVJTLFxuICAgIEFUVEFDS19NT0JTLFxuICAgIE9QRVJBVE9SX0NPTU1BTkRTLFxuICAgIFRFTEVQT1JULFxuICAgIElOVlVMTkVSQUJMRSxcbiAgICBGTFlJTkcsXG4gICAgTUFZX0ZMWSxcbiAgICBJTlNUQUJVSUxELFxuICAgIExJR0hUTklORyxcbiAgICBGTFlfU1BFRUQsXG4gICAgV0FMS19TUEVFRCxcbiAgICBNVVRFRCxcbiAgICBXT1JMRF9CVUlMREVSLFxuICAgIE5PX0NMSVAsXG4gICAgUFJJVklMRUdFRF9CVUlMREVSXG59XG5cbmV4cG9ydCBjbGFzcyBBYmlsaXR5TGF5ZXIge1xuICAgIHB1YmxpYyBsYXllclR5cGUhOiBBYmlsaXR5TGF5ZXJUeXBlO1xuICAgIHB1YmxpYyBsYXllckZsYWdzITogTWFwPEFiaWxpdHlMYXllckZsYWcsIGJvb2xlYW4+O1xuXG4gICAgcHVibGljIGZseVNwZWVkITogbnVtYmVyO1xuICAgIHB1YmxpYyB3YWxrU3BlZWQhOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgZ2V0RW5jb2RlZEZsYWdzKCk6IHsgZmxhZ3NIYXNoOiBudW1iZXI7IHZhbHVlc0hhc2g6IG51bWJlciB9IHtcbiAgICAgICAgbGV0IFtmbGFnc0hhc2gsIHZhbHVlc0hhc2hdID0gWzAsIDBdO1xuICAgICAgICBmb3IgKGNvbnN0IFtmbGFnLCB2YWx1ZV0gb2YgdGhpcy5sYXllckZsYWdzLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgZmxhZ3NIYXNoIHw9IDEgPDwgZmxhZztcbiAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgYSBiZXR0ZXIgc29sdXRpb24sIG1heSB3b3JrIGZvciBub3cgYnV0IGkgZG9uJ3QgbGlrZSB0aGlzIGhhY2tcbiAgICAgICAgICAgIGlmIChbQWJpbGl0eUxheWVyRmxhZy5XQUxLX1NQRUVELCBBYmlsaXR5TGF5ZXJGbGFnLkZMWV9TUEVFRF0uaW5jbHVkZXMoZmxhZykpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlc0hhc2ggfD0gdmFsdWUgPyAxIDw8IGZsYWcgOiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGZsYWdzSGFzaCwgdmFsdWVzSGFzaCB9O1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXBkYXRlQWJpbGl0aWVzUGFja2V0IGV4dGVuZHMgRGF0YVBhY2tldCB7XG4gICAgcHVibGljIHN0YXRpYyBOZXRJRCA9IElkZW50aWZpZXJzLlVwZGF0ZUFiaWxpdGllc1BhY2tldDtcblxuICAgIHB1YmxpYyBjb21tYW5kUGVybWlzc2lvbiE6IFBlcm1pc3Npb25UeXBlO1xuICAgIHB1YmxpYyBwbGF5ZXJQZXJtaXNzaW9uITogUGxheWVyUGVybWlzc2lvblR5cGU7XG4gICAgcHVibGljIHRhcmdldEFjdG9yVW5pcXVlSWQhOiBiaWdpbnQ7XG4gICAgcHVibGljIGFiaWxpdHlMYXllcnMhOiBBYmlsaXR5TGF5ZXJbXTtcblxuICAgIHB1YmxpYyBlbmNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlTG9uZ0xFKHRoaXMudGFyZ2V0QWN0b3JVbmlxdWVJZCk7XG4gICAgICAgIHRoaXMud3JpdGVCeXRlKHRoaXMucGxheWVyUGVybWlzc2lvbik7XG4gICAgICAgIHRoaXMud3JpdGVCeXRlKHRoaXMuY29tbWFuZFBlcm1pc3Npb24pO1xuXG4gICAgICAgIHRoaXMud3JpdGVCeXRlKHRoaXMuYWJpbGl0eUxheWVycy5sZW5ndGgpO1xuICAgICAgICBmb3IgKGNvbnN0IGFiaWxpdHlMYXllciBvZiB0aGlzLmFiaWxpdHlMYXllcnMpIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVTaG9ydExFKGFiaWxpdHlMYXllci5sYXllclR5cGUpO1xuICAgICAgICAgICAgY29uc3QgZW5jb2RlZEZsYWdzID0gYWJpbGl0eUxheWVyLmdldEVuY29kZWRGbGFncygpO1xuICAgICAgICAgICAgdGhpcy53cml0ZUludExFKGVuY29kZWRGbGFncy5mbGFnc0hhc2gpO1xuICAgICAgICAgICAgdGhpcy53cml0ZUludExFKGVuY29kZWRGbGFncy52YWx1ZXNIYXNoKTtcbiAgICAgICAgICAgIHRoaXMud3JpdGVGbG9hdExFKGFiaWxpdHlMYXllci5mbHlTcGVlZCk7XG4gICAgICAgICAgICB0aGlzLndyaXRlRmxvYXRMRShhYmlsaXR5TGF5ZXIud2Fsa1NwZWVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkZWNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhcmdldEFjdG9yVW5pcXVlSWQgPSB0aGlzLnJlYWRMb25nTEUoKTtcbiAgICAgICAgdGhpcy5wbGF5ZXJQZXJtaXNzaW9uID0gdGhpcy5yZWFkQnl0ZSgpO1xuICAgICAgICB0aGlzLmNvbW1hbmRQZXJtaXNzaW9uID0gdGhpcy5yZWFkQnl0ZSgpO1xuXG4gICAgICAgIGNvbnN0IGxlbiA9IHRoaXMucmVhZEJ5dGUoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgLy8gVE9ETzogZGVjb2RlIGFiaWxpdGllc1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFLQSxJQUFZLG1CQUFMLHlCQUFBLGtCQUFBO0NBQ0gsaUJBQUEsaUJBQUEsV0FBQSxLQUFBO0NBQ0EsaUJBQUEsaUJBQUEsVUFBQSxLQUFBO0NBQ0EsaUJBQUEsaUJBQUEsZUFBQSxLQUFBO0NBQ0EsaUJBQUEsaUJBQUEsY0FBQSxLQUFBO0NBQ0EsaUJBQUEsaUJBQUEsWUFBQSxLQUFBOztBQUNKLEVBQUEsQ0FBQSxDQUFBO0FBRUEsSUFBWSxtQkFBTCx5QkFBQSxrQkFBQTtDQUNILGlCQUFBLGlCQUFBLFdBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLFVBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLHdCQUFBLEtBQUE7Q0FDQSxpQkFBQSxpQkFBQSxxQkFBQSxLQUFBO0NBQ0EsaUJBQUEsaUJBQUEsb0JBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLGlCQUFBLEtBQUE7Q0FDQSxpQkFBQSxpQkFBQSx1QkFBQSxLQUFBO0NBQ0EsaUJBQUEsaUJBQUEsY0FBQSxLQUFBO0NBQ0EsaUJBQUEsaUJBQUEsa0JBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLFlBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLGFBQUEsTUFBQTtDQUNBLGlCQUFBLGlCQUFBLGdCQUFBLE1BQUE7Q0FDQSxpQkFBQSxpQkFBQSxlQUFBLE1BQUE7Q0FDQSxpQkFBQSxpQkFBQSxlQUFBLE1BQUE7Q0FDQSxpQkFBQSxpQkFBQSxnQkFBQSxNQUFBO0NBQ0EsaUJBQUEsaUJBQUEsV0FBQSxNQUFBO0NBQ0EsaUJBQUEsaUJBQUEsbUJBQUEsTUFBQTtDQUNBLGlCQUFBLGlCQUFBLGFBQUEsTUFBQTtDQUNBLGlCQUFBLGlCQUFBLHdCQUFBLE1BQUE7O0FBQ0osRUFBQSxDQUFBLENBQUE7QUFFQSxJQUFhLGVBQWIsTUFBMEI7Q0FDdEI7Q0FDQTtDQUVBO0NBQ0E7Q0FFQSxrQkFBb0U7RUFDaEUsSUFBSSxDQUFDLFdBQVcsY0FBYyxDQUFDLEdBQUcsQ0FBQztFQUNuQyxLQUFLLE1BQU0sQ0FBQyxNQUFNLFVBQVUsS0FBSyxXQUFXLFFBQVEsR0FBRztHQUNuRCxhQUFhLEtBQUs7R0FFbEIsSUFBSSxDQUFBLElBQUEsRUFBd0QsRUFBRSxTQUFTLElBQUksR0FDdkU7R0FFSixjQUFjLFFBQVEsS0FBSyxPQUFPO0VBQ3RDO0VBQ0EsT0FBTztHQUFFO0dBQVc7RUFBVztDQUNuQztBQUNKO0FBRUEsSUFBcUIsd0JBQXJCLGNBQW1ELFdBQVc7Q0FDMUQsT0FBYyxRQUFRLFlBQVk7Q0FFbEM7Q0FDQTtDQUNBO0NBQ0E7Q0FFQSxnQkFBNkI7RUFDekIsS0FBSyxZQUFZLEtBQUssbUJBQW1CO0VBQ3pDLEtBQUssVUFBVSxLQUFLLGdCQUFnQjtFQUNwQyxLQUFLLFVBQVUsS0FBSyxpQkFBaUI7RUFFckMsS0FBSyxVQUFVLEtBQUssY0FBYyxNQUFNO0VBQ3hDLEtBQUssTUFBTSxnQkFBZ0IsS0FBSyxlQUFlO0dBQzNDLEtBQUssYUFBYSxhQUFhLFNBQVM7R0FDeEMsTUFBTSxlQUFlLGFBQWEsZ0JBQWdCO0dBQ2xELEtBQUssV0FBVyxhQUFhLFNBQVM7R0FDdEMsS0FBSyxXQUFXLGFBQWEsVUFBVTtHQUN2QyxLQUFLLGFBQWEsYUFBYSxRQUFRO0dBQ3ZDLEtBQUssYUFBYSxhQUFhLFNBQVM7RUFDNUM7Q0FDSjtDQUVBLGdCQUE2QjtFQUN6QixLQUFLLHNCQUFzQixLQUFLLFdBQVc7RUFDM0MsS0FBSyxtQkFBbUIsS0FBSyxTQUFTO0VBQ3RDLEtBQUssb0JBQW9CLEtBQUssU0FBUztFQUV2QyxNQUFNLE1BQU0sS0FBSyxTQUFTO0VBQzFCLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxLQUFLO0NBRzdCO0FBQ0oifQ==