Skip to content

Commit ef384fc

Browse files
author
babelshift
committed
Removed SteamWebFactory in favor of just using constructors for Steam Interfaces.
Added wrappers for GetPlayerItems.
1 parent cf36444 commit ef384fc

11 files changed

Lines changed: 155 additions & 34 deletions
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using Newtonsoft.Json;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace SteamWebAPI2.Models.Economy
9+
{
10+
public class EconItem
11+
{
12+
public long Id { get; set; }
13+
[JsonProperty(PropertyName = "original_id")]
14+
public long OriginalId { get; set; }
15+
public int DefIndex { get; set; }
16+
public int Level { get; set; }
17+
public int Quality { get; set; }
18+
public long Inventory { get; set; }
19+
public int Quantity { get; set; }
20+
public int Origin { get; set; }
21+
public IList<EconItemEquipped> Equipped { get; set; }
22+
public int Style { get; set; }
23+
public IList<EconItemAttribute> Attributes { get; set; }
24+
[JsonProperty(PropertyName = "flag_cannot_trade")]
25+
public bool? FlagCannotTrade { get; set; }
26+
[JsonProperty(PropertyName = "flag_cannot_craft")]
27+
public bool? FlagCannotCraft { get; set; }
28+
}
29+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using Newtonsoft.Json;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace SteamWebAPI2.Models.Economy
9+
{
10+
public class EconItemAttribute
11+
{
12+
public int DefIndex { get; set; }
13+
public long Value { get; set; }
14+
[JsonProperty(PropertyName = "float_value")]
15+
public double FloatValue { get; set; }
16+
[JsonProperty(PropertyName = "account_info")]
17+
public EconItemAttributeAccountInfo AccountInfo { get; set; }
18+
}
19+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace SteamWebAPI2.Models.Economy
8+
{
9+
public class EconItemAttributeAccountInfo
10+
{
11+
public long SteamId { get; set; }
12+
public string PersonaName { get; set; }
13+
}
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using Newtonsoft.Json;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace SteamWebAPI2.Models.Economy
9+
{
10+
public class EconItemEquipped
11+
{
12+
[JsonProperty(PropertyName = "class")]
13+
public int ClassId { get; set; }
14+
public int Slot { get; set; }
15+
}
16+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using Newtonsoft.Json;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace SteamWebAPI2.Models.Economy
9+
{
10+
public class EconItemResult
11+
{
12+
public int Status { get; set; }
13+
[JsonProperty(PropertyName = "num_backpack_slots")]
14+
public int NumBackpackSlots { get; set; }
15+
public IList<EconItem> Items { get; set; }
16+
}
17+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace SteamWebAPI2.Models.Economy
8+
{
9+
public class EconItemResultContainer
10+
{
11+
public EconItemResult Result { get; set; }
12+
}
13+
}

SteamWebAPI2.Models/SteamWebAPI2.Models.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@
105105
<Compile Include="DOTA2\TeamInfoResult.cs" />
106106
<Compile Include="DOTA2\TeamInfo.cs" />
107107
<Compile Include="DOTA2\TeamInfoResultContainer.cs" />
108+
<Compile Include="Economy\EconItem.cs" />
109+
<Compile Include="Economy\EconItemAttribute.cs" />
110+
<Compile Include="Economy\EconItemAttributeAccountInfo.cs" />
111+
<Compile Include="Economy\EconItemEquipped.cs" />
112+
<Compile Include="Economy\EconItemResult.cs" />
113+
<Compile Include="Economy\EconItemResultContainer.cs" />
108114
<Compile Include="FeedData.cs" />
109115
<Compile Include="Friend.cs" />
110116
<Compile Include="GameSchema.cs" />

SteamWebAPI2/EconItems.cs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using SteamWebAPI2.Models.Economy;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace SteamWebAPI2
9+
{
10+
public class EconItems : SteamWebInterface
11+
{
12+
private int appId;
13+
14+
public EconItems(string steamWebApiKey, int appId)
15+
: base(steamWebApiKey, "IEconItems_" + appId)
16+
{
17+
if(appId <= 0)
18+
{
19+
throw new ArgumentOutOfRangeException("appId");
20+
}
21+
22+
this.appId = appId;
23+
}
24+
25+
public async Task<EconItemResult> GetPlayerItemsAsync(long steamId)
26+
{
27+
List<SteamWebRequestParameter> parameters = new List<SteamWebRequestParameter>();
28+
29+
AddToParametersIfHasValue("steamid", steamId, parameters);
30+
31+
var econItemsResult = await CallMethodAsync<EconItemResultContainer>("GetPlayerItems", 1, parameters);
32+
return econItemsResult.Result;
33+
}
34+
}
35+
}

SteamWebAPI2/SteamWebAPI2.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
<Compile Include="DOTA2Fantasy.cs" />
5151
<Compile Include="DOTA2Match.cs" />
5252
<Compile Include="DOTA2Ticket.cs" />
53+
<Compile Include="EconItems.cs" />
5354
<Compile Include="ErrorMessages.Designer.cs">
5455
<AutoGen>True</AutoGen>
5556
<DesignTime>True</DesignTime>
@@ -58,7 +59,6 @@
5859
<Compile Include="SteamUser.cs" />
5960
<Compile Include="SteamWebAPIUtil.cs" />
6061
<Compile Include="Properties\AssemblyInfo.cs" />
61-
<Compile Include="SteamWebFactory.cs" />
6262
<Compile Include="SteamWebInterface.cs" />
6363
<Compile Include="SteamWebRequest.cs" />
6464
<Compile Include="SteamWebRequestParameter.cs" />

SteamWebAPI2/SteamWebFactory.cs

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)