NakamaGrpcClient class

Base class for communicating with Nakama via gRPC. NakamaGrpcClient abstracts the gRPC calls and handles authentication for you.

Inheritance

Constructors

NakamaGrpcClient({required String host, int port = 7349, required bool ssl, required String serverKey})
NakamaGrpcClient.init({String? host, String? serverKey, String key = _kDefaultAppKey, int port = 7349, bool ssl = false})
Either inits and returns a new instance of NakamaGrpcClient or returns a already initialized one.
factory

Properties

hashCode int
The hash code for this object.
no setterinherited
host String
The host address of the server.
final
port int
The port number of the server. Defaults to 7349
final
rawGrpcClient → NakamaClient
This method returns the original generated gPRC client, usually there might be no use case for direct access. Use with cation, API can change every time.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
serverKey String
The key used to authenticate with the server without a session. Defaults to "defaultkey".
latefinal
ssl bool
final

Methods

addFriends({required Session session, List<String>? usernames, List<String>? ids}) Future<void>
Adding friends
override
addGroupUsers({required Session session, required String groupId, required Iterable<String> userIds}) Future<void>
Accepting join requests
override
authenticateApple({required String token, bool create = true, String? username, Map<String, String>? vars}) Future<Session>
override
authenticateCustom({required String id, bool create = true, String? username, Map<String, String>? vars}) Future<Session>
Custom authentication
override
authenticateDevice({required String deviceId, bool create = true, String? username, Map<String, String>? vars}) Future<Session>
Device authentication
override
authenticateEmail({String? email, String? username, required String password, bool create = false, Map<String, String>? vars}) Future<Session>
override
authenticateFacebook({required String token, bool create = true, String? username, Map<String, String>? vars, bool import = false}) Future<Session>
#Facebook authentication
override
authenticateFacebookInstantGame({required String signedPlayerInfo, bool create = true, String? username, Map<String, String>? vars}) Future<Session>
override
authenticateGameCenter({required String playerId, required String bundleId, required int timestampSeconds, required String salt, required String signature, required String publicKeyUrl, bool create = true, String? username, Map<String, String>? vars}) Future<Session>
override
authenticateGoogle({required String token, bool create = true, String? username, Map<String, String>? vars}) Future<Session>
override
authenticateSteam({required String token, bool create = true, String? username, Map<String, String>? vars, bool import = false}) Future<Session>
Authenticate with steam token
override
banGroupUsers({required Session session, required String groupId, required Iterable<String> userIds}) Future<void>
Banning members
override
blockFriends({required Session session, List<String>? usernames, List<String>? ids}) Future<void>
Blocking users
override
createGroup({required Session session, required String name, String? avatarUrl, String? description, String? langTag, int? maxCount, bool? open}) Future<Group>
Creating groups
override
deleteFriends({required Session session, List<String>? usernames, List<String>? ids}) Future<void>
Deleting friends
override
deleteGroup({required Session session, required String groupId}) Future<void>
Deleting groups
override
deleteLeaderboardRecord({required Session session, required String leaderboardName}) Future<void>
Deleting records
override
deleteNotifications({required Session session, required Iterable<String> notificationIds}) Future<void>
Deleting notifications
override
deleteStorageObject({required Session session, required Iterable<StorageObjectId> objectIds}) Future<void>
override
demoteGroupUsers({required Session session, required String groupId, required Iterable<String> userIds}) Future<void>
Demoting members
override
getAccount(Session session) Future<Account>
Get the user account
override
getUsers({required Session session, List<String>? facebookIds, List<String>? ids, List<String>? usernames}) Future<List<User>>
Getting users
override
joinGroup({required Session session, required String groupId}) Future<void>
Joining a group
override
joinTournament({required Session session, required String tournamentId}) Future<void>
Joining tournaments
override
kickGroupUsers({required Session session, required String groupId, required Iterable<String> userIds}) Future<void>
Kicking members
override
leaveGroup({required Session session, required String groupId}) Future<void>
Leaving groups
override
linkApple({required Session session, required String token, Map<String, String>? vars}) Future<void>
override
linkCustom({required Session session, required String id, Map<String, String>? vars}) Future<void>
Link custom authentication
override
linkDevice({required Session session, required String deviceId, Map<String, String>? vars}) Future<void>
Linking Device ID authentication
override
linkEmail({required Session session, required String email, required String password, Map<String, String>? vars}) Future<void>
Linking E-Mail authentication
override
linkFacebook({required Session session, required String token, bool import = false, Map<String, String>? vars}) Future<void>
Linking Facebook authentication
override
linkFacebookInstantGame({required Session session, required String signedPlayerInfo, Map<String, String>? vars}) Future<void>
override
linkGameCenter({required Session session, required String playerId, required String bundleId, required int timestampSeconds, required String salt, required String signature, required String publicKeyUrl, Map<String, String>? vars}) Future<void>
Linking Game Center authentication
override
linkGoogle({required Session session, required String token, Map<String, String>? vars}) Future<void>
Linking Google authentication
override
linkSteam({required Session session, required String token, Map<String, String>? vars, bool import = false}) Future<void>
Linking steam authentication
override
listChannelMessages({required Session session, required String channelId, int limit = 20, bool? forward, String? cursor}) Future<ChannelMessageList>
#Listing message history
override
listFriends({required Session session, FriendshipState? friendshipState, int limit = defaultLimit, String? cursor}) Future<FriendsList>
Listing friends
override
listGroups({required Session session, String? name, String? cursor, String? langTag, int? members, bool? open, int limit = defaultLimit}) Future<GroupList>
Listing and filtering groups
override
listGroupUsers({required Session session, required String groupId, String? cursor, int limit = defaultLimit, GroupMembershipState? state}) Future<GroupUserList>
Listing the user’s groups
override
listLeaderboardRecords({required Session session, required String leaderboardName, List<String>? ownerIds, int limit = 20, String? cursor, DateTime? expiry}) Future<LeaderboardRecordList>
Listing the top records
override
listLeaderboardRecordsAroundOwner({required Session session, required String leaderboardName, required String ownerId, int limit = 20, DateTime? expiry}) Future<LeaderboardRecordList>
override
listMatches({required Session session, bool? authoritative, String? label, int limit = defaultLimit, int? maxSize, int? minSize, String? query}) Future<List<Match>>
Listing matches
override
listNotifications({required Session session, int limit = defaultLimit, String? cursor}) Future<NotificationList>
Listing notifications
override
listStorageObjects({required Session session, String? collection, String? cursor, String? userId, int? limit}) Future<StorageObjectList>
Listing storage objects
override
listTournamentRecords({required Session session, required String tournamentId, Iterable<String>? ownerIds, int? expiry, int limit = defaultLimit, String? cursor}) Future<TournamentRecordList>
Listing records
override
listTournamentRecordsAroundOwner({required Session session, required String tournamentId, required String ownerId, int? expiry, int limit = defaultLimit}) Future<TournamentRecordList>
Listing records around a user**
override
listTournaments({required Session session, int? categoryStart, int? categoryEnd, String? cursor, DateTime? startTime, DateTime? endTime, int limit = defaultLimit}) Future<TournamentList>
Listing tournaments
override
listUserGroups({required Session session, String? cursor, int limit = defaultLimit, GroupMembershipState? state, String? userId}) Future<UserGroupList>
Listing the user’s groups
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
promoteGroupUsers({required Session session, required String groupId, required Iterable<String> userIds}) Future<void>
Promoting members
override
readStorageObject({required Session session, String? collection, String? key, String? userId}) Future<StorageObject?>
Reading storage objects
override
rpc({required Session session, required String id, String? payload}) Future<String?>
override
sessionLogout({required Session session}) Future<void>
Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.
override
sessionRefresh({required Session session, Map<String, String>? vars}) Future<Session>
override
toString() String
A string representation of this object.
inherited
unlinkApple({required Session session, required String token, Map<String, String>? vars}) Future<void>
override
unlinkCustom({required Session session, required String id, Map<String, String>? vars}) Future<void>
override
unlinkDevice({required Session session, required String deviceId, Map<String, String>? vars}) Future<void>
override
unlinkEmail({required Session session, required String email, required String password, Map<String, String>? vars}) Future<void>
override
unlinkFacebook({required Session session, required String token, Map<String, String>? vars}) Future<void>
override
unlinkFacebookInstantGame({required Session session, required String signedPlayerInfo, Map<String, String>? vars}) Future<void>
override
unlinkGameCenter({required Session session, required String playerId, required String bundleId, required int timestampSeconds, required String salt, required String signature, required String publicKeyUrl, Map<String, String>? vars}) Future<void>
override
unlinkGoogle({required Session session, required String token, Map<String, String>? vars}) Future<void>
override
unlinkSteam({required Session session, required String token, Map<String, String>? vars, bool import = false}) Future<void>
override
updateAccount({required Session session, String? username, String? displayName, String? avatarUrl, String? langTag, String? location, String? timezone}) Future<void>
Update the user account
override
updateGroup({required Session session, required String groupId, String? name, String? avatarUrl, String? description, String? langTag, int? maxCount, bool? open}) Future<void>
Update group visibility
override
writeLeaderboardRecord({required Session session, required String leaderboardName, int? score, int? subscore, String? metadata}) Future<LeaderboardRecord>
Submitting scores
override
writeStorageObject({required Session session, String? collection, String? key, String? value, String? version, StorageWritePermission? writePermission, StorageReadPermission? readPermission}) Future<void>
Writing storage objects
override
writeTournamentRecord({required Session session, required String tournamentId, String? metadata, LeaderboardOperator? operator, int? score, int? subscore}) Future<LeaderboardRecord>
Submitting scores
override

Operators

operator ==(Object other) bool
The equality operator.
inherited