GW2SDK 1.0.0-preview.7
See the version list below for details.
dotnet add package GW2SDK --version 1.0.0-preview.7
NuGet\Install-Package GW2SDK -Version 1.0.0-preview.7
<PackageReference Include="GW2SDK" Version="1.0.0-preview.7" />
paket add GW2SDK --version 1.0.0-preview.7
#r "nuget: GW2SDK, 1.0.0-preview.7"
// Install GW2SDK as a Cake Addin #addin nuget:?package=GW2SDK&version=1.0.0-preview.7&prerelease // Install GW2SDK as a Cake Tool #tool nuget:?package=GW2SDK&version=1.0.0-preview.7&prerelease
About
GW2SDK provides classes for interacting with the Guild Wars 2 API and game client. This package enables you to fetch information about the game, the player's account, PvP seasons, WvW matches and the in-game economy. It also provides realtime information from the game client such as the player's current character and the current map.
Key features
Gw2Client
provides access to the Guild Wars 2 APIGameLink
provides realtime information from the game client (Windows only)
How to use
How to use the Gw2Client
to fetch the current prices of all tradable items in the game:
using System;
using System.Net.Http;
using GuildWars2;
using GuildWars2.Commerce.Prices;
using GuildWars2.Items;
using var httpClient = new HttpClient();
var gw2 = new Gw2Client(httpClient);
PrintHeader();
await foreach (ItemPrice itemPrice in gw2.Commerce.GetItemPricesBulk())
{
Item item = await gw2.Items.GetItemById(itemPrice.Id);
PrintRow(item.Name, itemPrice.BestBid, itemPrice.BestAsk);
}
void PrintHeader()
{
Console.WriteLine(new string('=', 160));
Console.WriteLine($"| {"Item",-50} | {"Highest buyer",-50} | {"Lowest seller",-50} |");
Console.WriteLine(new string('=', 160));
}
void PrintRow(string item, Coin highestBuyer, Coin lowestSeller)
{
Console.WriteLine($"| {item,-50} | {highestBuyer,-50} | {lowestSeller,-50} |");
}
How to use the GameLink
to print the player's name and current map to the console:
using GuildWars2;
using GuildWars2.Exploration.Maps;
if (!GameLink.IsSupported())
{
Console.WriteLine("GameLink is only supported on Windows!");
return;
}
var refreshInterval = TimeSpan.FromSeconds(1);
using var gameLink = GameLink.Open(refreshInterval);
// The game link provides the ID of your current map,
// which you can use to look up the map name from the API
// (Pre-fetch all maps to avoid making too many requests)
var maps = await GetMaps();
gameLink.Subscribe(
tick =>
{
var player = tick.GetIdentity();
if (player != null)
{
var map = maps.Single(map => map.Id == player.MapId);
Console.WriteLine($"[{tick.UiTick}] Your name is {player.Name}.");
Console.WriteLine($"[{tick.UiTick}] You are currently in {map.Name} ({tick.Context.ServerAddress}).");
Console.WriteLine();
}
});
WaitForCtrlC();
async Task<HashSet<MapSummary>> GetMaps()
{
using var http = new HttpClient();
var gw2 = new Gw2Client(http);
return await gw2.Maps.GetMapSummaries();
}
void WaitForCtrlC()
{
using var exitEvent = new ManualResetEventSlim();
Console.CancelKeyPress += (_, _) => exitEvent.Set();
exitEvent.Wait();
}
Additional documentation
Feedback & contributing
GW2SDK is released as open source under the MIT license. You are welcome to create an issue if you find something is missing or broken, or a discussion for other feedback, questions or ideas. Check out the GitHub page to find more ways to contribute.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- System.Runtime.InteropServices.RuntimeInformation (>= 4.3.0)
- System.Text.Json (>= 8.0.0-rc.2.23479.6)
-
.NETStandard 2.0
- System.Text.Json (>= 8.0.0-rc.2.23479.6)
-
net6.0
- System.Text.Json (>= 8.0.0-rc.2.23479.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.4.1 | 110 | 11/14/2024 |
1.4.0 | 83 | 11/5/2024 |
1.3.0 | 122 | 11/3/2024 |
1.2.0 | 94 | 10/23/2024 |
1.1.2 | 89 | 10/13/2024 |
1.1.1 | 88 | 10/11/2024 |
1.1.0 | 216 | 10/5/2024 |
1.0.1 | 324 | 7/7/2024 |
1.0.0 | 186 | 5/20/2024 |
1.0.0-rc.3 | 79 | 5/17/2024 |
1.0.0-rc.2 | 178 | 4/6/2024 |
1.0.0-rc.1 | 84 | 3/30/2024 |
1.0.0-preview.15 | 62 | 3/25/2024 |
1.0.0-preview.14 | 112 | 3/25/2024 |
1.0.0-preview.13 | 342 | 2/18/2024 |
1.0.0-preview.12 | 426 | 12/11/2023 |
1.0.0-preview.11 | 114 | 12/5/2023 |
1.0.0-preview.10 | 183 | 11/12/2023 |
1.0.0-preview.9 | 163 | 11/5/2023 |
1.0.0-preview.8 | 84 | 11/4/2023 |
1.0.0-preview.7 | 136 | 10/30/2023 |
1.0.0-preview.6 | 94 | 10/29/2023 |
1.0.0-preview.5 | 116 | 10/28/2023 |
1.0.0-preview.4 | 170 | 10/23/2023 |
1.0.0-preview.3 | 113 | 10/21/2023 |
1.0.0-preview.2 | 84 | 10/18/2023 |
1.0.0-preview.1 | 90 | 10/15/2023 |