Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Subprojects

SirCmpwn edited this page Dec 26, 2012 · 1 revision

Craft.Net is made up of several libraries. This page describes each library, what it depends on, and what it does. External dependencies are not listed.

Craft.Net

The basic Craft.Net library only serves as a Minecraft protocol parser. It handles all packets, encryption, and has the ItemStack and MetadataDictionary code. This can function as a standalone library for Minecraft protocol manipulation.

Uses:

  • Network handling for Minecraft servers (example: Craft.Net.Server)
  • Network handling for Minecraft clients (example: Craft.Net.Client)
  • Network handling for Minecraft proxies
  • ItemStack and Metadata object management

Craft.Net.Data

Craft.Net.Data contains a large amount of the code in the whole Craft.Net ecosystem. It handles worlds, entities, blocks, items, and interactions between these. It also deals with world generation, and inventory management. It depends on Craft.Net.

Uses:

  • Anvil world manipulation
  • Physics simulation with entities
  • Block/world/entity interaction
  • Item/world interaction
  • Window management (player inventories, crafting)
  • Flatland terrain generation

Craft.Net.Server

This library is responsible for handling networking with specific respect to the server side of the connection. It can handle multiple clients, and facilitate communication between them. It calls out to Craft.Net.Data for physics, block placement, item use, inventory management, and similar tasks. Most of what Craft.Net.Server does is just connecting the dots between remote clients and Craft.Net.Data. It depends on Craft.Net and Craft.Net.Data.

Uses:

  • A Minecraft server

Craft.Net.Client

Craft.Net.Client is the newest member of the Craft.Net family, and is neither stable nor complete.

Craft.Net.Client handles various tasks to communicate with Minecraft servers. This includes handling the initial login exchange, authentication with minecraft.net, and basic player physics. It depends on Craft.Net, and probably Craft.Net.Data soon.

Uses:

  • A Minecraft client
  • Server ping tool
  • Minecraft.net session authentication
  • Minecraft lastlogin decryption/encryption