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