prismarine-packet-dumper

Automatically dump packets from a Minecraft server

Usage no npm install needed!

<script type="module">
  import prismarinePacketDumper from 'https://cdn.skypack.dev/prismarine-packet-dumper';
</script>

README

prismarine-packet-dumper

NPM version Build Status Discord Gitter Irc

Try it on gitpod

Dump minecraft packets

Usage

node bin/generateLogs.js 1.16.1
node bin/verifyPackets.js 1.16.1
const { MineflayerLog, PacketVerifier, Direction } = require('prismarine-packet-dumper');
const fsP = require('fs').promises;

let packetLogger = new MineflayerLog({ version: '1.16.1', outputDirectory: 'packets' });
packetLogger.start('localhost', 25565);

// then, later:
let verifier = new PacketVerifier({ version: '1.16.1' });
verifier.verify(await fsP.readFile('packets/from-server/00000000'), Direction.ServerToClient);

Manually dump packets

In order to dump packets from the vanilla client, there is a script called clientProxy

In order to use, you run it with the server ip you would want to connect to, then connect with your client to localhost:25566

If you would like to use this without cloning from github, you can install it globally by following this guide:

Global install

$ npm i -g prismarine-packet-dumper

$ clientProxy <mc_version> <server_ip> [port] [packets_folder]

API

For bin/dumpPackets.js

$ node dumpPackets.js  --help
Usage: dumpPackets.js [options]

Options:
  -v, --version, --ver          The mc version to dump       [string] [required]
  -o, --outputFolder, --output  Where to save the dumped packets
                                                    [string] [default: "output"]
  -h, --help                    Show help                              [boolean]
  -d, --dryrun                  Run dumper but only save stats files
                                                      [boolean] [default: false]

for more information visit https://discord.gg/tWaPBNtkaq

For bin/metricAggregator.js

Used to generate global packet stats, like the ones commented on each pr to this repo.

How to use:

  1. make a folder (ie: packets)
  2. dump many minecraft versions into packets folder, their folder names must be their semver number/snapshot name (ie 1.8.9 or 21w07a), the packets put in this repo should follow the same format as when dumped from clientProxy.js or dumpPackets.js
  3. enter the packets directory and run the tool metricAggregator.js
  4. you should now have a file called README.md in the root of the packets/ directory

For rest: TODO, for now, see jsdoc