@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
88 lines (83 loc) • 12.1 kB
JavaScript
'use strict';
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const network_packet_DataPacket = require('./DataPacket.cjs.cjs');
const network_Identifiers = require('../Identifiers.cjs.cjs');
var AbilityLayerType = /* @__PURE__ */ ((AbilityLayerType2) => {
AbilityLayerType2[AbilityLayerType2["CACHE"] = 0] = "CACHE";
AbilityLayerType2[AbilityLayerType2["BASE"] = 1] = "BASE";
AbilityLayerType2[AbilityLayerType2["SPECTATOR"] = 2] = "SPECTATOR";
AbilityLayerType2[AbilityLayerType2["COMMANDS"] = 3] = "COMMANDS";
AbilityLayerType2[AbilityLayerType2["EDITOR"] = 4] = "EDITOR";
return AbilityLayerType2;
})(AbilityLayerType || {});
var AbilityLayerFlag = /* @__PURE__ */ ((AbilityLayerFlag2) => {
AbilityLayerFlag2[AbilityLayerFlag2["BUILD"] = 0] = "BUILD";
AbilityLayerFlag2[AbilityLayerFlag2["MINE"] = 1] = "MINE";
AbilityLayerFlag2[AbilityLayerFlag2["DOORS_AND_SWITCHES"] = 2] = "DOORS_AND_SWITCHES";
AbilityLayerFlag2[AbilityLayerFlag2["OPEN_CONTAINERS"] = 3] = "OPEN_CONTAINERS";
AbilityLayerFlag2[AbilityLayerFlag2["ATTACK_PLAYERS"] = 4] = "ATTACK_PLAYERS";
AbilityLayerFlag2[AbilityLayerFlag2["ATTACK_MOBS"] = 5] = "ATTACK_MOBS";
AbilityLayerFlag2[AbilityLayerFlag2["OPERATOR_COMMANDS"] = 6] = "OPERATOR_COMMANDS";
AbilityLayerFlag2[AbilityLayerFlag2["TELEPORT"] = 7] = "TELEPORT";
AbilityLayerFlag2[AbilityLayerFlag2["INVULNERABLE"] = 8] = "INVULNERABLE";
AbilityLayerFlag2[AbilityLayerFlag2["FLYING"] = 9] = "FLYING";
AbilityLayerFlag2[AbilityLayerFlag2["MAY_FLY"] = 10] = "MAY_FLY";
AbilityLayerFlag2[AbilityLayerFlag2["INSTABUILD"] = 11] = "INSTABUILD";
AbilityLayerFlag2[AbilityLayerFlag2["LIGHTNING"] = 12] = "LIGHTNING";
AbilityLayerFlag2[AbilityLayerFlag2["FLY_SPEED"] = 13] = "FLY_SPEED";
AbilityLayerFlag2[AbilityLayerFlag2["WALK_SPEED"] = 14] = "WALK_SPEED";
AbilityLayerFlag2[AbilityLayerFlag2["MUTED"] = 15] = "MUTED";
AbilityLayerFlag2[AbilityLayerFlag2["WORLD_BUILDER"] = 16] = "WORLD_BUILDER";
AbilityLayerFlag2[AbilityLayerFlag2["NO_CLIP"] = 17] = "NO_CLIP";
AbilityLayerFlag2[AbilityLayerFlag2["PRIVILEGED_BUILDER"] = 18] = "PRIVILEGED_BUILDER";
return AbilityLayerFlag2;
})(AbilityLayerFlag || {});
class AbilityLayer {
layerType;
layerFlags;
flySpeed;
walkSpeed;
getEncodedFlags() {
let [flagsHash, valuesHash] = [0, 0];
for (const [flag, value] of this.layerFlags.entries()) {
flagsHash |= 1 << flag;
if ([14 /* WALK_SPEED */, 13 /* FLY_SPEED */].includes(flag)) {
continue;
}
valuesHash |= value ? 1 << flag : 0;
}
return { flagsHash, valuesHash };
}
}
class UpdateAbilitiesPacket extends network_packet_DataPacket.default {
static NetID = 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();
this.readByte();
}
}
exports.AbilityLayer = AbilityLayer;
exports.AbilityLayerFlag = AbilityLayerFlag;
exports.AbilityLayerType = AbilityLayerType;
exports.default = UpdateAbilitiesPacket;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRlQWJpbGl0aWVzUGFja2V0LmNqcy5janMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZXR3b3JrL3BhY2tldC9VcGRhdGVBYmlsaXRpZXNQYWNrZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERhdGFQYWNrZXQgZnJvbSAnLi9EYXRhUGFja2V0JztcbmltcG9ydCBJZGVudGlmaWVycyBmcm9tICcuLi9JZGVudGlmaWVycyc7XG5pbXBvcnQgdHlwZSBQZXJtaXNzaW9uVHlwZSBmcm9tICcuLi90eXBlL1Blcm1pc3Npb25UeXBlJztcbmltcG9ydCB0eXBlIFBsYXllclBlcm1pc3Npb25UeXBlIGZyb20gJy4uL3R5cGUvUGxheWVyUGVybWlzc2lvblR5cGUnO1xuXG5leHBvcnQgZW51bSBBYmlsaXR5TGF5ZXJUeXBlIHtcbiAgICBDQUNIRSxcbiAgICBCQVNFLFxuICAgIFNQRUNUQVRPUixcbiAgICBDT01NQU5EUyxcbiAgICBFRElUT1Jcbn1cblxuZXhwb3J0IGVudW0gQWJpbGl0eUxheWVyRmxhZyB7XG4gICAgQlVJTEQsXG4gICAgTUlORSxcbiAgICBET09SU19BTkRfU1dJVENIRVMsXG4gICAgT1BFTl9DT05UQUlORVJTLFxuICAgIEFUVEFDS19QTEFZRVJTLFxuICAgIEFUVEFDS19NT0JTLFxuICAgIE9QRVJBVE9SX0NPTU1BTkRTLFxuICAgIFRFTEVQT1JULFxuICAgIElOVlVMTkVSQUJMRSxcbiAgICBGTFlJTkcsXG4gICAgTUFZX0ZMWSxcbiAgICBJTlNUQUJVSUxELFxuICAgIExJR0hUTklORyxcbiAgICBGTFlfU1BFRUQsXG4gICAgV0FMS19TUEVFRCxcbiAgICBNVVRFRCxcbiAgICBXT1JMRF9CVUlMREVSLFxuICAgIE5PX0NMSVAsXG4gICAgUFJJVklMRUdFRF9CVUlMREVSXG59XG5cbmV4cG9ydCBjbGFzcyBBYmlsaXR5TGF5ZXIge1xuICAgIHB1YmxpYyBsYXllclR5cGUhOiBBYmlsaXR5TGF5ZXJUeXBlO1xuICAgIHB1YmxpYyBsYXllckZsYWdzITogTWFwPEFiaWxpdHlMYXllckZsYWcsIGJvb2xlYW4+O1xuXG4gICAgcHVibGljIGZseVNwZWVkITogbnVtYmVyO1xuICAgIHB1YmxpYyB3YWxrU3BlZWQhOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgZ2V0RW5jb2RlZEZsYWdzKCk6IHsgZmxhZ3NIYXNoOiBudW1iZXI7IHZhbHVlc0hhc2g6IG51bWJlciB9IHtcbiAgICAgICAgbGV0IFtmbGFnc0hhc2gsIHZhbHVlc0hhc2hdID0gWzAsIDBdO1xuICAgICAgICBmb3IgKGNvbnN0IFtmbGFnLCB2YWx1ZV0gb2YgdGhpcy5sYXllckZsYWdzLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgZmxhZ3NIYXNoIHw9IDEgPDwgZmxhZztcbiAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgYSBiZXR0ZXIgc29sdXRpb24sIG1heSB3b3JrIGZvciBub3cgYnV0IGkgZG9uJ3QgbGlrZSB0aGlzIGhhY2tcbiAgICAgICAgICAgIGlmIChbQWJpbGl0eUxheWVyRmxhZy5XQUxLX1NQRUVELCBBYmlsaXR5TGF5ZXJGbGFnLkZMWV9TUEVFRF0uaW5jbHVkZXMoZmxhZykpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlc0hhc2ggfD0gdmFsdWUgPyAxIDw8IGZsYWcgOiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGZsYWdzSGFzaCwgdmFsdWVzSGFzaCB9O1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXBkYXRlQWJpbGl0aWVzUGFja2V0IGV4dGVuZHMgRGF0YVBhY2tldCB7XG4gICAgcHVibGljIHN0YXRpYyBOZXRJRCA9IElkZW50aWZpZXJzLlVwZGF0ZUFiaWxpdGllc1BhY2tldDtcblxuICAgIHB1YmxpYyBjb21tYW5kUGVybWlzc2lvbiE6IFBlcm1pc3Npb25UeXBlO1xuICAgIHB1YmxpYyBwbGF5ZXJQZXJtaXNzaW9uITogUGxheWVyUGVybWlzc2lvblR5cGU7XG4gICAgcHVibGljIHRhcmdldEFjdG9yVW5pcXVlSWQhOiBiaWdpbnQ7XG4gICAgcHVibGljIGFiaWxpdHlMYXllcnMhOiBBYmlsaXR5TGF5ZXJbXTtcblxuICAgIHB1YmxpYyBlbmNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlTG9uZ0xFKHRoaXMudGFyZ2V0QWN0b3JVbmlxdWVJZCk7XG4gICAgICAgIHRoaXMud3JpdGVCeXRlKHRoaXMucGxheWVyUGVybWlzc2lvbik7XG4gICAgICAgIHRoaXMud3JpdGVCeXRlKHRoaXMuY29tbWFuZFBlcm1pc3Npb24pO1xuXG4gICAgICAgIHRoaXMud3JpdGVCeXRlKHRoaXMuYWJpbGl0eUxheWVycy5sZW5ndGgpO1xuICAgICAgICBmb3IgKGNvbnN0IGFiaWxpdHlMYXllciBvZiB0aGlzLmFiaWxpdHlMYXllcnMpIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVTaG9ydExFKGFiaWxpdHlMYXllci5sYXllclR5cGUpO1xuICAgICAgICAgICAgY29uc3QgZW5jb2RlZEZsYWdzID0gYWJpbGl0eUxheWVyLmdldEVuY29kZWRGbGFncygpO1xuICAgICAgICAgICAgdGhpcy53cml0ZUludExFKGVuY29kZWRGbGFncy5mbGFnc0hhc2gpO1xuICAgICAgICAgICAgdGhpcy53cml0ZUludExFKGVuY29kZWRGbGFncy52YWx1ZXNIYXNoKTtcbiAgICAgICAgICAgIHRoaXMud3JpdGVGbG9hdExFKGFiaWxpdHlMYXllci5mbHlTcGVlZCk7XG4gICAgICAgICAgICB0aGlzLndyaXRlRmxvYXRMRShhYmlsaXR5TGF5ZXIud2Fsa1NwZWVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkZWNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhcmdldEFjdG9yVW5pcXVlSWQgPSB0aGlzLnJlYWRMb25nTEUoKTtcbiAgICAgICAgdGhpcy5wbGF5ZXJQZXJtaXNzaW9uID0gdGhpcy5yZWFkQnl0ZSgpO1xuICAgICAgICB0aGlzLmNvbW1hbmRQZXJtaXNzaW9uID0gdGhpcy5yZWFkQnl0ZSgpO1xuXG4gICAgICAgIGNvbnN0IGxlbiA9IHRoaXMucmVhZEJ5dGUoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgLy8gVE9ETzogZGVjb2RlIGFiaWxpdGllc1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIkFiaWxpdHlMYXllclR5cGUiLCJBYmlsaXR5TGF5ZXJGbGFnIiwiRGF0YVBhY2tldCIsIklkZW50aWZpZXJzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBS1ksSUFBQSxnQkFBQSxxQkFBQUEsaUJBQUwsS0FBQTtBQUNILEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxPQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxPQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLE1BQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLE1BQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsV0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsV0FBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxVQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxVQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLFFBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLFFBQUE7QUFMUSxFQUFBQSxPQUFBQSxpQkFBQUE7QUFBQSxDQUFBLEVBQUEsZ0JBQUEsSUFBQSxFQUFBO0FBUUEsSUFBQSxnQkFBQSxxQkFBQUMsaUJBQUwsS0FBQTtBQUNILEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxPQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxPQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLE1BQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLE1BQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsb0JBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLG9CQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxpQkFBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxnQkFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsZ0JBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsYUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsYUFBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxtQkFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsbUJBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsVUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsVUFBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxjQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxjQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLFFBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLFFBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsU0FBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLEdBQUEsU0FBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxZQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsR0FBQSxZQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLFdBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBQSxHQUFBLFdBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsV0FBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLEdBQUEsV0FBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxZQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsR0FBQSxZQUFBO0FBQ0EsRUFBQUEsaUJBQUEs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