A pure JS library to create Minecraft Java 1.16.3 servers
This package does not cover the full Minecraft Java protocol yet. It only covers parts of the 1.16.3 protocol. To check what parts of the protocol are covered, see the Excel packet spreadsheet and the docs. |
---|
This is a pure JS library that gives you access to an easy to use API that you can use to create Minecraft Java 1.16.3 servers. This package has types built in. You have full control over the packets that are being sent to the Clients in an easy to use way. This means you can send different information to each Client, so that for example, for one Client it is raining and for a different one it's not.
npm i @boem312/minecraft-server
.const { Server } = require('@boem312/minecraft-server');
const server = new Server();
server.on('connect', client => {
console.log(`${client.username} joined`);
client.chat(`Hello world, ${client.username}`);
});
1.16.3
on host localhost
and on port 25565
. Different versions and ports are currently not supported.For more examples, please see the examples folder.
If you want to now how to use the rest of the library, please see the documentation.
If you have any questions please first read the FAQ. If your question isn't in there, you can ask a question in discussions.
These are some terms that are used in the code and documentation.
The Client is the system that is connecting/connected to the Server.
Link to latest docs for Client
A player is just a type of Entity. It is the thing that a Client sees, when they see other people. Each Client has it's own players. Here's an example:
In this case, there are two Clients online; Notch
and jeb_
(top level) and they both see one another. A Player doesn't have to be a Client, it could also just look like one, without being actually connected to the server. Here's an example of that:
Here Notch
sees jeb_
, but jeb_
doesn't see Notch
. Both jeb_
and Notch
see the Player (not connected to the server) Hub
. Hub isn't a Client that is connected to the server, but looks like one to Notch
and jeb_
.
Entities include all dynamic, moving objects throughout the Minecraft world. Some examples of entities are:
See contributing.md
For the full license, see license.md
. This package uses the ISC license.