UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

81 lines (78 loc) 11.8 kB
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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