UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

55 lines (54 loc) 8.52 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const require_block_BlockMappings = require("../../block/BlockMappings.cjs.cjs"); const require_network_Identifiers = require("../Identifiers.cjs.cjs"); const require_network_packet_PlayerActionPacket = require("../packet/PlayerActionPacket.cjs.cjs"); const require_network_packet_WorldEventPacket = require("../packet/WorldEventPacket.cjs.cjs"); //#region src/network/handler/PlayerActionHandler.ts var PlayerActionHandler = class { static NetID = require_network_Identifiers.default.PlayerActionPacket; async handle(packet, server, session) { const player = session.getPlayer(); const world = player.getWorld(); const block = await world.getBlock(packet.blockPosition.getX(), packet.blockPosition.getY(), packet.blockPosition.getZ()); switch (packet.action) { case require_network_packet_PlayerActionPacket.PlayerAction.START_BREAK: { const breakTime = Math.ceil(block.getBreakTime(null, server) * 20); await world.sendWorldEvent(packet.blockPosition, require_network_packet_WorldEventPacket.WorldEvent.BLOCK_START_BREAK, 65535 / breakTime); return; } case require_network_packet_PlayerActionPacket.PlayerAction.ABORT_BREAK: await world.sendWorldEvent(packet.blockPosition, require_network_packet_WorldEventPacket.WorldEvent.BLOCK_STOP_BREAK, 0); return; case require_network_packet_PlayerActionPacket.PlayerAction.STOP_BREAK: return; case require_network_packet_PlayerActionPacket.PlayerAction.CONTINUE_DESTROY_BLOCK: case require_network_packet_PlayerActionPacket.PlayerAction.CREATIVE_PLAYER_DESTROY_BLOCK: await world.sendWorldEvent(packet.blockPosition, require_network_packet_WorldEventPacket.WorldEvent.PARTICLE_DESTROY_BLOCK, require_block_BlockMappings.BlockMappings.getRuntimeId(block.getName())); return; case require_network_packet_PlayerActionPacket.PlayerAction.CRACK_BLOCK: return; case require_network_packet_PlayerActionPacket.PlayerAction.RESPAWN: return; case require_network_packet_PlayerActionPacket.PlayerAction.JUMP: return; case require_network_packet_PlayerActionPacket.PlayerAction.START_SPRINT: await player.setSprinting(true); return; case require_network_packet_PlayerActionPacket.PlayerAction.STOP_SPRINT: await player.setSprinting(false); return; case require_network_packet_PlayerActionPacket.PlayerAction.START_SNEAK: await player.setSneaking(true); return; case require_network_packet_PlayerActionPacket.PlayerAction.STOP_SNEAK: await player.setSneaking(false); return; default: server.getLogger().verbose(`Unhandled player action: ${packet.action}`); break; } } }; //#endregion exports.default = PlayerActionHandler; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxheWVyQWN0aW9uSGFuZGxlci5janMuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZXR3b3JrL2hhbmRsZXIvUGxheWVyQWN0aW9uSGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXb3JsZEV2ZW50IH0gZnJvbSAnLi4vcGFja2V0L1dvcmxkRXZlbnRQYWNrZXQnO1xuXG5pbXBvcnQgdHlwZSB7IFBsYXllclNlc3Npb24gfSBmcm9tICcuLi8uLi8nO1xuaW1wb3J0IHR5cGUgU2VydmVyIGZyb20gJy4uLy4uL1NlcnZlcic7XG5pbXBvcnQgeyBCbG9ja01hcHBpbmdzIH0gZnJvbSAnLi4vLi4vYmxvY2svQmxvY2tNYXBwaW5ncyc7XG5pbXBvcnQgSWRlbnRpZmllcnMgZnJvbSAnLi4vSWRlbnRpZmllcnMnO1xuaW1wb3J0IHR5cGUgUGxheWVyQWN0aW9uUGFja2V0IGZyb20gJy4uL3BhY2tldC9QbGF5ZXJBY3Rpb25QYWNrZXQnO1xuaW1wb3J0IHsgUGxheWVyQWN0aW9uIH0gZnJvbSAnLi4vcGFja2V0L1BsYXllckFjdGlvblBhY2tldCc7XG5pbXBvcnQgdHlwZSBQYWNrZXRIYW5kbGVyIGZyb20gJy4vUGFja2V0SGFuZGxlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsYXllckFjdGlvbkhhbmRsZXIgaW1wbGVtZW50cyBQYWNrZXRIYW5kbGVyPFBsYXllckFjdGlvblBhY2tldD4ge1xuICAgIHB1YmxpYyBzdGF0aWMgTmV0SUQgPSBJZGVudGlmaWVycy5QbGF5ZXJBY3Rpb25QYWNrZXQ7XG5cbiAgICBwdWJsaWMgYXN5bmMgaGFuZGxlKHBhY2tldDogUGxheWVyQWN0aW9uUGFja2V0LCBzZXJ2ZXI6IFNlcnZlciwgc2Vzc2lvbjogUGxheWVyU2Vzc2lvbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBwbGF5ZXIgPSBzZXNzaW9uLmdldFBsYXllcigpO1xuICAgICAgICBjb25zdCB3b3JsZCA9IHBsYXllci5nZXRXb3JsZCgpO1xuXG4gICAgICAgIGNvbnN0IGJsb2NrID0gYXdhaXQgd29ybGQuZ2V0QmxvY2soXG4gICAgICAgICAgICBwYWNrZXQuYmxvY2tQb3NpdGlvbi5nZXRYKCksXG4gICAgICAgICAgICBwYWNrZXQuYmxvY2tQb3NpdGlvbi5nZXRZKCksXG4gICAgICAgICAgICBwYWNrZXQuYmxvY2tQb3NpdGlvbi5nZXRaKClcbiAgICAgICAgKTtcblxuICAgICAgICBzd2l0Y2ggKHBhY2tldC5hY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgUGxheWVyQWN0aW9uLlNUQVJUX0JSRUFLOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnJlYWtUaW1lID0gTWF0aC5jZWlsKGJsb2NrLmdldEJyZWFrVGltZShudWxsLCBzZXJ2ZXIpICogMjApOyAvLyBUT0RPOiBjYWxjdWxhdGUgd2l0aCBpdGVtIGluIGhhbmRcblxuICAgICAgICAgICAgICAgIGF3YWl0IHdvcmxkLnNlbmRXb3JsZEV2ZW50KHBhY2tldC5ibG9ja1Bvc2l0aW9uLCBXb3JsZEV2ZW50LkJMT0NLX1NUQVJUX0JSRUFLLCA2NTUzNSAvIGJyZWFrVGltZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlIFBsYXllckFjdGlvbi5BQk9SVF9CUkVBSzoge1xuICAgICAgICAgICAgICAgIGF3YWl0IHdvcmxkLnNlbmRXb3JsZEV2ZW50KHBhY2tldC5ibG9ja1Bvc2l0aW9uLCBXb3JsZEV2ZW50LkJMT0NLX1NUT1BfQlJFQUssIDApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBQbGF5ZXJBY3Rpb24uU1RPUF9CUkVBSzoge1xuICAgICAgICAgICAgICAgIC8vIEhhbmRsZWQgaW4gSW52ZW50b3J5VHJhbnNhY3Rpb25IYW5kbGVyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlIFBsYXllckFjdGlvbi5DT05USU5VRV9ERVNUUk9ZX0JMT0NLOlxuICAgICAgICAgICAgY2FzZSBQbGF5ZXJBY3Rpb24uQ1JFQVRJVkVfUExBWUVSX0RFU1RST1lfQkxPQ0s6IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB3b3JsZC5zZW5kV29ybGRFdmVudChcbiAgICAgICAgICAgICAgICAgICAgcGFja2V0LmJsb2NrUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgIFdvcmxkRXZlbnQuUEFSVElDTEVfREVTVFJPWV9CTE9DSyxcbiAgICAgICAgICAgICAgICAgICAgQmxvY2tNYXBwaW5ncy5nZXRSdW50aW1lSWQoYmxvY2suZ2V0TmFtZSgpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlIFBsYXllckFjdGlvbi5DUkFDS19CTE9DSzoge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSB0aGlzLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBQbGF5ZXJBY3Rpb24uUkVTUEFXTjoge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBQbGF5ZXJBY3Rpb24uSlVNUDoge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBQbGF5ZXJBY3Rpb24uU1RBUlRfU1BSSU5UOiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgcGxheWVyLnNldFNwcmludGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFBsYXllckFjdGlvbi5TVE9QX1NQUklOVDoge1xuICAgICAgICAgICAgICAgIGF3YWl0IHBsYXllci5zZXRTcHJpbnRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBQbGF5ZXJBY3Rpb24uU1RBUlRfU05FQUs6IHtcbiAgICAgICAgICAgICAgICBhd2FpdCBwbGF5ZXIuc2V0U25lYWtpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBQbGF5ZXJBY3Rpb24uU1RPUF9TTkVBSzoge1xuICAgICAgICAgICAgICAgIGF3YWl0IHBsYXllci5zZXRTbmVha2luZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgc2VydmVyLmdldExvZ2dlcigpLnZlcmJvc2UoYFVuaGFuZGxlZCBwbGF5ZXIgYWN0aW9uOiAke3BhY2tldC5hY3Rpb259YCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFVQSxJQUFxQixzQkFBckIsTUFBc0Y7Q0FDbEYsT0FBYyxRQUFRLDRCQUFBLFFBQVk7Q0FFbEMsTUFBYSxPQUFPLFFBQTRCLFFBQWdCLFNBQXVDO0VBQ25HLE1BQU0sU0FBUyxRQUFRLFVBQVU7RUFDakMsTUFBTSxRQUFRLE9BQU8sU0FBUztFQUU5QixNQUFNLFFBQVEsTUFBTSxNQUFNLFNBQ3RCLE9BQU8sY0FBYyxLQUFLLEdBQzFCLE9BQU8sY0FBYyxLQUFLLEdBQzFCLE9BQU8sY0FBYyxLQUFLLENBQzlCO0VBRUEsUUFBUSxPQUFPLFFBQWY7R0FDSSxLQUFLLDBDQUFBLGFBQWEsYUFBYTtJQUMzQixNQUFNLFlBQVksS0FBSyxLQUFLLE1BQU0sYUFBYSxNQUFNLE1BQU0sSUFBSSxFQUFFO0lBRWpFLE1BQU0sTUFBTSxlQUFlLE9BQU8sZUFBZSx3Q0FBQSxXQUFXLG1CQUFtQixRQUFRLFNBQVM7SUFDaEc7R0FDSjtHQUVBLEtBQUssMENBQUEsYUFBYTtJQUNkLE1BQU0sTUFBTSxlQUFlLE9BQU8sZUFBZSx3Q0FBQSxXQUFXLGtCQUFrQixDQUFDO0lBQy9FO0dBR0osS0FBSywwQ0FBQSxhQUFhLFlBRWQ7R0FHSixLQUFLLDBDQUFBLGFBQWE7R0FDbEIsS0FBSywwQ0FBQSxhQUFhO0lBQ2QsTUFBTSxNQUFNLGVBQ1IsT0FBTyxlQUNQLHdDQUFBLFdBQVcsd0JBQ1gsNEJBQUEsY0FBYyxhQUFhLE1BQU0sUUFBUSxDQUFDLENBQzlDO0lBQ0E7R0FHSixLQUFLLDBDQUFBLGFBQWEsYUFFZDtHQUdKLEtBQUssMENBQUEsYUFBYSxTQUNkO0dBR0osS0FBSywwQ0FBQSxhQUFhLE1BQ2Q7R0FHSixLQUFLLDBDQUFBLGFBQWE7SUFDZCxNQUFNLE9BQU8sYUFBYSxJQUFJO0lBQzlCO0dBRUosS0FBSywwQ0FBQSxhQUFhO0lBQ2QsTUFBTSxPQUFPLGFBQWEsS0FBSztJQUMvQjtHQUdKLEtBQUssMENBQUEsYUFBYTtJQUNkLE1BQU0sT0FBTyxZQUFZLElBQUk7SUFDN0I7R0FFSixLQUFLLDBDQUFBLGFBQWE7SUFDZCxNQUFNLE9BQU8sWUFBWSxLQUFLO0lBQzlCO0dBR0o7SUFDSSxPQUFPLFVBQVUsRUFBRSxRQUFRLDRCQUE0QixPQUFPLFFBQVE7SUFDdEU7RUFFUjtDQUNKO0FBQ0oifQ==