UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

37 lines (32 loc) 5.35 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const events_player_PlayerMoveEvent = require('../../events/player/PlayerMoveEvent.cjs.cjs'); const network_Identifiers = require('../Identifiers.cjs.cjs'); const network_type_MovementType = require('../type/MovementType.cjs.cjs'); class MovePlayerHandler { static NetID = network_Identifiers.default.MovePlayerPacket; async handle(packet, server, session) { const player = session.getPlayer(); const event = new events_player_PlayerMoveEvent.default(player, packet.position, packet.mode); server.post(["playerMove", event]); if (event.isCancelled()) { await session.broadcastMove(player, network_type_MovementType.default.Reset); return; } await player.setPosition( { position: packet.position, pitch: packet.pitch, yaw: packet.yaw, headYaw: packet.headYaw }, false ); await player.setOnGround(packet.onGround); await Promise.all( player.getWorld().getPlayers().filter((target) => target.getUUID() !== player.getUUID()).map((target) => target.getNetworkSession().broadcastMove(player, network_type_MovementType.default.Normal)) ); } } exports.default = MovePlayerHandler; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW92ZVBsYXllckhhbmRsZXIuY2pzLmNqcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvaGFuZGxlci9Nb3ZlUGxheWVySGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBsYXllclNlc3Npb24gfSBmcm9tICcuLi8uLi8nO1xuaW1wb3J0IHR5cGUgU2VydmVyIGZyb20gJy4uLy4uL1NlcnZlcic7XG5pbXBvcnQgUGxheWVyTW92ZUV2ZW50IGZyb20gJy4uLy4uL2V2ZW50cy9wbGF5ZXIvUGxheWVyTW92ZUV2ZW50JztcbmltcG9ydCBJZGVudGlmaWVycyBmcm9tICcuLi9JZGVudGlmaWVycyc7XG5pbXBvcnQgdHlwZSBNb3ZlUGxheWVyUGFja2V0IGZyb20gJy4uL3BhY2tldC9Nb3ZlUGxheWVyUGFja2V0JztcbmltcG9ydCBNb3ZlbWVudFR5cGUgZnJvbSAnLi4vdHlwZS9Nb3ZlbWVudFR5cGUnO1xuaW1wb3J0IHR5cGUgUGFja2V0SGFuZGxlciBmcm9tICcuL1BhY2tldEhhbmRsZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb3ZlUGxheWVySGFuZGxlciBpbXBsZW1lbnRzIFBhY2tldEhhbmRsZXI8TW92ZVBsYXllclBhY2tldD4ge1xuICAgIHB1YmxpYyBzdGF0aWMgTmV0SUQgPSBJZGVudGlmaWVycy5Nb3ZlUGxheWVyUGFja2V0O1xuXG4gICAgcHVibGljIGFzeW5jIGhhbmRsZShwYWNrZXQ6IE1vdmVQbGF5ZXJQYWNrZXQsIHNlcnZlcjogU2VydmVyLCBzZXNzaW9uOiBQbGF5ZXJTZXNzaW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHBsYXllciA9IHNlc3Npb24uZ2V0UGxheWVyKCk7XG5cbiAgICAgICAgLy8gRW1pdCBtb3ZlIGV2ZW50LlxuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBQbGF5ZXJNb3ZlRXZlbnQocGxheWVyLCBwYWNrZXQucG9zaXRpb24sIHBhY2tldC5tb2RlKTtcbiAgICAgICAgc2VydmVyLnBvc3QoWydwbGF5ZXJNb3ZlJywgZXZlbnRdKTtcbiAgICAgICAgaWYgKGV2ZW50LmlzQ2FuY2VsbGVkKCkpIHtcbiAgICAgICAgICAgIC8vIFNpbmNlIHdlJ3JlIGNhbmNlbGxpbmcgdGhlIGV2ZW50LCB3ZSBzaG91bGQgcmVzZXQgdGhlIHBsYXllcidzIHBvc2l0aW9uLlxuICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5icm9hZGNhc3RNb3ZlKHBsYXllciwgTW92ZW1lbnRUeXBlLlJlc2V0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVwZGF0ZSBwbGF5ZXIgcG9zaXRpb24uXG4gICAgICAgIGF3YWl0IHBsYXllci5zZXRQb3NpdGlvbihcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcGFja2V0LnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgIHBpdGNoOiBwYWNrZXQucGl0Y2gsXG4gICAgICAgICAgICAgICAgeWF3OiBwYWNrZXQueWF3LFxuICAgICAgICAgICAgICAgIGhlYWRZYXc6IHBhY2tldC5oZWFkWWF3XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBBZGRpdGlvbmFsIGZpZWxkcy5cbiAgICAgICAgYXdhaXQgcGxheWVyLnNldE9uR3JvdW5kKHBhY2tldC5vbkdyb3VuZCk7XG5cbiAgICAgICAgLy8gRmluYWxseSwgYnJvYWRjYXN0IHRoZSBtb3ZlIHRvIGFsbCBwbGF5ZXJzIGV4Y2VwdCB0aGUgcGxheWVyIGl0c2VsZiBpbiB0aGUgd29ybGQuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgcGxheWVyXG4gICAgICAgICAgICAgICAgLmdldFdvcmxkKClcbiAgICAgICAgICAgICAgICAuZ2V0UGxheWVycygpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigodGFyZ2V0KSA9PiB0YXJnZXQuZ2V0VVVJRCgpICE9PSBwbGF5ZXIuZ2V0VVVJRCgpKVxuICAgICAgICAgICAgICAgIC5tYXAoKHRhcmdldCkgPT4gdGFyZ2V0LmdldE5ldHdvcmtTZXNzaW9uKCkuYnJvYWRjYXN0TW92ZShwbGF5ZXIsIE1vdmVtZW50VHlwZS5Ob3JtYWwpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJJZGVudGlmaWVycyIsIlBsYXllck1vdmVFdmVudCIsIk1vdmVtZW50VHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFRQSxNQUFxQixpQkFBNkQsQ0FBQTtBQUFBLEVBQzlFLE9BQWMsUUFBUUEsMkJBQVksQ0FBQSxnQkFBQTtBQUFBLEVBRWxDLE1BQWEsTUFBQSxDQUFPLE1BQTBCLEVBQUEsTUFBQSxFQUFnQixPQUF1QyxFQUFBO0FBQ2pHLElBQU0sTUFBQSxNQUFBLEdBQVMsUUFBUSxTQUFVLEVBQUE7QUFHakMsSUFBQSxNQUFNLFFBQVEsSUFBSUMscUNBQUEsQ0FBZ0IsUUFBUSxNQUFPLENBQUEsUUFBQSxFQUFVLE9BQU8sSUFBSSxDQUFBO0FBQ3RFLElBQUEsTUFBQSxDQUFPLElBQUssQ0FBQSxDQUFDLFlBQWMsRUFBQSxLQUFLLENBQUMsQ0FBQTtBQUNqQyxJQUFJLElBQUEsS0FBQSxDQUFNLGFBQWUsRUFBQTtBQUVyQixNQUFBLE1BQU0sT0FBUSxDQUFBLGFBQUEsQ0FBYyxNQUFRLEVBQUFDLGlDQUFBLENBQWEsS0FBSyxDQUFBO0FBQ3RELE1BQUE7QUFBQTtBQUlKLElBQUEsTUFBTSxNQUFPLENBQUEsV0FBQTtBQUFBLE1BQ1Q7QUFBQSxRQUNJLFVBQVUsTUFBTyxDQUFBLFFBQUE7QUFBQSxRQUNqQixPQUFPLE1BQU8sQ0FBQSxLQUFBO0FBQUEsUUFDZCxLQUFLLE1BQU8sQ0FBQSxHQUFBO0FBQUEsUUFDWixTQUFTLE1BQU8sQ0FBQTtBQUFBLE9BQ3BCO0FBQUEsTUFDQTtBQUFBLEtBQ0o7QUFHQSxJQUFNLE1BQUEsTUFBQSxDQUFPLFdBQVksQ0FBQSxNQUFBLENBQU8sUUFBUSxDQUFBO0FBR3hDLElBQUEsTUFBTSxPQUFRLENBQUEsR0FBQTtBQUFBLE1BQ1YsTUFBQSxDQUNLLFFBQVMsRUFBQSxDQUNULFVBQVcsRUFBQSxDQUNYLE9BQU8sQ0FBQyxNQUFBLEtBQVcsTUFBTyxDQUFBLE9BQUEsRUFBYyxLQUFBLE1BQUEsQ0FBTyxTQUFTLENBQUEsQ0FDeEQsR0FBSSxDQUFBLENBQUMsTUFBVyxLQUFBLE1BQUEsQ0FBTyxpQkFBa0IsRUFBQSxDQUFFLGFBQWMsQ0FBQSxNQUFBLEVBQVFBLGlDQUFhLENBQUEsTUFBTSxDQUFDO0FBQUEsS0FDOUY7QUFBQTtBQUVSOzs7OyJ9