Releases: heroiclabs/nakama-dotnet
Releases · heroiclabs/nakama-dotnet
v3.5.0
Notable changes
Added
- Ability to persist Apple, Huawei, and Google purchase receipts in the Nakama database. This is set to
true
by default in order to allow the server to detect replay attacks. - Add a
SeenBefore
property toIApiValidatedPurchase
. - Add
ListSubscriptionsAsync
which returns a list of the user's subscriptions. - Add
ValidateSubscriptionAppleAsync
which returns details about a user's Apple subscription. - Add
ValidateSubscriptionGoogleAsync
which returns details about a user's Google subscription. - Add
GetSubscriptionAsync
which returns a subscription for the provided product ID. - Add support for
countMultiple
inAddMatchmakerAsync
andAddMatchmakerPartyAsync
.
Changed
ValidatedPurchaseEnvironment
has been renamed toApiStoreEnvironment
.ValidatedPurchaseStore
has been renamed toApiStoreProvider
.- Removed obsolete client methods that accept a
CancellationTokenSource
. These have been replaced in favor of methods that accept aCancellationToken
that were added in v3.3.
Fixed
- Fix an issue with
SocketClosed
event taking a significant length of time or not firing at all when internet connection is lost. - Fix an issue that would occur when sending messages over the socket from multiple threads.
- Fix automatic retry seeding to be random across devices.
- Fix an issue when parsing unquoted numbers as strings in our bundled TinyJson dependency.
v3.4.0
Notable changes
Added
- Allow max message size limit with socket messages to be overridden in the adapter.
- Relayed multiplayer matches can now be created with a custom name (i.e. room name).
Fixed
- Fix background read loop to update 'IsConnecting' and 'IsConnected' when close is detected.
v3.3.0
Notable changes
Added
- Add overload methods in Client which take a CancellationToken. Thanks @gamecentric.
- Add WebSocketStdlibAdapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.
Changed
- Use DualMode in TcpClient to handle NAT64 overlay networks (some mobile carriers).
- Refactor the socket adapter design to use Tasks (previously avoided for Unity WebGL compat.).
- Socket messages which exceed the internal buffer size now generate an "InternalBufferOverflowException" type.
- A socket connect made on an already connected socket will no longer raise an exception.
- Propagate up the "WebSocketException" type thrown on socket messages sent over a disconnected socket.
- Update bundled "Ninja.WebSockets" library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.
Fixed
- Expose base exception if retry handler fails.
v3.2.0
Added
- Added additional group listing filters.
- Added ability to overwrite leaderboard/tournament ranking operators from the client.
Fixed
- Fixed url-safe encoding of query params that were passed to the client as arrays of strings.
v3.1.1
Changed
- Removed
autoRefreshSession
from overloadedClient
constructors. This can still be customized with the baseClient
constructor. This is a workaround for an internal compiler error in Unity's WebGL toolchain.
v3.1.0
Added
- Added ability for user to retry requests if they fail due to a transient network error.
- Added ability for user to cancel requests that are in-flight.
v3.0.0
Added
- The language tag for the user can be configured with the socket on connect.
Changed
- An
IPartyMatchmakerTicket
is now received by the party leader when they add their party to the matchmaker viaAddMatchmakerPartyAsync
. - Renamed
PromotePartyMember
toPromotePartyMemberAsync
.
v2.9.3
Fixed
- Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.
v2.9.2
Notable changes
Fixed
- Fixed issue where
IUserPresence
objects were not deserialized by the client as part of theIParty
object.
v2.9.1
Notable changes
Added
- The
Socket.ReceivedParty
event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.