github.com/loomnetwork/gamechain@v0.0.0-20200406110549-36c47eb97a92/cli/cmd/register_player_pool.go (about)

     1  package cmd
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/loomnetwork/gamechain/types/zb/zb_calls"
     6  	"github.com/loomnetwork/gamechain/types/zb/zb_data"
     7  
     8  	"github.com/loomnetwork/go-loom/auth"
     9  	"github.com/spf13/cobra"
    10  )
    11  
    12  var registerPlayerPoolCmdArgs struct {
    13  	userID              string
    14  	deckID              int64
    15  	version             string
    16  	tags                []string
    17  	useBackendGameLogic bool
    18  
    19  	enableDebugCheats    bool
    20  	disableDeckShuffle   bool
    21  	forceFirstTurnUserId string
    22  	randomSeed           int64
    23  }
    24  
    25  var registerPlayerPoolCmd = &cobra.Command{
    26  	Use:   "register_player_pool",
    27  	Short: "register player to find_match pool",
    28  	RunE: func(cmd *cobra.Command, args []string) error {
    29  		signer := auth.NewEd25519Signer(commonTxObjs.privateKey)
    30  		var req = zb_calls.RegisterPlayerPoolRequest{
    31  			RegistrationData: &zb_data.PlayerProfileRegistrationData{
    32  				UserId:              registerPlayerPoolCmdArgs.userID,
    33  				DeckId:              registerPlayerPoolCmdArgs.deckID,
    34  				Version:             registerPlayerPoolCmdArgs.version,
    35  				Tags:                registerPlayerPoolCmdArgs.tags,
    36  				UseBackendGameLogic: registerPlayerPoolCmdArgs.useBackendGameLogic,
    37  			},
    38  		}
    39  		var resp zb_calls.RegisterPlayerPoolResponse
    40  
    41  		if registerPlayerPoolCmdArgs.enableDebugCheats {
    42  			req.RegistrationData.DebugCheats.Enabled = true
    43  		}
    44  
    45  		req.RegistrationData.DebugCheats.DisableDeckShuffle = registerPlayerPoolCmdArgs.disableDeckShuffle
    46  		req.RegistrationData.DebugCheats.ForceFirstTurnUserId = registerPlayerPoolCmdArgs.forceFirstTurnUserId
    47  
    48  		if registerPlayerPoolCmdArgs.randomSeed != 0 {
    49  			req.RegistrationData.DebugCheats.UseCustomRandomSeed = true
    50  			req.RegistrationData.DebugCheats.CustomRandomSeed = registerPlayerPoolCmdArgs.randomSeed
    51  		}
    52  
    53  		_, err := commonTxObjs.contract.Call("RegisterPlayerPool", &req, signer, &resp)
    54  		if err != nil {
    55  			return err
    56  		}
    57  
    58  		fmt.Printf("Registered player %s to pool\n", req.RegistrationData.UserId)
    59  		return nil
    60  	},
    61  }
    62  
    63  func init() {
    64  	rootCmd.AddCommand(registerPlayerPoolCmd)
    65  
    66  	registerPlayerPoolCmd.Flags().StringVarP(&registerPlayerPoolCmdArgs.userID, "userId", "u", "loom", "UserId of account")
    67  	registerPlayerPoolCmd.Flags().Int64VarP(&registerPlayerPoolCmdArgs.deckID, "deckId", "d", 1, "Deck Id")
    68  	registerPlayerPoolCmd.Flags().StringVarP(&registerPlayerPoolCmdArgs.version, "version", "v", "", "version number like “0.10.0”")
    69  	registerPlayerPoolCmd.Flags().BoolVarP(&registerPlayerPoolCmdArgs.enableDebugCheats, "enableDebugCheats", "", false, "Enable Debug Cheats")
    70  	registerPlayerPoolCmd.Flags().BoolVarP(&registerPlayerPoolCmdArgs.disableDeckShuffle, "disableDeckShuffle", "", false, "Cheat - Disable Deck Shuffle")
    71  	registerPlayerPoolCmd.Flags().StringVarP(&registerPlayerPoolCmdArgs.forceFirstTurnUserId, "forceFirstTurnUserId", "", "", "Cheat - UserId of the player who will have the first turn")
    72  	registerPlayerPoolCmd.Flags().Int64VarP(&registerPlayerPoolCmdArgs.randomSeed, "randomSeed", "", 0, "Cheat - Random Seed")
    73  	registerPlayerPoolCmd.Flags().StringArrayVarP(&registerPlayerPoolCmdArgs.tags, "tags", "t", nil, "tags")
    74  	registerPlayerPoolCmd.Flags().BoolVarP(&registerPlayerPoolCmdArgs.useBackendGameLogic, "useBackendGameLogic", "b", false, "useBackendGameLogic")
    75  }