Release 6.0.0
Version 6.0.0 has been released (also available on nuget)
Breaking Changes (oof):
- All members of
ArchiepalgoSession
are now provided as interfaces to improve unit testabilityReceivedItemsHelper
>IReceivedItemsHelper
LocationCheckHelper
>ILocationCheckHelper
PlayerHelper
>IPlayerHelper
DataStorageHelper
>IDataStorageHelper
ConnectionInfoHelper
>IConnectionInfoProvider
RoomStateHelper
>IRoomStateHelper
MessageLogHelper
>IMessageLogHelper
- Support for older servers that use version based data packages is completely dropped
- DataStorage callbacks, both
session.DataStorage["key"].OnValueChanged()
aswel assession.DataStorage["key"] += Callback.Add()
have received an additional arguments parameter- The parameter of type
Dictionary<string, JToken>
contains any additional arguments that where send to the server when the corresponding datastorage operation was ran
- The parameter of type
session.DataStorage
now has support forBigInterger
on .Net Framework 4.0 and higher- Changes to LocationCheckHelper:
ScoutLocationsAsync()
now returns anDictionary<long, ScoutedItemInfo>
GetLocationNameFromId()
now has an additional optional games argument to specify the game to lookup the id in- game defaults to null where it will look into the game currently connected as
- Changes to ReceivedItemsHelper:
GetItemName()
now has an additional optional games argument to specify the game to lookup the id in- game defaults to null where it will look into the game currently connected as
.AllItemsReceived
now returns aReadOnlyCollection<ItemInfo>
rather thanReadOnlyCollection<NetworkItem>
.PeekItem()
and.DequeueItem
now has return a typeItemInfo
rather thanNetworkItem
- This means that when there is no item to in the queue, it will return null rather then an default struct
ItemSendLogMessage
and its descendantsHintItemSendLogMessage
&ItemCheatLogMessage
propertyItem
changed type toItemInfo
rather thanNetworkItem
- Removal of previusly deprecated stuff:
ReceivingPlayerSlot
andSendingPlayerSlot
onItemSendLogMessage
,HintItemSendLogMessage
have been removedRoomInfoPacket.DataPackageVersions
has been removed- Datastorage operation
<<
and>>
have been removed
New Features:
- Support added for overlapping id's in datapackage
- Api documentation is now available on https://archipelagomw.github.io/Archipelago.MultiClient.Net/index.html
- New methods on
ArchipelagoSession
so the client can avoid usingsession.socket.SendPacket
Say()
send a message on behalf of the playerSetGoalAchieved()
mark the current slot as completedSetClientState()
update the status of the current client
ScoutLocationsAsync
has a new overload with anHintCreationPolicy
that allows the creation of hints that only get broadcasted onceItemInfo
is now used in instead ofNetworkItem
,- its now a
class
rather thanstruct
- this means the default value will be
null
rather then an default empty struct - this also means it can nolonger be implicitly compared
itemA == itemB
- this means the default value will be
- it provides properties to easily resolve names:
.ItemName
,.LocationName
,.ItemDisplayName
,.LocationDisplayName
- it provides properties to access the associated games:
.ItemGame
,.LocationGame
- its now a
- New readonly datastorage methods have been added:
session.DataStorage.GetLocationNameGroups()
to look up location name groupssession.DataStorage.GetClientStatus()
to look up the status of a specific slotsession.DataStorage.TrackClientStatus()
to keep track of changes to a specific slot
- New datastorage opperations have been added:
+ Operation.Floor()
- round the data storage value down to the nearest integer+ Operation.Ceiling()
- rounds the data storage value up to the nearest integer+ AdditionalArgument.Add()
- Allows addition arguments to be added to an data storage operation
- Improved error reporting on websockets for clients running .Net Framework 4.5 or higher, it will now fire the
session.Socket.ErrorReceived
with the issues encountered during connection- The same change was made to the .Net framework 3.5 or 4.0 but it still doesn't seem report anything
PlayerHelper
now has aGetPlayerInfo()
to easily retrieve information about a specific slotPlayerInfo
now implicitly convert to an integer of its slotid, (so it can be used inplace of a slotId)GeneratorVersion
is now available for reading on thesession.RoomStateHelper
ItemMessagePart
andLocationMessagePart
now contain a.Player
property
Changes:
- Clients that use .Net framework 4.0 or 4.5 version of the library will now use a more framework appropriate version of newtonsoft.json (previously they used the 3.5 version)
session.CompleteLocationChecks()
will now fully ignore location id's that aren't part of your current multiworld
Fixes:
HintCosts
are now properly calculated and available on thesession.RoomStateHelper
- DataPackage contents are now also accepted if they are only partly loaded
.IsRelatedToActivePlayer
on log messages should now work, if not plz let me know in more details to further investigateCompleteLocationChecksAsync()
will now wait until the message is published to the websocket