UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

28 lines (27 loc) 4.51 kB
import Identifiers from "../Identifiers.es.js"; import MovementType from "../type/MovementType.es.js"; import PlayerMoveEvent from "../../events/player/PlayerMoveEvent.es.js"; //#region src/network/handler/MovePlayerHandler.ts var MovePlayerHandler = class { static NetID = Identifiers.MovePlayerPacket; async handle(packet, server, session) { const player = session.getPlayer(); const event = new PlayerMoveEvent(player, packet.position, packet.mode); server.post(["playerMove", event]); if (event.isCancelled()) { await session.broadcastMove(player, MovementType.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, MovementType.Normal))); } }; //#endregion export { MovePlayerHandler as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW92ZVBsYXllckhhbmRsZXIuZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvaGFuZGxlci9Nb3ZlUGxheWVySGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBsYXllclNlc3Npb24gfSBmcm9tICcuLi8uLi8nO1xuaW1wb3J0IHR5cGUgU2VydmVyIGZyb20gJy4uLy4uL1NlcnZlcic7XG5pbXBvcnQgUGxheWVyTW92ZUV2ZW50IGZyb20gJy4uLy4uL2V2ZW50cy9wbGF5ZXIvUGxheWVyTW92ZUV2ZW50JztcbmltcG9ydCBJZGVudGlmaWVycyBmcm9tICcuLi9JZGVudGlmaWVycyc7XG5pbXBvcnQgdHlwZSBNb3ZlUGxheWVyUGFja2V0IGZyb20gJy4uL3BhY2tldC9Nb3ZlUGxheWVyUGFja2V0JztcbmltcG9ydCBNb3ZlbWVudFR5cGUgZnJvbSAnLi4vdHlwZS9Nb3ZlbWVudFR5cGUnO1xuaW1wb3J0IHR5cGUgUGFja2V0SGFuZGxlciBmcm9tICcuL1BhY2tldEhhbmRsZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb3ZlUGxheWVySGFuZGxlciBpbXBsZW1lbnRzIFBhY2tldEhhbmRsZXI8TW92ZVBsYXllclBhY2tldD4ge1xuICAgIHB1YmxpYyBzdGF0aWMgTmV0SUQgPSBJZGVudGlmaWVycy5Nb3ZlUGxheWVyUGFja2V0O1xuXG4gICAgcHVibGljIGFzeW5jIGhhbmRsZShwYWNrZXQ6IE1vdmVQbGF5ZXJQYWNrZXQsIHNlcnZlcjogU2VydmVyLCBzZXNzaW9uOiBQbGF5ZXJTZXNzaW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHBsYXllciA9IHNlc3Npb24uZ2V0UGxheWVyKCk7XG5cbiAgICAgICAgLy8gRW1pdCBtb3ZlIGV2ZW50LlxuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBQbGF5ZXJNb3ZlRXZlbnQocGxheWVyLCBwYWNrZXQucG9zaXRpb24sIHBhY2tldC5tb2RlKTtcbiAgICAgICAgc2VydmVyLnBvc3QoWydwbGF5ZXJNb3ZlJywgZXZlbnRdKTtcbiAgICAgICAgaWYgKGV2ZW50LmlzQ2FuY2VsbGVkKCkpIHtcbiAgICAgICAgICAgIC8vIFNpbmNlIHdlJ3JlIGNhbmNlbGxpbmcgdGhlIGV2ZW50LCB3ZSBzaG91bGQgcmVzZXQgdGhlIHBsYXllcidzIHBvc2l0aW9uLlxuICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5icm9hZGNhc3RNb3ZlKHBsYXllciwgTW92ZW1lbnRUeXBlLlJlc2V0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVwZGF0ZSBwbGF5ZXIgcG9zaXRpb24uXG4gICAgICAgIGF3YWl0IHBsYXllci5zZXRQb3NpdGlvbihcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcGFja2V0LnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgIHBpdGNoOiBwYWNrZXQucGl0Y2gsXG4gICAgICAgICAgICAgICAgeWF3OiBwYWNrZXQueWF3LFxuICAgICAgICAgICAgICAgIGhlYWRZYXc6IHBhY2tldC5oZWFkWWF3XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBBZGRpdGlvbmFsIGZpZWxkcy5cbiAgICAgICAgYXdhaXQgcGxheWVyLnNldE9uR3JvdW5kKHBhY2tldC5vbkdyb3VuZCk7XG5cbiAgICAgICAgLy8gRmluYWxseSwgYnJvYWRjYXN0IHRoZSBtb3ZlIHRvIGFsbCBwbGF5ZXJzIGV4Y2VwdCB0aGUgcGxheWVyIGl0c2VsZiBpbiB0aGUgd29ybGQuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgcGxheWVyXG4gICAgICAgICAgICAgICAgLmdldFdvcmxkKClcbiAgICAgICAgICAgICAgICAuZ2V0UGxheWVycygpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigodGFyZ2V0KSA9PiB0YXJnZXQuZ2V0VVVJRCgpICE9PSBwbGF5ZXIuZ2V0VVVJRCgpKVxuICAgICAgICAgICAgICAgIC5tYXAoKHRhcmdldCkgPT4gdGFyZ2V0LmdldE5ldHdvcmtTZXNzaW9uKCkuYnJvYWRjYXN0TW92ZShwbGF5ZXIsIE1vdmVtZW50VHlwZS5Ob3JtYWwpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQVFBLElBQXFCLG9CQUFyQixNQUFrRjtDQUM5RSxPQUFjLFFBQVEsWUFBWTtDQUVsQyxNQUFhLE9BQU8sUUFBMEIsUUFBZ0IsU0FBdUM7RUFDakcsTUFBTSxTQUFTLFFBQVEsVUFBVTtFQUdqQyxNQUFNLFFBQVEsSUFBSSxnQkFBZ0IsUUFBUSxPQUFPLFVBQVUsT0FBTyxJQUFJO0VBQ3RFLE9BQU8sS0FBSyxDQUFDLGNBQWMsS0FBSyxDQUFDO0VBQ2pDLElBQUksTUFBTSxZQUFZLEdBQUc7R0FFckIsTUFBTSxRQUFRLGNBQWMsUUFBUSxhQUFhLEtBQUs7R0FDdEQ7RUFDSjtFQUdBLE1BQU0sT0FBTyxZQUNUO0dBQ0ksVUFBVSxPQUFPO0dBQ2pCLE9BQU8sT0FBTztHQUNkLEtBQUssT0FBTztHQUNaLFNBQVMsT0FBTztFQUNwQixHQUNBLEtBQ0o7RUFHQSxNQUFNLE9BQU8sWUFBWSxPQUFPLFFBQVE7RUFHeEMsTUFBTSxRQUFRLElBQ1YsT0FDSyxTQUFTLEVBQ1QsV0FBVyxFQUNYLFFBQVEsV0FBVyxPQUFPLFFBQVEsTUFBTSxPQUFPLFFBQVEsQ0FBQyxFQUN4RCxLQUFLLFdBQVcsT0FBTyxrQkFBa0IsRUFBRSxjQUFjLFFBQVEsYUFBYSxNQUFNLENBQUMsQ0FDOUY7Q0FDSjtBQUNKIn0=