{"_id":"@breezil/packet-defs","_rev":"2-e6745a6fa4529432be96d017f89d1e4a","name":"@breezil/packet-defs","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@breezil/packet-defs","version":"1.0.0","keywords":["breezil","minecraft","packets","protocol","1.8.9","typescript"],"author":{"name":"Breezil"},"license":"MIT","_id":"@breezil/packet-defs@1.0.0","maintainers":[{"name":"grillekkj","email":"grillejv@gmail.com"}],"homepage":"https://github.com/Breezil/Breezil-Packets#readme","bugs":{"url":"https://github.com/Breezil/Breezil-Packets/issues"},"dist":{"shasum":"9479692abf24739cad5e4e362a678a8f90c1bb99","tarball":"https://registry.npmjs.org/@breezil/packet-defs/-/packet-defs-1.0.0.tgz","fileCount":107,"integrity":"sha512-73WGk4/evVgmaL0+WFKurs5ToIaAyktdVnfvjGxZ2ZTVxvJQnDNBI1shGZ/U8xnhkdN7L3ky3W9Et29BaACnTA==","signatures":[{"sig":"MEYCIQD9VbwU481kGE69qYLDH35237G+E6HeurpRzRkjh3fVLwIhAPDXrvN5nWgngVW4Wy/4gdbmC2K/j/Ul6k//16GHlKOq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151507},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8aa23fd912e4b7c4abb7ba6be9800a898b63520a","scripts":{"build":"tsc -b","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},"_npmUser":{"name":"grillekkj","email":"grillejv@gmail.com"},"overrides":{"esbuild":"^0.25.0"},"repository":{"url":"git+https://github.com/Breezil/Breezil-Packets.git","type":"git"},"_npmVersion":"11.6.2","description":"Typed Minecraft protocol packet definitions and shared interfaces. Minecraft 1.8.9 is available now, with every version planned.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^1.6.3","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/packet-defs_1.0.0_1782092453736_0.8699970849193039","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@breezil/packet-defs","version":"1.0.1","description":"Typed Minecraft protocol packet definitions and shared interfaces. Minecraft 1.8.9 is available now, with every version planned.","keywords":["breezil","minecraft","packets","protocol","1.8.9","typescript"],"license":"MIT","author":{"name":"Breezil"},"homepage":"https://github.com/Breezil/Breezil-Packets#readme","repository":{"type":"git","url":"git+https://github.com/Breezil/Breezil-Packets.git"},"bugs":{"url":"https://github.com/Breezil/Breezil-Packets/issues"},"sideEffects":false,"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"scripts":{"build":"tsc -b","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},"devDependencies":{"@types/node":"^20.10.0","typescript":"^5.3.0","vitepress":"^1.6.3"},"overrides":{"esbuild":"^0.25.0"},"publishConfig":{"access":"public"},"gitHead":"7bd669c283eb06a3c23c1ad05a5e988e405ec025","_id":"@breezil/packet-defs@1.0.1","_nodeVersion":"20.20.2","_npmVersion":"11.17.0","dist":{"integrity":"sha512-X2n3sqgG4/Ob4G8XQPHt8ITi0cb4GYtWqEP3djh7BdmAEglIWlM06QpXhwdKX6Lh1uiriOdWM/7SREG4/7YFeA==","shasum":"bc0e0b707ab80f56264f0e3f3b7102dbc517b828","tarball":"https://registry.npmjs.org/@breezil/packet-defs/-/packet-defs-1.0.1.tgz","fileCount":107,"unpackedSize":151507,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@breezil%2fpacket-defs@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDdfZY59sLXq/W/9WtXvQYmKZiQPAIci96/KYDWM/MvMgIgBYZ0vZ+6LiUptd7xXJ193WjNrZtfrvNZPekQrXdt+NQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8aace98c-5e4b-4790-96dc-141d81149bbf"}},"directories":{},"maintainers":[{"name":"grillekkj","email":"grillejv@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/packet-defs_1.0.1_1782095922878_0.5883395956372857"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-22T01:40:53.425Z","modified":"2026-06-22T02:38:43.319Z","1.0.0":"2026-06-22T01:40:53.857Z","1.0.1":"2026-06-22T02:38:43.007Z"},"bugs":{"url":"https://github.com/Breezil/Breezil-Packets/issues"},"author":{"name":"Breezil"},"license":"MIT","homepage":"https://github.com/Breezil/Breezil-Packets#readme","keywords":["breezil","minecraft","packets","protocol","1.8.9","typescript"],"repository":{"type":"git","url":"git+https://github.com/Breezil/Breezil-Packets.git"},"description":"Typed Minecraft protocol packet definitions and shared interfaces. Minecraft 1.8.9 is available now, with every version planned.","maintainers":[{"name":"grillekkj","email":"grillejv@gmail.com"}],"readme":"<div align=\"center\">\n\n<img src=\"docs/logo.png\" alt=\"Breezil-Packets logo\" width=\"120\" />\n\n# Breezil-Packets\n\n**Fully typed Minecraft protocol packet definitions for the Breezil ecosystem. Minecraft 1.8.9 is ready today, with every version on the way.**\n\n[![npm](https://img.shields.io/npm/v/@breezil/packet-defs?style=flat-square&logo=npm)](https://www.npmjs.com/package/@breezil/packet-defs)\n[![Docs](https://img.shields.io/github/actions/workflow/status/Breezil/Breezil-Packets/docs.yml?branch=main&style=flat-square&label=docs)](https://breezil.github.io/Breezil-Packets/)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](LICENSE)\n[![Discord](https://img.shields.io/discord/1460052855389159527?style=flat-square&logo=discord&logoColor=white&label=discord)](https://discord.gg/7SxbNMYQNa)\n\n[Documentation](https://breezil.github.io/Breezil-Packets/)\n&nbsp;&nbsp;|&nbsp;&nbsp;\n[Report a bug](https://github.com/Breezil/Breezil-Packets/issues/new?labels=bug)\n&nbsp;&nbsp;|&nbsp;&nbsp;\n[Request a feature](https://github.com/Breezil/Breezil-Packets/issues/new?labels=enhancement)\n&nbsp;&nbsp;|&nbsp;&nbsp;\n[Join the Discord](https://discord.gg/7SxbNMYQNa)\n\n</div>\n\n---\n\n## Table of Contents\n\n1. [About](#about)\n2. [Versions](#versions)\n3. [Features](#features)\n4. [Tech Stack](#tech-stack)\n5. [Getting Started](#getting-started)\n   - [Prerequisites](#prerequisites)\n   - [Installation](#installation)\n6. [Quick Start](#quick-start)\n7. [Documentation](#documentation)\n8. [API Reference](#api-reference)\n9. [Project Structure](#project-structure)\n10. [Releases and Deployment](#releases-and-deployment)\n11. [Roadmap](#roadmap)\n12. [Contributing](#contributing)\n13. [Code of Conduct](#code-of-conduct)\n14. [License](#license)\n15. [Support and Community](#support-and-community)\n16. [Acknowledgements](#acknowledgements)\n\n---\n\n## About\n\nBreezil-Packets describes Minecraft protocol packets as typed TypeScript interfaces, organized by protocol state and direction. It gives the rest of the Breezil ecosystem one shared, honest source of truth for what is on the wire.\n\nToday it ships complete coverage of Minecraft 1.8.9 (protocol version 47). The goal is to bring every Minecraft version under the same roof, each one fully typed and documented the same way 1.8.9 is. The package is pure type definitions plus a handful of helper enums and constants, with no runtime protocol logic of its own, so tools like the [Breezil proxy](https://github.com/Breezil/Breezil-Proxy) can decode raw network frames by numeric packet id straight into typed, well documented shapes.\n\n> Part of [**Breezil**](https://github.com/Breezil), an open-source org building clean,\n> well-documented projects, tools, and bots. No closed blobs, no sketchy builds. Every line\n> is here to read.\n\n> **Using a third-party API or platform?** Breezil-Packets follows the terms of service of\n> anything it integrates with. We do not ship anything designed to abuse a platform or get\n> accounts banned.\n\n## Versions\n\n| Minecraft version | Protocol | Status    |\n| ----------------- | -------- | --------- |\n| 1.8.9             | 47       | Available |\n| Other versions    | various  | Planned   |\n\nEvery new version targets the same bar: complete coverage of all states and directions, every packet a documented interface, every field annotated with the values you can expect.\n\n## Features\n\n- 🧩 Complete packet coverage for every 1.8.9 protocol state: handshake, status, login, and play (clientbound and serverbound)\n- 🏷️ Every packet is a documented TypeScript interface, with per-field notes on the values you can expect\n- 🔢 Built for id-based decoding, so consumers like the proxy map a numeric packet id to a typed shape\n- 🛰️ Bonus coverage for custom Hypixel ModAPI packets and channels\n- 🧭 Designed to grow across Minecraft versions, each one held to the same complete, documented standard\n- 📦 Ships as a typed library, with `.d.ts` declarations published alongside the build\n\n## Tech Stack\n\n| Layer       | Choice                                        |\n| ----------- | --------------------------------------------- |\n| Language    | TypeScript                                    |\n| Build       | `tsc -b` (TypeScript project references)      |\n| Types       | `@types/node` (some fields use Node `Buffer`) |\n| Package mgr | npm                                           |\n\n## Getting Started\n\n### Prerequisites\n\nMake sure you have these installed before you start.\n\n| Requirement | Version | Notes                            |\n| ----------- | ------- | -------------------------------- |\n| Node.js     | `>=20`  | [nodejs.org](https://nodejs.org) |\n| npm         | `>=10`  | Ships with Node.js               |\n\n### Installation\n\n```bash\n# Clone the repo\ngit clone https://github.com/Breezil/Breezil-Packets.git\ncd Breezil-Packets\n\n# Install dependencies and build\nnpm install\nnpm run build\n```\n\nPrefer it as a dependency in your own project?\n\n```bash\nnpm install @breezil/packet-defs\n```\n\n## Quick Start\n\n```ts\nimport type {\n  SetProtocolServerbound,\n  ChatClientbound,\n} from \"@breezil/packet-defs\";\n\n// Read a decoded chat packet with a known, typed shape.\nfunction describeChat(packet: ChatClientbound): string {\n  return `[pos ${packet.position}] ${packet.message}`;\n}\n\n// Build a handshake to send to the server.\nconst handshake: SetProtocolServerbound = {\n  protocolVersion: 47, // Minecraft 1.8.9\n  serverHost: \"mc.hypixel.net\",\n  serverPort: 25565,\n  nextState: 2, // Login\n};\n```\n\nBecause this package is type definitions, the imports above add no runtime weight. You pair them with whatever encoder or decoder you already use, and the shapes keep both sides honest.\n\n## Documentation\n\nThe full reference and guides live at **[breezil.github.io/Breezil-Packets](https://breezil.github.io/Breezil-Packets/)**.\n\nThis README covers the essentials. The docs site is the complete reference: every packet across every state and direction, with its numeric id and every field documented. Start there when you need the exact shape of something on the wire.\n\n| Page                                                                               | What is inside                                |\n| ---------------------------------------------------------------------------------- | --------------------------------------------- |\n| [Getting Started](https://breezil.github.io/Breezil-Packets/guide/getting-started) | Install, import, and use the type definitions |\n| [API Reference](https://breezil.github.io/Breezil-Packets/api/)                    | The complete, per-packet, per-field reference |\n\n## API Reference\n\nEverything is exported from the single entry point `@breezil/packet-defs`. There are no functions or classes to call, only interfaces, enums, and a few constants, grouped by protocol state and direction so they line up with how packets flow on the wire.\n\n| Category                       | What is inside                                                                             |\n| ------------------------------ | ------------------------------------------------------------------------------------------ |\n| Handshake                      | `SetProtocolServerbound`, `LegacyServerListPingServerbound`, and helpers                   |\n| Login                          | `LoginStartServerbound`, `LoginSuccessClientbound`, `EncryptionBegin*`, and more           |\n| Status                         | `ServerInfoClientbound`, `PingClientbound`, `ServerStatusResponse`, and more               |\n| Hypixel (ModAPI)               | `HypixelLocationPacket`, `HypixelPartyInfoPacket`, `HYPIXEL_CHANNELS`, and more            |\n| Play, clientbound, connection  | `KeepAliveClientbound`, `LoginClientbound`, `RespawnClientbound`, and more                 |\n| Play, clientbound, player      | `PositionClientbound`, `UpdateHealthClientbound`, `AbilitiesClientbound`, and more         |\n| Play, clientbound, chat and UI | `ChatClientbound`, `TitleClientbound`, `PlayerInfoClientbound`, and more                   |\n| Play, clientbound, scoreboard  | `ScoreboardObjectiveClientbound`, `ScoreboardTeamClientbound`, and more                    |\n| Play, clientbound, entity      | `SpawnEntityClientbound`, `EntityTeleportClientbound`, `EntityMetadata`, and more          |\n| Play, clientbound, inventory   | `OpenWindowClientbound`, `SetSlotClientbound`, `WindowItemsClientbound`, and more          |\n| Play, clientbound, world       | `MapChunkClientbound`, `BlockChangeClientbound`, `ExplosionClientbound`, and more          |\n| Play, serverbound, connection  | `KeepAliveServerbound`, `SettingsServerbound`, `CustomPayloadServerbound`, and more        |\n| Play, serverbound, movement    | `PositionServerbound`, `LookServerbound`, `PositionLookServerbound`, and more              |\n| Play, serverbound, interaction | `UseEntityServerbound`, `BlockDigServerbound`, `BlockPlaceServerbound`, and more           |\n| Play, serverbound, inventory   | `WindowClickServerbound`, `SetCreativeSlotServerbound`, `EnchantItemServerbound`, and more |\n| Play, serverbound, chat        | `ChatServerbound`, `TabCompleteServerbound`, `UpdateSignServerbound`                       |\n\nMany categories also export supporting enums and value unions (for example `NextProtocolState`, `ChatMessagePosition`, `DiggingStatus`, `ScoreboardScoreAction`) and shared structures reused across packets, like `Slot`, `Position`, and `PlayerProperty`.\n\nFor the complete list, with every interface, its numeric id, and every field documented, see the [full API Reference](https://breezil.github.io/Breezil-Packets/api/).\n\n## Project Structure\n\n```text\nBreezil-Packets/\n├─ src/\n│  ├─ index.ts                  # Public entry point, re-exports everything\n│  ├─ handshake/                # Handshake state (index.ts + types.ts)\n│  ├─ login/                    # Login state packets\n│  ├─ status/                   # Server list ping / status\n│  ├─ hypixel/                  # Custom Hypixel ModAPI packets and channels\n│  └─ play/\n│     ├─ clientbound/           # Server to client packets\n│     │  ├─ connection/\n│     │  ├─ player/\n│     │  ├─ chat/\n│     │  ├─ scoreboard/\n│     │  ├─ entity/\n│     │  ├─ inventory/\n│     │  └─ world/\n│     └─ serverbound/           # Client to server packets\n│        ├─ connection/\n│        ├─ movement/\n│        ├─ interaction/\n│        ├─ inventory/\n│        └─ chat/\n├─ docs/                        # VitePress docs site, logo, assets\n└─ package.json\n```\n\nEach leaf folder typically holds an `index.ts` with the packet interfaces and, where needed, a `types.ts` with the enums and value unions those packets reference.\n\n## Releases and Deployment\n\nTwo things ship automatically from this repo, so there is no manual deploy step.\n\n**Documentation.** The docs site rebuilds and deploys to GitHub Pages on every push to `main`, via [`.github/workflows/docs.yml`](.github/workflows/docs.yml). Merge to `main` and the site updates on its own.\n\n**npm package.** Publishing to npm is automated by [`.github/workflows/publish.yml`](.github/workflows/publish.yml), which runs when a GitHub Release is published. Releases follow [Semantic Versioning](https://semver.org). To cut one:\n\n1. Bump `version` in `package.json` (for example `1.0.1`).\n2. Commit that change to `main`.\n3. On GitHub, go to **Releases**, choose **Draft a new release**, create a tag like `v1.0.1`, write the notes, and click **Publish release**.\n\nPublishing the release triggers the workflow, which builds the package and runs `npm publish` with provenance. The first publish is done once by a maintainer (`npm publish` locally) so the package exists, after which the Trusted Publisher setup lets the Action handle every release with no token to manage.\n\n## Roadmap\n\nMinecraft 1.8.9 (protocol version 47) is complete today: every state and direction, fully typed and documented. From there:\n\n- [ ] Add more Minecraft versions, each held to the same complete, per-field standard\n- [ ] Per-version exports, so you can pin the exact protocol version you target\n\nWant a particular version prioritized? [Open a feature request](https://github.com/Breezil/Breezil-Packets/issues/new?labels=enhancement).\n\n## Contributing\n\nContributions are welcome and genuinely appreciated, first timers included. 💙\n\n1. Fork the repo and create your branch: `git checkout -b feat/my-feature`\n2. Make your changes, keeping field docs accurate and ids correct\n3. Run `npm run build` to make sure the types still compile cleanly\n4. Commit using [Conventional Commits](https://www.conventionalcommits.org): `feat: add combat event packet`\n5. Open a Pull Request and describe what changed and why\n\nNew to the project? Look for issues labeled\n[`good first issue`](https://github.com/Breezil/Breezil-Packets/labels/good%20first%20issue).\nSee the [Breezil contributing guide](https://github.com/Breezil/.github/blob/main/CONTRIBUTING.md) for the full guide.\n\n## Code of Conduct\n\nThis project follows the Breezil [Code of Conduct](https://github.com/Breezil/.github/blob/main/CODE_OF_CONDUCT.md). By taking part you\nagree to uphold it. Be kind, be welcoming.\n\n## License\n\nDistributed under the **MIT License**. See [`LICENSE`](LICENSE) for the full text.\n\n## Support and Community\n\n- 💬 **Discord:** [Join the Breezil community](https://discord.gg/7SxbNMYQNa)\n- 🐛 **Issues:** [github.com/Breezil/Breezil-Packets/issues](https://github.com/Breezil/Breezil-Packets/issues)\n- 💡 **Discussions:** [github.com/Breezil/Breezil-Packets/discussions](https://github.com/Breezil/Breezil-Packets/discussions)\n\n## Acknowledgements\n\n- The Minecraft 1.8.9 protocol (version 47) as documented by the wiki.vg community\n- [`minecraft-protocol`](https://github.com/PrismarineJS/node-minecraft-protocol) for protocol reference\n- Everyone in the [Breezil Discord](https://discord.gg/7SxbNMYQNa)\n\n---\n\n<div align=\"center\">\n<sub>Built with 💙 by <a href=\"https://github.com/Breezil\">Breezil</a>.</sub>\n</div>\n\n","readmeFilename":"README.md"}