@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
37 lines (32 loc) • 5.35 kB
JavaScript
;
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