Skip to content
This repository was archived by the owner on Jun 12, 2019. It is now read-only.

Handle events

Tnze edited this page Feb 19, 2019 · 6 revisions

Simple Events

After you go g.HandleGame(), you have to get event channel by events := g.GetEvents() and receive Events from events. The events hasn't buffer so if you don't receive Event, game handler will be block.

Generally, you could handle events like this example:

package main

import (
	bot "github.com/Tnze/gomcbot"
	"github.com/mattn/go-colorable"
	"log"
)

func main() {
	//login
	log.SetOutput(colorable.NewColorableStdout())
	auth := bot.Auth{Name: "Steve"}
	g, err := auth.JoinServer("localhost", 25565)
	if err != nil {
		log.Fatal(err)
	}
	events := g.GetEvents()
	go g.HandleGame()

	//handle events
	for e := range events {
		switch e.(type) {
		case bot.PlayerSpawnEvent:
			log.Println("player is spawned")
		case bot.ChatMessageEvent: //chat message
			log.Println(e.(bot.ChatMessageEvent).Msg)
		case bot.DisconnectEvent: //disconnect
			log.Println(bot.ChatMsg(e.(bot.DisconnectEvent)))
		default:
			// log.Println(e)
		}
	}
}

Clone this wiki locally