UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

108 lines (103 loc) 10.2 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const raknet = require('@jsprismarine/raknet'); require('./packet/ActorFallPacket.cjs.cjs'); require('./packet/AddActorPacket.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'); const network_packet_BatchPacket = require('./packet/BatchPacket.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'); require('@jsprismarine/jsbinaryutils'); 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/MoveActorAbsolutePacket.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/RemoveActorPacket.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'); class MinecraftSession { constructor(session, logger) { this.logger = logger; this.rakSession = session; } rakSession; sendBatch(batch, direct = true) { batch.encode(); const sendPacket = new raknet.Protocol.Frame(); sendPacket.reliability = raknet.Protocol.FrameReliability.RELIABLE_ORDERED; sendPacket.orderChannel = 0; sendPacket.content = batch.getBuffer(); this.rakSession.sendFrame(sendPacket, direct ? raknet.ConnectionPriority.IMMEDIATE : raknet.ConnectionPriority.NORMAL); } async sendDataPacket(packet, comp = true, direct = false) { const batch = new network_packet_BatchPacket.default(); try { batch.addPacket(packet); batch.compressed = comp; batch.encode(); } catch (error) { this.logger.error(error); this.logger.warn( `Packet §b${packet.constructor.name}§r to §b${this.rakSession.getAddress().toToken()}§r failed with: ${error.message}` ); return; } const sendPacket = new raknet.Protocol.Frame(); sendPacket.reliability = raknet.Protocol.FrameReliability.RELIABLE_ORDERED; sendPacket.orderChannel = 0; sendPacket.content = batch.getBuffer(); this.rakSession.sendFrame(sendPacket, direct ? raknet.ConnectionPriority.IMMEDIATE : raknet.ConnectionPriority.NORMAL); this.logger.silly(`Sent §b${packet.constructor.name}§r packet`); } forceDisconnect() { this.rakSession.disconnect(); } } exports.default = MinecraftSession; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluZWNyYWZ0U2Vzc2lvbi5janMuY2pzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29yay9NaW5lY3JhZnRTZXNzaW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBSYWtOZXRTZXNzaW9uIH0gZnJvbSAnQGpzcHJpc21hcmluZS9yYWtuZXQnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblByaW9yaXR5LCBQcm90b2NvbCB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvcmFrbmV0JztcbmltcG9ydCB0eXBlIHsgRGF0YVBhY2tldCB9IGZyb20gJy4vUGFja2V0cyc7XG5pbXBvcnQgeyBCYXRjaFBhY2tldCB9IGZyb20gJy4vUGFja2V0cyc7XG5cbi8qKlxuICogQWN0IGFzIHRoZSBmaXJzdCBjb25uZWN0aW9uIGxheWVyLCBoYW5kbGVzIGV2ZXJ5dGhpbmcgcmVsYXRlZCB0byBiYXRjaGluZyxcbiAqIHF1ZXVpbmcgYW5kIGVuY3J5cHRpbmcgb2YgTWluZWNyYWZ0IHBhY2tldHMgaW4gYSBoeXBvdGV0aWNhbCBzZXNzaW9uLlxuICogVE9ETzogaW1wbGVtZW50IHRpY2tpbmcsIGJhdGNoaW5nLCBxdWV1ZXMsIGVuY3J5cHRpb24uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1pbmVjcmFmdFNlc3Npb24ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSByYWtTZXNzaW9uOiBSYWtOZXRTZXNzaW9uO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBzZXNzaW9uOiBSYWtOZXRTZXNzaW9uLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyXG4gICAgKSB7XG4gICAgICAgIHRoaXMucmFrU2Vzc2lvbiA9IHNlc3Npb247XG4gICAgfVxuXG4gICAgcHVibGljIHNlbmRCYXRjaChiYXRjaDogQmF0Y2hQYWNrZXQsIGRpcmVjdCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgYmF0Y2guZW5jb2RlKCk7XG4gICAgICAgIGNvbnN0IHNlbmRQYWNrZXQgPSBuZXcgUHJvdG9jb2wuRnJhbWUoKTtcbiAgICAgICAgc2VuZFBhY2tldC5yZWxpYWJpbGl0eSA9IFByb3RvY29sLkZyYW1lUmVsaWFiaWxpdHkuUkVMSUFCTEVfT1JERVJFRDtcbiAgICAgICAgc2VuZFBhY2tldC5vcmRlckNoYW5uZWwgPSAwO1xuICAgICAgICBzZW5kUGFja2V0LmNvbnRlbnQgPSBiYXRjaC5nZXRCdWZmZXIoKTtcblxuICAgICAgICB0aGlzLnJha1Nlc3Npb24uc2VuZEZyYW1lKHNlbmRQYWNrZXQsIGRpcmVjdCA/IENvbm5lY3Rpb25Qcmlvcml0eS5JTU1FRElBVEUgOiBDb25uZWN0aW9uUHJpb3JpdHkuTk9STUFMKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2VuZERhdGFQYWNrZXQ8VCBleHRlbmRzIERhdGFQYWNrZXQ+KHBhY2tldDogVCwgY29tcCA9IHRydWUsIGRpcmVjdCA9IGZhbHNlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGJhdGNoID0gbmV3IEJhdGNoUGFja2V0KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBiYXRjaC5hZGRQYWNrZXQocGFja2V0KTtcbiAgICAgICAgICAgIGJhdGNoLmNvbXByZXNzZWQgPSBjb21wO1xuICAgICAgICAgICAgYmF0Y2guZW5jb2RlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgICAgIGBQYWNrZXQgwqdiJHtwYWNrZXQuY29uc3RydWN0b3IubmFtZX3Cp3IgdG8gwqdiJHt0aGlzLnJha1Nlc3Npb25cbiAgICAgICAgICAgICAgICAgICAgLmdldEFkZHJlc3MoKVxuICAgICAgICAgICAgICAgICAgICAudG9Ub2tlbigpfcKnciBmYWlsZWQgd2l0aDogJHsoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2V9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCB0aGlzIGluIHJha25ldFxuICAgICAgICBjb25zdCBzZW5kUGFja2V0ID0gbmV3IFByb3RvY29sLkZyYW1lKCk7XG4gICAgICAgIHNlbmRQYWNrZXQucmVsaWFiaWxpdHkgPSBQcm90b2NvbC5GcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRUQ7XG4gICAgICAgIHNlbmRQYWNrZXQub3JkZXJDaGFubmVsID0gMDtcbiAgICAgICAgc2VuZFBhY2tldC5jb250ZW50ID0gYmF0Y2guZ2V0QnVmZmVyKCk7XG5cbiAgICAgICAgdGhpcy5yYWtTZXNzaW9uLnNlbmRGcmFtZShzZW5kUGFja2V0LCBkaXJlY3QgPyBDb25uZWN0aW9uUHJpb3JpdHkuSU1NRURJQVRFIDogQ29ubmVjdGlvblByaW9yaXR5Lk5PUk1BTCk7XG4gICAgICAgIHRoaXMubG9nZ2VyLnNpbGx5KGBTZW50IMKnYiR7cGFja2V0LmNvbnN0cnVjdG9yLm5hbWV9wqdyIHBhY2tldGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JjZURpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmFrU2Vzc2lvbi5kaXNjb25uZWN0KCk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIlByb3RvY29sIiwiQ29ubmVjdGlvblByaW9yaXR5IiwiQmF0Y2hQYWNrZXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLE1BQXFCLGdCQUFpQixDQUFBO0FBQUEsRUFHM0IsV0FBQSxDQUNILFNBQ2lCLE1BQ25CLEVBQUE7QUFEbUIsSUFBQSxJQUFBLENBQUEsTUFBQSxHQUFBLE1BQUE7QUFFakIsSUFBQSxJQUFBLENBQUssVUFBYSxHQUFBLE9BQUE7QUFBQTtBQUN0QixFQVBtQixVQUFBO0FBQUEsRUFTWixTQUFBLENBQVUsS0FBb0IsRUFBQSxNQUFBLEdBQVMsSUFBWSxFQUFBO0FBQ3RELElBQUEsS0FBQSxDQUFNLE1BQU8sRUFBQTtBQUNiLElBQU0sTUFBQSxVQUFBLEdBQWEsSUFBSUEsZUFBQSxDQUFTLEtBQU0sRUFBQTtBQUN0QyxJQUFXLFVBQUEsQ0FBQSxXQUFBLEdBQWNBLGdCQUFTLGdCQUFpQixDQUFBLGdCQUFBO0FBQ25ELElBQUEsVUFBQSxDQUFXLFlBQWUsR0FBQSxDQUFBO0FBQzFCLElBQVcsVUFBQSxDQUFBLE9BQUEsR0FBVSxNQUFNLFNBQVUsRUFBQTtBQUVyQyxJQUFBLElBQUEsQ0FBSyxXQUFXLFNBQVUsQ0FBQSxVQUFBLEVBQVksU0FBU0MseUJBQW1CLENBQUEsU0FBQSxHQUFZQSwwQkFBbUIsTUFBTSxDQUFBO0FBQUE7QUFDM0csRUFFQSxNQUFhLGNBQXFDLENBQUEsTUFBQSxFQUFXLElBQU8sR0FBQSxJQUFBLEVBQU0sU0FBUyxLQUFzQixFQUFBO0FBQ3JHLElBQU0sTUFBQSxLQUFBLEdBQVEsSUFBSUMsa0NBQVksRUFBQTtBQUM5QixJQUFJLElBQUE7QUFDQSxNQUFBLEtBQUEsQ0FBTSxVQUFVLE1BQU0sQ0FBQTtBQUN0QixNQUFBLEtBQUEsQ0FBTSxVQUFhLEdBQUEsSUFBQTtBQUNuQixNQUFBLEtBQUEsQ0FBTSxNQUFPLEVBQUE7QUFBQSxhQUNSLEtBQWdCLEVBQUE7QUFDckIsTUFBSyxJQUFBLENBQUEsTUFBQSxDQUFPLE1BQU0sS0FBSyxDQUFBO0FBQ3ZCLE1BQUEsSUFBQSxDQUFLLE1BQU8sQ0FBQSxJQUFBO0FBQUEsUUFDUixDQUFZLFNBQUEsRUFBQSxNQUFBLENBQU8sV0FBWSxDQUFBLElBQUksQ0FBVyxRQUFBLEVBQUEsSUFBQSxDQUFLLFVBQzlDLENBQUEsVUFBQSxFQUNBLENBQUEsT0FBQSxFQUFTLENBQUEsZ0JBQUEsRUFBb0IsTUFBZ0IsT0FBTyxDQUFBO0FBQUEsT0FDN0Q7QUFDQSxNQUFBO0FBQUE7QUFJSixJQUFNLE1BQUEsVUFBQSxHQUFhLElBQUlGLGVBQUEsQ0FBUyxLQUFNLEVBQUE7QUFDdEMsSUFBVyxVQUFBLENBQUEsV0FBQSxHQUFjQSxnQkFBUyxnQkFBaUIsQ0FBQSxnQkFBQTtBQUNuRCxJQUFBLFVBQUEsQ0FBVyxZQUFlLEdBQUEsQ0FBQTtBQUMxQixJQUFXLFVBQUEsQ0FBQSxPQUFBLEdBQVUsTUFBTSxTQUFVLEVBQUE7QUFFckMsSUFBQSxJQUFBLENBQUssV0FBVyxTQUFVLENBQUEsVUFBQSxFQUFZLFNBQVNDLHlCQUFtQixDQUFBLFNBQUEsR0FBWUEsMEJBQW1CLE1BQU0sQ0FBQTtBQUN2RyxJQUFBLElBQUEsQ0FBSyxPQUFPLEtBQU0sQ0FBQSxDQUFBLE9BQUEsRUFBVSxNQUFPLENBQUEsV0FBQSxDQUFZLElBQUksQ0FBVyxTQUFBLENBQUEsQ0FBQTtBQUFBO0FBQ2xFLEVBRU8sZUFBd0IsR0FBQTtBQUMzQixJQUFBLElBQUEsQ0FBSyxXQUFXLFVBQVcsRUFBQTtBQUFBO0FBRW5DOzs7OyJ9