package main import ( "context" "database/sql" "danmaku/game-modes/battle-royale" "github.com/heroiclabs/nakama-common/runtime" ) // RPC for force-creating a match for debugging/development, separate from the matchmaking process func ManualForceCreateBRMatchRPC(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, payload string) (string, error) { modulename := "battle-royale" if matchId, err := nk.MatchCreate(ctx, modulename, make(map[string]interface{})); err != nil { return "", err } else { return matchId, nil } } // main function for hooking into the nakama runtime, responsible for setting up all handlers func InitModule(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, initializer runtime.Initializer) error { // Register handlers for match lifecycle if err := initializer.RegisterMatch("battle-royale", func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule) (runtime.Match, error) { return &battleroyale.Match{}, nil }); err != nil { logger.Error("Unable to register match handler: %v", nil) return err } // Register RPCs if err := initializer.RegisterRpc("manual_force_create_br_match_rpc", ManualForceCreateBRMatchRPC); err != nil { logger.Error("Unable to register: %v", err) return err } return nil }