@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
81 lines (78 loc) • 11.8 kB
JavaScript
import DataPacket from './DataPacket.es.js';
import Identifiers from '../Identifiers.es.js';
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 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();
this.readByte();
}
}
export { AbilityLayer, AbilityLayerFlag, AbilityLayerType, UpdateAbilitiesPacket as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRlQWJpbGl0aWVzUGFja2V0LmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9wYWNrZXQvVXBkYXRlQWJpbGl0aWVzUGFja2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEYXRhUGFja2V0IGZyb20gJy4vRGF0YVBhY2tldCc7XG5pbXBvcnQgSWRlbnRpZmllcnMgZnJvbSAnLi4vSWRlbnRpZmllcnMnO1xuaW1wb3J0IHR5cGUgUGVybWlzc2lvblR5cGUgZnJvbSAnLi4vdHlwZS9QZXJtaXNzaW9uVHlwZSc7XG5pbXBvcnQgdHlwZSBQbGF5ZXJQZXJtaXNzaW9uVHlwZSBmcm9tICcuLi90eXBlL1BsYXllclBlcm1pc3Npb25UeXBlJztcblxuZXhwb3J0IGVudW0gQWJpbGl0eUxheWVyVHlwZSB7XG4gICAgQ0FDSEUsXG4gICAgQkFTRSxcbiAgICBTUEVDVEFUT1IsXG4gICAgQ09NTUFORFMsXG4gICAgRURJVE9SXG59XG5cbmV4cG9ydCBlbnVtIEFiaWxpdHlMYXllckZsYWcge1xuICAgIEJVSUxELFxuICAgIE1JTkUsXG4gICAgRE9PUlNfQU5EX1NXSVRDSEVTLFxuICAgIE9QRU5fQ09OVEFJTkVSUyxcbiAgICBBVFRBQ0tfUExBWUVSUyxcbiAgICBBVFRBQ0tfTU9CUyxcbiAgICBPUEVSQVRPUl9DT01NQU5EUyxcbiAgICBURUxFUE9SVCxcbiAgICBJTlZVTE5FUkFCTEUsXG4gICAgRkxZSU5HLFxuICAgIE1BWV9GTFksXG4gICAgSU5TVEFCVUlMRCxcbiAgICBMSUdIVE5JTkcsXG4gICAgRkxZX1NQRUVELFxuICAgIFdBTEtfU1BFRUQsXG4gICAgTVVURUQsXG4gICAgV09STERfQlVJTERFUixcbiAgICBOT19DTElQLFxuICAgIFBSSVZJTEVHRURfQlVJTERFUlxufVxuXG5leHBvcnQgY2xhc3MgQWJpbGl0eUxheWVyIHtcbiAgICBwdWJsaWMgbGF5ZXJUeXBlITogQWJpbGl0eUxheWVyVHlwZTtcbiAgICBwdWJsaWMgbGF5ZXJGbGFncyE6IE1hcDxBYmlsaXR5TGF5ZXJGbGFnLCBib29sZWFuPjtcblxuICAgIHB1YmxpYyBmbHlTcGVlZCE6IG51bWJlcjtcbiAgICBwdWJsaWMgd2Fsa1NwZWVkITogbnVtYmVyO1xuXG4gICAgcHVibGljIGdldEVuY29kZWRGbGFncygpOiB7IGZsYWdzSGFzaDogbnVtYmVyOyB2YWx1ZXNIYXNoOiBudW1iZXIgfSB7XG4gICAgICAgIGxldCBbZmxhZ3NIYXNoLCB2YWx1ZXNIYXNoXSA9IFswLCAwXTtcbiAgICAgICAgZm9yIChjb25zdCBbZmxhZywgdmFsdWVdIG9mIHRoaXMubGF5ZXJGbGFncy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGZsYWdzSGFzaCB8PSAxIDw8IGZsYWc7XG4gICAgICAgICAgICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uLCBtYXkgd29yayBmb3Igbm93IGJ1dCBpIGRvbid0IGxpa2UgdGhpcyBoYWNrXG4gICAgICAgICAgICBpZiAoW0FiaWxpdHlMYXllckZsYWcuV0FMS19TUEVFRCwgQWJpbGl0eUxheWVyRmxhZy5GTFlfU1BFRURdLmluY2x1ZGVzKGZsYWcpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YWx1ZXNIYXNoIHw9IHZhbHVlID8gMSA8PCBmbGFnIDogMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBmbGFnc0hhc2gsIHZhbHVlc0hhc2ggfTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVwZGF0ZUFiaWxpdGllc1BhY2tldCBleHRlbmRzIERhdGFQYWNrZXQge1xuICAgIHB1YmxpYyBzdGF0aWMgTmV0SUQgPSBJZGVudGlmaWVycy5VcGRhdGVBYmlsaXRpZXNQYWNrZXQ7XG5cbiAgICBwdWJsaWMgY29tbWFuZFBlcm1pc3Npb24hOiBQZXJtaXNzaW9uVHlwZTtcbiAgICBwdWJsaWMgcGxheWVyUGVybWlzc2lvbiE6IFBsYXllclBlcm1pc3Npb25UeXBlO1xuICAgIHB1YmxpYyB0YXJnZXRBY3RvclVuaXF1ZUlkITogYmlnaW50O1xuICAgIHB1YmxpYyBhYmlsaXR5TGF5ZXJzITogQWJpbGl0eUxheWVyW107XG5cbiAgICBwdWJsaWMgZW5jb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53cml0ZUxvbmdMRSh0aGlzLnRhcmdldEFjdG9yVW5pcXVlSWQpO1xuICAgICAgICB0aGlzLndyaXRlQnl0ZSh0aGlzLnBsYXllclBlcm1pc3Npb24pO1xuICAgICAgICB0aGlzLndyaXRlQnl0ZSh0aGlzLmNvbW1hbmRQZXJtaXNzaW9uKTtcblxuICAgICAgICB0aGlzLndyaXRlQnl0ZSh0aGlzLmFiaWxpdHlMYXllcnMubGVuZ3RoKTtcbiAgICAgICAgZm9yIChjb25zdCBhYmlsaXR5TGF5ZXIgb2YgdGhpcy5hYmlsaXR5TGF5ZXJzKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlU2hvcnRMRShhYmlsaXR5TGF5ZXIubGF5ZXJUeXBlKTtcbiAgICAgICAgICAgIGNvbnN0IGVuY29kZWRGbGFncyA9IGFiaWxpdHlMYXllci5nZXRFbmNvZGVkRmxhZ3MoKTtcbiAgICAgICAgICAgIHRoaXMud3JpdGVJbnRMRShlbmNvZGVkRmxhZ3MuZmxhZ3NIYXNoKTtcbiAgICAgICAgICAgIHRoaXMud3JpdGVJbnRMRShlbmNvZGVkRmxhZ3MudmFsdWVzSGFzaCk7XG4gICAgICAgICAgICB0aGlzLndyaXRlRmxvYXRMRShhYmlsaXR5TGF5ZXIuZmx5U3BlZWQpO1xuICAgICAgICAgICAgdGhpcy53cml0ZUZsb2F0TEUoYWJpbGl0eUxheWVyLndhbGtTcGVlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZGVjb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YXJnZXRBY3RvclVuaXF1ZUlkID0gdGhpcy5yZWFkTG9uZ0xFKCk7XG4gICAgICAgIHRoaXMucGxheWVyUGVybWlzc2lvbiA9IHRoaXMucmVhZEJ5dGUoKTtcbiAgICAgICAgdGhpcy5jb21tYW5kUGVybWlzc2lvbiA9IHRoaXMucmVhZEJ5dGUoKTtcblxuICAgICAgICBjb25zdCBsZW4gPSB0aGlzLnJlYWRCeXRlKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIC8vIFRPRE86IGRlY29kZSBhYmlsaXRpZXNcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJBYmlsaXR5TGF5ZXJUeXBlIiwiQWJpbGl0eUxheWVyRmxhZyJdLCJtYXBwaW5ncyI6Ijs7O0FBS1ksSUFBQSxnQkFBQSxxQkFBQUEsaUJBQUwsS0FBQTtBQUNILEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxPQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxPQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLE1BQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLE1BQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsV0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsV0FBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxVQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxVQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLFFBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLFFBQUE7QUFMUSxFQUFBQSxPQUFBQSxpQkFBQUE7QUFBQSxDQUFBLEVBQUEsZ0JBQUEsSUFBQSxFQUFBO0FBUUEsSUFBQSxnQkFBQSxxQkFBQUMsaUJBQUwsS0FBQTtBQUNILEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxPQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxPQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLE1BQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLE1BQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsb0JBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLG9CQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxpQkFBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxnQkFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsZ0JBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsYUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsYUFBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxtQkFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsbUJBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsVUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsVUFBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxjQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxjQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLFFBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLFFBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsU0FBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLEdBQUEsU0FBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxZQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsR0FBQSxZQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLFdBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBQSxHQUFBLFdBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsV0FBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLEdBQUEsV0FBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxZQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsR0FBQSxZQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLE9BQUEsQ0FBQSxHQUFBLEVB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