@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
83 lines (82 loc) • 9.53 kB
JavaScript
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==