UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

155 lines (148 loc) • 11 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); require('node:fs'); require('confbox'); require('@jsprismarine/errors'); require('@jsprismarine/jsbinaryutils'); require('node:assert'); require('node:path'); require('node:process'); require('../block/BlockToolType.cjs.cjs'); require('@jsprismarine/bedrock-data'); require('@jsprismarine/nbt'); require('zlib'); require('@jsprismarine/math'); require('@jsprismarine/minecraft'); require('./packet/AddActorPacket.cjs.cjs'); require('./packet/MoveActorAbsolutePacket.cjs.cjs'); require('./packet/RemoveActorPacket.cjs.cjs'); require('node:crypto'); require('./packet/ActorFallPacket.cjs.cjs'); require('./packet/AddItemActorPacket.cjs.cjs'); require('./packet/AddPlayerPacket.cjs.cjs'); require('./packet/AnimatePacket.cjs.cjs'); require('./packet/AvailableActorIdentifiersPacket.cjs.cjs'); require('./packet/AvailableCommandsPacket.cjs.cjs'); require('./CompressionProvider.cjs.cjs'); require('./packet/NetworkSettingsPacket.cjs.cjs'); require('./packet/BiomeDefinitionListPacket.cjs.cjs'); require('./packet/ChangeDimensionPacket.cjs.cjs'); require('./packet/ChunkRadiusUpdatedPacket.cjs.cjs'); require('./packet/CommandRequestPacket.cjs.cjs'); require('./packet/ContainerClosePacket.cjs.cjs'); require('./packet/ContainerOpenPacket.cjs.cjs'); require('./packet/CreativeContentPacket.cjs.cjs'); const network_packet_DisconnectPacket = require('./packet/DisconnectPacket.cjs.cjs'); require('./packet/EmoteListPacket.cjs.cjs'); require('./packet/InteractPacket.cjs.cjs'); require('./packet/InventoryContentPacket.cjs.cjs'); require('./packet/InventoryTransactionPacket.cjs.cjs'); require('./packet/ItemComponentPacket.cjs.cjs'); require('./packet/ItemStackRequestPacket.cjs.cjs'); require('./packet/ItemStackResponsePacket.cjs.cjs'); require('./packet/LevelChunkPacket.cjs.cjs'); require('./packet/LevelSoundEventPacket.cjs.cjs'); require('./packet/LoginPacket.cjs.cjs'); require('./packet/MobEquipmentPacket.cjs.cjs'); require('./packet/MovePlayerPacket.cjs.cjs'); require('./packet/NetworkChunkPublisherUpdatePacket.cjs.cjs'); require('./packet/OnScreenTextureAnimationPacket.cjs.cjs'); require('./packet/PacketViolationWarningPacket.cjs.cjs'); require('./packet/PlaySoundPacket.cjs.cjs'); require('./packet/PlayStatusPacket.cjs.cjs'); require('./packet/PlayerActionPacket.cjs.cjs'); require('./packet/PlayerListPacket.cjs.cjs'); require('./packet/PlayerSkinPacket.cjs.cjs'); require('./packet/RequestChunkRadiusPacket.cjs.cjs'); require('./packet/RequestNetworkSettingsPacket.cjs.cjs'); require('./packet/ResourcePackResponsePacket.cjs.cjs'); require('./packet/ResourcePackStackPacket.cjs.cjs'); require('./packet/ResourcePacksInfoPacket.cjs.cjs'); require('./packet/ServerSettingsRequestPacket.cjs.cjs'); require('./packet/SetActorDataPacket.cjs.cjs'); require('./packet/SetDefaultGametypePacket.cjs.cjs'); require('./packet/SetHealthPacket.cjs.cjs'); require('./packet/SetLocalPlayerAsInitializedPacket.cjs.cjs'); require('./packet/SetPlayerGametypePacket.cjs.cjs'); require('./packet/SetTimePacket.cjs.cjs'); require('./packet/ShowProfilePacket.cjs.cjs'); require('./packet/StartGamePacket.cjs.cjs'); require('./packet/TextPacket.cjs.cjs'); require('./packet/TickSyncPacket.cjs.cjs'); require('./packet/TransferPacket.cjs.cjs'); require('./packet/UpdateAdventureSettingsPacket.cjs.cjs'); require('./packet/UpdateAttributesPacket.cjs.cjs'); require('./packet/UpdateBlockPacket.cjs.cjs'); require('./packet/WorldEventPacket.cjs.cjs'); require('@jsprismarine/brigadier'); require('../config/Config.cjs.cjs'); require('./handler/AnimateHandler.cjs.cjs'); require('./handler/CommandRequestHandler.cjs.cjs'); require('./handler/ContainerCloseHandler.cjs.cjs'); require('./handler/EmoteListHandler.cjs.cjs'); require('./handler/InteractHandler.cjs.cjs'); require('./handler/InventoryTransactionHandler.cjs.cjs'); require('./handler/LevelSoundEventHandler.cjs.cjs'); require('./handler/LoginHandler.cjs.cjs'); require('./handler/MobEquipmentHandler.cjs.cjs'); require('./handler/MovePlayerHandler.cjs.cjs'); require('./handler/PacketViolationWarningHandler.cjs.cjs'); require('./handler/PlayerActionHandler.cjs.cjs'); require('./handler/RequestChunkRadiusHandler.cjs.cjs'); require('./handler/RequestNetworkSettingsHandler.cjs.cjs'); require('./handler/ResourcePackResponseHandler.cjs.cjs'); require('./handler/ServerSettingsRequestHandler.cjs.cjs'); require('./handler/SetDefaultGametypeHandler.cjs.cjs'); require('./handler/SetLocalPlayerAsInitializedHandler.cjs.cjs'); require('./handler/SetPlayerGametypeHandler.cjs.cjs'); require('./handler/TextHandler.cjs.cjs'); require('./handler/TickSyncHandler.cjs.cjs'); require('node:readline'); const network_PlayerSession = require('./PlayerSession.cjs.cjs'); require('@jsprismarine/raknet'); require('evt'); const assert = require('assert'); const network_MinecraftSession = require('./MinecraftSession.cjs.cjs'); const _interopDefault = e => e && e.__esModule ? e : { default: e }; const assert__default = /*#__PURE__*/_interopDefault(assert); class ClientConnection extends network_MinecraftSession.default { playerSession = null; hasCompression = false; constructor(session, logger) { super(session, logger); } /** * @internal * * @param server - the server instance * @param player - the player instance * @returns the new player session */ initPlayerConnection(server, player) { assert__default.default(this.playerSession === null, "Player session was already created"); this.playerSession = new network_PlayerSession.default(server, this, player); return this.playerSession; } async closePlayerSession() { if (this.playerSession !== null) { await this.playerSession.getPlayer().disable(); this.playerSession = null; } } disconnect(reason = "disconnect.disconnected", hideReason = true) { const packet = new network_packet_DisconnectPacket.default(); packet.skipMessage = hideReason; packet.message = reason; void this.sendDataPacket(packet); this.closePlayerSession(); this.forceDisconnect(); } getPlayerSession() { return this.playerSession; } getRakNetSession() { return this.rakSession; } } exports.default = ClientConnection; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50Q29ubmVjdGlvbi5janMuY2pzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29yay9DbGllbnRDb25uZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGxheWVyLCBTZXJ2ZXIgfSBmcm9tICcuLi8nO1xuaW1wb3J0IHsgUGxheWVyU2Vzc2lvbiB9IGZyb20gJy4uLyc7XG5cbmltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBSYWtOZXRTZXNzaW9uIH0gZnJvbSAnQGpzcHJpc21hcmluZS9yYWtuZXQnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IE1pbmVjcmFmdFNlc3Npb24gZnJvbSAnLi9NaW5lY3JhZnRTZXNzaW9uJztcbmltcG9ydCB7IERpc2Nvbm5lY3RQYWNrZXQgfSBmcm9tICcuL1BhY2tldHMnO1xuXG4vKipcbiAqIEhhbmRsZXMgdGhlIGNvbm5lY3Rpb24gYmVmb3JlIHRoZSBwbGF5ZXIgY3JlYXRpb24gaXRzZWxmLCB2ZXJ5IGhlbHBmdWwgYXNcbiAqIGl0IGhlbHBzIHRvIG5vdCB3YXN0ZSByZXNvdXJjZXMgaW4gY2FzZSB0aGUgY2xpZW50IHRyeWluZyB0byBjb25uZWN0IGlzIHNpbXBseVxuICogb3V0ZGF0ZWQgb3Igc2VuZHMgaW52YWxpZCBkYXRhIGR1cmluZyB0aGUgbG9naW4gaGFuZHNoYWtlLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDbGllbnRDb25uZWN0aW9uIGV4dGVuZHMgTWluZWNyYWZ0U2Vzc2lvbiB7XG4gICAgcHJpdmF0ZSBwbGF5ZXJTZXNzaW9uOiBQbGF5ZXJTZXNzaW9uIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGhhc0NvbXByZXNzaW9uID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc2Vzc2lvbjogUmFrTmV0U2Vzc2lvbiwgbG9nZ2VyOiBMb2dnZXIpIHtcbiAgICAgICAgc3VwZXIoc2Vzc2lvbiwgbG9nZ2VyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZXJ2ZXIgLSB0aGUgc2VydmVyIGluc3RhbmNlXG4gICAgICogQHBhcmFtIHBsYXllciAtIHRoZSBwbGF5ZXIgaW5zdGFuY2VcbiAgICAgKiBAcmV0dXJucyB0aGUgbmV3IHBsYXllciBzZXNzaW9uXG4gICAgICovXG4gICAgcHVibGljIGluaXRQbGF5ZXJDb25uZWN0aW9uKHNlcnZlcjogU2VydmVyLCBwbGF5ZXI6IFBsYXllcik6IFBsYXllclNlc3Npb24ge1xuICAgICAgICBhc3NlcnQodGhpcy5wbGF5ZXJTZXNzaW9uID09PSBudWxsLCAnUGxheWVyIHNlc3Npb24gd2FzIGFscmVhZHkgY3JlYXRlZCcpO1xuXG4gICAgICAgIHRoaXMucGxheWVyU2Vzc2lvbiA9IG5ldyBQbGF5ZXJTZXNzaW9uKHNlcnZlciwgdGhpcywgcGxheWVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheWVyU2Vzc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY2xvc2VQbGF5ZXJTZXNzaW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5wbGF5ZXJTZXNzaW9uICE9PSBudWxsKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnBsYXllclNlc3Npb24uZ2V0UGxheWVyKCkuZGlzYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5wbGF5ZXJTZXNzaW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkaXNjb25uZWN0KHJlYXNvbiA9ICdkaXNjb25uZWN0LmRpc2Nvbm5lY3RlZCcsIGhpZGVSZWFzb24gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhY2tldCA9IG5ldyBEaXNjb25uZWN0UGFja2V0KCk7XG4gICAgICAgIHBhY2tldC5za2lwTWVzc2FnZSA9IGhpZGVSZWFzb247XG4gICAgICAgIHBhY2tldC5tZXNzYWdlID0gcmVhc29uO1xuICAgICAgICB2b2lkIHRoaXMuc2VuZERhdGFQYWNrZXQocGFja2V0KTtcblxuICAgICAgICB0aGlzLmNsb3NlUGxheWVyU2Vzc2lvbigpO1xuXG4gICAgICAgIC8vIEZvcmNlIFJha05ldCB0byByZW1vdmUgdGhlIHNlc3Npb25cbiAgICAgICAgLy8gc28gd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgdGhlIGRlYWQgc2Vzc2lvblxuICAgICAgICB0aGlzLmZvcmNlRGlzY29ubmVjdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQbGF5ZXJTZXNzaW9uKCk6IFBsYXllclNlc3Npb24gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheWVyU2Vzc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmFrTmV0U2Vzc2lvbigpOiBSYWtOZXRTZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmFrU2Vzc2lvbjtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiTWluZWNyYWZ0U2Vzc2lvbiIsImFzc2VydCIsIlBsYXllclNlc3Npb24iLCJEaXNjb25uZWN0UGFja2V0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsTUFBcUIseUJBQXlCQSxnQ0FBaUIsQ0FBQTtBQUFBLEVBQ25ELGFBQXNDLEdBQUEsSUFBQTtBQUFBLEVBQ3ZDLGNBQWlCLEdBQUEsS0FBQTtBQUFBLEVBRWpCLFdBQUEsQ0FBWSxTQUF3QixNQUFnQixFQUFBO0FBQ3ZELElBQUEsS0FBQSxDQUFNLFNBQVMsTUFBTSxDQUFBO0FBQUE7QUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNPLG9CQUFBLENBQXFCLFFBQWdCLE1BQStCLEVBQUE7QUFDdkUsSUFBT0MsdUJBQUEsQ0FBQSxJQUFBLENBQUssYUFBa0IsS0FBQSxJQUFBLEVBQU0sb0NBQW9DLENBQUE7QUFFeEUsSUFBQSxJQUFBLENBQUssYUFBZ0IsR0FBQSxJQUFJQyw2QkFBYyxDQUFBLE1BQUEsRUFBUSxNQUFNLE1BQU0sQ0FBQTtBQUMzRCxJQUFBLE9BQU8sSUFBSyxDQUFBLGFBQUE7QUFBQTtBQUNoQixFQUVBLE1BQWEsa0JBQW9DLEdBQUE7QUFDN0MsSUFBSSxJQUFBLElBQUEsQ0FBSyxrQkFBa0IsSUFBTSxFQUFBO0FBQzdCLE1BQUEsTUFBTSxJQUFLLENBQUEsYUFBQSxDQUFjLFNBQVUsRUFBQSxDQUFFLE9BQVEsRUFBQTtBQUM3QyxNQUFBLElBQUEsQ0FBSyxhQUFnQixHQUFBLElBQUE7QUFBQTtBQUN6QjtBQUNKLEVBRU8sVUFBVyxDQUFBLE1BQUEsR0FBUyx5QkFBMkIsRUFBQSxVQUFBLEdBQWEsSUFBWSxFQUFBO0FBQzNFLElBQU0sTUFBQSxNQUFBLEdBQVMsSUFBSUMsdUNBQWlCLEVBQUE7QUFDcEMsSUFBQSxNQUFBLENBQU8sV0FBYyxHQUFBLFVBQUE7QUFDckIsSUFBQSxNQUFBLENBQU8sT0FBVSxHQUFBLE1BQUE7QUFDakIsSUFBSyxLQUFBLElBQUEsQ0FBSyxlQUFlLE1BQU0sQ0FBQTtBQUUvQixJQUFBLElBQUEsQ0FBSyxrQkFBbUIsRUFBQTtBQUl4QixJQUFBLElBQUEsQ0FBSyxlQUFnQixFQUFBO0FBQUE7QUFDekIsRUFFTyxnQkFBeUMsR0FBQTtBQUM1QyxJQUFBLE9BQU8sSUFBSyxDQUFBLGFBQUE7QUFBQTtBQUNoQixFQUVPLGdCQUFrQyxHQUFBO0FBQ3JDLElBQUEsT0FBTyxJQUFLLENBQUEsVUFBQTtBQUFBO0FBRXBCOzs7OyJ9