| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package cli
- import (
- "f1-game/internal/code"
- "f1-game/internal/pb"
- "fmt"
- "time"
- cherryHttp "github.com/cherry-game/cherry/extend/http"
- cherryTime "github.com/cherry-game/cherry/extend/time"
- clog "github.com/cherry-game/cherry/logger"
- pomeloClient "github.com/cherry-game/cherry/net/parser/pomelo/client"
- jsoniter "github.com/json-iterator/go"
- )
- func RegisterDevAccounts(url string, accounts map[string]string) {
- for key, val := range accounts {
- RegisterDevAccount(url, key, val)
- }
- }
- func RegisterDevAccount(url string, account, password string) {
- requestURL := fmt.Sprintf("%s/dev/register", url)
- params := map[string]string{
- "account": account,
- "password": password,
- }
- jsonBytes, httpRsp, err := cherryHttp.GET(requestURL, params)
- if err != nil {
- clog.Warn(err)
- return
- }
- if httpRsp.StatusCode != 200 {
- clog.Warnf("register account = %s, http status code = %d", account, httpRsp.StatusCode)
- return
- }
- rsp := &code.DataResult{}
- err = jsoniter.Unmarshal(jsonBytes, rsp)
- if err != nil {
- clog.Warn(err)
- return
- }
- clog.Debugf("register account = %s, result = %+v", account, rsp)
- }
- func RunRobotConnect(url, pid, userName, password, addr string) *Robot {
- cli := New(
- pomeloClient.New(
- pomeloClient.WithRequestTimeout(3*time.Second),
- pomeloClient.WithErrorBreak(true),
- ),
- false,
- )
- cli.PrintLog = false
- if err := cli.GetToken(url, pid, userName, password); err != nil {
- clog.Error(err)
- return nil
- }
- if err := cli.ConnectToTCP(addr); err != nil {
- clog.Error(err)
- return nil
- }
- return cli
- }
- func EnterServer(url, pid, userName, password, addr string, gameNodeID string, printLog bool) *Robot {
- return NewEnterServer(url, pid, userName, password, addr, gameNodeID, printLog, false)
- }
- func NewEnterServer(url, pid, userName, password, addr string, gameNodeID string, printLog bool, isNew bool) *Robot {
- client := pomeloClient.New(
- pomeloClient.WithRequestTimeout(60*time.Second),
- pomeloClient.WithErrorBreak(true),
- )
- cli := New(client, isNew)
- cli.PrintLog = printLog
- if err := cli.GetToken(url, pid, userName, password); err != nil {
- clog.Error(err)
- return nil
- }
- cli.RandSleep()
- // if err := cli.ConnectToWS(addr, ""); err != nil {
- if err := cli.ConnectToTCP(addr); err != nil {
- clog.Error(err)
- return nil
- }
- cli.StartTime = cherryTime.Now()
- // 监听push
- cli.ListenerPush()
- userLoginRequest := &pb.UserLoginRequest{
- Token: cli.Token,
- GameNodeID: gameNodeID,
- }
- err := cli.UserLogin(userLoginRequest)
- if err != nil {
- clog.Warn(err)
- return nil
- }
- cli.RandSleep()
- err = cli.PlayerEnter("en_US")
- if err != nil {
- clog.Warn(err)
- return nil
- }
- elapsedTime := cli.StartTime.NowDiffMillisecond()
- if elapsedTime > 100 {
- clog.Debugf("[%s] is enter to game. elapsed time:%dms", cli.TagName, elapsedTime)
- }
- //cli.Disconnect()
- return cli
- }
|