package main import ( "flag" "os" "github.com/Tnze/go-mc/bot" "github.com/Tnze/go-mc/bot/basic" "github.com/Tnze/go-mc/chat" "github.com/Tnze/go-mc/yggdrasil" "github.com/google/uuid" "github.com/peterbourgon/ff/v3" "github.com/peterbourgon/ff/v3/fftoml" "go.jolheiser.com/beaver" ) func main() { fs := flag.NewFlagSet("afk", flag.ExitOnError) emailFlag := fs.String("email", "", "Login Email") passwordFlag := fs.String("password", "", "Login Password") ipFlag := fs.String("ip", "", "Server IP") if err := ff.Parse(fs, os.Args[1:], ff.WithEnvVarPrefix("AFK"), ff.WithConfigFileFlag("config"), ff.WithAllowMissingConfigFile(true), ff.WithConfigFileParser(fftoml.New().Parse), ); err != nil { beaver.Fatal(err) return } client := bot.NewClient() auth, err := yggdrasil.Authenticate(*emailFlag, *passwordFlag) if err != nil { panic(err) } client.Auth.UUID, client.Auth.Name = auth.SelectedProfile() client.Auth.AsTk = auth.AccessToken() err = client.JoinServer(*ipFlag) if err != nil { beaver.Fatal(err) } beaver.Info("Login success") basic.EventsListener{ ChatMsg: onChatMsg, }.Attach(client) err = client.HandleGame() if err != nil { beaver.Fatal(err) } } func onChatMsg(c chat.Message, _ byte, _ uuid.UUID) error { beaver.Info(c) return nil }