@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
91 lines (90 loc) • 9.86 kB
JavaScript
"use strict";
Object.defineProperties(exports, {
__esModule: { value: true },
[Symbol.toStringTag]: { value: "Module" }
});
const require_network_Identifiers = require("../Identifiers.cjs.cjs");
const require_network_packet_DataPacket = require("./DataPacket.cjs.cjs");
//#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 require_network_packet_DataPacket.default {
static NetID = require_network_Identifiers.default.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
exports.AbilityLayer = AbilityLayer;
exports.AbilityLayerFlag = AbilityLayerFlag;
exports.AbilityLayerType = AbilityLayerType;
exports.default = UpdateAbilitiesPacket;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRlQWJpbGl0aWVzUGFja2V0LmNqcy5janMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvcGFja2V0L1VwZGF0ZUFiaWxpdGllc1BhY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGF0YVBhY2tldCBmcm9tICcuL0RhdGFQYWNrZXQnO1xuaW1wb3J0IElkZW50aWZpZXJzIGZyb20gJy4uL0lkZW50aWZpZXJzJztcbmltcG9ydCB0eXBlIFBlcm1pc3Npb25UeXBlIGZyb20gJy4uL3R5cGUvUGVybWlzc2lvblR5cGUnO1xuaW1wb3J0IHR5cGUgUGxheWVyUGVybWlzc2lvblR5cGUgZnJvbSAnLi4vdHlwZS9QbGF5ZXJQZXJtaXNzaW9uVHlwZSc7XG5cbmV4cG9ydCBlbnVtIEFiaWxpdHlMYXllclR5cGUge1xuICAgIENBQ0hFLFxuICAgIEJBU0UsXG4gICAgU1BFQ1RBVE9SLFxuICAgIENPTU1BTkRTLFxuICAgIEVESVRPUlxufVxuXG5leHBvcnQgZW51bSBBYmlsaXR5TGF5ZXJGbGFnIHtcbiAgICBCVUlMRCxcbiAgICBNSU5FLFxuICAgIERPT1JTX0FORF9TV0lUQ0hFUyxcbiAgICBPUEVOX0NPTlRBSU5FUlMsXG4gICAgQVRUQUNLX1BMQVlFUlMsXG4gICAgQVRUQUNLX01PQlMsXG4gICAgT1BFUkFUT1JfQ09NTUFORFMsXG4gICAgVEVMRVBPUlQsXG4gICAgSU5WVUxORVJBQkxFLFxuICAgIEZMWUlORyxcbiAgICBNQVlfRkxZLFxuICAgIElOU1RBQlVJTEQsXG4gICAgTElHSFROSU5HLFxuICAgIEZMWV9TUEVFRCxcbiAgICBXQUxLX1NQRUVELFxuICAgIE1VVEVELFxuICAgIFdPUkxEX0JVSUxERVIsXG4gICAgTk9fQ0xJUCxcbiAgICBQUklWSUxFR0VEX0JVSUxERVJcbn1cblxuZXhwb3J0IGNsYXNzIEFiaWxpdHlMYXllciB7XG4gICAgcHVibGljIGxheWVyVHlwZSE6IEFiaWxpdHlMYXllclR5cGU7XG4gICAgcHVibGljIGxheWVyRmxhZ3MhOiBNYXA8QWJpbGl0eUxheWVyRmxhZywgYm9vbGVhbj47XG5cbiAgICBwdWJsaWMgZmx5U3BlZWQhOiBudW1iZXI7XG4gICAgcHVibGljIHdhbGtTcGVlZCE6IG51bWJlcjtcblxuICAgIHB1YmxpYyBnZXRFbmNvZGVkRmxhZ3MoKTogeyBmbGFnc0hhc2g6IG51bWJlcjsgdmFsdWVzSGFzaDogbnVtYmVyIH0ge1xuICAgICAgICBsZXQgW2ZsYWdzSGFzaCwgdmFsdWVzSGFzaF0gPSBbMCwgMF07XG4gICAgICAgIGZvciAoY29uc3QgW2ZsYWcsIHZhbHVlXSBvZiB0aGlzLmxheWVyRmxhZ3MuZW50cmllcygpKSB7XG4gICAgICAgICAgICBmbGFnc0hhc2ggfD0gMSA8PCBmbGFnO1xuICAgICAgICAgICAgLy8gVE9ETzogZmluZCBhIGJldHRlciBzb2x1dGlvbiwgbWF5IHdvcmsgZm9yIG5vdyBidXQgaSBkb24ndCBsaWtlIHRoaXMgaGFja1xuICAgICAgICAgICAgaWYgKFtBYmlsaXR5TGF5ZXJGbGFnLldBTEtfU1BFRUQsIEFiaWxpdHlMYXllckZsYWcuRkxZX1NQRUVEXS5pbmNsdWRlcyhmbGFnKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsdWVzSGFzaCB8PSB2YWx1ZSA/IDEgPDwgZmxhZyA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZmxhZ3NIYXNoLCB2YWx1ZXNIYXNoIH07XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVcGRhdGVBYmlsaXRpZXNQYWNrZXQgZXh0ZW5kcyBEYXRhUGFja2V0IHtcbiAgICBwdWJsaWMgc3RhdGljIE5ldElEID0gSWRlbnRpZmllcnMuVXBkYXRlQWJpbGl0aWVzUGFja2V0O1xuXG4gICAgcHVibGljIGNvbW1hbmRQZXJtaXNzaW9uITogUGVybWlzc2lvblR5cGU7XG4gICAgcHVibGljIHBsYXllclBlcm1pc3Npb24hOiBQbGF5ZXJQZXJtaXNzaW9uVHlwZTtcbiAgICBwdWJsaWMgdGFyZ2V0QWN0b3JVbmlxdWVJZCE6IGJpZ2ludDtcbiAgICBwdWJsaWMgYWJpbGl0eUxheWVycyE6IEFiaWxpdHlMYXllcltdO1xuXG4gICAgcHVibGljIGVuY29kZVBheWxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud3JpdGVMb25nTEUodGhpcy50YXJnZXRBY3RvclVuaXF1ZUlkKTtcbiAgICAgICAgdGhpcy53cml0ZUJ5dGUodGhpcy5wbGF5ZXJQZXJtaXNzaW9uKTtcbiAgICAgICAgdGhpcy53cml0ZUJ5dGUodGhpcy5jb21tYW5kUGVybWlzc2lvbik7XG5cbiAgICAgICAgdGhpcy53cml0ZUJ5dGUodGhpcy5hYmlsaXR5TGF5ZXJzLmxlbmd0aCk7XG4gICAgICAgIGZvciAoY29uc3QgYWJpbGl0eUxheWVyIG9mIHRoaXMuYWJpbGl0eUxheWVycykge1xuICAgICAgICAgICAgdGhpcy53cml0ZVNob3J0TEUoYWJpbGl0eUxheWVyLmxheWVyVHlwZSk7XG4gICAgICAgICAgICBjb25zdCBlbmNvZGVkRmxhZ3MgPSBhYmlsaXR5TGF5ZXIuZ2V0RW5jb2RlZEZsYWdzKCk7XG4gICAgICAgICAgICB0aGlzLndyaXRlSW50TEUoZW5jb2RlZEZsYWdzLmZsYWdzSGFzaCk7XG4gICAgICAgICAgICB0aGlzLndyaXRlSW50TEUoZW5jb2RlZEZsYWdzLnZhbHVlc0hhc2gpO1xuICAgICAgICAgICAgdGhpcy53cml0ZUZsb2F0TEUoYWJpbGl0eUxheWVyLmZseVNwZWVkKTtcbiAgICAgICAgICAgIHRoaXMud3JpdGVGbG9hdExFKGFiaWxpdHlMYXllci53YWxrU3BlZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGRlY29kZVBheWxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFyZ2V0QWN0b3JVbmlxdWVJZCA9IHRoaXMucmVhZExvbmdMRSgpO1xuICAgICAgICB0aGlzLnBsYXllclBlcm1pc3Npb24gPSB0aGlzLnJlYWRCeXRlKCk7XG4gICAgICAgIHRoaXMuY29tbWFuZFBlcm1pc3Npb24gPSB0aGlzLnJlYWRCeXRlKCk7XG5cbiAgICAgICAgY29uc3QgbGVuID0gdGhpcy5yZWFkQnl0ZSgpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBkZWNvZGUgYWJpbGl0aWVzXG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBS0EsSUFBWSxtQkFBTCx5QkFBQSxrQkFBQTtDQUNILGlCQUFBLGlCQUFBLFdBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLFVBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLGVBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLGNBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLFlBQUEsS0FBQTs7QUFDSixFQUFBLENBQUEsQ0FBQTtBQUVBLElBQVksbUJBQUwseUJBQUEsa0JBQUE7Q0FDSCxpQkFBQSxpQkFBQSxXQUFBLEtBQUE7Q0FDQSxpQkFBQSxpQkFBQSxVQUFBLEtBQUE7Q0FDQSxpQkFBQSxpQkFBQSx3QkFBQSxLQUFBO0NBQ0EsaUJBQUEsaUJBQUEscUJBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLG9CQUFBLEtBQUE7Q0FDQSxpQkFBQSxpQkFBQSxpQkFBQSxLQUFBO0NBQ0EsaUJBQUEsaUJBQUEsdUJBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLGNBQUEsS0FBQTtDQUNBLGlCQUFBLGlCQUFBLGtCQUFBLEtBQUE7Q0FDQSxpQkFBQSxpQkFBQSxZQUFBLEtBQUE7Q0FDQSxpQkFBQSxpQkFBQSxhQUFBLE1BQUE7Q0FDQSxpQkFBQSxpQkFBQSxnQkFBQSxNQUFBO0NBQ0EsaUJBQUEsaUJBQUEsZUFBQSxNQUFBO0NBQ0EsaUJBQUEsaUJBQUEsZUFBQSxNQUFBO0NBQ0EsaUJBQUEsaUJBQUEsZ0JBQUEsTUFBQTtDQUNBLGlCQUFBLGlCQUFBLFdBQUEsTUFBQTtDQUNBLGlCQUFBLGlCQUFBLG1CQUFBLE1BQUE7Q0FDQSxpQkFBQSxpQkFBQSxhQUFBLE1BQUE7Q0FDQSxpQkFBQSxpQkFBQSx3QkFBQSxNQUFBOztBQUNKLEVBQUEsQ0FBQSxDQUFBO0FBRUEsSUFBYSxlQUFiLE1BQTBCO0NBQ3RCO0NBQ0E7Q0FFQTtDQUNBO0NBRUEsa0JBQW9FO0VBQ2hFLElBQUksQ0FBQyxXQUFXLGNBQWMsQ0FBQyxHQUFHLENBQUM7RUFDbkMsS0FBSyxNQUFNLENBQUMsTUFBTSxVQUFVLEtBQUssV0FBVyxRQUFRLEdBQUc7R0FDbkQsYUFBYSxLQUFLO0dBRWxCLElBQUksQ0FBQSxJQUFBLEVBQXdELEVBQUUsU0FBUyxJQUFJLEdBQ3ZFO0dBRUosY0FBYyxRQUFRLEtBQUssT0FBTztFQUN0QztFQUNBLE9BQU87R0FBRTtHQUFXO0VBQVc7Q0FDbkM7QUFDSjtBQUVBLElBQXFCLHdCQUFyQixjQUFtRCxrQ0FBQSxRQUFXO0NBQzFELE9BQWMsUUFBUSw0QkFBQSxRQUFZO0NBRWxDO0NBQ0E7Q0FDQTtDQUNBO0NBRUEsZ0JBQTZCO0VBQ3pCLEtBQUssWUFBWSxLQUFLLG1CQUFtQjtFQUN6QyxLQUFLLFVBQVUsS0FBSyxnQkFBZ0I7RUFDcEMsS0FBSyxVQUFVLEtBQUssaUJBQWlCO0VBRXJDLEtBQUssVUFBVSxLQUFLLGNBQWMsTUFBTTtFQUN4QyxLQUFLLE1BQU0sZ0JBQWdCLEtBQUssZUFBZTtHQUMzQyxLQUFLLGFBQWEsYUFBYSxTQUFTO0dBQ3hDLE1BQU0sZUFBZSxhQUFhLGdCQUFnQjtHQUNsRCxLQUFLLFdBQVcsYUFBYSxTQUFTO0dBQ3RDLEtBQUssV0FBVyxhQUFhLFVBQVU7R0FDdkMsS0FBSyxhQUFhLGFBQWEsUUFBUTtHQUN2QyxLQUFLLGFBQWEsYUFBYSxTQUFTO0VBQzVDO0NBQ0o7Q0FFQSxnQkFBNkI7RUFDekIsS0FBSyxzQkFBc0IsS0FBSyxXQUFXO0VBQzNDLEtBQUssbUJBQW1CLEtBQUssU0FBUztFQUN0QyxLQUFLLG9CQUFvQixLQUFLLFNBQVM7RUFFdkMsTUFBTSxNQUFNLEtBQUssU0FBUztFQUMxQixLQUFLLElBQUksSUFBSSxHQUFHLElBQUksS0FBSztDQUc3QjtBQUNKIn0=