/TyphoonCore

Lightweight minecraft server engine

Primary LanguageGoGNU General Public License v2.0GPL-2.0

TyphoonCore

Lightweight minecraft server engine

Build Status stability-wip

Minecraft protocol support

Minecraft Version Protocol Version Supported
1.7.2 to 1.7.5 4 true
1.7.6 to 1.7.10 5 true
1.8 to 1.8.9 47 true
1.9 107 true
1.9.1 108 true
1.9.2 109 true
1.9.3 to 1.9.4 110 true
1.10 to 1.10.2 210 true
1.11 315 true
1.11.1 to 1.11.2 316 true
1.12 335 true
1.12.1 338 true
1.12.2 340 true
1.13 393 true
1.13.1 401 true
1.13.2 404 true
1.14 477 true
1.14.1 480 true
1.14.2 485 true
1.14.3 490 true
1.14.4 498 true
1.15 573 true
1.15.1 575 true
1.15.2 578 true

Snapshot support

TyphoonCore is able to load TyphoonDep protocol-map modules to add a partial snapshots support.

All json files are loaded from the "modules" folder in the same directory as the TyphoonLimbo binary.

You can generate a protocol-map module with the fetcher. Just pick the "page" link of your wanted version on wiki.vg as argument of the fecther and the magic will happen.

How to use

go get github.com/TyphoonMC/TyphoonCore

Example

package main

import (
	"fmt"
	t "github.com/TyphoonMC/TyphoonCore"
)

func main() {
	core := t.Init()
	core.SetBrand("exampleserver")

	core.On(func(e *t.PlayerJoinEvent) {
		msg := t.ChatMessage("Welcome ")
		msg.SetExtra([]t.IChatComponent{
			t.ChatMessage(e.Player.GetName()),
			t.ChatMessage(" !"),
		})
		e.Player.SendMessage(msg)
	})

	core.Start()
}

Other examples :

Roadmap

  • User friendly API
  • World loading
  • Multiworld
  • Entities
  • Physics
  • Biomes
  • Redstone
  • Pistons