Releases: ArchipelagoMW/Archipelago.MultiClient.Net
Releases · ArchipelagoMW/Archipelago.MultiClient.Net
Release 6.3.1
6.3.0
What's Changed
PlayerInfo
's can now be compared on equality (based on team/slot)- New method on
PlayerInfo
to check if a playerIsRelatedTo
a group - New method on
PlayerInfo
retreive all members of a group, if that player represends a group - Add generic overload for
GetSlotData
in DataStorageWrapper by BadMagic in #98 - Fix IsRelatedToActivePlayer logic for itemlink groups by BadMagic in #99
- Added test to prove duplicate item id's inside a single game wont cause any issues
New Contributors
- @BadMagic100 made their first contribution in #98
Full Changelog: 6.2.0...6.3.0
Release 6.2.0
Changed:
- Fixed parsing of longer UTF8 characters past 1kb boundaries on .net 4.5 and higher
- Improved performance of websockets on .net 4.5 and higher
- Location scouts will now filter out non existing locations
- Json parse failures will now raise the Socket's
ErrorReceived
PR's
- fix retrieve typo in DataStorageHelperFixture.cs by @Berserker66 in #94
- fix retrieve typo in ArchipelagoPacketBase.cs by @Berserker66 in #93
- Remove superflous line in LoginAsync by @Berserker66 in #92
- Fix parsing of UTF8 across 1kb boundaries + propagate package parse errors by @Jarno458 in #97
Full Changelog: 6.1.1...6.2.0
Release 6.1.1
- New:
- ItemInfo now has an
ToSerializable()
method to convert its data into anSerializableItemInfo
that can be serialized to json SerializableItemInfo
has anToJson(bool)
to let you convert it into a json string, and an staticFromJson(string, session)
method to convert an json string back into anSerializableItemInfo
- ItemInfo now has an
Release 6.0.1
Changes:
session.ConnectionInfo.Game
is now updated after successfully connecting, with the game of the slot you connected to- This fixes location and item name lookups for games connecting without providing a game
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
Release 6.0.0-rc5
Version 6.0.0 has an release candidate ready for testing, plz give a spin (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
Release 5.0.6
Improved some Tasks handling to fix an exception that was reported
Release 5.0.5
Greatly reduced CPU usage on .net 4.5 and greater thanks to @dariof4 in #79
Reduced errors logged during disconnecting
Full Changelog: 5.0.4...5.0.5
Release 5.0.4
Fixed bug for .Net 3.5 & 4.0 where using session.Socket.Connected
would result in a null reference exception
What's Changed
Full Changelog: 5.0.3...5.0.4