Skip to content

Releases: sliekens/gw2sdk

v2.0.0

08 Dec 13:31
Compare
Choose a tag to compare

Highlights

With the release of .NET 9, it's time for a major version bump.
This release marks the end of support for .NET 6 and .NET 7.

Hint: you can technically still use GW2SDK in .NET 5, 6 or 7, but you will get the
.NET Standard 2.0 assembly which has worse performance.

Upgrade to .NET 8+ to keep enjoying the best performance.

In other news, JSON serialization of Item objects with JsonSerializer.Serialize(Item)
and JsonSerializer.Deserialize<Item>(string) now requires zero configuration.
This change should make it easier to create a local copy of the items on disk, formatted as JSON.

(Support for other object types is considered for a future release.)

Breaking changes

Skills:

Miscellaneous:

  • Enum.TryFormat will no longer be available in .NET 6 or 7

New features

Items:

  • Added bespoke JSON converters for Item objects graphs.

Miscellaneous:

  • Added bespoke JSON converters for enums and Extensible<TEnum>
  • Added Gold, Silver and Copper properties to Coin
    • e.g. new Coin(12345) now has Gold = 1, Silver = 23 and Copper = 45

Bug fixes

AOT compatibility:

  • Added a missing DynamicallyAccessedMembersAttribute to class Flags

Full Changelog: v1.4.1...v2.0.0
Previous release notes: https://github.com/sliekens/gw2sdk/releases/tag/v1.4.1

v1.4.1

14 Nov 19:47
Compare
Choose a tag to compare

Highlights

Fixed an issue where an already-disposed semaphore object might be accessed.

Bugfixes

When using break or return to exit an await foreach loop, the associated CancellationToken is not necessarily canceled, and already-started tasks continue to run after dependencies are disposed. For bulk query methods, in-flight HTTP requests may run to completion and then attempt to call Release() on a disposed SemaphoreSlim object, which may show up in logs as an unhandled ObjectDisposedException. In this release, the call to Release() is skipped when the object is already disposed.

Full Changelog: v1.4.0...v1.4.1
Previous release notes: https://github.com/sliekens/gw2sdk/releases/tag/v1.4.0

v1.4.0

05 Nov 20:21
Compare
Choose a tag to compare

Highlights

Add support for guild mission logs.

New features

Guild log:

  • Added class GuildMission
  • Added enum GuildMissionState

Full Changelog: v1.3.0...v1.4.0
Previous release notes: https://github.com/sliekens/gw2sdk/releases/tag/v1.3.0

v1.3.0

03 Nov 16:32
Compare
Choose a tag to compare

Highlights

This release changes markup colors to the color values used in the game, while also adding the ability to override the colors.
Check out the updated documentation.

New features

Markup:

  • Added class MarkupConverter to make it easier to work with MarkupTextConverter and MarkupHtmlConverter
  • Added MarkupColorName.DefaultColorMap with color values picked from the game
  • Added an overload for MarkupHtmlConverter.Convert that accepts a custom color map
  • Improved the performance of the converters

Full Changelog: v1.2.0...v1.3.0
Previous release notes: https://github.com/sliekens/gw2sdk/releases/tag/v1.2.0

v1.2.0

23 Oct 16:30
Compare
Choose a tag to compare

This release adds functionality for converting the markup language used to format text in the game.

Highlights

Converting the Guild Wars 2 markup language to plain text or to HTML is now supported, and low level constructs are provided for adding support for other UI frameworks. Read more about it in the documentation.

The documentation site now uses the DocFX modern template since the previous template was no longer actively developed.

New features

Markup:

  • Added MarkupTextConverter to remove all formatting from a string that contains markup
  • Added MarkupHtmlConverter to convert the markup to HTML for rendering to a web view

Guilds:

  • Added InfluenceActivityKind.DailyLogin to guild log activities
  • Added workaround for guild upgrade logs where the API sometimes returns "complete" instead of "completed"

Full Changelog: v1.1.2...v1.2.0
Previous release notes: https://github.com/sliekens/gw2sdk/releases/tag/v1.1.2

v1.1.2

13 Oct 00:43
Compare
Choose a tag to compare

Bug fixes

Guilds:

  • Made property upgrade_id optional for upgrade logs

Full Changelog: v1.1.1...v1.1.2
Previous release notes: https://github.com/sliekens/gw2sdk/releases/tag/v1.1.1

v1.1.1

11 Oct 12:54
Compare
Choose a tag to compare

In this patch, the minimum version of System.Text.Json was increased to 8.0.5 because of a vulnerability (GHSA-8g4q-xg66-9fp4).

In System.Text.Json 6.0.x and 8.0.x, applications which deserialize input to a model with an [ExtensionData] property can be vulnerable to an algorithmic complexity attack resulting in Denial of Service.

Note that GW2SDK itself does not deserialize user input, nor does it use [ExtensionData] for deserializing API output, so it is not directly vulnerable to an attack. However, a class library should not introduce transitive dependencies with known vulnerabilities into a solution, so I am pushing this update now.

Full Changelog: v1.1.0...v1.1.1
Previous release notes: https://github.com/sliekens/gw2sdk/releases/tag/v1.1.0

v1.1.0

05 Oct 13:52
Compare
Choose a tag to compare

This release is packed with new features, adding support for new content such as WvW guilds, terrestrial spears and homesteads.

Highlights

WvW restructuring: you can now retrieve lists of participating guilds and their team assignment, timers for guild selection lockout and team assignment, as well as the player's selected WvW guild and assigned team.

Homesteads: you can now retrieve homestead decorations and glyphs, as well as the player's unlocked decorations and equipped glyphs.

Spears: terrestrial spears are now supported in build template chat links.

The guidance for adding resilience with Polly was updated to fix some errors

New features

Account:

  • Added the ability to check if an account has unlocked SecretsOfTheObscure and JanthirWilds

Chat links:

  • Added support for terrestrial spears to build template links
  • Added convenience method ItemLink.GetSkinLink
  • Added convenience method ItemLink.GetSuffixItemLink
  • Added convenience method ItemLink.GetSecondarySuffixItemLink
  • Removed braces from chat links in debugger displays for easier copying

Homesteads:

  • Added the ability to retrieve homestead decorations and glyphs
  • Added the ability to retrieve the player's unlocked decorations (with quantities)
  • Added the ability to retrieve the player's equipped homestead glyphs

WvW

  • Added the ability to retrieve WvW guilds and their team assignment by server (NA or EU)
  • Added the ability to retrieve timers for the next lockout and team assignment
  • Added the ability to retrieve the player's selected WvW guild and assigned team
  • Added the ability to create subtokens with Wvw permission for limiting access to this feature

Bug fixes

Guilds:

  • Made property declined_by optional for invite_declined logs

Misc:

  • Fixed incorrect handling of unknown enum values. IsDefined should no longer return true for such values and ToEnum should now return null instead of the default enum value.

Full Changelog: v1.0.1...v1.1.0
Previous release notes: https://github.com/sliekens/gw2sdk/releases/tag/v1.0.1

v1.0.1

07 Jul 00:17
Compare
Choose a tag to compare

This release contains performance improvements and bug fixes.

Bug fixes

  • Fixed a crash that occurs with .NET Framework when a query exceeds 1024 characters. This bug affected endpoints like GetItemsByIds, where the URL can get pretty long when 200 comma-separated ids are specified.
  • Fixed a wrong error message when JSON parsing of container items fails
  • Fixed a potential crash when parsing WvW matches after the weekly reset when map_scores are blank

Performance improvements

  • Introduced ThrowHelper which results in smaller IL code than direct throw

Private API changes

  • QueryBuilder is public for technical reasons, not meant to be used directly
  • QueryBuilder.Add overloads for numbers and collection types were removed

Full Changelog: v1.0.0...v1.0.1
Previous release notes: https://github.com/sliekens/gw2sdk/releases/tag/v1.0.0

v1.0.0

20 May 18:07
Compare
Choose a tag to compare

I am thrilled to announce the first official release of GW2SDK!

The SDK now offers a robust set of features for interacting with the Guild Wars 2 API and game client. All planned features are now complete, reviewed, tested, documented and optimized for extreme performance, without sacrificing ease of use.

Highlights

I added support for weapon skill overrides to chat links for build templates. This is used for Ranger builds that utilize Unleashed hammer skills.

I removed unnecessary NuGet dependencies, which could otherwise pollute your solution with unwanted packages. The only required dependency is System.Text.Json. For legacy .NET Framework projects, there is an additional dependency on System.Runtime.InteropServices.RuntimeInformation.

Enjoy!

Full Changelog: v1.0.0-rc.3...v1.0.0