This repository was archived by the owner on Jun 12, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
Handle events
Tnze edited this page Feb 19, 2019
·
6 revisions
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)
}
}
}