server

package
v2.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 3, 2019 License: Apache-2.0 Imports: 93 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NotificationCodeDmRequest        int32 = -1
	NotificationCodeFriendRequest    int32 = -2
	NotificationCodeFriendAccept     int32 = -3
	NotificationCodeGroupAdd         int32 = -4
	NotificationCodeGroupJoinRequest int32 = -5
	NotificationCodeFriendJoinGame   int32 = -6
)
View Source
const (
	LeaderboardSortOrderAscending = iota
	LeaderboardSortOrderDescending
)
View Source
const (
	LeaderboardOperatorBest = iota
	LeaderboardOperatorSet
	LeaderboardOperatorIncrement
)
View Source
const (
	ChannelMessageTypeChat int32 = iota
	ChannelMessageTypeChatUpdate
	ChannelMessageTypeChatRemove
	ChannelMessageTypeGroupJoin
	ChannelMessageTypeGroupAdd
	ChannelMessageTypeGroupKick
	ChannelMessageTypeGroupPromoted
)
View Source
const (
	StreamModeNotifications uint8 = iota
	StreamModeStatus
	StreamModeChannel
	StreamModeGroup
	StreamModeDM
	StreamModeMatchRelayed
	StreamModeMatchAuthoritative
)
View Source
const API_PREFIX = "/nakama.api.Nakama/"
View Source
const LTSentinel = lua.LValueType(-1)
View Source
const ObfuscationString = "********"
View Source
const RTAPI_PREFIX = "*rtapi.Envelope_"

Variables

View Source
var (
	ErrChannelIdInvalid     = errors.New("invalid channel id")
	ErrChannelCursorInvalid = errors.New("invalid channel cursor")
	ErrChannelGroupNotFound = errors.New("group not found")
)
View Source
var (
	ErrGroupNameInUse        = errors.New("group name in use")
	ErrGroupPermissionDenied = errors.New("group permission denied")
	ErrGroupNoUpdateOps      = errors.New("no group updates")
	ErrGroupNotUpdated       = errors.New("group not updated")
	ErrGroupNotFound         = errors.New("group not found")
	ErrGroupFull             = errors.New("group is full")
	ErrGroupLastSuperadmin   = errors.New("user is last group superadmin")
)
View Source
var (
	ErrLeaderboardNotFound      = errors.New("leaderboard not found")
	ErrLeaderboardAuthoritative = errors.New("leaderboard only allows authoritative submissions")
	ErrLeaderboardInvalidCursor = errors.New("leaderboard cursor invalid")
)
View Source
var (
	ErrStorageRejectedVersion    = errors.New("Storage write rejected - version check failed.")
	ErrStorageRejectedPermission = errors.New("Storage write rejected - permission denied.")
	ErrStorageWriteFailed        = errors.New("Storage write failed.")
)
View Source
var (
	ErrTournamentNotFound                = errors.New("tournament not found")
	ErrTournamentMaxSizeReached          = errors.New("tournament max size reached")
	ErrTournamentOutsideDuration         = errors.New("tournament outside of duration")
	ErrTournamentWriteMaxNumScoreReached = errors.New("max number score count reached")
	ErrTournamentWriteJoinRequired       = errors.New("required to join before writing tournament record")
)
View Source
var (
	MatchFilterValue   = uint8(0)
	MatchFilterPtr     = &MatchFilterValue
	MatchFilterRelayed = map[uint8]*uint8{StreamModeMatchRelayed: MatchFilterPtr}

	MaxLabelSize = 2048

	ErrMatchLabelTooLong     = errors.New("match label too long, must be 0-2048 bytes")
	ErrDeferredBroadcastFull = errors.New("too many deferred message broadcasts per tick")
)
View Source
var (
	// Metrics stats measurements.
	MetricsRuntimeCount          = stats.Int64("nakama/runtime/count", "Number of pooled runtime instances", stats.UnitDimensionless)
	MetricsSocketWsTimeSpentMsec = stats.Float64("nakama.socket/ws/server_elapsed_time", "Elapsed time in msecs spent in WebSocket connections", stats.UnitMilliseconds)
	MetricsSocketWsOpenCount     = stats.Int64("nakama.socket/ws/open_count", "Number of opened WebSocket connections", stats.UnitDimensionless)
	MetricsSocketWsCloseCount    = stats.Int64("nakama.socket/ws/close_count", "Number of closed WebSocket connections", stats.UnitDimensionless)
	MetricsApiTimeSpentMsec      = stats.Float64("nakama.api/server/server_elapsed_time", "Elapsed time in msecs spent in API functions", stats.UnitMilliseconds)
	MetricsApiCount              = stats.Int64("nakama.api/server/request_count", "Number of calls to API functions", stats.UnitDimensionless)
	MetricsRtapiTimeSpentMsec    = stats.Float64("nakama.rtapi/server/server_elapsed_time", "Elapsed time in msecs spent in realtime socket functions", stats.UnitMilliseconds)
	MetricsRtapiCount            = stats.Int64("nakama.rtapi/server/request_count", "Number of calls to realtime socket functions", stats.UnitDimensionless)

	// Metrics stats tag keys.
	MetricsFunction, _ = tag.NewKey("function")
)
View Source
var (
	Bit32LibName   = "bit32"
	Bit32Default64 = int64(math.Pow(2, 32) - 1)
)
View Source
var ErrAccountNotFound = errors.New("account not found")
View Source
var ErrChannelMessageUpdateNotFound = errors.New("channel message not found")
View Source
var ErrMatchmakerTicketNotFound = errors.New("ticket not found")
View Source
var (
	ErrNodeNotFound = errors.New("node not found")
)
View Source
var ErrRowsAffectedCount = errors.New("rows_affected_count")
View Source
var (
	ErrRuntimeRPCNotFound = errors.New("RPC function not found")
)
View Source
var ErrSessionQueueFull = errors.New("session outgoing queue full")
View Source
var LSentinel = lua.LValue(&LSentinelType{})
View Source
var SocketWsStatsCtx = context.Background()

Functions

func AddFriends

func AddFriends(ctx context.Context, logger *zap.Logger, db *sql.DB, messageRouter MessageRouter, userID uuid.UUID, username string, friendIDs []string) error

func AddGroupUsers

func AddGroupUsers(ctx context.Context, logger *zap.Logger, db *sql.DB, router MessageRouter, caller uuid.UUID, groupID uuid.UUID, userIDs []uuid.UUID) error

func AuthenticateCustom

func AuthenticateCustom(ctx context.Context, logger *zap.Logger, db *sql.DB, customID, username string, create bool) (string, string, bool, error)

func AuthenticateDevice

func AuthenticateDevice(ctx context.Context, logger *zap.Logger, db *sql.DB, deviceID, username string, create bool) (string, string, bool, error)

func AuthenticateEmail

func AuthenticateEmail(ctx context.Context, logger *zap.Logger, db *sql.DB, email, password, username string, create bool) (string, string, bool, error)

func AuthenticateFacebook

func AuthenticateFacebook(ctx context.Context, logger *zap.Logger, db *sql.DB, client *social.Client, accessToken, username string, create bool) (string, string, bool, error)

func AuthenticateGameCenter

func AuthenticateGameCenter(ctx context.Context, logger *zap.Logger, db *sql.DB, client *social.Client, playerID, bundleID string, timestamp int64, salt, signature, publicKeyUrl, username string, create bool) (string, string, bool, error)

func AuthenticateGoogle

func AuthenticateGoogle(ctx context.Context, logger *zap.Logger, db *sql.DB, client *social.Client, idToken, username string, create bool) (string, string, bool, error)

func AuthenticateSteam

func AuthenticateSteam(ctx context.Context, logger *zap.Logger, db *sql.DB, client *social.Client, appID int, publisherKey, token, username string, create bool) (string, string, bool, error)

func AuthenticateUsername added in v2.3.0

func AuthenticateUsername(ctx context.Context, logger *zap.Logger, db *sql.DB, username, password string) (string, error)

func BanUsers added in v2.0.1

func BanUsers(ctx context.Context, logger *zap.Logger, db *sql.DB, ids []string) error

func BlockFriends

func BlockFriends(ctx context.Context, logger *zap.Logger, db *sql.DB, currentUser uuid.UUID, ids []string) error

func ChannelMessagesList

func ChannelMessagesList(ctx context.Context, logger *zap.Logger, db *sql.DB, caller uuid.UUID, stream PresenceStream, channelId string, limit int, forward bool, cursor string) (*api.ChannelMessageList, error)

func CheckConfig added in v2.4.0

func CheckConfig(logger *zap.Logger, config Config) map[string]string

func CreateGroup

func CreateGroup(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID, creatorID uuid.UUID, name, lang, desc, avatarURL, metadata string, open bool, maxCount int) (*api.Group, error)

func DeleteAccount added in v2.4.1

func DeleteAccount(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID, recorded bool) error

func DeleteFriends

func DeleteFriends(ctx context.Context, logger *zap.Logger, db *sql.DB, currentUser uuid.UUID, ids []string) error

func DeleteGroup

func DeleteGroup(ctx context.Context, logger *zap.Logger, db *sql.DB, groupID uuid.UUID, userID uuid.UUID) error

func DeleteUser

func DeleteUser(ctx context.Context, tx *sql.Tx, userID uuid.UUID) (int64, error)

func ExecuteRetryable added in v2.1.0

func ExecuteRetryable(fn func() error) error

Retry functions that perform non-transactional database operations.

func GetAccount

func GetAccount(ctx context.Context, logger *zap.Logger, db *sql.DB, tracker Tracker, userID uuid.UUID) (*api.Account, time.Time, error)

func GetAccounts added in v2.3.0

func GetAccounts(ctx context.Context, logger *zap.Logger, db *sql.DB, tracker Tracker, userIDs []string) ([]*api.Account, error)

func GetChannelMessages

func GetChannelMessages(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID) ([]*api.ChannelMessage, error)

func GetFriendIDs

func GetFriendIDs(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID) (*api.Friends, error)

func GetFriends

func GetFriends(ctx context.Context, logger *zap.Logger, db *sql.DB, tracker Tracker, userID uuid.UUID) (*api.Friends, error)

func GetGroups added in v2.1.1

func GetGroups(ctx context.Context, logger *zap.Logger, db *sql.DB, ids []string) ([]*api.Group, error)

func GetUsers

func GetUsers(ctx context.Context, logger *zap.Logger, db *sql.DB, tracker Tracker, ids, usernames, fbIDs []string) (*api.Users, error)

func GroupDeleteAll

func GroupDeleteAll(ctx context.Context, logger *zap.Logger, tx *sql.Tx, userID uuid.UUID) error

func JoinGroup

func JoinGroup(ctx context.Context, logger *zap.Logger, db *sql.DB, router MessageRouter, groupID uuid.UUID, userID uuid.UUID, username string) error

func KickGroupUsers

func KickGroupUsers(ctx context.Context, logger *zap.Logger, db *sql.DB, caller uuid.UUID, groupID uuid.UUID, userIDs []uuid.UUID) error

func LeaderboardRecordDelete

func LeaderboardRecordDelete(ctx context.Context, logger *zap.Logger, db *sql.DB, leaderboardCache LeaderboardCache, rankCache LeaderboardRankCache, caller uuid.UUID, leaderboardId, ownerId string) error

func LeaderboardRecordReadAll

func LeaderboardRecordReadAll(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID) ([]*api.LeaderboardRecord, error)

func LeaderboardRecordWrite

func LeaderboardRecordWrite(ctx context.Context, logger *zap.Logger, db *sql.DB, leaderboardCache LeaderboardCache, rankCache LeaderboardRankCache, caller uuid.UUID, leaderboardId, ownerId, username string, score, subscore int64, metadata string) (*api.LeaderboardRecord, error)

func LeaderboardRecordsDeleteAll

func LeaderboardRecordsDeleteAll(ctx context.Context, logger *zap.Logger, tx *sql.Tx, userID uuid.UUID) error

func LeaderboardRecordsHaystack added in v2.1.0

func LeaderboardRecordsHaystack(ctx context.Context, logger *zap.Logger, db *sql.DB, leaderboardCache LeaderboardCache, rankCache LeaderboardRankCache, leaderboardId string, ownerId uuid.UUID, limit int) ([]*api.LeaderboardRecord, error)

func LeaderboardRecordsList

func LeaderboardRecordsList(ctx context.Context, logger *zap.Logger, db *sql.DB, leaderboardCache LeaderboardCache, rankCache LeaderboardRankCache, leaderboardId string, limit *wrappers.Int32Value, cursor string, ownerIds []string, overrideExpiry int64) (*api.LeaderboardRecordList, error)

func LeaveGroup

func LeaveGroup(ctx context.Context, logger *zap.Logger, db *sql.DB, groupID uuid.UUID, userID uuid.UUID) error

func ListGroupUsers

func ListGroupUsers(ctx context.Context, logger *zap.Logger, db *sql.DB, tracker Tracker, groupID uuid.UUID) (*api.GroupUserList, error)

func ListGroups

func ListGroups(ctx context.Context, logger *zap.Logger, db *sql.DB, name string, limit int, cursorStr string) (*api.GroupList, error)

func ListUserGroups

func ListUserGroups(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID) (*api.UserGroupList, error)

func ListWalletLedger

func ListWalletLedger(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID) ([]*walletLedger, error)

func NewConfig

func NewConfig(logger *zap.Logger) *config

NewConfig constructs a Config struct which represents server settings, and populates it with default values.

func NewJSONFileLogger

func NewJSONFileLogger(consoleLogger *zap.Logger, fileName string, level zapcore.Level, format LoggingFormat) *zap.Logger

func NewJSONLogger

func NewJSONLogger(output *os.File, level zapcore.Level, format LoggingFormat) *zap.Logger

func NewMultiLogger

func NewMultiLogger(loggers ...*zap.Logger) *zap.Logger

func NewRotatingJSONFileLogger added in v2.3.0

func NewRotatingJSONFileLogger(consoleLogger *zap.Logger, config Config, level zapcore.Level, format LoggingFormat) *zap.Logger

func NewRuntimeGoContext added in v2.1.0

func NewRuntimeGoContext(ctx context.Context, env map[string]string, mode RuntimeExecutionMode, queryParams map[string][]string, sessionExpiry int64, userID, username, sessionID, clientIP, clientPort string) context.Context

func NewRuntimeGoLogger added in v2.3.0

func NewRuntimeGoLogger(logger *zap.Logger) runtime.Logger

func NewRuntimeLuaContext added in v2.1.0

func NewRuntimeLuaContext(l *lua.LState, env *lua.LTable, mode RuntimeExecutionMode, queryParams map[string][]string, sessionExpiry int64, userID, username, sessionID, clientIP, clientPort string) *lua.LTable

func NewRuntimeProviderLua added in v2.1.0

func NewRuntimeProviderLua(logger, startupLogger *zap.Logger, db *sql.DB, jsonpbMarshaler *jsonpb.Marshaler, jsonpbUnmarshaler *jsonpb.Unmarshaler, config Config, socialClient *social.Client, leaderboardCache LeaderboardCache, leaderboardRankCache LeaderboardRankCache, leaderboardScheduler LeaderboardScheduler, sessionRegistry SessionRegistry, matchRegistry MatchRegistry, tracker Tracker, streamManager StreamManager, router MessageRouter, goMatchCreateFn RuntimeMatchCreateFunction, rootPath string, paths []string) ([]string, map[string]RuntimeRpcFunction, map[string]RuntimeBeforeRtFunction, map[string]RuntimeAfterRtFunction, *RuntimeBeforeReqFunctions, *RuntimeAfterReqFunctions, RuntimeMatchmakerMatchedFunction, RuntimeMatchCreateFunction, RuntimeTournamentEndFunction, RuntimeTournamentResetFunction, RuntimeLeaderboardResetFunction, error)

func NewSocketWsAcceptor

func NewSocketWsAcceptor(logger *zap.Logger, config Config, sessionRegistry SessionRegistry, matchmaker Matchmaker, tracker Tracker, runtime *Runtime, jsonpbMarshaler *jsonpb.Marshaler, jsonpbUnmarshaler *jsonpb.Unmarshaler, pipeline *Pipeline) func(http.ResponseWriter, *http.Request)

func NotificationDelete

func NotificationDelete(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID, notificationIDs []string) error

func NotificationList

func NotificationList(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID, limit int, cursor string, nc *notificationCacheableCursor) (*api.NotificationList, error)

func NotificationSave

func NotificationSave(ctx context.Context, logger *zap.Logger, db *sql.DB, notifications map[uuid.UUID][]*api.Notification) error

func NotificationSend

func NotificationSend(ctx context.Context, logger *zap.Logger, db *sql.DB, messageRouter MessageRouter, notifications map[uuid.UUID][]*api.Notification) error

func OpenBit32 added in v2.0.3

func OpenBit32(l *lua.LState) int

func OpenOs

func OpenOs(L *lua.LState) int

func OpenPackage

func OpenPackage(moduleCache *RuntimeLuaModuleCache) func(L *lua.LState) int

func PromoteGroupUsers

func PromoteGroupUsers(ctx context.Context, logger *zap.Logger, db *sql.DB, caller uuid.UUID, groupID uuid.UUID, userIDs []uuid.UUID) error

func RuntimeLuaConvertLuaTable added in v2.1.0

func RuntimeLuaConvertLuaTable(lv *lua.LTable) map[string]interface{}

func RuntimeLuaConvertLuaValue added in v2.1.0

func RuntimeLuaConvertLuaValue(lv lua.LValue) interface{}

func RuntimeLuaConvertMap added in v2.1.0

func RuntimeLuaConvertMap(l *lua.LState, data map[string]interface{}) *lua.LTable

func RuntimeLuaConvertMapString added in v2.1.0

func RuntimeLuaConvertMapString(l *lua.LState, data map[string]string) *lua.LTable

func RuntimeLuaConvertValue added in v2.1.0

func RuntimeLuaConvertValue(l *lua.LState, val interface{}) lua.LValue

func SetupLogging

func SetupLogging(tmpLogger *zap.Logger, config Config) (*zap.Logger, *zap.Logger)

func StackdriverLevelEncoder added in v2.4.0

func StackdriverLevelEncoder(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder)

func StackdriverTimeEncoder added in v2.4.0

func StackdriverTimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder)

func StatusError

func StatusError(code codes.Code, msg string, cause error) error

Helper function for creating status errors that wrap underlying causes, usually DB errors.

func StorageDeleteObjects

func StorageDeleteObjects(ctx context.Context, logger *zap.Logger, db *sql.DB, authoritativeDelete bool, ops StorageOpDeletes) (codes.Code, error)

func StorageListObjects

func StorageListObjects(ctx context.Context, logger *zap.Logger, db *sql.DB, caller uuid.UUID, ownerID *uuid.UUID, collection string, limit int, cursor string) (*api.StorageObjectList, codes.Code, error)

func StorageListObjectsAll added in v2.4.1

func StorageListObjectsAll(ctx context.Context, logger *zap.Logger, db *sql.DB, authoritative bool, collection string, limit int, cursor string, storageCursor *storageCursor) (*api.StorageObjectList, error)

func StorageListObjectsPublicReadUser

func StorageListObjectsPublicReadUser(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID, collection string, limit int, cursor string, storageCursor *storageCursor) (*api.StorageObjectList, error)

func StorageListObjectsUser

func StorageListObjectsUser(ctx context.Context, logger *zap.Logger, db *sql.DB, authoritative bool, userID uuid.UUID, collection string, limit int, cursor string, storageCursor *storageCursor) (*api.StorageObjectList, error)

func StorageReadAllUserObjects

func StorageReadAllUserObjects(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID) ([]*api.StorageObject, error)

func StorageReadObjects

func StorageReadObjects(ctx context.Context, logger *zap.Logger, db *sql.DB, caller uuid.UUID, objectIDs []*api.ReadStorageObjectId) (*api.StorageObjects, error)

func StorageWriteObjects

func StorageWriteObjects(ctx context.Context, logger *zap.Logger, db *sql.DB, authoritativeWrite bool, ops StorageOpWrites) (*api.StorageObjectAcks, codes.Code, error)

func StreamToChannelId

func StreamToChannelId(stream PresenceStream) (string, error)

func TournamentAddAttempt added in v2.1.0

func TournamentAddAttempt(ctx context.Context, logger *zap.Logger, db *sql.DB, cache LeaderboardCache, leaderboardId string, owner string, count int) error

func TournamentCreate added in v2.1.0

func TournamentCreate(ctx context.Context, logger *zap.Logger, cache LeaderboardCache, scheduler LeaderboardScheduler, leaderboardId string, sortOrder, operator int, resetSchedule, metadata,
	title, description string, category, startTime, endTime, duration, maxSize, maxNumScore int, joinRequired bool) error

func TournamentDelete added in v2.1.0

func TournamentDelete(ctx context.Context, logger *zap.Logger, cache LeaderboardCache, rankCache LeaderboardRankCache, scheduler LeaderboardScheduler, leaderboardId string) error

func TournamentJoin added in v2.1.0

func TournamentJoin(ctx context.Context, logger *zap.Logger, db *sql.DB, cache LeaderboardCache, owner, username, tournamentId string) error

func TournamentList added in v2.1.0

func TournamentList(ctx context.Context, logger *zap.Logger, db *sql.DB, categoryStart, categoryEnd, startTime, endTime, limit int, cursor *tournamentListCursor) (*api.TournamentList, error)

func TournamentRecordWrite added in v2.1.0

func TournamentRecordWrite(ctx context.Context, logger *zap.Logger, db *sql.DB, leaderboardCache LeaderboardCache, rankCache LeaderboardRankCache, tournamentId string, ownerId uuid.UUID, username string, score, subscore int64, metadata string) (*api.LeaderboardRecord, error)

func TournamentRecordsHaystack added in v2.1.0

func TournamentRecordsHaystack(ctx context.Context, logger *zap.Logger, db *sql.DB, leaderboardCache LeaderboardCache, rankCache LeaderboardRankCache, leaderboardId string, ownerId uuid.UUID, limit int) ([]*api.LeaderboardRecord, error)

func UnbanUsers added in v2.0.1

func UnbanUsers(ctx context.Context, logger *zap.Logger, db *sql.DB, ids []string) error

func UpdateAccount

func UpdateAccount(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uuid.UUID, username string, displayName, timezone, location, langTag, avatarURL, metadata *wrappers.StringValue) error

func UpdateGroup

func UpdateGroup(ctx context.Context, logger *zap.Logger, db *sql.DB, groupID uuid.UUID, userID uuid.UUID, creatorID uuid.UUID, name, lang, desc, avatar, metadata *wrappers.StringValue, open *wrappers.BoolValue, maxCount int) error

func UpdateWalletLedger

func UpdateWalletLedger(ctx context.Context, logger *zap.Logger, db *sql.DB, id uuid.UUID, metadata string) (*walletLedger, error)

func UpdateWallets

func UpdateWallets(ctx context.Context, logger *zap.Logger, db *sql.DB, updates []*walletUpdate, updateLedger bool) error

func UserExistsAndDoesNotBlock

func UserExistsAndDoesNotBlock(ctx context.Context, db *sql.DB, checkUserID, blocksUserID uuid.UUID) (bool, error)

Types

type ApiServer

type ApiServer struct {
	// contains filtered or unexported fields
}

func StartApiServer

func StartApiServer(logger *zap.Logger, startupLogger *zap.Logger, db *sql.DB, jsonpbMarshaler *jsonpb.Marshaler, jsonpbUnmarshaler *jsonpb.Unmarshaler, config Config, socialClient *social.Client, leaderboardCache LeaderboardCache, leaderboardRankCache LeaderboardRankCache, sessionRegistry SessionRegistry, matchRegistry MatchRegistry, matchmaker Matchmaker, tracker Tracker, router MessageRouter, pipeline *Pipeline, runtime *Runtime) *ApiServer

func (*ApiServer) AddFriends

func (s *ApiServer) AddFriends(ctx context.Context, in *api.AddFriendsRequest) (*empty.Empty, error)

func (*ApiServer) AddGroupUsers

func (s *ApiServer) AddGroupUsers(ctx context.Context, in *api.AddGroupUsersRequest) (*empty.Empty, error)

func (*ApiServer) AuthenticateCustom

func (s *ApiServer) AuthenticateCustom(ctx context.Context, in *api.AuthenticateCustomRequest) (*api.Session, error)

func (*ApiServer) AuthenticateDevice

func (s *ApiServer) AuthenticateDevice(ctx context.Context, in *api.AuthenticateDeviceRequest) (*api.Session, error)

func (*ApiServer) AuthenticateEmail

func (s *ApiServer) AuthenticateEmail(ctx context.Context, in *api.AuthenticateEmailRequest) (*api.Session, error)

func (*ApiServer) AuthenticateFacebook

func (s *ApiServer) AuthenticateFacebook(ctx context.Context, in *api.AuthenticateFacebookRequest) (*api.Session, error)

func (*ApiServer) AuthenticateGameCenter

func (s *ApiServer) AuthenticateGameCenter(ctx context.Context, in *api.AuthenticateGameCenterRequest) (*api.Session, error)

func (*ApiServer) AuthenticateGoogle

func (s *ApiServer) AuthenticateGoogle(ctx context.Context, in *api.AuthenticateGoogleRequest) (*api.Session, error)

func (*ApiServer) AuthenticateSteam

func (s *ApiServer) AuthenticateSteam(ctx context.Context, in *api.AuthenticateSteamRequest) (*api.Session, error)

func (*ApiServer) BlockFriends

func (s *ApiServer) BlockFriends(ctx context.Context, in *api.BlockFriendsRequest) (*empty.Empty, error)

func (*ApiServer) CreateGroup

func (s *ApiServer) CreateGroup(ctx context.Context, in *api.CreateGroupRequest) (*api.Group, error)

func (*ApiServer) DeleteFriends

func (s *ApiServer) DeleteFriends(ctx context.Context, in *api.DeleteFriendsRequest) (*empty.Empty, error)

func (*ApiServer) DeleteGroup

func (s *ApiServer) DeleteGroup(ctx context.Context, in *api.DeleteGroupRequest) (*empty.Empty, error)

func (*ApiServer) DeleteLeaderboardRecord

func (s *ApiServer) DeleteLeaderboardRecord(ctx context.Context, in *api.DeleteLeaderboardRecordRequest) (*empty.Empty, error)

func (*ApiServer) DeleteNotifications

func (s *ApiServer) DeleteNotifications(ctx context.Context, in *api.DeleteNotificationsRequest) (*empty.Empty, error)

func (*ApiServer) DeleteStorageObjects

func (s *ApiServer) DeleteStorageObjects(ctx context.Context, in *api.DeleteStorageObjectsRequest) (*empty.Empty, error)

func (*ApiServer) GetAccount

func (s *ApiServer) GetAccount(ctx context.Context, in *empty.Empty) (*api.Account, error)

func (*ApiServer) GetUsers

func (s *ApiServer) GetUsers(ctx context.Context, in *api.GetUsersRequest) (*api.Users, error)

func (*ApiServer) Healthcheck

func (s *ApiServer) Healthcheck(ctx context.Context, in *empty.Empty) (*empty.Empty, error)

func (*ApiServer) ImportFacebookFriends

func (s *ApiServer) ImportFacebookFriends(ctx context.Context, in *api.ImportFacebookFriendsRequest) (*empty.Empty, error)

func (*ApiServer) JoinGroup

func (s *ApiServer) JoinGroup(ctx context.Context, in *api.JoinGroupRequest) (*empty.Empty, error)

func (*ApiServer) JoinTournament added in v2.1.0

func (s *ApiServer) JoinTournament(ctx context.Context, in *api.JoinTournamentRequest) (*empty.Empty, error)

func (*ApiServer) KickGroupUsers

func (s *ApiServer) KickGroupUsers(ctx context.Context, in *api.KickGroupUsersRequest) (*empty.Empty, error)

func (*ApiServer) LeaveGroup

func (s *ApiServer) LeaveGroup(ctx context.Context, in *api.LeaveGroupRequest) (*empty.Empty, error)

func (*ApiServer) LinkCustom

func (s *ApiServer) LinkCustom(ctx context.Context, in *api.AccountCustom) (*empty.Empty, error)

func (*ApiServer) LinkDevice

func (s *ApiServer) LinkDevice(ctx context.Context, in *api.AccountDevice) (*empty.Empty, error)

func (*ApiServer) LinkEmail

func (s *ApiServer) LinkEmail(ctx context.Context, in *api.AccountEmail) (*empty.Empty, error)

func (*ApiServer) LinkFacebook

func (s *ApiServer) LinkFacebook(ctx context.Context, in *api.LinkFacebookRequest) (*empty.Empty, error)

func (*ApiServer) LinkGameCenter

func (s *ApiServer) LinkGameCenter(ctx context.Context, in *api.AccountGameCenter) (*empty.Empty, error)

func (*ApiServer) LinkGoogle

func (s *ApiServer) LinkGoogle(ctx context.Context, in *api.AccountGoogle) (*empty.Empty, error)

func (*ApiServer) LinkSteam

func (s *ApiServer) LinkSteam(ctx context.Context, in *api.AccountSteam) (*empty.Empty, error)

func (*ApiServer) ListChannelMessages

func (s *ApiServer) ListChannelMessages(ctx context.Context, in *api.ListChannelMessagesRequest) (*api.ChannelMessageList, error)

func (*ApiServer) ListFriends

func (s *ApiServer) ListFriends(ctx context.Context, in *empty.Empty) (*api.Friends, error)

func (*ApiServer) ListGroupUsers

func (s *ApiServer) ListGroupUsers(ctx context.Context, in *api.ListGroupUsersRequest) (*api.GroupUserList, error)

func (*ApiServer) ListGroups

func (s *ApiServer) ListGroups(ctx context.Context, in *api.ListGroupsRequest) (*api.GroupList, error)

func (*ApiServer) ListLeaderboardRecords

func (s *ApiServer) ListLeaderboardRecords(ctx context.Context, in *api.ListLeaderboardRecordsRequest) (*api.LeaderboardRecordList, error)

func (*ApiServer) ListLeaderboardRecordsAroundOwner added in v2.1.0

func (s *ApiServer) ListLeaderboardRecordsAroundOwner(ctx context.Context, in *api.ListLeaderboardRecordsAroundOwnerRequest) (*api.LeaderboardRecordList, error)

func (*ApiServer) ListMatches

func (s *ApiServer) ListMatches(ctx context.Context, in *api.ListMatchesRequest) (*api.MatchList, error)

func (*ApiServer) ListNotifications

func (s *ApiServer) ListNotifications(ctx context.Context, in *api.ListNotificationsRequest) (*api.NotificationList, error)

func (*ApiServer) ListStorageObjects

func (s *ApiServer) ListStorageObjects(ctx context.Context, in *api.ListStorageObjectsRequest) (*api.StorageObjectList, error)

func (*ApiServer) ListTournamentRecords added in v2.1.0

func (s *ApiServer) ListTournamentRecords(ctx context.Context, in *api.ListTournamentRecordsRequest) (*api.TournamentRecordList, error)

func (*ApiServer) ListTournamentRecordsAroundOwner added in v2.1.0

func (s *ApiServer) ListTournamentRecordsAroundOwner(ctx context.Context, in *api.ListTournamentRecordsAroundOwnerRequest) (*api.TournamentRecordList, error)

func (*ApiServer) ListTournaments added in v2.1.0

func (s *ApiServer) ListTournaments(ctx context.Context, in *api.ListTournamentsRequest) (*api.TournamentList, error)

func (*ApiServer) ListUserGroups

func (s *ApiServer) ListUserGroups(ctx context.Context, in *api.ListUserGroupsRequest) (*api.UserGroupList, error)

func (*ApiServer) PromoteGroupUsers

func (s *ApiServer) PromoteGroupUsers(ctx context.Context, in *api.PromoteGroupUsersRequest) (*empty.Empty, error)

func (*ApiServer) ReadStorageObjects

func (s *ApiServer) ReadStorageObjects(ctx context.Context, in *api.ReadStorageObjectsRequest) (*api.StorageObjects, error)

func (*ApiServer) RpcFunc

func (s *ApiServer) RpcFunc(ctx context.Context, in *api.Rpc) (*api.Rpc, error)

func (*ApiServer) Stop

func (s *ApiServer) Stop()

func (*ApiServer) UnlinkCustom

func (s *ApiServer) UnlinkCustom(ctx context.Context, in *api.AccountCustom) (*empty.Empty, error)

func (*ApiServer) UnlinkDevice

func (s *ApiServer) UnlinkDevice(ctx context.Context, in *api.AccountDevice) (*empty.Empty, error)

func (*ApiServer) UnlinkEmail

func (s *ApiServer) UnlinkEmail(ctx context.Context, in *api.AccountEmail) (*empty.Empty, error)

func (*ApiServer) UnlinkFacebook

func (s *ApiServer) UnlinkFacebook(ctx context.Context, in *api.AccountFacebook) (*empty.Empty, error)

func (*ApiServer) UnlinkGameCenter

func (s *ApiServer) UnlinkGameCenter(ctx context.Context, in *api.AccountGameCenter) (*empty.Empty, error)

func (*ApiServer) UnlinkGoogle

func (s *ApiServer) UnlinkGoogle(ctx context.Context, in *api.AccountGoogle) (*empty.Empty, error)

func (*ApiServer) UnlinkSteam

func (s *ApiServer) UnlinkSteam(ctx context.Context, in *api.AccountSteam) (*empty.Empty, error)

func (*ApiServer) UpdateAccount

func (s *ApiServer) UpdateAccount(ctx context.Context, in *api.UpdateAccountRequest) (*empty.Empty, error)

func (*ApiServer) UpdateGroup

func (s *ApiServer) UpdateGroup(ctx context.Context, in *api.UpdateGroupRequest) (*empty.Empty, error)

func (*ApiServer) WriteLeaderboardRecord

func (s *ApiServer) WriteLeaderboardRecord(ctx context.Context, in *api.WriteLeaderboardRecordRequest) (*api.LeaderboardRecord, error)

func (*ApiServer) WriteStorageObjects

func (s *ApiServer) WriteStorageObjects(ctx context.Context, in *api.WriteStorageObjectsRequest) (*api.StorageObjectAcks, error)

func (*ApiServer) WriteTournamentRecord added in v2.1.0

func (s *ApiServer) WriteTournamentRecord(ctx context.Context, in *api.WriteTournamentRecordRequest) (*api.LeaderboardRecord, error)

type ChannelIdToStreamResult

type ChannelIdToStreamResult struct {
	Stream PresenceStream
}

Wrapper type to avoid allocating a stream struct when the input is invalid.

func ChannelIdToStream

func ChannelIdToStream(channelId string) (*ChannelIdToStreamResult, error)

type Config

type Config interface {
	GetName() string
	GetDataDir() string
	GetShutdownGraceSec() int
	GetLogger() *LoggerConfig
	GetMetrics() *MetricsConfig
	GetSession() *SessionConfig
	GetSocket() *SocketConfig
	GetDatabase() *DatabaseConfig
	GetSocial() *SocialConfig
	GetRuntime() *RuntimeConfig
	GetMatch() *MatchConfig
	GetTracker() *TrackerConfig
	GetConsole() *ConsoleConfig
	GetLeaderboard() *LeaderboardConfig

	Clone() (Config, error)
}

Config interface is the Nakama core configuration.

func ParseArgs

func ParseArgs(logger *zap.Logger, args []string) Config

type ConsoleConfig

type ConsoleConfig struct {
	Port                int    `yaml:"port" json:"port" usage:"The port for accepting connections for the embedded console, listening on all interfaces."`
	Address             string `` /* 157-byte string literal not displayed */
	MaxMessageSizeBytes int64  `` /* 154-byte string literal not displayed */
	ReadTimeoutMs       int    `yaml:"read_timeout_ms" json:"read_timeout_ms" usage:"Maximum duration in milliseconds for reading the entire request."`
	WriteTimeoutMs      int    `` /* 130-byte string literal not displayed */
	IdleTimeoutMs       int    `` /* 151-byte string literal not displayed */
	Username            string `yaml:"username" json:"username" usage:"Username for the embedded console. Default username is 'admin'."`
	Password            string `yaml:"password" json:"password" usage:"Password for the embedded console. Default password is 'password'."`
	TokenExpirySec      int64  `yaml:"token_expiry_sec" json:"token_expiry_sec" usage:"Token expiry in seconds. Default 86400."`
	SigningKey          string `yaml:"signing_key" json:"signing_key" usage:"Key used to sign console session tokens."`
}

ConsoleConfig is configuration relevant to the embedded console.

func NewConsoleConfig

func NewConsoleConfig() *ConsoleConfig

NewConsoleConfig creates a new ConsoleConfig struct.

type ConsoleServer

type ConsoleServer struct {
	// contains filtered or unexported fields
}

func StartConsoleServer

func StartConsoleServer(logger *zap.Logger, startupLogger *zap.Logger, db *sql.DB, config Config, tracker Tracker, statusHandler StatusHandler, configWarnings map[string]string, serverVersion string) *ConsoleServer

func (*ConsoleServer) Authenticate added in v2.4.2

func (*ConsoleServer) BanUser added in v2.4.2

func (s *ConsoleServer) BanUser(ctx context.Context, in *console.AccountId) (*empty.Empty, error)

func (*ConsoleServer) DeleteAccount

func (s *ConsoleServer) DeleteAccount(ctx context.Context, in *console.AccountDeleteRequest) (*empty.Empty, error)

func (*ConsoleServer) DeleteFriend added in v2.4.2

func (s *ConsoleServer) DeleteFriend(ctx context.Context, in *console.DeleteFriendRequest) (*empty.Empty, error)

func (*ConsoleServer) DeleteGroupUser added in v2.4.2

func (s *ConsoleServer) DeleteGroupUser(ctx context.Context, in *console.DeleteGroupUserRequest) (*empty.Empty, error)

func (*ConsoleServer) DeleteStorage added in v2.4.2

func (s *ConsoleServer) DeleteStorage(ctx context.Context, in *empty.Empty) (*empty.Empty, error)

func (*ConsoleServer) DeleteStorageObject added in v2.0.3

func (s *ConsoleServer) DeleteStorageObject(ctx context.Context, in *console.DeleteStorageObjectRequest) (*empty.Empty, error)

func (*ConsoleServer) DeleteUsers added in v2.4.2

func (s *ConsoleServer) DeleteUsers(ctx context.Context, in *empty.Empty) (*empty.Empty, error)

func (*ConsoleServer) DeleteWalletLedger added in v2.4.2

func (s *ConsoleServer) DeleteWalletLedger(ctx context.Context, in *console.DeleteWalletLedgerRequest) (*empty.Empty, error)

func (*ConsoleServer) ExportAccount

func (s *ConsoleServer) ExportAccount(ctx context.Context, in *console.AccountId) (*console.AccountExport, error)

func (*ConsoleServer) GetAccount added in v2.0.3

func (s *ConsoleServer) GetAccount(ctx context.Context, in *console.AccountId) (*console.Account, error)

func (*ConsoleServer) GetConfig added in v2.4.2

func (s *ConsoleServer) GetConfig(ctx context.Context, in *empty.Empty) (*console.Config, error)

func (*ConsoleServer) GetFriends added in v2.4.2

func (s *ConsoleServer) GetFriends(ctx context.Context, in *console.AccountId) (*api.Friends, error)

func (*ConsoleServer) GetGroups added in v2.4.2

func (s *ConsoleServer) GetGroups(ctx context.Context, in *console.AccountId) (*api.UserGroupList, error)

func (*ConsoleServer) GetStatus added in v2.4.2

func (s *ConsoleServer) GetStatus(ctx context.Context, in *empty.Empty) (*console.StatusList, error)

func (*ConsoleServer) GetStorage added in v2.0.3

func (*ConsoleServer) GetWalletLedger added in v2.4.2

func (s *ConsoleServer) GetWalletLedger(ctx context.Context, in *console.AccountId) (*console.WalletLedgerList, error)

func (*ConsoleServer) ListStorage added in v2.4.2

func (*ConsoleServer) ListUsers added in v2.4.2

func (*ConsoleServer) Stop

func (s *ConsoleServer) Stop()

func (*ConsoleServer) UnbanUser added in v2.4.2

func (s *ConsoleServer) UnbanUser(ctx context.Context, in *console.AccountId) (*empty.Empty, error)

func (*ConsoleServer) UnlinkCustom added in v2.4.2

func (s *ConsoleServer) UnlinkCustom(ctx context.Context, in *console.AccountId) (*empty.Empty, error)

func (*ConsoleServer) UnlinkDevice added in v2.4.2

func (s *ConsoleServer) UnlinkDevice(ctx context.Context, in *console.UnlinkDeviceRequest) (*empty.Empty, error)

func (*ConsoleServer) UnlinkEmail added in v2.4.2

func (s *ConsoleServer) UnlinkEmail(ctx context.Context, in *console.AccountId) (*empty.Empty, error)

func (*ConsoleServer) UnlinkFacebook added in v2.4.2

func (s *ConsoleServer) UnlinkFacebook(ctx context.Context, in *console.AccountId) (*empty.Empty, error)

func (*ConsoleServer) UnlinkGameCenter added in v2.4.2

func (s *ConsoleServer) UnlinkGameCenter(ctx context.Context, in *console.AccountId) (*empty.Empty, error)

func (*ConsoleServer) UnlinkGoogle added in v2.4.2

func (s *ConsoleServer) UnlinkGoogle(ctx context.Context, in *console.AccountId) (*empty.Empty, error)

func (*ConsoleServer) UnlinkSteam added in v2.4.2

func (s *ConsoleServer) UnlinkSteam(ctx context.Context, in *console.AccountId) (*empty.Empty, error)

func (*ConsoleServer) UpdateAccount added in v2.4.2

func (s *ConsoleServer) UpdateAccount(ctx context.Context, in *console.UpdateAccountRequest) (*empty.Empty, error)

func (*ConsoleServer) WriteStorageObject added in v2.0.3

type DatabaseConfig

type DatabaseConfig struct {
	Addresses         []string `` /* 135-byte string literal not displayed */
	ConnMaxLifetimeMs int      `` /* 199-byte string literal not displayed */
	MaxOpenConns      int      `yaml:"max_open_conns" json:"max_open_conns" usage:"Maximum number of allowed open connections to the database. Default 100."`
	MaxIdleConns      int      `` /* 135-byte string literal not displayed */
}

DatabaseConfig is configuration relevant to the Database storage.

func NewDatabaseConfig

func NewDatabaseConfig() *DatabaseConfig

NewDatabaseConfig creates a new DatabaseConfig struct.

type DeferredMessage added in v2.3.0

type DeferredMessage struct {
	PresenceIDs []*PresenceID
	Envelope    *rtapi.Envelope
}

Deferred message expected to be batched with other deferred messages. All deferred messages in a batch are expected to be for the same stream/mode and share a logger context.

type LSentinelType

type LSentinelType struct {
	lua.LNilType
}

func (*LSentinelType) String

func (s *LSentinelType) String() string

func (*LSentinelType) Type

func (s *LSentinelType) Type() lua.LValueType

type Leaderboard

type Leaderboard struct {
	Id               string
	Authoritative    bool
	SortOrder        int
	Operator         int
	ResetScheduleStr string
	ResetSchedule    *cronexpr.Expression
	Metadata         string
	CreateTime       int64
	Category         int
	Description      string
	Duration         int
	EndTime          int64
	JoinRequired     bool
	MaxSize          int
	MaxNumScore      int
	Title            string
	StartTime        int64
}

func (*Leaderboard) GetAuthoritative added in v2.1.0

func (l *Leaderboard) GetAuthoritative() bool

func (*Leaderboard) GetCreateTime added in v2.1.0

func (l *Leaderboard) GetCreateTime() int64

func (*Leaderboard) GetId added in v2.1.0

func (l *Leaderboard) GetId() string

func (*Leaderboard) GetMetadata added in v2.1.0

func (l *Leaderboard) GetMetadata() map[string]interface{}

func (*Leaderboard) GetOperator added in v2.1.0

func (l *Leaderboard) GetOperator() string

func (*Leaderboard) GetReset added in v2.1.0

func (l *Leaderboard) GetReset() string

func (*Leaderboard) GetSortOrder added in v2.1.0

func (l *Leaderboard) GetSortOrder() string

func (*Leaderboard) IsTournament added in v2.1.0

func (l *Leaderboard) IsTournament() bool

type LeaderboardCache

type LeaderboardCache interface {
	Get(id string) *Leaderboard
	GetAllLeaderboards() []*Leaderboard
	RefreshAllLeaderboards(ctx context.Context) error
	Create(ctx context.Context, id string, authoritative bool, sortOrder, operator int, resetSchedule, metadata string) (*Leaderboard, error)
	Insert(id string, authoritative bool, sortOrder, operator int, resetSchedule, metadata string, createTime int64)
	CreateTournament(ctx context.Context, id string, sortOrder, operator int, resetSchedule, metadata, title, description string, category, startTime, endTime, duration, maxSize, maxNumScore int, joinRequired bool) (*Leaderboard, error)
	InsertTournament(id string, sortOrder, operator int, resetSchedule, metadata, title, description string, category, duration, maxSize, maxNumScore int, joinRequired bool, createTime, startTime, endTime int64)
	Delete(ctx context.Context, id string) error
	Remove(id string)
}

func NewLocalLeaderboardCache

func NewLocalLeaderboardCache(logger, startupLogger *zap.Logger, db *sql.DB) LeaderboardCache

type LeaderboardConfig added in v2.1.0

type LeaderboardConfig struct {
	BlacklistRankCache []string `` /* 211-byte string literal not displayed */
}

LeaderboardConfig is configuration relevant to the leaderboard system.

func NewLeaderboardConfig added in v2.1.0

func NewLeaderboardConfig() *LeaderboardConfig

NewLeaderboardConfig creates a new LeaderboardConfig struct.

type LeaderboardRankCache added in v2.1.0

type LeaderboardRankCache interface {
	Get(leaderboardId string, expiryUnix int64, ownerId uuid.UUID) int64
	Fill(leaderboardId string, expiryUnix int64, records []*api.LeaderboardRecord)
	Insert(leaderboardId string, expiryUnix int64, sortOrder int, ownerId uuid.UUID, score, subscore int64) int64
	Delete(leaderboardId string, expiryUnix int64, ownerId uuid.UUID) bool
	DeleteLeaderboard(leaderboardId string, expiryUnix int64) bool
	TrimExpired(nowUnix int64) bool
}

func NewLocalLeaderboardRankCache added in v2.1.0

func NewLocalLeaderboardRankCache(startupLogger *zap.Logger, db *sql.DB, config *LeaderboardConfig, leaderboardCache LeaderboardCache) LeaderboardRankCache

type LeaderboardScheduler added in v2.1.0

type LeaderboardScheduler interface {
	Start(runtime *Runtime)
	Pause()
	Resume()
	Stop()
	Update()
}

func NewLocalLeaderboardScheduler added in v2.1.3

func NewLocalLeaderboardScheduler(logger *zap.Logger, db *sql.DB, cache LeaderboardCache, rankCache LeaderboardRankCache) LeaderboardScheduler

type LeaderboardWithExpiry added in v2.1.0

type LeaderboardWithExpiry struct {
	LeaderboardId string
	Expiry        int64
}

type LocalLeaderboardCache

type LocalLeaderboardCache struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*LocalLeaderboardCache) Create

func (l *LocalLeaderboardCache) Create(ctx context.Context, id string, authoritative bool, sortOrder, operator int, resetSchedule, metadata string) (*Leaderboard, error)

func (*LocalLeaderboardCache) CreateTournament added in v2.1.0

func (l *LocalLeaderboardCache) CreateTournament(ctx context.Context, id string, sortOrder, operator int, resetSchedule, metadata, title, description string, category, startTime, endTime, duration, maxSize, maxNumScore int, joinRequired bool) (*Leaderboard, error)

func (*LocalLeaderboardCache) Delete

func (l *LocalLeaderboardCache) Delete(ctx context.Context, id string) error

func (*LocalLeaderboardCache) Get

func (*LocalLeaderboardCache) GetAllLeaderboards added in v2.1.0

func (l *LocalLeaderboardCache) GetAllLeaderboards() []*Leaderboard

func (*LocalLeaderboardCache) Insert added in v2.1.3

func (l *LocalLeaderboardCache) Insert(id string, authoritative bool, sortOrder, operator int, resetSchedule, metadata string, createTime int64)

func (*LocalLeaderboardCache) InsertTournament added in v2.1.3

func (l *LocalLeaderboardCache) InsertTournament(id string, sortOrder, operator int, resetSchedule, metadata, title, description string, category, duration, maxSize, maxNumScore int, joinRequired bool, createTime, startTime, endTime int64)

func (*LocalLeaderboardCache) RefreshAllLeaderboards added in v2.1.3

func (l *LocalLeaderboardCache) RefreshAllLeaderboards(ctx context.Context) error

func (*LocalLeaderboardCache) Remove added in v2.1.3

func (l *LocalLeaderboardCache) Remove(id string)

type LocalLeaderboardRankCache added in v2.1.0

type LocalLeaderboardRankCache struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*LocalLeaderboardRankCache) Delete added in v2.1.0

func (l *LocalLeaderboardRankCache) Delete(leaderboardId string, expiryUnix int64, ownerId uuid.UUID) bool

func (*LocalLeaderboardRankCache) DeleteLeaderboard added in v2.1.0

func (l *LocalLeaderboardRankCache) DeleteLeaderboard(leaderboardId string, expiryUnix int64) bool

func (*LocalLeaderboardRankCache) Fill added in v2.1.0

func (l *LocalLeaderboardRankCache) Fill(leaderboardId string, expiryUnix int64, records []*api.LeaderboardRecord)

func (*LocalLeaderboardRankCache) Get added in v2.1.0

func (l *LocalLeaderboardRankCache) Get(leaderboardId string, expiryUnix int64, ownerId uuid.UUID) int64

func (*LocalLeaderboardRankCache) Insert added in v2.1.0

func (l *LocalLeaderboardRankCache) Insert(leaderboardId string, expiryUnix int64, sortOrder int, ownerId uuid.UUID, score, subscore int64) int64

func (*LocalLeaderboardRankCache) TrimExpired added in v2.1.0

func (l *LocalLeaderboardRankCache) TrimExpired(nowUnix int64) bool

type LocalLeaderboardScheduler added in v2.1.3

type LocalLeaderboardScheduler struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*LocalLeaderboardScheduler) Pause added in v2.1.3

func (ls *LocalLeaderboardScheduler) Pause()

func (*LocalLeaderboardScheduler) Resume added in v2.1.3

func (ls *LocalLeaderboardScheduler) Resume()

func (*LocalLeaderboardScheduler) Start added in v2.1.3

func (ls *LocalLeaderboardScheduler) Start(runtime *Runtime)

func (*LocalLeaderboardScheduler) Stop added in v2.1.3

func (ls *LocalLeaderboardScheduler) Stop()

func (*LocalLeaderboardScheduler) Update added in v2.1.3

func (ls *LocalLeaderboardScheduler) Update()

type LocalMatchRegistry

type LocalMatchRegistry struct {
	// contains filtered or unexported fields
}

func (*LocalMatchRegistry) Count added in v2.4.2

func (r *LocalMatchRegistry) Count() int

func (*LocalMatchRegistry) CreateMatch added in v2.1.3

func (r *LocalMatchRegistry) CreateMatch(ctx context.Context, logger *zap.Logger, createFn RuntimeMatchCreateFunction, module string, params map[string]interface{}) (string, error)

func (*LocalMatchRegistry) GetMatch

func (r *LocalMatchRegistry) GetMatch(id uuid.UUID) *MatchHandler

func (*LocalMatchRegistry) GetMatchLabel added in v2.3.0

func (r *LocalMatchRegistry) GetMatchLabel(ctx context.Context, id uuid.UUID, node string) (string, error)

func (*LocalMatchRegistry) Join

func (r *LocalMatchRegistry) Join(id uuid.UUID, presences []*MatchPresence)

func (*LocalMatchRegistry) JoinAttempt added in v2.0.2

func (r *LocalMatchRegistry) JoinAttempt(ctx context.Context, id uuid.UUID, node string, userID, sessionID uuid.UUID, username, fromNode string, metadata map[string]string) (bool, bool, bool, string, string, []*MatchPresence)

func (*LocalMatchRegistry) Kick

func (r *LocalMatchRegistry) Kick(stream PresenceStream, presences []*MatchPresence)

func (*LocalMatchRegistry) Leave

func (r *LocalMatchRegistry) Leave(id uuid.UUID, presences []*MatchPresence)

func (*LocalMatchRegistry) ListMatches

func (r *LocalMatchRegistry) ListMatches(ctx context.Context, limit int, authoritative *wrappers.BoolValue, label *wrappers.StringValue, minSize *wrappers.Int32Value, maxSize *wrappers.Int32Value, queryString *wrappers.StringValue) ([]*api.Match, error)

func (*LocalMatchRegistry) NewMatch

func (r *LocalMatchRegistry) NewMatch(logger *zap.Logger, id uuid.UUID, core RuntimeMatchCore, params map[string]interface{}) (*MatchHandler, error)

func (*LocalMatchRegistry) RemoveMatch

func (r *LocalMatchRegistry) RemoveMatch(id uuid.UUID, stream PresenceStream)

func (*LocalMatchRegistry) SendData

func (r *LocalMatchRegistry) SendData(id uuid.UUID, node string, userID, sessionID uuid.UUID, username, fromNode string, opCode int64, data []byte, receiveTime int64)

func (*LocalMatchRegistry) Stop

func (r *LocalMatchRegistry) Stop(graceSeconds int) chan struct{}

func (*LocalMatchRegistry) UpdateMatchLabel added in v2.1.1

func (r *LocalMatchRegistry) UpdateMatchLabel(id uuid.UUID, label string) error

type LocalMatchmaker

type LocalMatchmaker struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*LocalMatchmaker) Add

func (m *LocalMatchmaker) Add(session Session, query string, minCount int, maxCount int, stringProperties map[string]string, numericProperties map[string]float64) (string, []*MatchmakerEntry, error)

func (*LocalMatchmaker) Remove

func (m *LocalMatchmaker) Remove(sessionID uuid.UUID, ticket string) error

func (*LocalMatchmaker) RemoveAll

func (m *LocalMatchmaker) RemoveAll(sessionID uuid.UUID) error

type LocalMessageRouter

type LocalMessageRouter struct {
	// contains filtered or unexported fields
}

func (*LocalMessageRouter) SendDeferred added in v2.3.0

func (r *LocalMessageRouter) SendDeferred(logger *zap.Logger, isStream bool, mode uint8, messages []*DeferredMessage)

func (*LocalMessageRouter) SendToPresenceIDs

func (r *LocalMessageRouter) SendToPresenceIDs(logger *zap.Logger, presenceIDs []*PresenceID, isStream bool, mode uint8, envelope *rtapi.Envelope)

func (*LocalMessageRouter) SendToStream

func (r *LocalMessageRouter) SendToStream(logger *zap.Logger, stream PresenceStream, envelope *rtapi.Envelope)

type LocalSessionRegistry added in v2.4.0

type LocalSessionRegistry struct {
	// contains filtered or unexported fields
}

func (*LocalSessionRegistry) Add added in v2.4.0

func (r *LocalSessionRegistry) Add(session Session)

func (*LocalSessionRegistry) Count added in v2.4.2

func (r *LocalSessionRegistry) Count() int

func (*LocalSessionRegistry) Disconnect added in v2.4.0

func (r *LocalSessionRegistry) Disconnect(ctx context.Context, sessionID uuid.UUID, node string) error

func (*LocalSessionRegistry) Get added in v2.4.0

func (r *LocalSessionRegistry) Get(sessionID uuid.UUID) Session

func (*LocalSessionRegistry) Remove added in v2.4.0

func (r *LocalSessionRegistry) Remove(sessionID uuid.UUID)

func (*LocalSessionRegistry) Stop added in v2.4.0

func (r *LocalSessionRegistry) Stop()

type LocalStatusHandler added in v2.4.2

type LocalStatusHandler struct {
	// contains filtered or unexported fields
}

func (*LocalStatusHandler) GetStatus added in v2.4.2

type LocalStreamManager added in v2.4.0

type LocalStreamManager struct {
	// contains filtered or unexported fields
}

func (*LocalStreamManager) UserKick added in v2.4.0

func (m *LocalStreamManager) UserKick(userID, sessionID uuid.UUID, node string, stream PresenceStream) error

type LocalTracker

type LocalTracker struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*LocalTracker) Count

func (t *LocalTracker) Count() int

func (*LocalTracker) CountByStream

func (t *LocalTracker) CountByStream(stream PresenceStream) int

func (*LocalTracker) CountByStreamModeFilter

func (t *LocalTracker) CountByStreamModeFilter(modes map[uint8]*uint8) map[*PresenceStream]int32

func (*LocalTracker) GetBySessionIDStreamUserID added in v2.0.2

func (t *LocalTracker) GetBySessionIDStreamUserID(node string, sessionID uuid.UUID, stream PresenceStream, userID uuid.UUID) *PresenceMeta

func (*LocalTracker) GetLocalBySessionIDStreamUserID

func (t *LocalTracker) GetLocalBySessionIDStreamUserID(sessionID uuid.UUID, stream PresenceStream, userID uuid.UUID) *PresenceMeta

func (*LocalTracker) ListByStream

func (t *LocalTracker) ListByStream(stream PresenceStream, includeHidden bool, includeNotHidden bool) []*Presence

func (*LocalTracker) ListLocalSessionIDByStream

func (t *LocalTracker) ListLocalSessionIDByStream(stream PresenceStream) []uuid.UUID

func (*LocalTracker) ListNodesForStream

func (t *LocalTracker) ListNodesForStream(stream PresenceStream) map[string]struct{}

func (*LocalTracker) ListPresenceIDByStream

func (t *LocalTracker) ListPresenceIDByStream(stream PresenceStream) []*PresenceID

func (*LocalTracker) SetMatchJoinListener added in v2.0.2

func (t *LocalTracker) SetMatchJoinListener(f func(id uuid.UUID, joins []*MatchPresence))

func (*LocalTracker) SetMatchLeaveListener

func (t *LocalTracker) SetMatchLeaveListener(f func(id uuid.UUID, leaves []*MatchPresence))

func (*LocalTracker) Stop

func (t *LocalTracker) Stop()

func (*LocalTracker) StreamExists

func (t *LocalTracker) StreamExists(stream PresenceStream) bool

func (*LocalTracker) Track

func (t *LocalTracker) Track(sessionID uuid.UUID, stream PresenceStream, userID uuid.UUID, meta PresenceMeta, allowIfFirstForSession bool) (bool, bool)

func (*LocalTracker) Untrack

func (t *LocalTracker) Untrack(sessionID uuid.UUID, stream PresenceStream, userID uuid.UUID)

func (*LocalTracker) UntrackAll

func (t *LocalTracker) UntrackAll(sessionID uuid.UUID)

func (*LocalTracker) UntrackByStream

func (t *LocalTracker) UntrackByStream(stream PresenceStream)

func (*LocalTracker) UntrackLocalByStream

func (t *LocalTracker) UntrackLocalByStream(stream PresenceStream)

func (*LocalTracker) Update

func (t *LocalTracker) Update(sessionID uuid.UUID, stream PresenceStream, userID uuid.UUID, meta PresenceMeta, allowIfFirstForSession bool) bool

type LoggerConfig

type LoggerConfig struct {
	Level    string `yaml:"level" json:"level" usage:"Log level to set. Valid values are 'debug', 'info', 'warn', 'error'. Default 'info'."`
	Stdout   bool   `yaml:"stdout" json:"stdout" usage:"Log to standard console output (as well as to a file if set). Default true."`
	File     string `` /* 135-byte string literal not displayed */
	Rotation bool   `yaml:"rotation" json:"rotation" usage:"Rotate log files. Default is false."`
	// Reference: https://godoc.org/gopkg.in/natefinch/lumberjack.v2
	MaxSize    int    `` /* 139-byte string literal not displayed */
	MaxAge     int    `` /* 195-byte string literal not displayed */
	MaxBackups int    `` /* 188-byte string literal not displayed */
	LocalTime  bool   `` /* 184-byte string literal not displayed */
	Compress   bool   `yaml:"compress" json:"compress" usage:"This determines if the rotated log files should be compressed using gzip."`
	Format     string `yaml:"format" json:"format" usage:"Set logging output format. Can either be 'JSON' or 'Stackdriver'. Default is 'JSON'."`
}

LoggerConfig is configuration relevant to logging levels and output.

func NewLoggerConfig

func NewLoggerConfig() *LoggerConfig

NewLoggerConfig creates a new LoggerConfig struct.

type LoggingFormat added in v2.4.0

type LoggingFormat int8
const (
	JSONFormat LoggingFormat = iota - 1
	StackdriverFormat
)

type MatchConfig added in v2.0.2

type MatchConfig struct {
	InputQueueSize       int `` /* 181-byte string literal not displayed */
	CallQueueSize        int `` /* 176-byte string literal not displayed */
	JoinAttemptQueueSize int `` /* 174-byte string literal not displayed */
	DeferredQueueSize    int `` /* 190-byte string literal not displayed */
	JoinMarkerDeadlineMs int `` /* 197-byte string literal not displayed */
}

MatchConfig is configuration relevant to authoritative realtime multiplayer matches.

func NewMatchConfig added in v2.0.2

func NewMatchConfig() *MatchConfig

NewMatchConfig creates a new MatchConfig struct.

type MatchDataMessage

type MatchDataMessage struct {
	UserID      uuid.UUID
	SessionID   uuid.UUID
	Username    string
	Node        string
	OpCode      int64
	Data        []byte
	ReceiveTime int64
}

func (*MatchDataMessage) GetData added in v2.1.0

func (m *MatchDataMessage) GetData() []byte

func (*MatchDataMessage) GetHidden added in v2.1.0

func (m *MatchDataMessage) GetHidden() bool

func (*MatchDataMessage) GetNodeId added in v2.1.0

func (m *MatchDataMessage) GetNodeId() string

func (*MatchDataMessage) GetOpCode added in v2.1.0

func (m *MatchDataMessage) GetOpCode() int64

func (*MatchDataMessage) GetPersistence added in v2.1.0

func (m *MatchDataMessage) GetPersistence() bool

func (*MatchDataMessage) GetReceiveTime added in v2.1.0

func (m *MatchDataMessage) GetReceiveTime() int64

func (*MatchDataMessage) GetSessionId added in v2.1.0

func (m *MatchDataMessage) GetSessionId() string

func (*MatchDataMessage) GetStatus added in v2.1.0

func (m *MatchDataMessage) GetStatus() string

func (*MatchDataMessage) GetUserId added in v2.1.0

func (m *MatchDataMessage) GetUserId() string

func (*MatchDataMessage) GetUsername added in v2.1.0

func (m *MatchDataMessage) GetUsername() string

type MatchHandler

type MatchHandler struct {
	JoinMarkerList *MatchJoinMarkerList
	PresenceList   *MatchPresenceList

	// Identification not (directly) controlled by match init.
	ID     uuid.UUID
	Node   string
	IDStr  string
	Stream PresenceStream

	// Configuration set by match init.
	Rate int64
	// contains filtered or unexported fields
}

func NewMatchHandler

func NewMatchHandler(logger *zap.Logger, config Config, matchRegistry MatchRegistry, router MessageRouter, core RuntimeMatchCore, id uuid.UUID, node string, params map[string]interface{}) (*MatchHandler, error)

func (*MatchHandler) Close

func (mh *MatchHandler) Close()

Used when the match is closed externally.

func (*MatchHandler) Label

func (mh *MatchHandler) Label() string

func (*MatchHandler) QueueData

func (mh *MatchHandler) QueueData(m *MatchDataMessage)

func (*MatchHandler) QueueJoin added in v2.3.0

func (mh *MatchHandler) QueueJoin(joins []*MatchPresence, mark bool) bool

func (*MatchHandler) QueueJoinAttempt added in v2.3.0

func (mh *MatchHandler) QueueJoinAttempt(ctx context.Context, resultCh chan<- *MatchJoinResult, userID, sessionID uuid.UUID, username, node string, metadata map[string]string) bool

func (*MatchHandler) QueueLeave added in v2.3.0

func (mh *MatchHandler) QueueLeave(leaves []*MatchPresence) bool

func (*MatchHandler) QueueTerminate added in v2.3.0

func (mh *MatchHandler) QueueTerminate(graceSeconds int) bool

func (*MatchHandler) Stop

func (mh *MatchHandler) Stop()

Used when an internal match process (or error) requires it to stop.

type MatchIndexEntry added in v2.1.1

type MatchIndexEntry struct {
	Node        string                 `json:"node"`
	Label       map[string]interface{} `json:"label"`
	LabelString string                 `json:"label_string"`
}

type MatchJoinMarker added in v2.3.0

type MatchJoinMarker struct {
	// contains filtered or unexported fields
}

Used to monitor when match presences begin and complete their match join process.

type MatchJoinMarkerList added in v2.3.0

type MatchJoinMarkerList struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewMatchJoinMarkerList added in v2.5.0

func NewMatchJoinMarkerList(config Config, tickRate int64) *MatchJoinMarkerList

func (*MatchJoinMarkerList) Add added in v2.3.0

func (m *MatchJoinMarkerList) Add(presence *MatchPresence, currentTick int64)

func (*MatchJoinMarkerList) ClearExpired added in v2.3.0

func (m *MatchJoinMarkerList) ClearExpired(tick int64) []*MatchPresence

func (*MatchJoinMarkerList) Mark added in v2.3.0

func (m *MatchJoinMarkerList) Mark(sessionID uuid.UUID)

type MatchJoinResult

type MatchJoinResult struct {
	Allow  bool
	Reason string
	Label  string
}

type MatchPresence

type MatchPresence struct {
	Node      string
	UserID    uuid.UUID
	SessionID uuid.UUID
	Username  string
}

Represents routing and identify information for a single match participant.

func (*MatchPresence) GetHidden added in v2.1.0

func (p *MatchPresence) GetHidden() bool

func (*MatchPresence) GetNodeId added in v2.1.0

func (p *MatchPresence) GetNodeId() string

func (*MatchPresence) GetPersistence added in v2.1.0

func (p *MatchPresence) GetPersistence() bool

func (*MatchPresence) GetSessionId added in v2.1.0

func (p *MatchPresence) GetSessionId() string

func (*MatchPresence) GetStatus added in v2.1.0

func (p *MatchPresence) GetStatus() string

func (*MatchPresence) GetUserId added in v2.1.0

func (p *MatchPresence) GetUserId() string

func (*MatchPresence) GetUsername added in v2.1.0

func (p *MatchPresence) GetUsername() string

type MatchPresenceList added in v2.3.0

type MatchPresenceList struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

Maintains the match presences for routing and validation purposes.

func NewMatchPresenceList added in v2.5.0

func NewMatchPresenceList() *MatchPresenceList

func (*MatchPresenceList) Contains added in v2.3.0

func (m *MatchPresenceList) Contains(presence *PresenceID) bool

func (*MatchPresenceList) Join added in v2.3.0

func (m *MatchPresenceList) Join(joins []*MatchPresence) []*MatchPresence

func (*MatchPresenceList) Leave added in v2.3.0

func (m *MatchPresenceList) Leave(leaves []*MatchPresence) []*MatchPresence

func (*MatchPresenceList) ListPresenceIDs added in v2.5.1

func (m *MatchPresenceList) ListPresenceIDs() []*PresenceID

func (*MatchPresenceList) ListPresences added in v2.5.1

func (m *MatchPresenceList) ListPresences() []*MatchPresence

func (*MatchPresenceList) Size added in v2.5.0

func (m *MatchPresenceList) Size() int

type MatchPresenceListItem added in v2.5.1

type MatchPresenceListItem struct {
	PresenceID *PresenceID
	Presence   *MatchPresence
}

type MatchRegistry

type MatchRegistry interface {
	// Create and start a new match, given a Lua module name or registered Go match function.
	CreateMatch(ctx context.Context, logger *zap.Logger, createFn RuntimeMatchCreateFunction, module string, params map[string]interface{}) (string, error)
	// Register and initialise a match that's ready to run.
	NewMatch(logger *zap.Logger, id uuid.UUID, core RuntimeMatchCore, params map[string]interface{}) (*MatchHandler, error)
	// Return a match handler by ID, only from the local node.
	GetMatch(id uuid.UUID) *MatchHandler
	// Remove a tracked match and ensure all its presences are cleaned up.
	// Does not ensure the match process itself is no longer running, that must be handled separately.
	RemoveMatch(id uuid.UUID, stream PresenceStream)
	// Get the label for a match.
	GetMatchLabel(ctx context.Context, id uuid.UUID, node string) (string, error)
	// Update the label entry for a given match.
	UpdateMatchLabel(id uuid.UUID, label string) error
	// List (and optionally filter) currently running matches.
	// This can list across both authoritative and relayed matches.
	ListMatches(ctx context.Context, limit int, authoritative *wrappers.BoolValue, label *wrappers.StringValue, minSize *wrappers.Int32Value, maxSize *wrappers.Int32Value, query *wrappers.StringValue) ([]*api.Match, error)
	// Stop the match registry and close all matches it's tracking.
	Stop(graceSeconds int) chan struct{}
	// Returns the total number of currently active authoritative matches.
	Count() int

	// Pass a user join attempt to a match handler. Returns if the match was found, if the join was accepted, if it's a new user for this match, a reason for any rejection, the match label, and the list of existing match participants.
	JoinAttempt(ctx context.Context, id uuid.UUID, node string, userID, sessionID uuid.UUID, username, fromNode string, metadata map[string]string) (bool, bool, bool, string, string, []*MatchPresence)
	// Notify a match handler that one or more users have successfully joined the match.
	// Expects that the caller has already determined the match is hosted on the current node.
	Join(id uuid.UUID, presences []*MatchPresence)
	// Notify a match handler that one or more users have left or disconnected.
	// Expects that the caller has already determined the match is hosted on the current node.
	Leave(id uuid.UUID, presences []*MatchPresence)
	// Called by match handlers to request the removal fo a match participant.
	Kick(stream PresenceStream, presences []*MatchPresence)
	// Pass a data payload (usually from a user) to the appropriate match handler.
	// Assumes that the data sender has already been validated as a match participant before this call.
	SendData(id uuid.UUID, node string, userID, sessionID uuid.UUID, username, fromNode string, opCode int64, data []byte, receiveTime int64)
}

func NewLocalMatchRegistry

func NewLocalMatchRegistry(logger, startupLogger *zap.Logger, config Config, tracker Tracker, router MessageRouter, node string) MatchRegistry

type Matchmaker

type Matchmaker interface {
	Add(session Session, query string, minCount int, maxCount int, stringProperties map[string]string, numericProperties map[string]float64) (string, []*MatchmakerEntry, error)
	Remove(sessionID uuid.UUID, ticket string) error
	RemoveAll(sessionID uuid.UUID) error
}

func NewLocalMatchmaker

func NewLocalMatchmaker(startupLogger *zap.Logger, node string) Matchmaker

type MatchmakerEntry

type MatchmakerEntry struct {
	Ticket     string                 `json:"ticket"`
	Presence   *MatchmakerPresence    `json:"presence"`
	Properties map[string]interface{} `json:"properties"`
	// Cached for when we need them returned to clients, but not indexed.
	StringProperties  map[string]string  `json:"-"`
	NumericProperties map[string]float64 `json:"-"`
	SessionID         uuid.UUID          `json:"-"`
}

func (*MatchmakerEntry) GetPresence added in v2.1.0

func (m *MatchmakerEntry) GetPresence() runtime.Presence

func (*MatchmakerEntry) GetProperties added in v2.1.0

func (m *MatchmakerEntry) GetProperties() map[string]interface{}

func (*MatchmakerEntry) GetTicket added in v2.1.0

func (m *MatchmakerEntry) GetTicket() string

type MatchmakerPresence

type MatchmakerPresence struct {
	UserId    string `json:"user_id"`
	SessionId string `json:"session_id"`
	Username  string `json:"username"`
	Node      string `json:"node"`
}

func (*MatchmakerPresence) GetHidden added in v2.1.0

func (p *MatchmakerPresence) GetHidden() bool

func (*MatchmakerPresence) GetNodeId added in v2.1.0

func (p *MatchmakerPresence) GetNodeId() string

func (*MatchmakerPresence) GetPersistence added in v2.1.0

func (p *MatchmakerPresence) GetPersistence() bool

func (*MatchmakerPresence) GetSessionId added in v2.1.0

func (p *MatchmakerPresence) GetSessionId() string

func (*MatchmakerPresence) GetStatus added in v2.1.0

func (p *MatchmakerPresence) GetStatus() string

func (*MatchmakerPresence) GetUserId added in v2.1.0

func (p *MatchmakerPresence) GetUserId() string

func (*MatchmakerPresence) GetUsername added in v2.1.0

func (p *MatchmakerPresence) GetUsername() string

type MessageRouter

type MessageRouter interface {
	SendToPresenceIDs(*zap.Logger, []*PresenceID, bool, uint8, *rtapi.Envelope)
	SendToStream(*zap.Logger, PresenceStream, *rtapi.Envelope)
	SendDeferred(*zap.Logger, bool, uint8, []*DeferredMessage)
}

MessageRouter is responsible for sending a message to a list of presences or to an entire stream.

func NewLocalMessageRouter

func NewLocalMessageRouter(sessionRegistry SessionRegistry, tracker Tracker, jsonpbMarshaler *jsonpb.Marshaler) MessageRouter

type Metrics

type Metrics struct {
	// contains filtered or unexported fields
}

func NewMetrics

func NewMetrics(logger, startupLogger *zap.Logger, config Config, metricsExporter *MetricsExporter) *Metrics

func (*Metrics) Stop

func (m *Metrics) Stop(logger *zap.Logger)

type MetricsConfig

type MetricsConfig struct {
	ReportingFreqSec     int    `yaml:"reporting_freq_sec" json:"reporting_freq_sec" usage:"Frequency of metrics exports. Default is 60 seconds."`
	StackdriverProjectID string `` /* 218-byte string literal not displayed */
	Namespace            string `` /* 135-byte string literal not displayed */
	PrometheusPort       int    `yaml:"prometheus_port" json:"prometheus_port" usage:"Port to expose Prometheus. If '0' Prometheus exports are disabled."`
}

MetricsConfig is configuration relevant to metrics capturing and output.

func NewMetricsConfig

func NewMetricsConfig() *MetricsConfig

NewMetricsConfig creates a new MatricsConfig struct.

type MetricsExporter added in v2.4.2

type MetricsExporter struct {
	Latency *atomic.Float64
	Rate    *atomic.Float64
	Input   *atomic.Float64
	Output  *atomic.Float64
	// contains filtered or unexported fields
}

func NewMetricsExporter added in v2.4.2

func NewMetricsExporter(logger *zap.Logger) *MetricsExporter

func (*MetricsExporter) ExportView added in v2.4.2

func (m *MetricsExporter) ExportView(vd *view.Data)

type Pipeline

type Pipeline struct {
	// contains filtered or unexported fields
}

func NewPipeline

func NewPipeline(logger *zap.Logger, config Config, db *sql.DB, jsonpbMarshaler *jsonpb.Marshaler, jsonpbUnmarshaler *jsonpb.Unmarshaler, sessionRegistry SessionRegistry, matchRegistry MatchRegistry, matchmaker Matchmaker, tracker Tracker, router MessageRouter, runtime *Runtime) *Pipeline

func (*Pipeline) ProcessRequest

func (p *Pipeline) ProcessRequest(logger *zap.Logger, session Session, envelope *rtapi.Envelope) bool

type Presence

type Presence struct {
	ID     PresenceID
	Stream PresenceStream
	UserID uuid.UUID
	Meta   PresenceMeta
}

func (*Presence) GetHidden added in v2.1.0

func (p *Presence) GetHidden() bool

func (*Presence) GetNodeId added in v2.1.0

func (p *Presence) GetNodeId() string

func (*Presence) GetPersistence added in v2.1.0

func (p *Presence) GetPersistence() bool

func (*Presence) GetSessionId added in v2.1.0

func (p *Presence) GetSessionId() string

func (*Presence) GetStatus added in v2.1.0

func (p *Presence) GetStatus() string

func (*Presence) GetUserId added in v2.1.0

func (p *Presence) GetUserId() string

func (*Presence) GetUsername added in v2.1.0

func (p *Presence) GetUsername() string

type PresenceEvent

type PresenceEvent struct {
	Joins  []Presence
	Leaves []Presence
}

type PresenceID

type PresenceID struct {
	Node      string
	SessionID uuid.UUID
}

type PresenceMeta

type PresenceMeta struct {
	Format      SessionFormat
	Hidden      bool
	Persistence bool
	Username    string
	Status      string
}

func (*PresenceMeta) GetHidden added in v2.1.0

func (pm *PresenceMeta) GetHidden() bool

func (*PresenceMeta) GetPersistence added in v2.1.0

func (pm *PresenceMeta) GetPersistence() bool

func (*PresenceMeta) GetStatus added in v2.1.0

func (pm *PresenceMeta) GetStatus() string

func (*PresenceMeta) GetUsername added in v2.1.0

func (pm *PresenceMeta) GetUsername() string

type PresenceStream

type PresenceStream struct {
	Mode       uint8
	Subject    uuid.UUID
	Subcontext uuid.UUID
	Label      string
}

type RankData added in v2.1.0

type RankData struct {
	OwnerId  uuid.UUID
	Score    int64
	Subscore int64
	Rank     int64
}

type RankMap added in v2.1.0

type RankMap struct {
	sync.RWMutex
	Ranks     []*RankData
	Haystack  map[uuid.UUID]*RankData
	SortOrder int
}

func (*RankMap) Len added in v2.1.0

func (r *RankMap) Len() int

func (*RankMap) Less added in v2.1.0

func (r *RankMap) Less(i, j int) bool

func (*RankMap) Swap added in v2.1.0

func (r *RankMap) Swap(i, j int)

type Runtime

type Runtime struct {
	// contains filtered or unexported fields
}

func NewRuntime added in v2.1.0

func NewRuntime(logger, startupLogger *zap.Logger, db *sql.DB, jsonpbMarshaler *jsonpb.Marshaler, jsonpbUnmarshaler *jsonpb.Unmarshaler, config Config, socialClient *social.Client, leaderboardCache LeaderboardCache, leaderboardRankCache LeaderboardRankCache, leaderboardScheduler LeaderboardScheduler, sessionRegistry SessionRegistry, matchRegistry MatchRegistry, tracker Tracker, streamManager StreamManager, router MessageRouter) (*Runtime, error)

func (*Runtime) AfterAddFriends added in v2.1.0

func (r *Runtime) AfterAddFriends() RuntimeAfterAddFriendsFunction

func (*Runtime) AfterAddGroupUsers added in v2.1.0

func (r *Runtime) AfterAddGroupUsers() RuntimeAfterAddGroupUsersFunction

func (*Runtime) AfterAuthenticateCustom added in v2.1.0

func (r *Runtime) AfterAuthenticateCustom() RuntimeAfterAuthenticateCustomFunction

func (*Runtime) AfterAuthenticateDevice added in v2.1.0

func (r *Runtime) AfterAuthenticateDevice() RuntimeAfterAuthenticateDeviceFunction

func (*Runtime) AfterAuthenticateEmail added in v2.1.0

func (r *Runtime) AfterAuthenticateEmail() RuntimeAfterAuthenticateEmailFunction

func (*Runtime) AfterAuthenticateFacebook added in v2.1.0

func (r *Runtime) AfterAuthenticateFacebook() RuntimeAfterAuthenticateFacebookFunction

func (*Runtime) AfterAuthenticateGameCenter added in v2.1.0

func (r *Runtime) AfterAuthenticateGameCenter() RuntimeAfterAuthenticateGameCenterFunction

func (*Runtime) AfterAuthenticateGoogle added in v2.1.0

func (r *Runtime) AfterAuthenticateGoogle() RuntimeAfterAuthenticateGoogleFunction

func (*Runtime) AfterAuthenticateSteam added in v2.1.0

func (r *Runtime) AfterAuthenticateSteam() RuntimeAfterAuthenticateSteamFunction

func (*Runtime) AfterBlockFriends added in v2.1.0

func (r *Runtime) AfterBlockFriends() RuntimeAfterBlockFriendsFunction

func (*Runtime) AfterCreateGroup added in v2.1.0

func (r *Runtime) AfterCreateGroup() RuntimeAfterCreateGroupFunction

func (*Runtime) AfterDeleteFriends added in v2.1.0

func (r *Runtime) AfterDeleteFriends() RuntimeAfterDeleteFriendsFunction

func (*Runtime) AfterDeleteGroup added in v2.1.0

func (r *Runtime) AfterDeleteGroup() RuntimeAfterDeleteGroupFunction

func (*Runtime) AfterDeleteLeaderboardRecord added in v2.1.0

func (r *Runtime) AfterDeleteLeaderboardRecord() RuntimeAfterDeleteLeaderboardRecordFunction

func (*Runtime) AfterDeleteNotification added in v2.1.0

func (r *Runtime) AfterDeleteNotification() RuntimeAfterDeleteNotificationFunction

func (*Runtime) AfterDeleteStorageObjects added in v2.1.0

func (r *Runtime) AfterDeleteStorageObjects() RuntimeAfterDeleteStorageObjectsFunction

func (*Runtime) AfterGetAccount added in v2.1.0

func (r *Runtime) AfterGetAccount() RuntimeAfterGetAccountFunction

func (*Runtime) AfterGetUsers added in v2.1.0

func (r *Runtime) AfterGetUsers() RuntimeAfterGetUsersFunction

func (*Runtime) AfterImportFacebookFriends added in v2.1.0

func (r *Runtime) AfterImportFacebookFriends() RuntimeAfterImportFacebookFriendsFunction

func (*Runtime) AfterJoinGroup added in v2.1.0

func (r *Runtime) AfterJoinGroup() RuntimeAfterJoinGroupFunction

func (*Runtime) AfterJoinTournament added in v2.1.0

func (r *Runtime) AfterJoinTournament() RuntimeAfterJoinTournamentFunction

func (*Runtime) AfterKickGroupUsers added in v2.1.0

func (r *Runtime) AfterKickGroupUsers() RuntimeAfterKickGroupUsersFunction

func (*Runtime) AfterLeaveGroup added in v2.1.0

func (r *Runtime) AfterLeaveGroup() RuntimeAfterLeaveGroupFunction

func (*Runtime) AfterLinkCustom added in v2.1.0

func (r *Runtime) AfterLinkCustom() RuntimeAfterLinkCustomFunction

func (*Runtime) AfterLinkDevice added in v2.1.0

func (r *Runtime) AfterLinkDevice() RuntimeAfterLinkDeviceFunction

func (*Runtime) AfterLinkEmail added in v2.1.0

func (r *Runtime) AfterLinkEmail() RuntimeAfterLinkEmailFunction

func (*Runtime) AfterLinkFacebook added in v2.1.0

func (r *Runtime) AfterLinkFacebook() RuntimeAfterLinkFacebookFunction

func (*Runtime) AfterLinkGameCenter added in v2.1.0

func (r *Runtime) AfterLinkGameCenter() RuntimeAfterLinkGameCenterFunction

func (*Runtime) AfterLinkGoogle added in v2.1.0

func (r *Runtime) AfterLinkGoogle() RuntimeAfterLinkGoogleFunction

func (*Runtime) AfterLinkSteam added in v2.1.0

func (r *Runtime) AfterLinkSteam() RuntimeAfterLinkSteamFunction

func (*Runtime) AfterListChannelMessages added in v2.1.0

func (r *Runtime) AfterListChannelMessages() RuntimeAfterListChannelMessagesFunction

func (*Runtime) AfterListFriends added in v2.1.0

func (r *Runtime) AfterListFriends() RuntimeAfterListFriendsFunction

func (*Runtime) AfterListGroupUsers added in v2.1.0

func (r *Runtime) AfterListGroupUsers() RuntimeAfterListGroupUsersFunction

func (*Runtime) AfterListGroups added in v2.1.0

func (r *Runtime) AfterListGroups() RuntimeAfterListGroupsFunction

func (*Runtime) AfterListLeaderboardRecords added in v2.1.0

func (r *Runtime) AfterListLeaderboardRecords() RuntimeAfterListLeaderboardRecordsFunction

func (*Runtime) AfterListLeaderboardRecordsAroundOwner added in v2.1.0

func (r *Runtime) AfterListLeaderboardRecordsAroundOwner() RuntimeAfterListLeaderboardRecordsAroundOwnerFunction

func (*Runtime) AfterListMatches added in v2.1.0

func (r *Runtime) AfterListMatches() RuntimeAfterListMatchesFunction

func (*Runtime) AfterListNotifications added in v2.1.0

func (r *Runtime) AfterListNotifications() RuntimeAfterListNotificationsFunction

func (*Runtime) AfterListStorageObjects added in v2.1.0

func (r *Runtime) AfterListStorageObjects() RuntimeAfterListStorageObjectsFunction

func (*Runtime) AfterListTournamentRecords added in v2.1.0

func (r *Runtime) AfterListTournamentRecords() RuntimeAfterListTournamentRecordsFunction

func (*Runtime) AfterListTournamentRecordsAroundOwner added in v2.1.0

func (r *Runtime) AfterListTournamentRecordsAroundOwner() RuntimeAfterListTournamentRecordsAroundOwnerFunction

func (*Runtime) AfterListTournaments added in v2.1.0

func (r *Runtime) AfterListTournaments() RuntimeAfterListTournamentsFunction

func (*Runtime) AfterListUserGroups added in v2.1.0

func (r *Runtime) AfterListUserGroups() RuntimeAfterListUserGroupsFunction

func (*Runtime) AfterPromoteGroupUsers added in v2.1.0

func (r *Runtime) AfterPromoteGroupUsers() RuntimeAfterPromoteGroupUsersFunction

func (*Runtime) AfterReadStorageObjects added in v2.1.0

func (r *Runtime) AfterReadStorageObjects() RuntimeAfterReadStorageObjectsFunction

func (*Runtime) AfterRt added in v2.1.0

func (r *Runtime) AfterRt(id string) RuntimeAfterRtFunction

func (*Runtime) AfterUnlinkCustom added in v2.1.0

func (r *Runtime) AfterUnlinkCustom() RuntimeAfterUnlinkCustomFunction

func (*Runtime) AfterUnlinkDevice added in v2.1.0

func (r *Runtime) AfterUnlinkDevice() RuntimeAfterUnlinkDeviceFunction

func (*Runtime) AfterUnlinkEmail added in v2.1.0

func (r *Runtime) AfterUnlinkEmail() RuntimeAfterUnlinkEmailFunction

func (*Runtime) AfterUnlinkFacebook added in v2.1.0

func (r *Runtime) AfterUnlinkFacebook() RuntimeAfterUnlinkFacebookFunction

func (*Runtime) AfterUnlinkGameCenter added in v2.1.0

func (r *Runtime) AfterUnlinkGameCenter() RuntimeAfterUnlinkGameCenterFunction

func (*Runtime) AfterUnlinkGoogle added in v2.1.0

func (r *Runtime) AfterUnlinkGoogle() RuntimeAfterUnlinkGoogleFunction

func (*Runtime) AfterUnlinkSteam added in v2.1.0

func (r *Runtime) AfterUnlinkSteam() RuntimeAfterUnlinkSteamFunction

func (*Runtime) AfterUpdateAccount added in v2.1.0

func (r *Runtime) AfterUpdateAccount() RuntimeAfterUpdateAccountFunction

func (*Runtime) AfterUpdateGroup added in v2.1.0

func (r *Runtime) AfterUpdateGroup() RuntimeAfterUpdateGroupFunction

func (*Runtime) AfterWriteLeaderboardRecord added in v2.1.0

func (r *Runtime) AfterWriteLeaderboardRecord() RuntimeAfterWriteLeaderboardRecordFunction

func (*Runtime) AfterWriteStorageObjects added in v2.1.0

func (r *Runtime) AfterWriteStorageObjects() RuntimeAfterWriteStorageObjectsFunction

func (*Runtime) AfterWriteTournamentRecord added in v2.1.0

func (r *Runtime) AfterWriteTournamentRecord() RuntimeAfterWriteTournamentRecordFunction

func (*Runtime) BeforeAddFriends added in v2.1.0

func (r *Runtime) BeforeAddFriends() RuntimeBeforeAddFriendsFunction

func (*Runtime) BeforeAddGroupUsers added in v2.1.0

func (r *Runtime) BeforeAddGroupUsers() RuntimeBeforeAddGroupUsersFunction

func (*Runtime) BeforeAuthenticateCustom added in v2.1.0

func (r *Runtime) BeforeAuthenticateCustom() RuntimeBeforeAuthenticateCustomFunction

func (*Runtime) BeforeAuthenticateDevice added in v2.1.0

func (r *Runtime) BeforeAuthenticateDevice() RuntimeBeforeAuthenticateDeviceFunction

func (*Runtime) BeforeAuthenticateEmail added in v2.1.0

func (r *Runtime) BeforeAuthenticateEmail() RuntimeBeforeAuthenticateEmailFunction

func (*Runtime) BeforeAuthenticateFacebook added in v2.1.0

func (r *Runtime) BeforeAuthenticateFacebook() RuntimeBeforeAuthenticateFacebookFunction

func (*Runtime) BeforeAuthenticateGameCenter added in v2.1.0

func (r *Runtime) BeforeAuthenticateGameCenter() RuntimeBeforeAuthenticateGameCenterFunction

func (*Runtime) BeforeAuthenticateGoogle added in v2.1.0

func (r *Runtime) BeforeAuthenticateGoogle() RuntimeBeforeAuthenticateGoogleFunction

func (*Runtime) BeforeAuthenticateSteam added in v2.1.0

func (r *Runtime) BeforeAuthenticateSteam() RuntimeBeforeAuthenticateSteamFunction

func (*Runtime) BeforeBlockFriends added in v2.1.0

func (r *Runtime) BeforeBlockFriends() RuntimeBeforeBlockFriendsFunction

func (*Runtime) BeforeCreateGroup added in v2.1.0

func (r *Runtime) BeforeCreateGroup() RuntimeBeforeCreateGroupFunction

func (*Runtime) BeforeDeleteFriends added in v2.1.0

func (r *Runtime) BeforeDeleteFriends() RuntimeBeforeDeleteFriendsFunction

func (*Runtime) BeforeDeleteGroup added in v2.1.0

func (r *Runtime) BeforeDeleteGroup() RuntimeBeforeDeleteGroupFunction

func (*Runtime) BeforeDeleteLeaderboardRecord added in v2.1.0

func (r *Runtime) BeforeDeleteLeaderboardRecord() RuntimeBeforeDeleteLeaderboardRecordFunction

func (*Runtime) BeforeDeleteNotification added in v2.1.0

func (r *Runtime) BeforeDeleteNotification() RuntimeBeforeDeleteNotificationFunction

func (*Runtime) BeforeDeleteStorageObjects added in v2.1.0

func (r *Runtime) BeforeDeleteStorageObjects() RuntimeBeforeDeleteStorageObjectsFunction

func (*Runtime) BeforeGetAccount added in v2.1.0

func (r *Runtime) BeforeGetAccount() RuntimeBeforeGetAccountFunction

func (*Runtime) BeforeGetUsers added in v2.1.0

func (r *Runtime) BeforeGetUsers() RuntimeBeforeGetUsersFunction

func (*Runtime) BeforeImportFacebookFriends added in v2.1.0

func (r *Runtime) BeforeImportFacebookFriends() RuntimeBeforeImportFacebookFriendsFunction

func (*Runtime) BeforeJoinGroup added in v2.1.0

func (r *Runtime) BeforeJoinGroup() RuntimeBeforeJoinGroupFunction

func (*Runtime) BeforeJoinTournament added in v2.1.0

func (r *Runtime) BeforeJoinTournament() RuntimeBeforeJoinTournamentFunction

func (*Runtime) BeforeKickGroupUsers added in v2.1.0

func (r *Runtime) BeforeKickGroupUsers() RuntimeBeforeKickGroupUsersFunction

func (*Runtime) BeforeLeaveGroup added in v2.1.0

func (r *Runtime) BeforeLeaveGroup() RuntimeBeforeLeaveGroupFunction

func (*Runtime) BeforeLinkCustom added in v2.1.0

func (r *Runtime) BeforeLinkCustom() RuntimeBeforeLinkCustomFunction

func (*Runtime) BeforeLinkDevice added in v2.1.0

func (r *Runtime) BeforeLinkDevice() RuntimeBeforeLinkDeviceFunction

func (*Runtime) BeforeLinkEmail added in v2.1.0

func (r *Runtime) BeforeLinkEmail() RuntimeBeforeLinkEmailFunction

func (*Runtime) BeforeLinkFacebook added in v2.1.0

func (r *Runtime) BeforeLinkFacebook() RuntimeBeforeLinkFacebookFunction

func (*Runtime) BeforeLinkGameCenter added in v2.1.0

func (r *Runtime) BeforeLinkGameCenter() RuntimeBeforeLinkGameCenterFunction

func (*Runtime) BeforeLinkGoogle added in v2.1.0

func (r *Runtime) BeforeLinkGoogle() RuntimeBeforeLinkGoogleFunction

func (*Runtime) BeforeLinkSteam added in v2.1.0

func (r *Runtime) BeforeLinkSteam() RuntimeBeforeLinkSteamFunction

func (*Runtime) BeforeListChannelMessages added in v2.1.0

func (r *Runtime) BeforeListChannelMessages() RuntimeBeforeListChannelMessagesFunction

func (*Runtime) BeforeListFriends added in v2.1.0

func (r *Runtime) BeforeListFriends() RuntimeBeforeListFriendsFunction

func (*Runtime) BeforeListGroupUsers added in v2.1.0

func (r *Runtime) BeforeListGroupUsers() RuntimeBeforeListGroupUsersFunction

func (*Runtime) BeforeListGroups added in v2.1.0

func (r *Runtime) BeforeListGroups() RuntimeBeforeListGroupsFunction

func (*Runtime) BeforeListLeaderboardRecords added in v2.1.0

func (r *Runtime) BeforeListLeaderboardRecords() RuntimeBeforeListLeaderboardRecordsFunction

func (*Runtime) BeforeListLeaderboardRecordsAroundOwner added in v2.1.0

func (r *Runtime) BeforeListLeaderboardRecordsAroundOwner() RuntimeBeforeListLeaderboardRecordsAroundOwnerFunction

func (*Runtime) BeforeListMatches added in v2.1.0

func (r *Runtime) BeforeListMatches() RuntimeBeforeListMatchesFunction

func (*Runtime) BeforeListNotifications added in v2.1.0

func (r *Runtime) BeforeListNotifications() RuntimeBeforeListNotificationsFunction

func (*Runtime) BeforeListStorageObjects added in v2.1.0

func (r *Runtime) BeforeListStorageObjects() RuntimeBeforeListStorageObjectsFunction

func (*Runtime) BeforeListTournamentRecords added in v2.1.0

func (r *Runtime) BeforeListTournamentRecords() RuntimeBeforeListTournamentRecordsFunction

func (*Runtime) BeforeListTournamentRecordsAroundOwner added in v2.1.0

func (r *Runtime) BeforeListTournamentRecordsAroundOwner() RuntimeBeforeListTournamentRecordsAroundOwnerFunction

func (*Runtime) BeforeListTournaments added in v2.1.0

func (r *Runtime) BeforeListTournaments() RuntimeBeforeListTournamentsFunction

func (*Runtime) BeforeListUserGroups added in v2.1.0

func (r *Runtime) BeforeListUserGroups() RuntimeBeforeListUserGroupsFunction

func (*Runtime) BeforePromoteGroupUsers added in v2.1.0

func (r *Runtime) BeforePromoteGroupUsers() RuntimeBeforePromoteGroupUsersFunction

func (*Runtime) BeforeReadStorageObjects added in v2.1.0

func (r *Runtime) BeforeReadStorageObjects() RuntimeBeforeReadStorageObjectsFunction

func (*Runtime) BeforeRt added in v2.1.0

func (r *Runtime) BeforeRt(id string) RuntimeBeforeRtFunction

func (*Runtime) BeforeUnlinkCustom added in v2.1.0

func (r *Runtime) BeforeUnlinkCustom() RuntimeBeforeUnlinkCustomFunction

func (*Runtime) BeforeUnlinkDevice added in v2.1.0

func (r *Runtime) BeforeUnlinkDevice() RuntimeBeforeUnlinkDeviceFunction

func (*Runtime) BeforeUnlinkEmail added in v2.1.0

func (r *Runtime) BeforeUnlinkEmail() RuntimeBeforeUnlinkEmailFunction

func (*Runtime) BeforeUnlinkFacebook added in v2.1.0

func (r *Runtime) BeforeUnlinkFacebook() RuntimeBeforeUnlinkFacebookFunction

func (*Runtime) BeforeUnlinkGameCenter added in v2.1.0

func (r *Runtime) BeforeUnlinkGameCenter() RuntimeBeforeUnlinkGameCenterFunction

func (*Runtime) BeforeUnlinkGoogle added in v2.1.0

func (r *Runtime) BeforeUnlinkGoogle() RuntimeBeforeUnlinkGoogleFunction

func (*Runtime) BeforeUnlinkSteam added in v2.1.0

func (r *Runtime) BeforeUnlinkSteam() RuntimeBeforeUnlinkSteamFunction

func (*Runtime) BeforeUpdateAccount added in v2.1.0

func (r *Runtime) BeforeUpdateAccount() RuntimeBeforeUpdateAccountFunction

func (*Runtime) BeforeUpdateGroup added in v2.1.0

func (r *Runtime) BeforeUpdateGroup() RuntimeBeforeUpdateGroupFunction

func (*Runtime) BeforeWriteLeaderboardRecord added in v2.1.0

func (r *Runtime) BeforeWriteLeaderboardRecord() RuntimeBeforeWriteLeaderboardRecordFunction

func (*Runtime) BeforeWriteStorageObjects added in v2.1.0

func (r *Runtime) BeforeWriteStorageObjects() RuntimeBeforeWriteStorageObjectsFunction

func (*Runtime) BeforeWriteTournamentRecord added in v2.1.0

func (r *Runtime) BeforeWriteTournamentRecord() RuntimeBeforeWriteTournamentRecordFunction

func (*Runtime) EventSessionEnd added in v2.4.2

func (r *Runtime) EventSessionEnd() RuntimeEventSessionEndFunction

func (*Runtime) EventSessionStart added in v2.4.2

func (r *Runtime) EventSessionStart() RuntimeEventSessionStartFunction

func (*Runtime) LeaderboardReset added in v2.1.0

func (r *Runtime) LeaderboardReset() RuntimeLeaderboardResetFunction

func (*Runtime) MatchCreateFunction added in v2.1.3

func (r *Runtime) MatchCreateFunction() RuntimeMatchCreateFunction

func (*Runtime) MatchmakerMatched added in v2.1.0

func (r *Runtime) MatchmakerMatched() RuntimeMatchmakerMatchedFunction

func (*Runtime) Rpc added in v2.1.0

func (r *Runtime) Rpc(id string) RuntimeRpcFunction

func (*Runtime) TournamentEnd added in v2.1.0

func (r *Runtime) TournamentEnd() RuntimeTournamentEndFunction

func (*Runtime) TournamentReset added in v2.1.0

func (r *Runtime) TournamentReset() RuntimeTournamentResetFunction

type RuntimeAfterAddFriendsFunction added in v2.1.0

type RuntimeAfterAddFriendsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AddFriendsRequest) error

type RuntimeAfterAddGroupUsersFunction added in v2.1.0

type RuntimeAfterAddGroupUsersFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AddGroupUsersRequest) error

type RuntimeAfterAuthenticateCustomFunction added in v2.1.0

type RuntimeAfterAuthenticateCustomFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Session, in *api.AuthenticateCustomRequest) error

type RuntimeAfterAuthenticateDeviceFunction added in v2.1.0

type RuntimeAfterAuthenticateDeviceFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Session, in *api.AuthenticateDeviceRequest) error

type RuntimeAfterAuthenticateEmailFunction added in v2.1.0

type RuntimeAfterAuthenticateEmailFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Session, in *api.AuthenticateEmailRequest) error

type RuntimeAfterAuthenticateFacebookFunction added in v2.1.0

type RuntimeAfterAuthenticateFacebookFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Session, in *api.AuthenticateFacebookRequest) error

type RuntimeAfterAuthenticateGameCenterFunction added in v2.1.0

type RuntimeAfterAuthenticateGameCenterFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Session, in *api.AuthenticateGameCenterRequest) error

type RuntimeAfterAuthenticateGoogleFunction added in v2.1.0

type RuntimeAfterAuthenticateGoogleFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Session, in *api.AuthenticateGoogleRequest) error

type RuntimeAfterAuthenticateSteamFunction added in v2.1.0

type RuntimeAfterAuthenticateSteamFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Session, in *api.AuthenticateSteamRequest) error

type RuntimeAfterBlockFriendsFunction added in v2.1.0

type RuntimeAfterBlockFriendsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.BlockFriendsRequest) error

type RuntimeAfterCreateGroupFunction added in v2.1.0

type RuntimeAfterCreateGroupFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Group, in *api.CreateGroupRequest) error

type RuntimeAfterDeleteFriendsFunction added in v2.1.0

type RuntimeAfterDeleteFriendsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.DeleteFriendsRequest) error

type RuntimeAfterDeleteGroupFunction added in v2.1.0

type RuntimeAfterDeleteGroupFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.DeleteGroupRequest) error

type RuntimeAfterDeleteLeaderboardRecordFunction added in v2.1.0

type RuntimeAfterDeleteLeaderboardRecordFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.DeleteLeaderboardRecordRequest) error

type RuntimeAfterDeleteNotificationFunction added in v2.1.0

type RuntimeAfterDeleteNotificationFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.DeleteNotificationsRequest) error

type RuntimeAfterDeleteStorageObjectsFunction added in v2.1.0

type RuntimeAfterDeleteStorageObjectsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.DeleteStorageObjectsRequest) error

type RuntimeAfterGetAccountFunction added in v2.1.0

type RuntimeAfterGetAccountFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Account) error

type RuntimeAfterGetUsersFunction added in v2.1.0

type RuntimeAfterGetUsersFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Users, in *api.GetUsersRequest) error

type RuntimeAfterImportFacebookFriendsFunction added in v2.1.0

type RuntimeAfterImportFacebookFriendsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ImportFacebookFriendsRequest) error

type RuntimeAfterJoinGroupFunction added in v2.1.0

type RuntimeAfterJoinGroupFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.JoinGroupRequest) error

type RuntimeAfterJoinTournamentFunction added in v2.1.0

type RuntimeAfterJoinTournamentFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.JoinTournamentRequest) error

type RuntimeAfterKickGroupUsersFunction added in v2.1.0

type RuntimeAfterKickGroupUsersFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.KickGroupUsersRequest) error

type RuntimeAfterLeaveGroupFunction added in v2.1.0

type RuntimeAfterLeaveGroupFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.LeaveGroupRequest) error

type RuntimeAfterLinkCustomFunction added in v2.1.0

type RuntimeAfterLinkCustomFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountCustom) error

type RuntimeAfterLinkDeviceFunction added in v2.1.0

type RuntimeAfterLinkDeviceFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountDevice) error

type RuntimeAfterLinkEmailFunction added in v2.1.0

type RuntimeAfterLinkEmailFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountEmail) error

type RuntimeAfterLinkFacebookFunction added in v2.1.0

type RuntimeAfterLinkFacebookFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.LinkFacebookRequest) error

type RuntimeAfterLinkGameCenterFunction added in v2.1.0

type RuntimeAfterLinkGameCenterFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountGameCenter) error

type RuntimeAfterLinkGoogleFunction added in v2.1.0

type RuntimeAfterLinkGoogleFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountGoogle) error

type RuntimeAfterLinkSteamFunction added in v2.1.0

type RuntimeAfterLinkSteamFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountSteam) error

type RuntimeAfterListChannelMessagesFunction added in v2.1.0

type RuntimeAfterListChannelMessagesFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.ChannelMessageList, in *api.ListChannelMessagesRequest) error

type RuntimeAfterListFriendsFunction added in v2.1.0

type RuntimeAfterListFriendsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.Friends) error

type RuntimeAfterListGroupUsersFunction added in v2.1.0

type RuntimeAfterListGroupUsersFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.GroupUserList, in *api.ListGroupUsersRequest) error

type RuntimeAfterListGroupsFunction added in v2.1.0

type RuntimeAfterListGroupsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.GroupList, in *api.ListGroupsRequest) error

type RuntimeAfterListLeaderboardRecordsAroundOwnerFunction added in v2.1.0

type RuntimeAfterListLeaderboardRecordsAroundOwnerFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.LeaderboardRecordList, in *api.ListLeaderboardRecordsAroundOwnerRequest) error

type RuntimeAfterListLeaderboardRecordsFunction added in v2.1.0

type RuntimeAfterListLeaderboardRecordsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.LeaderboardRecordList, in *api.ListLeaderboardRecordsRequest) error

type RuntimeAfterListMatchesFunction added in v2.1.0

type RuntimeAfterListMatchesFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.MatchList, in *api.ListMatchesRequest) error

type RuntimeAfterListNotificationsFunction added in v2.1.0

type RuntimeAfterListNotificationsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.NotificationList, in *api.ListNotificationsRequest) error

type RuntimeAfterListStorageObjectsFunction added in v2.1.0

type RuntimeAfterListStorageObjectsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.StorageObjectList, in *api.ListStorageObjectsRequest) error

type RuntimeAfterListTournamentRecordsAroundOwnerFunction added in v2.1.0

type RuntimeAfterListTournamentRecordsAroundOwnerFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.TournamentRecordList, in *api.ListTournamentRecordsAroundOwnerRequest) error

type RuntimeAfterListTournamentRecordsFunction added in v2.1.0

type RuntimeAfterListTournamentRecordsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.TournamentRecordList, in *api.ListTournamentRecordsRequest) error

type RuntimeAfterListTournamentsFunction added in v2.1.0

type RuntimeAfterListTournamentsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.TournamentList, in *api.ListTournamentsRequest) error

type RuntimeAfterListUserGroupsFunction added in v2.1.0

type RuntimeAfterListUserGroupsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.UserGroupList, in *api.ListUserGroupsRequest) error

type RuntimeAfterPromoteGroupUsersFunction added in v2.1.0

type RuntimeAfterPromoteGroupUsersFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.PromoteGroupUsersRequest) error

type RuntimeAfterReadStorageObjectsFunction added in v2.1.0

type RuntimeAfterReadStorageObjectsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.StorageObjects, in *api.ReadStorageObjectsRequest) error

type RuntimeAfterReqFunctions added in v2.1.0

type RuntimeAfterReqFunctions struct {
	// contains filtered or unexported fields
}

type RuntimeAfterRtFunction added in v2.1.0

type RuntimeAfterRtFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, sessionID, clientIP, clientPort string, envelope *rtapi.Envelope) error

type RuntimeAfterUnlinkCustomFunction added in v2.1.0

type RuntimeAfterUnlinkCustomFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountCustom) error

type RuntimeAfterUnlinkDeviceFunction added in v2.1.0

type RuntimeAfterUnlinkDeviceFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountDevice) error

type RuntimeAfterUnlinkEmailFunction added in v2.1.0

type RuntimeAfterUnlinkEmailFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountEmail) error

type RuntimeAfterUnlinkFacebookFunction added in v2.1.0

type RuntimeAfterUnlinkFacebookFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountFacebook) error

type RuntimeAfterUnlinkGameCenterFunction added in v2.1.0

type RuntimeAfterUnlinkGameCenterFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountGameCenter) error

type RuntimeAfterUnlinkGoogleFunction added in v2.1.0

type RuntimeAfterUnlinkGoogleFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountGoogle) error

type RuntimeAfterUnlinkSteamFunction added in v2.1.0

type RuntimeAfterUnlinkSteamFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountSteam) error

type RuntimeAfterUpdateAccountFunction added in v2.1.0

type RuntimeAfterUpdateAccountFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.UpdateAccountRequest) error

type RuntimeAfterUpdateGroupFunction added in v2.1.0

type RuntimeAfterUpdateGroupFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.UpdateGroupRequest) error

type RuntimeAfterWriteLeaderboardRecordFunction added in v2.1.0

type RuntimeAfterWriteLeaderboardRecordFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.LeaderboardRecord, in *api.WriteLeaderboardRecordRequest) error

type RuntimeAfterWriteStorageObjectsFunction added in v2.1.0

type RuntimeAfterWriteStorageObjectsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.StorageObjectAcks, in *api.WriteStorageObjectsRequest) error

type RuntimeAfterWriteTournamentRecordFunction added in v2.1.0

type RuntimeAfterWriteTournamentRecordFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, out *api.LeaderboardRecord, in *api.WriteTournamentRecordRequest) error

type RuntimeBeforeAddFriendsFunction added in v2.1.0

type RuntimeBeforeAddFriendsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AddFriendsRequest) (*api.AddFriendsRequest, error, codes.Code)

type RuntimeBeforeAddGroupUsersFunction added in v2.1.0

type RuntimeBeforeAddGroupUsersFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AddGroupUsersRequest) (*api.AddGroupUsersRequest, error, codes.Code)

type RuntimeBeforeAuthenticateCustomFunction added in v2.1.0

type RuntimeBeforeAuthenticateCustomFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AuthenticateCustomRequest) (*api.AuthenticateCustomRequest, error, codes.Code)

type RuntimeBeforeAuthenticateDeviceFunction added in v2.1.0

type RuntimeBeforeAuthenticateDeviceFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AuthenticateDeviceRequest) (*api.AuthenticateDeviceRequest, error, codes.Code)

type RuntimeBeforeAuthenticateEmailFunction added in v2.1.0

type RuntimeBeforeAuthenticateEmailFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AuthenticateEmailRequest) (*api.AuthenticateEmailRequest, error, codes.Code)

type RuntimeBeforeAuthenticateFacebookFunction added in v2.1.0

type RuntimeBeforeAuthenticateFacebookFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AuthenticateFacebookRequest) (*api.AuthenticateFacebookRequest, error, codes.Code)

type RuntimeBeforeAuthenticateGameCenterFunction added in v2.1.0

type RuntimeBeforeAuthenticateGameCenterFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AuthenticateGameCenterRequest) (*api.AuthenticateGameCenterRequest, error, codes.Code)

type RuntimeBeforeAuthenticateGoogleFunction added in v2.1.0

type RuntimeBeforeAuthenticateGoogleFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AuthenticateGoogleRequest) (*api.AuthenticateGoogleRequest, error, codes.Code)

type RuntimeBeforeAuthenticateSteamFunction added in v2.1.0

type RuntimeBeforeAuthenticateSteamFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AuthenticateSteamRequest) (*api.AuthenticateSteamRequest, error, codes.Code)

type RuntimeBeforeBlockFriendsFunction added in v2.1.0

type RuntimeBeforeBlockFriendsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.BlockFriendsRequest) (*api.BlockFriendsRequest, error, codes.Code)

type RuntimeBeforeCreateGroupFunction added in v2.1.0

type RuntimeBeforeCreateGroupFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.CreateGroupRequest) (*api.CreateGroupRequest, error, codes.Code)

type RuntimeBeforeDeleteFriendsFunction added in v2.1.0

type RuntimeBeforeDeleteFriendsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.DeleteFriendsRequest) (*api.DeleteFriendsRequest, error, codes.Code)

type RuntimeBeforeDeleteGroupFunction added in v2.1.0

type RuntimeBeforeDeleteGroupFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.DeleteGroupRequest) (*api.DeleteGroupRequest, error, codes.Code)

type RuntimeBeforeDeleteLeaderboardRecordFunction added in v2.1.0

type RuntimeBeforeDeleteLeaderboardRecordFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.DeleteLeaderboardRecordRequest) (*api.DeleteLeaderboardRecordRequest, error, codes.Code)

type RuntimeBeforeDeleteNotificationFunction added in v2.1.0

type RuntimeBeforeDeleteNotificationFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.DeleteNotificationsRequest) (*api.DeleteNotificationsRequest, error, codes.Code)

type RuntimeBeforeDeleteStorageObjectsFunction added in v2.1.0

type RuntimeBeforeDeleteStorageObjectsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.DeleteStorageObjectsRequest) (*api.DeleteStorageObjectsRequest, error, codes.Code)

type RuntimeBeforeGetAccountFunction added in v2.1.0

type RuntimeBeforeGetAccountFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string) (error, codes.Code)

type RuntimeBeforeGetUsersFunction added in v2.1.0

type RuntimeBeforeGetUsersFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.GetUsersRequest) (*api.GetUsersRequest, error, codes.Code)

type RuntimeBeforeImportFacebookFriendsFunction added in v2.1.0

type RuntimeBeforeImportFacebookFriendsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ImportFacebookFriendsRequest) (*api.ImportFacebookFriendsRequest, error, codes.Code)

type RuntimeBeforeJoinGroupFunction added in v2.1.0

type RuntimeBeforeJoinGroupFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.JoinGroupRequest) (*api.JoinGroupRequest, error, codes.Code)

type RuntimeBeforeJoinTournamentFunction added in v2.1.0

type RuntimeBeforeJoinTournamentFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.JoinTournamentRequest) (*api.JoinTournamentRequest, error, codes.Code)

type RuntimeBeforeKickGroupUsersFunction added in v2.1.0

type RuntimeBeforeKickGroupUsersFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.KickGroupUsersRequest) (*api.KickGroupUsersRequest, error, codes.Code)

type RuntimeBeforeLeaveGroupFunction added in v2.1.0

type RuntimeBeforeLeaveGroupFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.LeaveGroupRequest) (*api.LeaveGroupRequest, error, codes.Code)

type RuntimeBeforeLinkCustomFunction added in v2.1.0

type RuntimeBeforeLinkCustomFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountCustom) (*api.AccountCustom, error, codes.Code)

type RuntimeBeforeLinkDeviceFunction added in v2.1.0

type RuntimeBeforeLinkDeviceFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountDevice) (*api.AccountDevice, error, codes.Code)

type RuntimeBeforeLinkEmailFunction added in v2.1.0

type RuntimeBeforeLinkEmailFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountEmail) (*api.AccountEmail, error, codes.Code)

type RuntimeBeforeLinkFacebookFunction added in v2.1.0

type RuntimeBeforeLinkFacebookFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.LinkFacebookRequest) (*api.LinkFacebookRequest, error, codes.Code)

type RuntimeBeforeLinkGameCenterFunction added in v2.1.0

type RuntimeBeforeLinkGameCenterFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountGameCenter) (*api.AccountGameCenter, error, codes.Code)

type RuntimeBeforeLinkGoogleFunction added in v2.1.0

type RuntimeBeforeLinkGoogleFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountGoogle) (*api.AccountGoogle, error, codes.Code)

type RuntimeBeforeLinkSteamFunction added in v2.1.0

type RuntimeBeforeLinkSteamFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountSteam) (*api.AccountSteam, error, codes.Code)

type RuntimeBeforeListChannelMessagesFunction added in v2.1.0

type RuntimeBeforeListChannelMessagesFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListChannelMessagesRequest) (*api.ListChannelMessagesRequest, error, codes.Code)

type RuntimeBeforeListFriendsFunction added in v2.1.0

type RuntimeBeforeListFriendsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string) (error, codes.Code)

type RuntimeBeforeListGroupUsersFunction added in v2.1.0

type RuntimeBeforeListGroupUsersFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListGroupUsersRequest) (*api.ListGroupUsersRequest, error, codes.Code)

type RuntimeBeforeListGroupsFunction added in v2.1.0

type RuntimeBeforeListGroupsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListGroupsRequest) (*api.ListGroupsRequest, error, codes.Code)

type RuntimeBeforeListLeaderboardRecordsAroundOwnerFunction added in v2.1.0

type RuntimeBeforeListLeaderboardRecordsAroundOwnerFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListLeaderboardRecordsAroundOwnerRequest) (*api.ListLeaderboardRecordsAroundOwnerRequest, error, codes.Code)

type RuntimeBeforeListLeaderboardRecordsFunction added in v2.1.0

type RuntimeBeforeListLeaderboardRecordsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListLeaderboardRecordsRequest) (*api.ListLeaderboardRecordsRequest, error, codes.Code)

type RuntimeBeforeListMatchesFunction added in v2.1.0

type RuntimeBeforeListMatchesFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListMatchesRequest) (*api.ListMatchesRequest, error, codes.Code)

type RuntimeBeforeListNotificationsFunction added in v2.1.0

type RuntimeBeforeListNotificationsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListNotificationsRequest) (*api.ListNotificationsRequest, error, codes.Code)

type RuntimeBeforeListStorageObjectsFunction added in v2.1.0

type RuntimeBeforeListStorageObjectsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListStorageObjectsRequest) (*api.ListStorageObjectsRequest, error, codes.Code)

type RuntimeBeforeListTournamentRecordsAroundOwnerFunction added in v2.1.0

type RuntimeBeforeListTournamentRecordsAroundOwnerFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListTournamentRecordsAroundOwnerRequest) (*api.ListTournamentRecordsAroundOwnerRequest, error, codes.Code)

type RuntimeBeforeListTournamentRecordsFunction added in v2.1.0

type RuntimeBeforeListTournamentRecordsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListTournamentRecordsRequest) (*api.ListTournamentRecordsRequest, error, codes.Code)

type RuntimeBeforeListTournamentsFunction added in v2.1.0

type RuntimeBeforeListTournamentsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListTournamentsRequest) (*api.ListTournamentsRequest, error, codes.Code)

type RuntimeBeforeListUserGroupsFunction added in v2.1.0

type RuntimeBeforeListUserGroupsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ListUserGroupsRequest) (*api.ListUserGroupsRequest, error, codes.Code)

type RuntimeBeforePromoteGroupUsersFunction added in v2.1.0

type RuntimeBeforePromoteGroupUsersFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.PromoteGroupUsersRequest) (*api.PromoteGroupUsersRequest, error, codes.Code)

type RuntimeBeforeReadStorageObjectsFunction added in v2.1.0

type RuntimeBeforeReadStorageObjectsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.ReadStorageObjectsRequest) (*api.ReadStorageObjectsRequest, error, codes.Code)

type RuntimeBeforeReqFunctions added in v2.1.0

type RuntimeBeforeReqFunctions struct {
	// contains filtered or unexported fields
}

type RuntimeBeforeRtFunction added in v2.1.0

type RuntimeBeforeRtFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, sessionID, clientIP, clientPort string, envelope *rtapi.Envelope) (*rtapi.Envelope, error)

type RuntimeBeforeUnlinkCustomFunction added in v2.1.0

type RuntimeBeforeUnlinkCustomFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountCustom) (*api.AccountCustom, error, codes.Code)

type RuntimeBeforeUnlinkDeviceFunction added in v2.1.0

type RuntimeBeforeUnlinkDeviceFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountDevice) (*api.AccountDevice, error, codes.Code)

type RuntimeBeforeUnlinkEmailFunction added in v2.1.0

type RuntimeBeforeUnlinkEmailFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountEmail) (*api.AccountEmail, error, codes.Code)

type RuntimeBeforeUnlinkFacebookFunction added in v2.1.0

type RuntimeBeforeUnlinkFacebookFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountFacebook) (*api.AccountFacebook, error, codes.Code)

type RuntimeBeforeUnlinkGameCenterFunction added in v2.1.0

type RuntimeBeforeUnlinkGameCenterFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountGameCenter) (*api.AccountGameCenter, error, codes.Code)

type RuntimeBeforeUnlinkGoogleFunction added in v2.1.0

type RuntimeBeforeUnlinkGoogleFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountGoogle) (*api.AccountGoogle, error, codes.Code)

type RuntimeBeforeUnlinkSteamFunction added in v2.1.0

type RuntimeBeforeUnlinkSteamFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.AccountSteam) (*api.AccountSteam, error, codes.Code)

type RuntimeBeforeUpdateAccountFunction added in v2.1.0

type RuntimeBeforeUpdateAccountFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.UpdateAccountRequest) (*api.UpdateAccountRequest, error, codes.Code)

type RuntimeBeforeUpdateGroupFunction added in v2.1.0

type RuntimeBeforeUpdateGroupFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.UpdateGroupRequest) (*api.UpdateGroupRequest, error, codes.Code)

type RuntimeBeforeWriteLeaderboardRecordFunction added in v2.1.0

type RuntimeBeforeWriteLeaderboardRecordFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.WriteLeaderboardRecordRequest) (*api.WriteLeaderboardRecordRequest, error, codes.Code)

type RuntimeBeforeWriteStorageObjectsFunction added in v2.1.0

type RuntimeBeforeWriteStorageObjectsFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.WriteStorageObjectsRequest) (*api.WriteStorageObjectsRequest, error, codes.Code)

type RuntimeBeforeWriteTournamentRecordFunction added in v2.1.0

type RuntimeBeforeWriteTournamentRecordFunction func(ctx context.Context, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, in *api.WriteTournamentRecordRequest) (*api.WriteTournamentRecordRequest, error, codes.Code)

type RuntimeConfig

type RuntimeConfig struct {
	Environment       map[string]string `yaml:"-" json:"-"`
	Env               []string          `yaml:"env" json:"env" usage:"Values to pass into Runtime as environment variables."`
	Path              string            `yaml:"path" json:"path" usage:"Path for the server to scan for Lua and Go library files."`
	HTTPKey           string            `yaml:"http_key" json:"http_key" usage:"Runtime HTTP Invocation key."`
	MinCount          int               `yaml:"min_count" json:"min_count" usage:"Minimum number of runtime instances to allocate. Default 16."`
	MaxCount          int               `yaml:"max_count" json:"max_count" usage:"Maximum number of runtime instances to allocate. Default 256."`
	CallStackSize     int               `yaml:"call_stack_size" json:"call_stack_size" usage:"Size of each runtime instance's call stack. Default 128."`
	RegistrySize      int               `yaml:"registry_size" json:"registry_size" usage:"Size of each runtime instance's registry. Default 512."`
	EventQueueSize    int               `yaml:"event_queue_size" json:"event_queue_size" usage:"Size of the event queue buffer. Default 8192."`
	EventQueueWorkers int               `` /* 134-byte string literal not displayed */
}

RuntimeConfig is configuration relevant to the Runtime Lua VM.

func NewRuntimeConfig

func NewRuntimeConfig() *RuntimeConfig

NewRuntimeConfig creates a new RuntimeConfig struct.

type RuntimeEventFunction added in v2.4.2

type RuntimeEventFunction func(ctx context.Context, logger runtime.Logger, evt *api.Event)

type RuntimeEventFunctions added in v2.4.2

type RuntimeEventFunctions struct {
	// contains filtered or unexported fields
}

type RuntimeEventQueue added in v2.4.2

type RuntimeEventQueue struct {
	// contains filtered or unexported fields
}

func NewRuntimeEventQueue added in v2.4.2

func NewRuntimeEventQueue(logger *zap.Logger, config Config) *RuntimeEventQueue

func (*RuntimeEventQueue) Queue added in v2.4.2

func (b *RuntimeEventQueue) Queue(fn func())

func (*RuntimeEventQueue) Stop added in v2.4.2

func (b *RuntimeEventQueue) Stop()

type RuntimeEventSessionEndFunction added in v2.4.2

type RuntimeEventSessionEndFunction func(userID, username string, expiry int64, sessionID, clientIP, clientPort string, evtTimeSec int64, reason string)

type RuntimeEventSessionStartFunction added in v2.4.2

type RuntimeEventSessionStartFunction func(userID, username string, expiry int64, sessionID, clientIP, clientPort string, evtTimeSec int64)

type RuntimeExecutionMode added in v2.1.0

type RuntimeExecutionMode int
const (
	RuntimeExecutionModeEvent RuntimeExecutionMode = iota
	RuntimeExecutionModeRunOnce
	RuntimeExecutionModeRPC
	RuntimeExecutionModeBefore
	RuntimeExecutionModeAfter
	RuntimeExecutionModeMatch
	RuntimeExecutionModeMatchmaker
	RuntimeExecutionModeMatchCreate
	RuntimeExecutionModeTournamentEnd
	RuntimeExecutionModeTournamentReset
	RuntimeExecutionModeLeaderboardReset
)

func (RuntimeExecutionMode) String added in v2.1.0

func (e RuntimeExecutionMode) String() string

type RuntimeGoInitializer added in v2.1.0

type RuntimeGoInitializer struct {
	// contains filtered or unexported fields
}

func (*RuntimeGoInitializer) RegisterAfterAddFriends added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterAddFriends(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AddFriendsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterAddGroupUsers added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterAddGroupUsers(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AddGroupUsersRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterAuthenticateCustom added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterAuthenticateCustom(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Session, in *api.AuthenticateCustomRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterAuthenticateDevice added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterAuthenticateDevice(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Session, in *api.AuthenticateDeviceRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterAuthenticateEmail added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterAuthenticateEmail(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Session, in *api.AuthenticateEmailRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterAuthenticateFacebook added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterAuthenticateFacebook(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Session, in *api.AuthenticateFacebookRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterAuthenticateGameCenter added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterAuthenticateGameCenter(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Session, in *api.AuthenticateGameCenterRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterAuthenticateGoogle added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterAuthenticateGoogle(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Session, in *api.AuthenticateGoogleRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterAuthenticateSteam added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterAuthenticateSteam(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Session, in *api.AuthenticateSteamRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterBlockFriends added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterBlockFriends(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.BlockFriendsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterCreateGroup added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterCreateGroup(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Group, in *api.CreateGroupRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterDeleteFriends added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterDeleteFriends(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.DeleteFriendsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterDeleteGroup added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterDeleteGroup(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.DeleteGroupRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterDeleteLeaderboardRecord added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterDeleteLeaderboardRecord(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.DeleteLeaderboardRecordRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterDeleteNotification added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterDeleteNotification(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.DeleteNotificationsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterDeleteStorageObjects added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterDeleteStorageObjects(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.DeleteStorageObjectsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterGetAccount added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterGetAccount(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Account) error) error

func (*RuntimeGoInitializer) RegisterAfterGetUsers added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterGetUsers(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Users, in *api.GetUsersRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterImportFacebookFriends added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterImportFacebookFriends(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ImportFacebookFriendsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterJoinGroup added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterJoinGroup(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.JoinGroupRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterJoinTournament added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterJoinTournament(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.JoinTournamentRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterKickGroupUsers added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterKickGroupUsers(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.KickGroupUsersRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterLeaveGroup added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterLeaveGroup(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.LeaveGroupRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterLinkCustom added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterLinkCustom(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountCustom) error) error

func (*RuntimeGoInitializer) RegisterAfterLinkDevice added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterLinkDevice(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountDevice) error) error

func (*RuntimeGoInitializer) RegisterAfterLinkEmail added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterLinkEmail(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountEmail) error) error

func (*RuntimeGoInitializer) RegisterAfterLinkFacebook added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterLinkFacebook(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.LinkFacebookRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterLinkGameCenter added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterLinkGameCenter(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountGameCenter) error) error

func (*RuntimeGoInitializer) RegisterAfterLinkGoogle added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterLinkGoogle(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountGoogle) error) error

func (*RuntimeGoInitializer) RegisterAfterLinkSteam added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterLinkSteam(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountSteam) error) error

func (*RuntimeGoInitializer) RegisterAfterListChannelMessages added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListChannelMessages(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.ChannelMessageList, in *api.ListChannelMessagesRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListFriends added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListFriends(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.Friends) error) error

func (*RuntimeGoInitializer) RegisterAfterListGroupUsers added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListGroupUsers(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.GroupUserList, in *api.ListGroupUsersRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListGroups added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListGroups(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.GroupList, in *api.ListGroupsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListLeaderboardRecords added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListLeaderboardRecords(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.LeaderboardRecordList, in *api.ListLeaderboardRecordsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListLeaderboardRecordsAroundOwner added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListLeaderboardRecordsAroundOwner(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.LeaderboardRecordList, in *api.ListLeaderboardRecordsAroundOwnerRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListMatches added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListMatches(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.MatchList, in *api.ListMatchesRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListNotifications added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListNotifications(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.NotificationList, in *api.ListNotificationsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListStorageObjects added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListStorageObjects(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.StorageObjectList, in *api.ListStorageObjectsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListTournamentRecords added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListTournamentRecords(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.TournamentRecordList, in *api.ListTournamentRecordsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListTournamentRecordsAroundOwner added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListTournamentRecordsAroundOwner(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.TournamentRecordList, in *api.ListTournamentRecordsAroundOwnerRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListTournaments added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListTournaments(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.TournamentList, in *api.ListTournamentsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterListUserGroups added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterListUserGroups(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.UserGroupList, in *api.ListUserGroupsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterPromoteGroupUsers added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterPromoteGroupUsers(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.PromoteGroupUsersRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterReadStorageObjects added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterReadStorageObjects(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.StorageObjects, in *api.ReadStorageObjectsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterRt added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterRt(id string, fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, envelope *rtapi.Envelope) error) error

func (*RuntimeGoInitializer) RegisterAfterUnlinkCustom added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterUnlinkCustom(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountCustom) error) error

func (*RuntimeGoInitializer) RegisterAfterUnlinkDevice added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterUnlinkDevice(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountDevice) error) error

func (*RuntimeGoInitializer) RegisterAfterUnlinkEmail added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterUnlinkEmail(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountEmail) error) error

func (*RuntimeGoInitializer) RegisterAfterUnlinkFacebook added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterUnlinkFacebook(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountFacebook) error) error

func (*RuntimeGoInitializer) RegisterAfterUnlinkGameCenter added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterUnlinkGameCenter(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountGameCenter) error) error

func (*RuntimeGoInitializer) RegisterAfterUnlinkGoogle added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterUnlinkGoogle(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountGoogle) error) error

func (*RuntimeGoInitializer) RegisterAfterUnlinkSteam added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterUnlinkSteam(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountSteam) error) error

func (*RuntimeGoInitializer) RegisterAfterUpdateAccount added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterUpdateAccount(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.UpdateAccountRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterUpdateGroup added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterUpdateGroup(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.UpdateGroupRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterWriteLeaderboardRecord added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterWriteLeaderboardRecord(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.LeaderboardRecord, in *api.WriteLeaderboardRecordRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterWriteStorageObjects added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterWriteStorageObjects(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.StorageObjectAcks, in *api.WriteStorageObjectsRequest) error) error

func (*RuntimeGoInitializer) RegisterAfterWriteTournamentRecord added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterAfterWriteTournamentRecord(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, out *api.LeaderboardRecord, in *api.WriteTournamentRecordRequest) error) error

func (*RuntimeGoInitializer) RegisterBeforeAddFriends added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeAddFriends(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AddFriendsRequest) (*api.AddFriendsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeAddGroupUsers added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeAddGroupUsers(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AddGroupUsersRequest) (*api.AddGroupUsersRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeAuthenticateCustom added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeAuthenticateCustom(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AuthenticateCustomRequest) (*api.AuthenticateCustomRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeAuthenticateDevice added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeAuthenticateDevice(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AuthenticateDeviceRequest) (*api.AuthenticateDeviceRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeAuthenticateEmail added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeAuthenticateEmail(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AuthenticateEmailRequest) (*api.AuthenticateEmailRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeAuthenticateFacebook added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeAuthenticateFacebook(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AuthenticateFacebookRequest) (*api.AuthenticateFacebookRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeAuthenticateGameCenter added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeAuthenticateGameCenter(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AuthenticateGameCenterRequest) (*api.AuthenticateGameCenterRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeAuthenticateGoogle added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeAuthenticateGoogle(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AuthenticateGoogleRequest) (*api.AuthenticateGoogleRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeAuthenticateSteam added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeAuthenticateSteam(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AuthenticateSteamRequest) (*api.AuthenticateSteamRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeBlockFriends added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeBlockFriends(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.BlockFriendsRequest) (*api.BlockFriendsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeCreateGroup added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeCreateGroup(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.CreateGroupRequest) (*api.CreateGroupRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeDeleteFriends added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeDeleteFriends(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.DeleteFriendsRequest) (*api.DeleteFriendsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeDeleteGroup added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeDeleteGroup(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.DeleteGroupRequest) (*api.DeleteGroupRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeDeleteLeaderboardRecord added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeDeleteLeaderboardRecord(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.DeleteLeaderboardRecordRequest) (*api.DeleteLeaderboardRecordRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeDeleteNotification added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeDeleteNotification(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.DeleteNotificationsRequest) (*api.DeleteNotificationsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeDeleteStorageObjects added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeDeleteStorageObjects(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.DeleteStorageObjectsRequest) (*api.DeleteStorageObjectsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeGetAccount added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeGetAccount(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule) error) error

func (*RuntimeGoInitializer) RegisterBeforeGetUsers added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeGetUsers(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.GetUsersRequest) (*api.GetUsersRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeImportFacebookFriends added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeImportFacebookFriends(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ImportFacebookFriendsRequest) (*api.ImportFacebookFriendsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeJoinGroup added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeJoinGroup(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.JoinGroupRequest) (*api.JoinGroupRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeJoinTournament added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeJoinTournament(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.JoinTournamentRequest) (*api.JoinTournamentRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeKickGroupUsers added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeKickGroupUsers(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.KickGroupUsersRequest) (*api.KickGroupUsersRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeLeaveGroup added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeLeaveGroup(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.LeaveGroupRequest) (*api.LeaveGroupRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeLinkCustom added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeLinkCustom(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountCustom) (*api.AccountCustom, error)) error

func (*RuntimeGoInitializer) RegisterBeforeLinkDevice added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeLinkDevice(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountDevice) (*api.AccountDevice, error)) error

func (*RuntimeGoInitializer) RegisterBeforeLinkEmail added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeLinkEmail(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountEmail) (*api.AccountEmail, error)) error

func (*RuntimeGoInitializer) RegisterBeforeLinkFacebook added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeLinkFacebook(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.LinkFacebookRequest) (*api.LinkFacebookRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeLinkGameCenter added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeLinkGameCenter(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountGameCenter) (*api.AccountGameCenter, error)) error

func (*RuntimeGoInitializer) RegisterBeforeLinkGoogle added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeLinkGoogle(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountGoogle) (*api.AccountGoogle, error)) error

func (*RuntimeGoInitializer) RegisterBeforeLinkSteam added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeLinkSteam(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountSteam) (*api.AccountSteam, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListChannelMessages added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListChannelMessages(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListChannelMessagesRequest) (*api.ListChannelMessagesRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListFriends added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListFriends(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule) error) error

func (*RuntimeGoInitializer) RegisterBeforeListGroupUsers added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListGroupUsers(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListGroupUsersRequest) (*api.ListGroupUsersRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListGroups added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListGroups(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListGroupsRequest) (*api.ListGroupsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListLeaderboardRecords added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListLeaderboardRecords(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListLeaderboardRecordsRequest) (*api.ListLeaderboardRecordsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListLeaderboardRecordsAroundOwner added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListLeaderboardRecordsAroundOwner(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListLeaderboardRecordsAroundOwnerRequest) (*api.ListLeaderboardRecordsAroundOwnerRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListMatches added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListMatches(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListMatchesRequest) (*api.ListMatchesRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListNotifications added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListNotifications(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListNotificationsRequest) (*api.ListNotificationsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListStorageObjects added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListStorageObjects(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListStorageObjectsRequest) (*api.ListStorageObjectsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListTournamentRecords added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListTournamentRecords(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListTournamentRecordsRequest) (*api.ListTournamentRecordsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListTournamentRecordsAroundOwner added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListTournamentRecordsAroundOwner(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListTournamentRecordsAroundOwnerRequest) (*api.ListTournamentRecordsAroundOwnerRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListTournaments added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListTournaments(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListTournamentsRequest) (*api.ListTournamentsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeListUserGroups added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeListUserGroups(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ListUserGroupsRequest) (*api.ListUserGroupsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforePromoteGroupUsers added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforePromoteGroupUsers(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.PromoteGroupUsersRequest) (*api.PromoteGroupUsersRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeReadStorageObjects added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeReadStorageObjects(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.ReadStorageObjectsRequest) (*api.ReadStorageObjectsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeRt added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeRt(id string, fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, envelope *rtapi.Envelope) (*rtapi.Envelope, error)) error

func (*RuntimeGoInitializer) RegisterBeforeUnlinkCustom added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeUnlinkCustom(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountCustom) (*api.AccountCustom, error)) error

func (*RuntimeGoInitializer) RegisterBeforeUnlinkDevice added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeUnlinkDevice(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountDevice) (*api.AccountDevice, error)) error

func (*RuntimeGoInitializer) RegisterBeforeUnlinkEmail added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeUnlinkEmail(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountEmail) (*api.AccountEmail, error)) error

func (*RuntimeGoInitializer) RegisterBeforeUnlinkFacebook added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeUnlinkFacebook(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountFacebook) (*api.AccountFacebook, error)) error

func (*RuntimeGoInitializer) RegisterBeforeUnlinkGameCenter added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeUnlinkGameCenter(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountGameCenter) (*api.AccountGameCenter, error)) error

func (*RuntimeGoInitializer) RegisterBeforeUnlinkGoogle added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeUnlinkGoogle(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountGoogle) (*api.AccountGoogle, error)) error

func (*RuntimeGoInitializer) RegisterBeforeUnlinkSteam added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeUnlinkSteam(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.AccountSteam) (*api.AccountSteam, error)) error

func (*RuntimeGoInitializer) RegisterBeforeUpdateAccount added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeUpdateAccount(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.UpdateAccountRequest) (*api.UpdateAccountRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeUpdateGroup added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeUpdateGroup(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.UpdateGroupRequest) (*api.UpdateGroupRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeWriteLeaderboardRecord added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeWriteLeaderboardRecord(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.WriteLeaderboardRecordRequest) (*api.WriteLeaderboardRecordRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeWriteStorageObjects added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeWriteStorageObjects(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.WriteStorageObjectsRequest) (*api.WriteStorageObjectsRequest, error)) error

func (*RuntimeGoInitializer) RegisterBeforeWriteTournamentRecord added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterBeforeWriteTournamentRecord(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, in *api.WriteTournamentRecordRequest) (*api.WriteTournamentRecordRequest, error)) error

func (*RuntimeGoInitializer) RegisterEventSessionEnd added in v2.4.2

func (ri *RuntimeGoInitializer) RegisterEventSessionEnd(fn func(ctx context.Context, logger runtime.Logger, evt *api.Event)) error

func (*RuntimeGoInitializer) RegisterEventSessionStart added in v2.4.2

func (ri *RuntimeGoInitializer) RegisterEventSessionStart(fn func(ctx context.Context, logger runtime.Logger, evt *api.Event)) error

func (*RuntimeGoInitializer) RegisterLeaderboardReset added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterLeaderboardReset(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, leaderboard runtime.Leaderboard, reset int64) error) error

func (*RuntimeGoInitializer) RegisterMatch added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterMatch(name string, fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule) (runtime.Match, error)) error

func (*RuntimeGoInitializer) RegisterMatchmakerMatched added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterMatchmakerMatched(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, entries []runtime.MatchmakerEntry) (string, error)) error

func (*RuntimeGoInitializer) RegisterRpc added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterRpc(id string, fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, payload string) (string, error)) error

func (*RuntimeGoInitializer) RegisterTournamentEnd added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterTournamentEnd(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, tournament *api.Tournament, end, reset int64) error) error

func (*RuntimeGoInitializer) RegisterTournamentReset added in v2.1.0

func (ri *RuntimeGoInitializer) RegisterTournamentReset(fn func(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, tournament *api.Tournament, end, reset int64) error) error

type RuntimeGoLogger added in v2.3.0

type RuntimeGoLogger struct {
	// contains filtered or unexported fields
}

func (*RuntimeGoLogger) Debug added in v2.3.0

func (l *RuntimeGoLogger) Debug(format string, v ...interface{})

func (*RuntimeGoLogger) Error added in v2.3.0

func (l *RuntimeGoLogger) Error(format string, v ...interface{})

func (*RuntimeGoLogger) Fatal added in v2.3.0

func (l *RuntimeGoLogger) Fatal(v ...interface{})

func (*RuntimeGoLogger) Fatalf added in v2.3.0

func (l *RuntimeGoLogger) Fatalf(format string, v ...interface{})

func (*RuntimeGoLogger) Fatalln added in v2.3.0

func (l *RuntimeGoLogger) Fatalln(v ...interface{})

func (*RuntimeGoLogger) Info added in v2.3.0

func (l *RuntimeGoLogger) Info(format string, v ...interface{})

func (*RuntimeGoLogger) Panic added in v2.3.0

func (l *RuntimeGoLogger) Panic(v ...interface{})

func (*RuntimeGoLogger) Panicf added in v2.3.0

func (l *RuntimeGoLogger) Panicf(format string, v ...interface{})

func (*RuntimeGoLogger) Panicln added in v2.3.0

func (l *RuntimeGoLogger) Panicln(v ...interface{})

func (*RuntimeGoLogger) Print added in v2.3.0

func (l *RuntimeGoLogger) Print(v ...interface{})

func (*RuntimeGoLogger) Printf added in v2.3.0

func (l *RuntimeGoLogger) Printf(format string, v ...interface{})

func (*RuntimeGoLogger) Println added in v2.3.0

func (l *RuntimeGoLogger) Println(v ...interface{})

func (*RuntimeGoLogger) Warn added in v2.3.0

func (l *RuntimeGoLogger) Warn(format string, v ...interface{})

type RuntimeGoMatchCore added in v2.1.0

type RuntimeGoMatchCore struct {
	// contains filtered or unexported fields
}

func (*RuntimeGoMatchCore) BroadcastMessage added in v2.1.0

func (r *RuntimeGoMatchCore) BroadcastMessage(opCode int64, data []byte, presences []runtime.Presence, sender runtime.Presence) error

func (*RuntimeGoMatchCore) BroadcastMessageDeferred added in v2.3.0

func (r *RuntimeGoMatchCore) BroadcastMessageDeferred(opCode int64, data []byte, presences []runtime.Presence, sender runtime.Presence) error

func (*RuntimeGoMatchCore) Cancel added in v2.1.1

func (r *RuntimeGoMatchCore) Cancel()

func (*RuntimeGoMatchCore) Label added in v2.3.0

func (r *RuntimeGoMatchCore) Label() string

func (*RuntimeGoMatchCore) MatchInit added in v2.1.0

func (r *RuntimeGoMatchCore) MatchInit(presenceList *MatchPresenceList, deferMessageFn RuntimeMatchDeferMessageFunction, params map[string]interface{}) (interface{}, int, error)

func (*RuntimeGoMatchCore) MatchJoin added in v2.1.0

func (r *RuntimeGoMatchCore) MatchJoin(tick int64, state interface{}, joins []*MatchPresence) (interface{}, error)

func (*RuntimeGoMatchCore) MatchJoinAttempt added in v2.1.0

func (r *RuntimeGoMatchCore) MatchJoinAttempt(tick int64, state interface{}, userID, sessionID uuid.UUID, username, node string, metadata map[string]string) (interface{}, bool, string, error)

func (*RuntimeGoMatchCore) MatchKick added in v2.1.0

func (r *RuntimeGoMatchCore) MatchKick(presences []runtime.Presence) error

func (*RuntimeGoMatchCore) MatchLabelUpdate added in v2.1.0

func (r *RuntimeGoMatchCore) MatchLabelUpdate(label string) error

func (*RuntimeGoMatchCore) MatchLeave added in v2.1.0

func (r *RuntimeGoMatchCore) MatchLeave(tick int64, state interface{}, leaves []*MatchPresence) (interface{}, error)

func (*RuntimeGoMatchCore) MatchLoop added in v2.1.0

func (r *RuntimeGoMatchCore) MatchLoop(tick int64, state interface{}, inputCh <-chan *MatchDataMessage) (interface{}, error)

func (*RuntimeGoMatchCore) MatchTerminate added in v2.1.0

func (r *RuntimeGoMatchCore) MatchTerminate(tick int64, state interface{}, graceSeconds int) (interface{}, error)

type RuntimeGoNakamaModule added in v2.1.0

type RuntimeGoNakamaModule struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewRuntimeGoNakamaModule added in v2.1.0

func NewRuntimeGoNakamaModule(logger *zap.Logger, db *sql.DB, config Config, socialClient *social.Client, leaderboardCache LeaderboardCache, leaderboardRankCache LeaderboardRankCache, leaderboardScheduler LeaderboardScheduler, sessionRegistry SessionRegistry, matchRegistry MatchRegistry, tracker Tracker, streamManager StreamManager, router MessageRouter) *RuntimeGoNakamaModule

func (*RuntimeGoNakamaModule) AccountDeleteId added in v2.4.1

func (n *RuntimeGoNakamaModule) AccountDeleteId(ctx context.Context, userID string, recorded bool) error

func (*RuntimeGoNakamaModule) AccountGetId added in v2.1.0

func (n *RuntimeGoNakamaModule) AccountGetId(ctx context.Context, userID string) (*api.Account, error)

func (*RuntimeGoNakamaModule) AccountUpdateId added in v2.1.0

func (n *RuntimeGoNakamaModule) AccountUpdateId(ctx context.Context, userID, username string, metadata map[string]interface{}, displayName, timezone, location, langTag, avatarUrl string) error

func (*RuntimeGoNakamaModule) AccountsGetId added in v2.3.0

func (n *RuntimeGoNakamaModule) AccountsGetId(ctx context.Context, userIDs []string) ([]*api.Account, error)

func (*RuntimeGoNakamaModule) AuthenticateCustom added in v2.1.0

func (n *RuntimeGoNakamaModule) AuthenticateCustom(ctx context.Context, id, username string, create bool) (string, string, bool, error)

func (*RuntimeGoNakamaModule) AuthenticateDevice added in v2.1.0

func (n *RuntimeGoNakamaModule) AuthenticateDevice(ctx context.Context, id, username string, create bool) (string, string, bool, error)

func (*RuntimeGoNakamaModule) AuthenticateEmail added in v2.1.0

func (n *RuntimeGoNakamaModule) AuthenticateEmail(ctx context.Context, email, password, username string, create bool) (string, string, bool, error)

func (*RuntimeGoNakamaModule) AuthenticateFacebook added in v2.1.0

func (n *RuntimeGoNakamaModule) AuthenticateFacebook(ctx context.Context, token string, importFriends bool, username string, create bool) (string, string, bool, error)

func (*RuntimeGoNakamaModule) AuthenticateGameCenter added in v2.1.0

func (n *RuntimeGoNakamaModule) AuthenticateGameCenter(ctx context.Context, playerID, bundleID string, timestamp int64, salt, signature, publicKeyUrl, username string, create bool) (string, string, bool, error)

func (*RuntimeGoNakamaModule) AuthenticateGoogle added in v2.1.0

func (n *RuntimeGoNakamaModule) AuthenticateGoogle(ctx context.Context, token, username string, create bool) (string, string, bool, error)

func (*RuntimeGoNakamaModule) AuthenticateSteam added in v2.1.0

func (n *RuntimeGoNakamaModule) AuthenticateSteam(ctx context.Context, token, username string, create bool) (string, string, bool, error)

func (*RuntimeGoNakamaModule) AuthenticateTokenGenerate added in v2.1.0

func (n *RuntimeGoNakamaModule) AuthenticateTokenGenerate(userID, username string, exp int64) (string, int64, error)

func (*RuntimeGoNakamaModule) GroupCreate added in v2.1.0

func (n *RuntimeGoNakamaModule) GroupCreate(ctx context.Context, userID, name, creatorID, langTag, description, avatarUrl string, open bool, metadata map[string]interface{}, maxCount int) (*api.Group, error)

func (*RuntimeGoNakamaModule) GroupDelete added in v2.1.0

func (n *RuntimeGoNakamaModule) GroupDelete(ctx context.Context, id string) error

func (*RuntimeGoNakamaModule) GroupUpdate added in v2.1.0

func (n *RuntimeGoNakamaModule) GroupUpdate(ctx context.Context, id, name, creatorID, langTag, description, avatarUrl string, open bool, metadata map[string]interface{}, maxCount int) error

func (*RuntimeGoNakamaModule) GroupUsersKick added in v2.3.0

func (n *RuntimeGoNakamaModule) GroupUsersKick(ctx context.Context, groupID string, userIDs []string) error

func (*RuntimeGoNakamaModule) GroupUsersList added in v2.1.0

func (n *RuntimeGoNakamaModule) GroupUsersList(ctx context.Context, id string) ([]*api.GroupUserList_GroupUser, error)

func (*RuntimeGoNakamaModule) GroupsGetId added in v2.1.1

func (n *RuntimeGoNakamaModule) GroupsGetId(ctx context.Context, groupIDs []string) ([]*api.Group, error)

func (*RuntimeGoNakamaModule) LeaderboardCreate added in v2.1.0

func (n *RuntimeGoNakamaModule) LeaderboardCreate(ctx context.Context, id string, authoritative bool, sortOrder, operator, resetSchedule string, metadata map[string]interface{}) error

func (*RuntimeGoNakamaModule) LeaderboardDelete added in v2.1.0

func (n *RuntimeGoNakamaModule) LeaderboardDelete(ctx context.Context, id string) error

func (*RuntimeGoNakamaModule) LeaderboardRecordDelete added in v2.1.0

func (n *RuntimeGoNakamaModule) LeaderboardRecordDelete(ctx context.Context, id, ownerID string) error

func (*RuntimeGoNakamaModule) LeaderboardRecordWrite added in v2.1.0

func (n *RuntimeGoNakamaModule) LeaderboardRecordWrite(ctx context.Context, id, ownerID, username string, score, subscore int64, metadata map[string]interface{}) (*api.LeaderboardRecord, error)

func (*RuntimeGoNakamaModule) LeaderboardRecordsList added in v2.1.0

func (n *RuntimeGoNakamaModule) LeaderboardRecordsList(ctx context.Context, id string, ownerIDs []string, limit int, cursor string, expiry int64) ([]*api.LeaderboardRecord, []*api.LeaderboardRecord, string, string, error)

func (*RuntimeGoNakamaModule) MatchCreate added in v2.1.0

func (n *RuntimeGoNakamaModule) MatchCreate(ctx context.Context, module string, params map[string]interface{}) (string, error)

func (*RuntimeGoNakamaModule) MatchList added in v2.1.0

func (n *RuntimeGoNakamaModule) MatchList(ctx context.Context, limit int, authoritative bool, label string, minSize, maxSize int, query string) ([]*api.Match, error)

func (*RuntimeGoNakamaModule) NotificationSend added in v2.1.0

func (n *RuntimeGoNakamaModule) NotificationSend(ctx context.Context, userID, subject string, content map[string]interface{}, code int, sender string, persistent bool) error

func (*RuntimeGoNakamaModule) NotificationsSend added in v2.1.0

func (n *RuntimeGoNakamaModule) NotificationsSend(ctx context.Context, notifications []*runtime.NotificationSend) error

func (*RuntimeGoNakamaModule) SessionDisconnect added in v2.4.0

func (n *RuntimeGoNakamaModule) SessionDisconnect(ctx context.Context, sessionID, node string) error

func (*RuntimeGoNakamaModule) SetMatchCreateFn added in v2.1.0

func (n *RuntimeGoNakamaModule) SetMatchCreateFn(fn RuntimeMatchCreateFunction)

func (*RuntimeGoNakamaModule) StorageDelete added in v2.1.0

func (n *RuntimeGoNakamaModule) StorageDelete(ctx context.Context, deletes []*runtime.StorageDelete) error

func (*RuntimeGoNakamaModule) StorageList added in v2.1.0

func (n *RuntimeGoNakamaModule) StorageList(ctx context.Context, userID, collection string, limit int, cursor string) ([]*api.StorageObject, string, error)

func (*RuntimeGoNakamaModule) StorageRead added in v2.1.0

func (n *RuntimeGoNakamaModule) StorageRead(ctx context.Context, reads []*runtime.StorageRead) ([]*api.StorageObject, error)

func (*RuntimeGoNakamaModule) StorageWrite added in v2.1.0

func (n *RuntimeGoNakamaModule) StorageWrite(ctx context.Context, writes []*runtime.StorageWrite) ([]*api.StorageObjectAck, error)

func (*RuntimeGoNakamaModule) StreamClose added in v2.1.0

func (n *RuntimeGoNakamaModule) StreamClose(mode uint8, subject, subcontext, label string) error

func (*RuntimeGoNakamaModule) StreamCount added in v2.1.0

func (n *RuntimeGoNakamaModule) StreamCount(mode uint8, subject, subcontext, label string) (int, error)

func (*RuntimeGoNakamaModule) StreamSend added in v2.1.0

func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, subcontext, label, data string, presences []runtime.Presence) error

func (*RuntimeGoNakamaModule) StreamSendRaw added in v2.2.0

func (n *RuntimeGoNakamaModule) StreamSendRaw(mode uint8, subject, subcontext, label string, msg *rtapi.Envelope, presences []runtime.Presence) error

func (*RuntimeGoNakamaModule) StreamUserGet added in v2.1.0

func (n *RuntimeGoNakamaModule) StreamUserGet(mode uint8, subject, subcontext, label, userID, sessionID string) (runtime.PresenceMeta, error)

func (*RuntimeGoNakamaModule) StreamUserJoin added in v2.1.0

func (n *RuntimeGoNakamaModule) StreamUserJoin(mode uint8, subject, subcontext, label, userID, sessionID string, hidden, persistence bool, status string) (bool, error)

func (*RuntimeGoNakamaModule) StreamUserKick added in v2.4.0

func (n *RuntimeGoNakamaModule) StreamUserKick(mode uint8, subject, subcontext, label string, presence runtime.Presence) error

func (*RuntimeGoNakamaModule) StreamUserLeave added in v2.1.0

func (n *RuntimeGoNakamaModule) StreamUserLeave(mode uint8, subject, subcontext, label, userID, sessionID string) error

func (*RuntimeGoNakamaModule) StreamUserList added in v2.1.0

func (n *RuntimeGoNakamaModule) StreamUserList(mode uint8, subject, subcontext, label string, includeHidden, includeNotHidden bool) ([]runtime.Presence, error)

func (*RuntimeGoNakamaModule) StreamUserUpdate added in v2.1.0

func (n *RuntimeGoNakamaModule) StreamUserUpdate(mode uint8, subject, subcontext, label, userID, sessionID string, hidden, persistence bool, status string) error

func (*RuntimeGoNakamaModule) TournamentAddAttempt added in v2.1.0

func (n *RuntimeGoNakamaModule) TournamentAddAttempt(ctx context.Context, id, ownerID string, count int) error

func (*RuntimeGoNakamaModule) TournamentCreate added in v2.1.0

func (n *RuntimeGoNakamaModule) TournamentCreate(ctx context.Context, id string, sortOrder, operator, resetSchedule string, metadata map[string]interface{}, title, description string, category, startTime, endTime, duration, maxSize, maxNumScore int, joinRequired bool) error

func (*RuntimeGoNakamaModule) TournamentDelete added in v2.1.0

func (n *RuntimeGoNakamaModule) TournamentDelete(ctx context.Context, id string) error

func (*RuntimeGoNakamaModule) TournamentJoin added in v2.1.0

func (n *RuntimeGoNakamaModule) TournamentJoin(ctx context.Context, id, ownerID, username string) error

func (*RuntimeGoNakamaModule) TournamentList added in v2.1.0

func (n *RuntimeGoNakamaModule) TournamentList(ctx context.Context, categoryStart, categoryEnd, startTime, endTime, limit int, cursor string) (*api.TournamentList, error)

func (*RuntimeGoNakamaModule) TournamentRecordWrite added in v2.1.0

func (n *RuntimeGoNakamaModule) TournamentRecordWrite(ctx context.Context, id, ownerID, username string, score, subscore int64, metadata map[string]interface{}) (*api.LeaderboardRecord, error)

func (*RuntimeGoNakamaModule) TournamentRecordsHaystack added in v2.1.0

func (n *RuntimeGoNakamaModule) TournamentRecordsHaystack(ctx context.Context, id, ownerID string, limit int) ([]*api.LeaderboardRecord, error)

func (*RuntimeGoNakamaModule) UserGroupsList added in v2.1.0

func (n *RuntimeGoNakamaModule) UserGroupsList(ctx context.Context, userID string) ([]*api.UserGroupList_UserGroup, error)

func (*RuntimeGoNakamaModule) UsersBanId added in v2.1.0

func (n *RuntimeGoNakamaModule) UsersBanId(ctx context.Context, userIDs []string) error

func (*RuntimeGoNakamaModule) UsersGetId added in v2.1.0

func (n *RuntimeGoNakamaModule) UsersGetId(ctx context.Context, userIDs []string) ([]*api.User, error)

func (*RuntimeGoNakamaModule) UsersGetUsername added in v2.1.0

func (n *RuntimeGoNakamaModule) UsersGetUsername(ctx context.Context, usernames []string) ([]*api.User, error)

func (*RuntimeGoNakamaModule) UsersUnbanId added in v2.1.0

func (n *RuntimeGoNakamaModule) UsersUnbanId(ctx context.Context, userIDs []string) error

func (*RuntimeGoNakamaModule) WalletLedgerList added in v2.1.0

func (n *RuntimeGoNakamaModule) WalletLedgerList(ctx context.Context, userID string) ([]runtime.WalletLedgerItem, error)

func (*RuntimeGoNakamaModule) WalletLedgerUpdate added in v2.1.0

func (n *RuntimeGoNakamaModule) WalletLedgerUpdate(ctx context.Context, itemID string, metadata map[string]interface{}) (runtime.WalletLedgerItem, error)

func (*RuntimeGoNakamaModule) WalletUpdate added in v2.1.0

func (n *RuntimeGoNakamaModule) WalletUpdate(ctx context.Context, userID string, changeset, metadata map[string]interface{}, updateLedger bool) error

func (*RuntimeGoNakamaModule) WalletsUpdate added in v2.1.0

func (n *RuntimeGoNakamaModule) WalletsUpdate(ctx context.Context, updates []*runtime.WalletUpdate, updateLedger bool) error

type RuntimeLeaderboardResetFunction added in v2.1.0

type RuntimeLeaderboardResetFunction func(ctx context.Context, leaderboard runtime.Leaderboard, reset int64) error

type RuntimeLua added in v2.1.0

type RuntimeLua struct {
	// contains filtered or unexported fields
}

func (*RuntimeLua) GetCallback added in v2.1.0

func (r *RuntimeLua) GetCallback(e RuntimeExecutionMode, key string) *lua.LFunction

func (*RuntimeLua) InvokeFunction added in v2.1.0

func (r *RuntimeLua) InvokeFunction(execMode RuntimeExecutionMode, fn *lua.LFunction, queryParams map[string][]string, uid string, username string, sessionExpiry int64, sid string, clientIP string, clientPort string, payloads ...interface{}) (interface{}, error, codes.Code)

func (*RuntimeLua) Stop added in v2.1.0

func (r *RuntimeLua) Stop()

type RuntimeLuaCallbacks added in v2.1.0

type RuntimeLuaCallbacks struct {
	RPC              map[string]*lua.LFunction
	Before           map[string]*lua.LFunction
	After            map[string]*lua.LFunction
	Matchmaker       *lua.LFunction
	TournamentEnd    *lua.LFunction
	TournamentReset  *lua.LFunction
	LeaderboardReset *lua.LFunction
}

type RuntimeLuaLocalCache added in v2.1.0

type RuntimeLuaLocalCache struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewRuntimeLuaLocalCache added in v2.1.0

func NewRuntimeLuaLocalCache() *RuntimeLuaLocalCache

func (*RuntimeLuaLocalCache) Delete added in v2.1.0

func (lc *RuntimeLuaLocalCache) Delete(key string)

func (*RuntimeLuaLocalCache) Get added in v2.1.0

func (lc *RuntimeLuaLocalCache) Get(key string) (string, bool)

func (*RuntimeLuaLocalCache) Put added in v2.1.0

func (lc *RuntimeLuaLocalCache) Put(key, value string)

type RuntimeLuaMatchCore added in v2.1.0

type RuntimeLuaMatchCore struct {
	// contains filtered or unexported fields
}

func (*RuntimeLuaMatchCore) Cancel added in v2.1.1

func (r *RuntimeLuaMatchCore) Cancel()

func (*RuntimeLuaMatchCore) Label added in v2.3.0

func (r *RuntimeLuaMatchCore) Label() string

func (*RuntimeLuaMatchCore) MatchInit added in v2.1.0

func (r *RuntimeLuaMatchCore) MatchInit(presenceList *MatchPresenceList, deferMessageFn RuntimeMatchDeferMessageFunction, params map[string]interface{}) (interface{}, int, error)

func (*RuntimeLuaMatchCore) MatchJoin added in v2.1.0

func (r *RuntimeLuaMatchCore) MatchJoin(tick int64, state interface{}, joins []*MatchPresence) (interface{}, error)

func (*RuntimeLuaMatchCore) MatchJoinAttempt added in v2.1.0

func (r *RuntimeLuaMatchCore) MatchJoinAttempt(tick int64, state interface{}, userID, sessionID uuid.UUID, username, node string, metadata map[string]string) (interface{}, bool, string, error)

func (*RuntimeLuaMatchCore) MatchLeave added in v2.1.0

func (r *RuntimeLuaMatchCore) MatchLeave(tick int64, state interface{}, leaves []*MatchPresence) (interface{}, error)

func (*RuntimeLuaMatchCore) MatchLoop added in v2.1.0

func (r *RuntimeLuaMatchCore) MatchLoop(tick int64, state interface{}, inputCh <-chan *MatchDataMessage) (interface{}, error)

func (*RuntimeLuaMatchCore) MatchTerminate added in v2.1.0

func (r *RuntimeLuaMatchCore) MatchTerminate(tick int64, state interface{}, graceSeconds int) (interface{}, error)

type RuntimeLuaModule added in v2.1.0

type RuntimeLuaModule struct {
	Name    string
	Path    string
	Content []byte
}

type RuntimeLuaModuleCache added in v2.1.0

type RuntimeLuaModuleCache struct {
	Names   []string
	Modules map[string]*RuntimeLuaModule
}

func (*RuntimeLuaModuleCache) Add added in v2.1.0

type RuntimeLuaNakamaModule added in v2.1.0

type RuntimeLuaNakamaModule struct {
	// contains filtered or unexported fields
}

func NewRuntimeLuaNakamaModule added in v2.1.0

func NewRuntimeLuaNakamaModule(logger *zap.Logger, db *sql.DB, jsonpbUnmarshaler *jsonpb.Unmarshaler, config Config, socialClient *social.Client, leaderboardCache LeaderboardCache, rankCache LeaderboardRankCache, leaderboardScheduler LeaderboardScheduler, sessionRegistry SessionRegistry, matchRegistry MatchRegistry, tracker Tracker, streamManager StreamManager, router MessageRouter, once *sync.Once, localCache *RuntimeLuaLocalCache, matchCreateFn RuntimeMatchCreateFunction, registerCallbackFn func(RuntimeExecutionMode, string, *lua.LFunction), announceCallbackFn func(RuntimeExecutionMode, string)) *RuntimeLuaNakamaModule

func (*RuntimeLuaNakamaModule) Loader added in v2.1.0

func (n *RuntimeLuaNakamaModule) Loader(l *lua.LState) int

type RuntimeMatchCore added in v2.1.0

type RuntimeMatchCore interface {
	MatchInit(presenceList *MatchPresenceList, deferMessageFn RuntimeMatchDeferMessageFunction, params map[string]interface{}) (interface{}, int, error)
	MatchJoinAttempt(tick int64, state interface{}, userID, sessionID uuid.UUID, username, node string, metadata map[string]string) (interface{}, bool, string, error)
	MatchJoin(tick int64, state interface{}, joins []*MatchPresence) (interface{}, error)
	MatchLeave(tick int64, state interface{}, leaves []*MatchPresence) (interface{}, error)
	MatchLoop(tick int64, state interface{}, inputCh <-chan *MatchDataMessage) (interface{}, error)
	MatchTerminate(tick int64, state interface{}, graceSeconds int) (interface{}, error)
	Label() string
	Cancel()
}

func NewRuntimeGoMatchCore added in v2.1.0

func NewRuntimeGoMatchCore(logger *zap.Logger, matchRegistry MatchRegistry, router MessageRouter, id uuid.UUID, node string, db *sql.DB, env map[string]string, nk runtime.NakamaModule, match runtime.Match) (RuntimeMatchCore, error)

func NewRuntimeLuaMatchCore added in v2.1.0

func NewRuntimeLuaMatchCore(logger *zap.Logger, db *sql.DB, jsonpbUnmarshaler *jsonpb.Unmarshaler, config Config, socialClient *social.Client, leaderboardCache LeaderboardCache, rankCache LeaderboardRankCache, leaderboardScheduler LeaderboardScheduler, sessionRegistry SessionRegistry, matchRegistry MatchRegistry, tracker Tracker, streamManager StreamManager, router MessageRouter, stdLibs map[string]lua.LGFunction, once *sync.Once, localCache *RuntimeLuaLocalCache, goMatchCreateFn RuntimeMatchCreateFunction, id uuid.UUID, node string, name string) (RuntimeMatchCore, error)

type RuntimeMatchCreateFunction added in v2.1.0

type RuntimeMatchCreateFunction func(ctx context.Context, logger *zap.Logger, id uuid.UUID, node string, name string) (RuntimeMatchCore, error)

type RuntimeMatchDeferMessageFunction added in v2.3.0

type RuntimeMatchDeferMessageFunction func(msg *DeferredMessage) error

type RuntimeMatchmakerMatchedFunction added in v2.1.0

type RuntimeMatchmakerMatchedFunction func(ctx context.Context, entries []*MatchmakerEntry) (string, bool, error)

type RuntimeProviderLua added in v2.1.0

type RuntimeProviderLua struct {
	// contains filtered or unexported fields
}

func (*RuntimeProviderLua) AfterReq added in v2.1.0

func (rp *RuntimeProviderLua) AfterReq(ctx context.Context, id string, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, res interface{}, req interface{}) error

func (*RuntimeProviderLua) AfterRt added in v2.1.0

func (rp *RuntimeProviderLua) AfterRt(ctx context.Context, id string, logger *zap.Logger, userID, username string, expiry int64, sessionID, clientIP, clientPort string, envelope *rtapi.Envelope) error

func (*RuntimeProviderLua) BeforeReq added in v2.1.0

func (rp *RuntimeProviderLua) BeforeReq(ctx context.Context, id string, logger *zap.Logger, userID, username string, expiry int64, clientIP, clientPort string, req interface{}) (interface{}, error, codes.Code)

func (*RuntimeProviderLua) BeforeRt added in v2.1.0

func (rp *RuntimeProviderLua) BeforeRt(ctx context.Context, id string, logger *zap.Logger, userID, username string, expiry int64, sessionID, clientIP, clientPort string, envelope *rtapi.Envelope) (*rtapi.Envelope, error)

func (*RuntimeProviderLua) Get added in v2.1.0

func (*RuntimeProviderLua) LeaderboardReset added in v2.1.0

func (rp *RuntimeProviderLua) LeaderboardReset(ctx context.Context, leaderboard runtime.Leaderboard, reset int64) error

func (*RuntimeProviderLua) MatchmakerMatched added in v2.1.0

func (rp *RuntimeProviderLua) MatchmakerMatched(ctx context.Context, entries []*MatchmakerEntry) (string, bool, error)

func (*RuntimeProviderLua) Put added in v2.1.0

func (rp *RuntimeProviderLua) Put(r *RuntimeLua)

func (*RuntimeProviderLua) Rpc added in v2.1.0

func (rp *RuntimeProviderLua) Rpc(ctx context.Context, id string, queryParams map[string][]string, userID, username string, expiry int64, sessionID, clientIP, clientPort, payload string) (string, error, codes.Code)

func (*RuntimeProviderLua) TournamentEnd added in v2.1.0

func (rp *RuntimeProviderLua) TournamentEnd(ctx context.Context, tournament *api.Tournament, end, reset int64) error

func (*RuntimeProviderLua) TournamentReset added in v2.1.0

func (rp *RuntimeProviderLua) TournamentReset(ctx context.Context, tournament *api.Tournament, end, reset int64) error

type RuntimeRpcFunction added in v2.1.0

type RuntimeRpcFunction func(ctx context.Context, queryParams map[string][]string, userID, username string, expiry int64, sessionID, clientIP, clientPort, payload string) (string, error, codes.Code)

type RuntimeTournamentEndFunction added in v2.1.0

type RuntimeTournamentEndFunction func(ctx context.Context, tournament *api.Tournament, end, reset int64) error

type RuntimeTournamentResetFunction added in v2.1.0

type RuntimeTournamentResetFunction func(ctx context.Context, tournament *api.Tournament, end, reset int64) error

type Scannable added in v2.1.0

type Scannable interface {
	Scan(dest ...interface{}) error
}

Interface to help utility functions accept either *sql.Row or *sql.Rows for scanning one row at a time.

type Session

type Session interface {
	Logger() *zap.Logger
	ID() uuid.UUID
	UserID() uuid.UUID
	ClientIP() string
	ClientPort() string

	Context() context.Context

	Username() string
	SetUsername(string)

	Expiry() int64
	Consume(func(logger *zap.Logger, session Session, envelope *rtapi.Envelope) bool)

	Format() SessionFormat
	Send(isStream bool, mode uint8, envelope *rtapi.Envelope) error
	SendBytes(isStream bool, mode uint8, payload []byte) error

	Close(reason string)
}

func NewSessionWS

func NewSessionWS(logger *zap.Logger, config Config, format SessionFormat, userID uuid.UUID, username string, expiry int64, clientIP string, clientPort string, jsonpbMarshaler *jsonpb.Marshaler, jsonpbUnmarshaler *jsonpb.Unmarshaler, conn *websocket.Conn, sessionRegistry SessionRegistry, matchmaker Matchmaker, tracker Tracker, runtime *Runtime) Session

type SessionConfig

type SessionConfig struct {
	EncryptionKey  string `yaml:"encryption_key" json:"encryption_key" usage:"The encryption key used to produce the client token."`
	TokenExpirySec int64  `yaml:"token_expiry_sec" json:"token_expiry_sec" usage:"Token expiry in seconds."`
}

SessionConfig is configuration relevant to the session.

func NewSessionConfig

func NewSessionConfig() *SessionConfig

NewSessionConfig creates a new SessionConfig struct.

type SessionFormat

type SessionFormat uint8
const (
	SessionFormatJson SessionFormat = iota
	SessionFormatProtobuf
)

type SessionRegistry

type SessionRegistry interface {
	Stop()
	Count() int
	Get(sessionID uuid.UUID) Session
	Add(session Session)
	Remove(sessionID uuid.UUID)
	Disconnect(ctx context.Context, sessionID uuid.UUID, node string) error
}

func NewLocalSessionRegistry added in v2.4.0

func NewLocalSessionRegistry() SessionRegistry

type SocialConfig

type SocialConfig struct {
	Steam *SocialConfigSteam `yaml:"steam" json:"steam" usage:"Steam configuration."`
}

SocialConfig is configuration relevant to the social authentication providers.

func NewSocialConfig

func NewSocialConfig() *SocialConfig

NewSocialConfig creates a new SocialConfig struct.

type SocialConfigSteam

type SocialConfigSteam struct {
	PublisherKey string `yaml:"publisher_key" json:"publisher_key" usage:"Steam Publisher Key value."`
	AppID        int    `yaml:"app_id" json:"app_id" usage:"Steam App ID."`
}

SocialConfigSteam is configuration relevant to Steam

type SocketConfig

type SocketConfig struct {
	ServerKey            string            `yaml:"server_key" json:"server_key" usage:"Server key to use to establish a connection to the server."`
	Port                 int               ``                  /* 154-byte string literal not displayed */
	Address              string            ``                  /* 156-byte string literal not displayed */
	Protocol             string            ``                  /* 198-byte string literal not displayed */
	MaxMessageSizeBytes  int64             ``                  /* 201-byte string literal not displayed */
	ReadTimeoutMs        int               ``                  /* 145-byte string literal not displayed */
	WriteTimeoutMs       int               ``                  /* 157-byte string literal not displayed */
	IdleTimeoutMs        int               ``                  /* 178-byte string literal not displayed */
	WriteWaitMs          int               ``                  /* 156-byte string literal not displayed */
	PongWaitMs           int               ``                  /* 156-byte string literal not displayed */
	PingPeriodMs         int               ``                  /* 204-byte string literal not displayed */
	PingBackoffThreshold int               ``                  /* 293-byte string literal not displayed */
	OutgoingQueueSize    int               ``                  /* 245-byte string literal not displayed */
	SSLCertificate       string            ``                  /* 192-byte string literal not displayed */
	SSLPrivateKey        string            ``                  /* 192-byte string literal not displayed */
	CertPEMBlock         []byte            `yaml:"-" json:"-"` // Created by fully reading the file contents of SSLCertificate, not set from input args directly.
	KeyPEMBlock          []byte            `yaml:"-" json:"-"` // Created by fully reading the file contents of SSLPrivateKey, not set from input args directly.
	TLSCert              []tls.Certificate `yaml:"-" json:"-"` // Created by processing CertPEMBlock and KeyPEMBlock, not set from input args directly.
}

SocketConfig is configuration relevant to the transport socket and protocol.

func NewSocketConfig

func NewSocketConfig() *SocketConfig

NewTransportConfig creates a new TransportConfig struct.

type StatusHandler added in v2.4.2

type StatusHandler interface {
	GetStatus(ctx context.Context) ([]*console.StatusList_Status, error)
}

func NewLocalStatusHandler added in v2.4.2

func NewLocalStatusHandler(logger *zap.Logger, sessionRegistry SessionRegistry, matchRegistry MatchRegistry, tracker Tracker, metricsExporter *MetricsExporter, node string) StatusHandler

type StorageOpDelete added in v2.5.0

type StorageOpDelete struct {
	OwnerID  string
	ObjectID *api.DeleteStorageObjectId
}

type StorageOpDeletes added in v2.5.0

type StorageOpDeletes []*StorageOpDelete

Internal representation for a batch of storage delete operations.

func (StorageOpDeletes) Len added in v2.5.0

func (s StorageOpDeletes) Len() int

func (StorageOpDeletes) Less added in v2.5.0

func (s StorageOpDeletes) Less(i, j int) bool

func (StorageOpDeletes) Swap added in v2.5.0

func (s StorageOpDeletes) Swap(i, j int)

type StorageOpWrite added in v2.5.0

type StorageOpWrite struct {
	OwnerID string
	Object  *api.WriteStorageObject
}

type StorageOpWrites added in v2.5.0

type StorageOpWrites []*StorageOpWrite

Internal representation for a batch of storage write operations.

func (StorageOpWrites) Len added in v2.5.0

func (s StorageOpWrites) Len() int

func (StorageOpWrites) Less added in v2.5.0

func (s StorageOpWrites) Less(i, j int) bool

func (StorageOpWrites) Swap added in v2.5.0

func (s StorageOpWrites) Swap(i, j int)

type StreamManager added in v2.4.0

type StreamManager interface {
	UserKick(userID, sessionID uuid.UUID, node string, stream PresenceStream) error
}

func NewLocalStreamManager added in v2.4.0

func NewLocalStreamManager(config Config, sessionRegistry SessionRegistry, tracker Tracker) StreamManager

type Tracker

type Tracker interface {
	SetMatchJoinListener(func(id uuid.UUID, joins []*MatchPresence))
	SetMatchLeaveListener(func(id uuid.UUID, leaves []*MatchPresence))
	Stop()

	// Track returns success true/false, and new presence true/false.
	Track(sessionID uuid.UUID, stream PresenceStream, userID uuid.UUID, meta PresenceMeta, allowIfFirstForSession bool) (bool, bool)
	Untrack(sessionID uuid.UUID, stream PresenceStream, userID uuid.UUID)
	UntrackAll(sessionID uuid.UUID)
	// Update returns success true/false - will only fail if the user has no presence and allowIfFirstForSession is false, otherwise is an upsert.
	Update(sessionID uuid.UUID, stream PresenceStream, userID uuid.UUID, meta PresenceMeta, allowIfFirstForSession bool) bool

	// Remove all presences on a stream, effectively closing it.
	UntrackByStream(stream PresenceStream)
	// Remove all presences on a stream from the local node.
	UntrackLocalByStream(stream PresenceStream)

	// List the nodes that have at least one presence for the given stream.
	ListNodesForStream(stream PresenceStream) map[string]struct{}

	// Check if a stream exists (has any presences) or not.
	StreamExists(stream PresenceStream) bool
	// Get current total number of presences.
	Count() int
	// Get the number of presences in the given stream.
	CountByStream(stream PresenceStream) int
	// Get a snapshot of current presence counts for streams with one of the given stream modes.
	CountByStreamModeFilter(modes map[uint8]*uint8) map[*PresenceStream]int32
	// Check if a single presence on the current node exists.
	GetLocalBySessionIDStreamUserID(sessionID uuid.UUID, stream PresenceStream, userID uuid.UUID) *PresenceMeta
	// Check if a single presence on any node exists.
	GetBySessionIDStreamUserID(node string, sessionID uuid.UUID, stream PresenceStream, userID uuid.UUID) *PresenceMeta
	// List presences by stream, optionally include hidden ones and not hidden ones.
	ListByStream(stream PresenceStream, includeHidden bool, includeNotHidden bool) []*Presence

	// Fast lookup of local session IDs to use for message delivery.
	ListLocalSessionIDByStream(stream PresenceStream) []uuid.UUID
	// Fast lookup of node + session IDs to use for message delivery.
	ListPresenceIDByStream(stream PresenceStream) []*PresenceID
}

func StartLocalTracker

func StartLocalTracker(logger *zap.Logger, config Config, sessionRegistry SessionRegistry, jsonpbMarshaler *jsonpb.Marshaler) Tracker

type TrackerConfig added in v2.3.0

type TrackerConfig struct {
	EventQueueSize int `` /* 210-byte string literal not displayed */
}

TrackerConfig is configuration relevant to the presence tracker.

func NewTrackerConfig added in v2.3.0

func NewTrackerConfig() *TrackerConfig

NewTrackerConfig creates a new TrackerConfig struct.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL