Go-MC
教程 · Tutorial
Require Go version: 1.19
There's some library in Go support you to create your Minecraft client or server.
这是一些Golang库,用于帮助你编写自己的Minecraft客户端或服务器。
-
👍 Minecraft network protocol -
👍 Robot framework -
👍 Server framework -
👍 Dual role RCON protocol (Server & Client) -
👍 Chat Message (Support both Json and old§
format) -
👍 NBT (Based on reflection) -
👌 SNBT ⇋ NBT -
👍 Regions & Chunks & Blocks -
⌛ Yggdrasil (Mojang login) -
⌛ Realms Server
We don't promise that API is 100% backward compatible.
Getting start
Go-MC tag the old version after new version released. For example,
if 1.19.4 is the latest Minecraft version, the newest go-mc tag will be v1.19.3.
To get the latest Go-MC that support 1.19.4, usually you must use go get -u github.com/Tnze/go-mc@master
.
Special cases are version like 1.19, the Go-MC support it is tagged v1.19.0
to avoid automatically upgrade.
Examples:
To get the latest version: go get github.com/Tnze/go-mc@master
To get old versions (e.g. 1.18.2): go get github.com/Tnze/[email protected]
To get the first of each primary version: go get github.com/Tnze/[email protected]
Run Examples
- Run
go run github.com/Tnze/go-mc/cmd/mcping localhost
to ping and list the localhost mc server. - Run
go run github.com/Tnze/go-mc/cmd/daze
to join the local server at localhost:25565 as player named Daze on the offline mode.
Supported Version
As the go-mc/net
package implements the minecraft network protocol, there is no update between the versions at this
level. So net package actually supports any version. It's just that the ID and content of the package are different
between different versions.
由于go-mc/net
实现的是MC底层的网络协议,而这个协议在MC更新时其实并不会有改动,MC更新时其实只是包的ID和内容的定义发生了变化,所以net包本身是跨版本的。