62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
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
|
|
}
|