Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Whitespace Normalization

Sorry!
  • Loading branch information...
commit 5e38823d5e67497df5f1411303bcee3536abd83c 1 parent 8f320d7
@medcat medcat authored
View
22 .gitattributes
@@ -0,0 +1,22 @@
+# Auto detect text files and perform LF normalization
+* text=auto
+
+# Custom for Visual Studio
+*.cs diff=csharp
+*.sln merge=union
+*.csproj merge=union
+*.vbproj merge=union
+*.fsproj merge=union
+*.dbproj merge=union
+
+# Standard to msysgit
+*.doc diff=astextplain
+*.DOC diff=astextplain
+*.docx diff=astextplain
+*.DOCX diff=astextplain
+*.dot diff=astextplain
+*.DOT diff=astextplain
+*.pdf diff=astextplain
+*.PDF diff=astextplain
+*.rtf diff=astextplain
+*.RTF diff=astextplain
View
46 .gitignore
@@ -1,23 +1,23 @@
-[Oo]bj
-[Rr]elease
-[Dd]ebug
-*.exe
-*.dll
-*.user
-*.suo
-*.[Cc]ache
-*.bak
-*.ncb
-*.log
-*.DS_Store
-[Tt]humbs.db
-_ReSharper.*
-*.resharper
-Ankh.NoLoad
-
-#OS junk files
-[Tt]humbs.db
-*.DS_Store
-
-*.userprefs
-*.pidb
+[Oo]bj
+[Rr]elease
+[Dd]ebug
+*.exe
+*.dll
+*.user
+*.suo
+*.[Cc]ache
+*.bak
+*.ncb
+*.log
+*.DS_Store
+[Tt]humbs.db
+_ReSharper.*
+*.resharper
+Ankh.NoLoad
+
+#OS junk files
+[Tt]humbs.db
+*.DS_Store
+
+*.userprefs
+*.pidb
View
136 README.md
@@ -1,68 +1,68 @@
-## Info ##
-
-**SteamBot** is a bot written in C# for the purpose of interacting with Steam Chat and Steam Trade. As of right now, about 6 contributors have all added to the bot. The bot is publicly available, and is available under the MIT License.
-
-## Configuration Instructions ##
-
-### Step 0 ###
-If you've recently just cloned this repository, there are a few things you need to do.
-
-1. Run `git submodule init` in order to initalize the submodule configuration file.
-2. Run `git submodule update` to pull the latest version of the submodules that are included (namely, SteamKit2).
-3. Build the program. Since SteamKit2 is licensed under the LGPL, and SteamBot should be released under the MIT license, SteamKit2's code cannot be included in SteamBot. This includes executables. We'll probably make downloads available on github.
-4. Continue on like normal.
-
-### Step 1 ###
-1. First, you need to configure your bots.
-2. Edit the file `settings-template.json` in `\SteamBot\bin\Debug`. Some configuration options:
-
- - `Admins`: An array of Steam Profile IDs of the users that are an Admin of your bot(s). Each Profile ID should be a string enclosed in quotes and seperated by a comma. These admins are global to all bots listed in the _Bots_ array.
- - `ApiKey`: The API key you have been assigned by Valve. If you do not have one, it can be requested from Value at their [Web API Key](http://steamcommunity.com/dev/apikey) page. **This is required and the bot(s) will not work without an API Key**. The API Key should be a string enclosed by quotes.
- - `mainLog`: The log containing runtime information for all bots.
- - `Bots`: An array of dictionaries containing information about each individual bot you will be running. You can run multiple bots at the same time by having multiple elements in the `Bots` array. Each entry in the `Bots` array consists of the following values.
- - `Username`: The Steam user name for this bot. It should be a string enclosed by quotes.
- - `Password`: The password for the Steam user associated with this bot. It should be a string enclosed by quotes.
- - `DisplayName`: The name the bot will present on Steam. It should be a string enclosed by quotes.
- - `ChatResponse`: This is the response the bot will provide when a user chats with it via Steam Friends. It should be a string enclosed by quotes.
- - `logFile`: The log file for this specific bot. It should be a string encluded by quotes.
- - `Admins`: Additional admins, specific to this bot. _(optional)_
- - `MaximumTradeTime`: Maximium length of time for a trade session (in seconds). It should be a numeric value. Defaults to 180 seconds. _(optional)_
- - `MaximumActionGap`: Length of time the bot will allow the user to remain inactive. It should be a numeric value. Defaults to 30 seconds. _(optional)_
- - `DisplayNamePrefix`: A prefix to display in front of the DisplayName. It should be a string encloded by quotes. Defaults to an empty string. _(optional)_
- - `TradePollingInterval`: Length of time, in milliseconds, between polling events. Higher values reduce CPU usage at the cost of a slower trading session. It should be a numeric value. Default is 800 ms. Lowest value is 100 ms. _(optional)_
-
-3. Rename `settings-template.json` to `settings.json`
-
-### Step 2 ###
-1. Next you need to actually edit the bot to make it do what you want.
-2. You mainly only need to edit the file `TradeEnterTradeListener.cs`, as it contains events for everything you need.
-3. Just add your code to each of the events. It explains what each of them do in the code comments.
-4. Look at Usage below to see some usefull functions.
-
-## Usage ##
-Here some useful functions you can use in TradeEnterTradeListener:
-### `trade` ###
-The master class referring back to the current trade.
-### `trade.AddItem(ulong itemid, int slot)` ###
-Add an item by its `id` property into the specified slot in the trade.
-### `trade.AddItemByDefindex(int defindex, int slot)` ###
-Same as AddItem, but you specify the defindex of the item instead of the id.
-### `trade.RemoveItem(ulong itemid, int slot)` ###
-Removes the specified item from the trade.
-### `trade.SetReady(bool ready)` ###
-Sets the trade ready or not ready according to the boolean.
-### `trade.AcceptTrade()` ###
-Accepts the trade.
-### `trade.SendMessage(string msg)` ###
-ends a message to the other user over trade chat.
-
-## More help? ##
-If it's a bug, open an Issue; if you have a fix, open a Pull Request. A list of contributors (add yourself if you want to):
-- [Jessecar96](http://steamcommunity.com/id/jessecar) (project lead)
-- [geel9](http://steamcommunity.com/id/geel9)
-- [Dr. Cat, MD or redjazz96](http://steamcommunity.com/id/redjazz96)
-
-SteamBot is licensed under the MIT license. Check out LICENSE for more details.
-
-## Wanna Contribute? ##
-Check out CONTRIBUTING.md.
+## Info ##
+
+**SteamBot** is a bot written in C# for the purpose of interacting with Steam Chat and Steam Trade. As of right now, about 6 contributors have all added to the bot. The bot is publicly available, and is available under the MIT License.
+
+## Configuration Instructions ##
+
+### Step 0 ###
+If you've recently just cloned this repository, there are a few things you need to do.
+
+1. Run `git submodule init` in order to initalize the submodule configuration file.
+2. Run `git submodule update` to pull the latest version of the submodules that are included (namely, SteamKit2).
+3. Build the program. Since SteamKit2 is licensed under the LGPL, and SteamBot should be released under the MIT license, SteamKit2's code cannot be included in SteamBot. This includes executables. We'll probably make downloads available on github.
+4. Continue on like normal.
+
+### Step 1 ###
+1. First, you need to configure your bots.
+2. Edit the file `settings-template.json` in `\SteamBot\bin\Debug`. Some configuration options:
+
+ - `Admins`: An array of Steam Profile IDs of the users that are an Admin of your bot(s). Each Profile ID should be a string enclosed in quotes and seperated by a comma. These admins are global to all bots listed in the _Bots_ array.
+ - `ApiKey`: The API key you have been assigned by Valve. If you do not have one, it can be requested from Value at their [Web API Key](http://steamcommunity.com/dev/apikey) page. **This is required and the bot(s) will not work without an API Key**. The API Key should be a string enclosed by quotes.
+ - `mainLog`: The log containing runtime information for all bots.
+ - `Bots`: An array of dictionaries containing information about each individual bot you will be running. You can run multiple bots at the same time by having multiple elements in the `Bots` array. Each entry in the `Bots` array consists of the following values.
+ - `Username`: The Steam user name for this bot. It should be a string enclosed by quotes.
+ - `Password`: The password for the Steam user associated with this bot. It should be a string enclosed by quotes.
+ - `DisplayName`: The name the bot will present on Steam. It should be a string enclosed by quotes.
+ - `ChatResponse`: This is the response the bot will provide when a user chats with it via Steam Friends. It should be a string enclosed by quotes.
+ - `logFile`: The log file for this specific bot. It should be a string encluded by quotes.
+ - `Admins`: Additional admins, specific to this bot. _(optional)_
+ - `MaximumTradeTime`: Maximium length of time for a trade session (in seconds). It should be a numeric value. Defaults to 180 seconds. _(optional)_
+ - `MaximumActionGap`: Length of time the bot will allow the user to remain inactive. It should be a numeric value. Defaults to 30 seconds. _(optional)_
+ - `DisplayNamePrefix`: A prefix to display in front of the DisplayName. It should be a string encloded by quotes. Defaults to an empty string. _(optional)_
+ - `TradePollingInterval`: Length of time, in milliseconds, between polling events. Higher values reduce CPU usage at the cost of a slower trading session. It should be a numeric value. Default is 800 ms. Lowest value is 100 ms. _(optional)_
+
+3. Rename `settings-template.json` to `settings.json`
+
+### Step 2 ###
+1. Next you need to actually edit the bot to make it do what you want.
+2. You mainly only need to edit the file `TradeEnterTradeListener.cs`, as it contains events for everything you need.
+3. Just add your code to each of the events. It explains what each of them do in the code comments.
+4. Look at Usage below to see some usefull functions.
+
+## Usage ##
+Here some useful functions you can use in TradeEnterTradeListener:
+### `trade` ###
+The master class referring back to the current trade.
+### `trade.AddItem(ulong itemid, int slot)` ###
+Add an item by its `id` property into the specified slot in the trade.
+### `trade.AddItemByDefindex(int defindex, int slot)` ###
+Same as AddItem, but you specify the defindex of the item instead of the id.
+### `trade.RemoveItem(ulong itemid, int slot)` ###
+Removes the specified item from the trade.
+### `trade.SetReady(bool ready)` ###
+Sets the trade ready or not ready according to the boolean.
+### `trade.AcceptTrade()` ###
+Accepts the trade.
+### `trade.SendMessage(string msg)` ###
+ends a message to the other user over trade chat.
+
+## More help? ##
+If it's a bug, open an Issue; if you have a fix, open a Pull Request. A list of contributors (add yourself if you want to):
+- [Jessecar96](http://steamcommunity.com/id/jessecar) (project lead)
+- [geel9](http://steamcommunity.com/id/geel9)
+- [Dr. Cat, MD or redjazz96](http://steamcommunity.com/id/redjazz96)
+
+SteamBot is licensed under the MIT license. Check out LICENSE for more details.
+
+## Wanna Contribute? ##
+Check out CONTRIBUTING.md.
View
340 SteamBot-2.sln
@@ -1,170 +1,170 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2010
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "protobuf-net", "Lib\protobuf-net\protobuf-net\protobuf-net.csproj", "{8374E4D7-2A91-48F1-9360-09B09CF27C3F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamKit2", "Lib\SteamKit2\SteamKit2\SteamKit2.csproj", "{BEB5BF07-BB56-402A-97A3-A41C6444C6A5}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamBot", "SteamBot.csproj", "{E81DED36-EDF5-41A5-8666-A3A0C581762F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Newtonsoft.Json", "Lib\Newtonsoft.Json\Src\Newtonsoft.Json\Newtonsoft.Json.csproj", "{A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|Mixed Platforms = Debug|Mixed Platforms
- Debug|x86 = Debug|x86
- iOS|Any CPU = iOS|Any CPU
- iOS|Mixed Platforms = iOS|Mixed Platforms
- iOS|x86 = iOS|x86
- Net20|Any CPU = Net20|Any CPU
- Net20|Mixed Platforms = Net20|Mixed Platforms
- Net20|x86 = Net20|x86
- Profile|Any CPU = Profile|Any CPU
- Profile|Mixed Platforms = Profile|Mixed Platforms
- Profile|x86 = Profile|x86
- Release|Any CPU = Release|Any CPU
- Release|Mixed Platforms = Release|Mixed Platforms
- Release|x86 = Release|x86
- Silverlight2|Any CPU = Silverlight2|Any CPU
- Silverlight2|Mixed Platforms = Silverlight2|Mixed Platforms
- Silverlight2|x86 = Silverlight2|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|x86.Build.0 = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Any CPU.ActiveCfg = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Any CPU.Build.0 = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Mixed Platforms.ActiveCfg = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Mixed Platforms.Build.0 = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|x86.ActiveCfg = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Any CPU.ActiveCfg = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Any CPU.Build.0 = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Mixed Platforms.ActiveCfg = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Mixed Platforms.Build.0 = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|x86.ActiveCfg = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Any CPU.ActiveCfg = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Any CPU.Build.0 = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Mixed Platforms.ActiveCfg = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Mixed Platforms.Build.0 = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|x86.ActiveCfg = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Any CPU.Build.0 = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|x86.ActiveCfg = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|x86.Build.0 = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Mixed Platforms.ActiveCfg = Silverlight2|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Mixed Platforms.Build.0 = Silverlight2|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|x86.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Mixed Platforms.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Mixed Platforms.Build.0 = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|x86.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Mixed Platforms.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Mixed Platforms.Build.0 = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|x86.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Mixed Platforms.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Mixed Platforms.Build.0 = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|x86.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Any CPU.Build.0 = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|x86.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|x86.Build.0 = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Mixed Platforms.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Mixed Platforms.Build.0 = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|x86.ActiveCfg = Release|Any CPU
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Any CPU.ActiveCfg = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Mixed Platforms.Build.0 = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|x86.ActiveCfg = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|x86.Build.0 = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Any CPU.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Mixed Platforms.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Mixed Platforms.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|x86.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|x86.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Any CPU.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Mixed Platforms.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Mixed Platforms.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|x86.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|x86.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Any CPU.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Mixed Platforms.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Mixed Platforms.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|x86.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|x86.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Any CPU.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Mixed Platforms.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Mixed Platforms.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|x86.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|x86.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Any CPU.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Mixed Platforms.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Mixed Platforms.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|x86.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|x86.Build.0 = Release|x86
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Any CPU.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Any CPU.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Mixed Platforms.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Mixed Platforms.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|x86.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Any CPU.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Any CPU.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Mixed Platforms.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Mixed Platforms.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|x86.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Any CPU.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Any CPU.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Mixed Platforms.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Mixed Platforms.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|x86.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Any CPU.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|x86.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Mixed Platforms.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Mixed Platforms.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|x86.ActiveCfg = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(MonoDevelopProperties) = preSolution
- StartupItem = SteamBot.csproj
- Policies = $0
- $0.DotNetNamingPolicy = $1
- $1.DirectoryNamespaceAssociation = None
- $1.ResourceNamePolicy = FileFormatDefault
- description = Bot for Steam
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "protobuf-net", "Lib\protobuf-net\protobuf-net\protobuf-net.csproj", "{8374E4D7-2A91-48F1-9360-09B09CF27C3F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamKit2", "Lib\SteamKit2\SteamKit2\SteamKit2.csproj", "{BEB5BF07-BB56-402A-97A3-A41C6444C6A5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamBot", "SteamBot.csproj", "{E81DED36-EDF5-41A5-8666-A3A0C581762F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Newtonsoft.Json", "Lib\Newtonsoft.Json\Src\Newtonsoft.Json\Newtonsoft.Json.csproj", "{A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|x86 = Debug|x86
+ iOS|Any CPU = iOS|Any CPU
+ iOS|Mixed Platforms = iOS|Mixed Platforms
+ iOS|x86 = iOS|x86
+ Net20|Any CPU = Net20|Any CPU
+ Net20|Mixed Platforms = Net20|Mixed Platforms
+ Net20|x86 = Net20|x86
+ Profile|Any CPU = Profile|Any CPU
+ Profile|Mixed Platforms = Profile|Mixed Platforms
+ Profile|x86 = Profile|x86
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|x86 = Release|x86
+ Silverlight2|Any CPU = Silverlight2|Any CPU
+ Silverlight2|Mixed Platforms = Silverlight2|Mixed Platforms
+ Silverlight2|x86 = Silverlight2|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|x86.Build.0 = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Any CPU.ActiveCfg = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Any CPU.Build.0 = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Mixed Platforms.ActiveCfg = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Mixed Platforms.Build.0 = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|x86.ActiveCfg = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Any CPU.ActiveCfg = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Any CPU.Build.0 = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Mixed Platforms.ActiveCfg = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Mixed Platforms.Build.0 = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|x86.ActiveCfg = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Any CPU.ActiveCfg = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Any CPU.Build.0 = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Mixed Platforms.ActiveCfg = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Mixed Platforms.Build.0 = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|x86.ActiveCfg = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|x86.ActiveCfg = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|x86.Build.0 = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Mixed Platforms.ActiveCfg = Silverlight2|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Mixed Platforms.Build.0 = Silverlight2|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|x86.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Mixed Platforms.Build.0 = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|x86.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Mixed Platforms.Build.0 = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|x86.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Mixed Platforms.Build.0 = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|x86.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|x86.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|x86.Build.0 = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Mixed Platforms.Build.0 = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|x86.ActiveCfg = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|x86.Build.0 = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Any CPU.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Mixed Platforms.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Mixed Platforms.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|x86.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|x86.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Any CPU.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Mixed Platforms.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Mixed Platforms.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|x86.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|x86.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Any CPU.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Mixed Platforms.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Mixed Platforms.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|x86.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|x86.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Any CPU.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Mixed Platforms.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|x86.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|x86.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Mixed Platforms.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Mixed Platforms.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|x86.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|x86.Build.0 = Release|x86
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Any CPU.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Any CPU.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Mixed Platforms.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|x86.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Any CPU.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Any CPU.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Mixed Platforms.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|x86.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Any CPU.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Any CPU.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Mixed Platforms.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|x86.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|x86.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Mixed Platforms.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(MonoDevelopProperties) = preSolution
+ StartupItem = SteamBot.csproj
+ Policies = $0
+ $0.DotNetNamingPolicy = $1
+ $1.DirectoryNamespaceAssociation = None
+ $1.ResourceNamePolicy = FileFormatDefault
+ description = Bot for Steam
+ EndGlobalSection
+EndGlobal
View
144 SteamBot.csproj
@@ -1,72 +1,72 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
- <ProductVersion>10.0.0</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{E81DED36-EDF5-41A5-8666-A3A0C581762F}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <RootNamespace>Src</RootNamespace>
- <AssemblyName>Src</AssemblyName>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>Bin\Debug</OutputPath>
- <DefineConstants>DEBUG;</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <PlatformTarget>x86</PlatformTarget>
- <Externalconsole>true</Externalconsole>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
- <DebugType>none</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>Bin\Release</OutputPath>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <PlatformTarget>x86</PlatformTarget>
- <Externalconsole>true</Externalconsole>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Net" />
- <Reference Include="System.Core" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xaml" />
- <Reference Include="System.Numerics" />
- <Reference Include="System.Management" />
- <Reference Include="System.Web" />
- <Reference Include="Microsoft.CSharp" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Src/AssemblyInfo.cs" />
- <Compile Include="Src/Bot.cs" />
- <Compile Include="Src/BotInfo.cs" />
- <Compile Include="Src/Configuration.cs" />
- <Compile Include="Src/Inventory.cs" />
- <Compile Include="Src/Log.cs" />
- <Compile Include="Src/Program.cs" />
- <Compile Include="Src/Schema.cs" />
- <Compile Include="Src/SteamWeb.cs" />
- <Compile Include="Src/Trade.cs" />
- <Compile Include="Src/TradeEnterTradeListener.cs" />
- </ItemGroup>
- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
- <ItemGroup>
- <ProjectReference Include="..\Lib\Newtonsoft.Json\Src\Newtonsoft.Json\Newtonsoft.Json.csproj">
- <Project>{A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}</Project>
- <Name>Newtonsoft.Json</Name>
- </ProjectReference>
- <ProjectReference Include="..\Lib\protobuf-net\protobuf-net\protobuf-net.csproj">
- <Project>{8374E4D7-2A91-48F1-9360-09B09CF27C3F}</Project>
- <Name>protobuf-net</Name>
- </ProjectReference>
- <ProjectReference Include="..\Lib\SteamKit2\SteamKit2\SteamKit2.csproj">
- <Project>{BEB5BF07-BB56-402A-97A3-A41C6444C6A5}</Project>
- <Name>SteamKit2</Name>
- </ProjectReference>
- </ItemGroup>
-</Project>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+ <ProductVersion>10.0.0</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{E81DED36-EDF5-41A5-8666-A3A0C581762F}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <RootNamespace>Src</RootNamespace>
+ <AssemblyName>Src</AssemblyName>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>Bin\Debug</OutputPath>
+ <DefineConstants>DEBUG;</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <PlatformTarget>x86</PlatformTarget>
+ <Externalconsole>true</Externalconsole>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+ <DebugType>none</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>Bin\Release</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <PlatformTarget>x86</PlatformTarget>
+ <Externalconsole>true</Externalconsole>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Net" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xaml" />
+ <Reference Include="System.Numerics" />
+ <Reference Include="System.Management" />
+ <Reference Include="System.Web" />
+ <Reference Include="Microsoft.CSharp" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Src/AssemblyInfo.cs" />
+ <Compile Include="Src/Bot.cs" />
+ <Compile Include="Src/BotInfo.cs" />
+ <Compile Include="Src/Configuration.cs" />
+ <Compile Include="Src/Inventory.cs" />
+ <Compile Include="Src/Log.cs" />
+ <Compile Include="Src/Program.cs" />
+ <Compile Include="Src/Schema.cs" />
+ <Compile Include="Src/SteamWeb.cs" />
+ <Compile Include="Src/Trade.cs" />
+ <Compile Include="Src/TradeEnterTradeListener.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <ItemGroup>
+ <ProjectReference Include="..\Lib\Newtonsoft.Json\Src\Newtonsoft.Json\Newtonsoft.Json.csproj">
+ <Project>{A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}</Project>
+ <Name>Newtonsoft.Json</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Lib\protobuf-net\protobuf-net\protobuf-net.csproj">
+ <Project>{8374E4D7-2A91-48F1-9360-09B09CF27C3F}</Project>
+ <Name>protobuf-net</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Lib\SteamKit2\SteamKit2\SteamKit2.csproj">
+ <Project>{BEB5BF07-BB56-402A-97A3-A41C6444C6A5}</Project>
+ <Name>SteamKit2</Name>
+ </ProjectReference>
+ </ItemGroup>
+</Project>
View
720 SteamBot.sln
@@ -1,360 +1,360 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExampleBot", "SteamBot\ExampleBot.csproj", "{E81DED36-EDF5-41A5-8666-A3A0C581762F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Newtonsoft.Json", "Lib\Newtonsoft.Json\Src\Newtonsoft.Json\Newtonsoft.Json.csproj", "{A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "protobuf-net", "Lib\protobuf-net\protobuf-net\protobuf-net.csproj", "{8374E4D7-2A91-48F1-9360-09B09CF27C3F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamKit2", "Lib\SteamKit2\SteamKit2\SteamKit2.csproj", "{BEB5BF07-BB56-402A-97A3-A41C6444C6A5}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|Mixed Platforms = Debug|Mixed Platforms
- Debug|x86 = Debug|x86
- iOS|Any CPU = iOS|Any CPU
- iOS|Mixed Platforms = iOS|Mixed Platforms
- iOS|x86 = iOS|x86
- Net20|Any CPU = Net20|Any CPU
- Net20|Mixed Platforms = Net20|Mixed Platforms
- Net20|x86 = Net20|x86
- Profile|Any CPU = Profile|Any CPU
- Profile|Mixed Platforms = Profile|Mixed Platforms
- Profile|x86 = Profile|x86
- Release|Any CPU = Release|Any CPU
- Release|Mixed Platforms = Release|Mixed Platforms
- Release|x86 = Release|x86
- Silverlight2|Any CPU = Silverlight2|Any CPU
- Silverlight2|Mixed Platforms = Silverlight2|Mixed Platforms
- Silverlight2|x86 = Silverlight2|x86
- Unity|Any CPU = Unity|Any CPU
- CoreOnly|Any CPU = CoreOnly|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.CoreOnly|Any CPU.ActiveCfg = CoreOnly|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.CoreOnly|Any CPU.Build.0 = CoreOnly|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|x86.Build.0 = Debug|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Any CPU.ActiveCfg = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Any CPU.Build.0 = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Mixed Platforms.ActiveCfg = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Mixed Platforms.Build.0 = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|x86.ActiveCfg = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|x86.Build.0 = iOS|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Any CPU.ActiveCfg = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Any CPU.Build.0 = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Mixed Platforms.ActiveCfg = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Mixed Platforms.Build.0 = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|x86.ActiveCfg = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|x86.Build.0 = Net20|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Any CPU.ActiveCfg = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Any CPU.Build.0 = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Mixed Platforms.ActiveCfg = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Mixed Platforms.Build.0 = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|x86.ActiveCfg = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|x86.Build.0 = Profile|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Any CPU.Build.0 = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|x86.ActiveCfg = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|x86.Build.0 = Release|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Mixed Platforms.ActiveCfg = Silverlight2|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Mixed Platforms.Build.0 = Silverlight2|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|x86.Build.0 = Silverlight2|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Unity|Any CPU.ActiveCfg = Unity|Any CPU
- {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Unity|Any CPU.Build.0 = Unity|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|x86.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Any CPU.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Any CPU.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Mixed Platforms.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|x86.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|x86.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Any CPU.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Any CPU.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Mixed Platforms.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|x86.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|x86.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Any CPU.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Any CPU.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Mixed Platforms.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|x86.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|x86.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Any CPU.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|x86.ActiveCfg = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|x86.Build.0 = Release|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Any CPU.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Any CPU.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Mixed Platforms.Build.0 = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|x86.ActiveCfg = Debug|Any CPU
- {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|x86.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.CoreOnly|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.CoreOnly|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|x86.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Mixed Platforms.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|x86.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|x86.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Mixed Platforms.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|x86.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|x86.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Mixed Platforms.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|x86.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|x86.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Any CPU.Build.0 = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|x86.ActiveCfg = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|x86.Build.0 = Release|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Any CPU.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Mixed Platforms.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|x86.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|x86.Build.0 = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Unity|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Unity|Any CPU.Build.0 = Debug|Any CPU
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Any CPU.ActiveCfg = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Any CPU.Build.0 = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Mixed Platforms.Build.0 = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|x86.ActiveCfg = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|x86.Build.0 = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Any CPU.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Mixed Platforms.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Mixed Platforms.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|x86.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Any CPU.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Mixed Platforms.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Mixed Platforms.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|x86.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Any CPU.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Mixed Platforms.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Mixed Platforms.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|x86.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Any CPU.ActiveCfg = Debug|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Mixed Platforms.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Mixed Platforms.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|x86.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|x86.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Any CPU.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Mixed Platforms.ActiveCfg = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Mixed Platforms.Build.0 = Release|x86
- {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|x86.ActiveCfg = Release|x86
- EndGlobalSection
- GlobalSection(MonoDevelopProperties) = preSolution
- StartupItem = Src\SteamBot.csproj
- Policies = $0
- $0.DotNetNamingPolicy = $1
- $1.DirectoryNamespaceAssociation = None
- $1.ResourceNamePolicy = FileFormatDefault
- $0.TextStylePolicy = $2
- $2.inheritsSet = null
- $2.scope = text/x-csharp
- $0.CSharpFormattingPolicy = $3
- $3.inheritsSet = Mono
- $3.inheritsScope = text/x-csharp
- $3.scope = text/x-csharp
- $0.TextStylePolicy = $4
- $4.FileWidth = 120
- $4.inheritsSet = VisualStudio
- $4.inheritsScope = text/plain
- $4.scope = text/plain
- $0.TextStylePolicy = $5
- $5.inheritsSet = null
- $5.scope = application/octet-stream
- $0.StandardHeader = $6
- $6.Text =
- $6.IncludeInNewFiles = True
- $0.NameConventionPolicy = $7
- $7.Rules = $8
- $8.NamingRule = $9
- $9.Name = Namespaces
- $9.AffectedEntity = Namespace
- $9.VisibilityMask = VisibilityMask
- $9.NamingStyle = PascalCase
- $9.IncludeInstanceMembers = True
- $9.IncludeStaticEntities = True
- $8.NamingRule = $10
- $10.Name = Types
- $10.AffectedEntity = Class, Struct, Enum, Delegate
- $10.VisibilityMask = VisibilityMask
- $10.NamingStyle = PascalCase
- $10.IncludeInstanceMembers = True
- $10.IncludeStaticEntities = True
- $8.NamingRule = $11
- $11.Name = Interfaces
- $11.RequiredPrefixes = $12
- $12.String = I
- $11.AffectedEntity = Interface
- $11.VisibilityMask = VisibilityMask
- $11.NamingStyle = PascalCase
- $11.IncludeInstanceMembers = True
- $11.IncludeStaticEntities = True
- $8.NamingRule = $13
- $13.Name = Attributes
- $13.RequiredSuffixes = $14
- $14.String = Attribute
- $13.AffectedEntity = CustomAttributes
- $13.VisibilityMask = VisibilityMask
- $13.NamingStyle = PascalCase
- $13.IncludeInstanceMembers = True
- $13.IncludeStaticEntities = True
- $8.NamingRule = $15
- $15.Name = Event Arguments
- $15.RequiredSuffixes = $16
- $16.String = EventArgs
- $15.AffectedEntity = CustomEventArgs
- $15.VisibilityMask = VisibilityMask
- $15.NamingStyle = PascalCase
- $15.IncludeInstanceMembers = True
- $15.IncludeStaticEntities = True
- $8.NamingRule = $17
- $17.Name = Exceptions
- $17.RequiredSuffixes = $18
- $18.String = Exception
- $17.AffectedEntity = CustomExceptions
- $17.VisibilityMask = VisibilityMask
- $17.NamingStyle = PascalCase
- $17.IncludeInstanceMembers = True
- $17.IncludeStaticEntities = True
- $8.NamingRule = $19
- $19.Name = Methods
- $19.AffectedEntity = Methods
- $19.VisibilityMask = VisibilityMask
- $19.NamingStyle = PascalCase
- $19.IncludeInstanceMembers = True
- $19.IncludeStaticEntities = True
- $8.NamingRule = $20
- $20.Name = Static Readonly Fields
- $20.AffectedEntity = ReadonlyField
- $20.VisibilityMask = Internal, Protected, Public
- $20.NamingStyle = PascalCase
- $20.IncludeInstanceMembers = False
- $20.IncludeStaticEntities = True
- $8.NamingRule = $21
- $21.Name = Fields (Non Private)
- $21.AffectedEntity = Field
- $21.VisibilityMask = Internal, Protected, Public
- $21.NamingStyle = PascalCase
- $21.IncludeInstanceMembers = True
- $21.IncludeStaticEntities = True
- $8.NamingRule = $22
- $22.Name = ReadOnly Fields (Non Private)
- $22.AffectedEntity = ReadonlyField
- $22.VisibilityMask = Internal, Protected, Public
- $22.NamingStyle = PascalCase
- $22.IncludeInstanceMembers = True
- $22.IncludeStaticEntities = False
- $8.NamingRule = $23
- $23.Name = Fields (Private)
- $23.AllowedPrefixes = $24
- $24.String = _
- $24.String = m_
- $23.AffectedEntity = Field, ReadonlyField
- $23.VisibilityMask = Private
- $23.NamingStyle = CamelCase
- $23.IncludeInstanceMembers = True
- $23.IncludeStaticEntities = False
- $8.NamingRule = $25
- $25.Name = Static Fields (Private)
- $25.AffectedEntity = Field
- $25.VisibilityMask = Private
- $25.NamingStyle = CamelCase
- $25.IncludeInstanceMembers = False
- $25.IncludeStaticEntities = True
- $8.NamingRule = $26
- $26.Name = ReadOnly Fields (Private)
- $26.AllowedPrefixes = $27
- $27.String = _
- $27.String = m_
- $26.AffectedEntity = ReadonlyField
- $26.VisibilityMask = Private
- $26.NamingStyle = CamelCase
- $26.IncludeInstanceMembers = True
- $26.IncludeStaticEntities = False
- $8.NamingRule = $28
- $28.Name = Constant Fields
- $28.AffectedEntity = ConstantField
- $28.VisibilityMask = VisibilityMask
- $28.NamingStyle = PascalCase
- $28.IncludeInstanceMembers = True
- $28.IncludeStaticEntities = True
- $8.NamingRule = $29
- $29.Name = Properties
- $29.AffectedEntity = Property
- $29.VisibilityMask = VisibilityMask
- $29.NamingStyle = PascalCase
- $29.IncludeInstanceMembers = True
- $29.IncludeStaticEntities = True
- $8.NamingRule = $30
- $30.Name = Events
- $30.AffectedEntity = Event
- $30.VisibilityMask = VisibilityMask
- $30.NamingStyle = PascalCase
- $30.IncludeInstanceMembers = True
- $30.IncludeStaticEntities = True
- $8.NamingRule = $31
- $31.Name = Enum Members
- $31.AffectedEntity = EnumMember
- $31.VisibilityMask = VisibilityMask
- $31.NamingStyle = PascalCase
- $31.IncludeInstanceMembers = True
- $31.IncludeStaticEntities = True
- $8.NamingRule = $32
- $32.Name = Parameters
- $32.AffectedEntity = Parameter
- $32.VisibilityMask = VisibilityMask
- $32.NamingStyle = CamelCase
- $32.IncludeInstanceMembers = True
- $32.IncludeStaticEntities = True
- $8.NamingRule = $33
- $33.Name = Type Parameters
- $33.RequiredPrefixes = $34
- $34.String = T
- $33.AffectedEntity = TypeParameter
- $33.VisibilityMask = VisibilityMask
- $33.NamingStyle = PascalCase
- $33.IncludeInstanceMembers = True
- $33.IncludeStaticEntities = True
- outputpath = ..\Bin
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExampleBot", "SteamBot\ExampleBot.csproj", "{E81DED36-EDF5-41A5-8666-A3A0C581762F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Newtonsoft.Json", "Lib\Newtonsoft.Json\Src\Newtonsoft.Json\Newtonsoft.Json.csproj", "{A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "protobuf-net", "Lib\protobuf-net\protobuf-net\protobuf-net.csproj", "{8374E4D7-2A91-48F1-9360-09B09CF27C3F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamKit2", "Lib\SteamKit2\SteamKit2\SteamKit2.csproj", "{BEB5BF07-BB56-402A-97A3-A41C6444C6A5}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|x86 = Debug|x86
+ iOS|Any CPU = iOS|Any CPU
+ iOS|Mixed Platforms = iOS|Mixed Platforms
+ iOS|x86 = iOS|x86
+ Net20|Any CPU = Net20|Any CPU
+ Net20|Mixed Platforms = Net20|Mixed Platforms
+ Net20|x86 = Net20|x86
+ Profile|Any CPU = Profile|Any CPU
+ Profile|Mixed Platforms = Profile|Mixed Platforms
+ Profile|x86 = Profile|x86
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|x86 = Release|x86
+ Silverlight2|Any CPU = Silverlight2|Any CPU
+ Silverlight2|Mixed Platforms = Silverlight2|Mixed Platforms
+ Silverlight2|x86 = Silverlight2|x86
+ Unity|Any CPU = Unity|Any CPU
+ CoreOnly|Any CPU = CoreOnly|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.CoreOnly|Any CPU.ActiveCfg = CoreOnly|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.CoreOnly|Any CPU.Build.0 = CoreOnly|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Debug|x86.Build.0 = Debug|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Any CPU.ActiveCfg = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Any CPU.Build.0 = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Mixed Platforms.ActiveCfg = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|Mixed Platforms.Build.0 = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|x86.ActiveCfg = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.iOS|x86.Build.0 = iOS|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Any CPU.ActiveCfg = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Any CPU.Build.0 = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Mixed Platforms.ActiveCfg = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|Mixed Platforms.Build.0 = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|x86.ActiveCfg = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Net20|x86.Build.0 = Net20|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Any CPU.ActiveCfg = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Any CPU.Build.0 = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Mixed Platforms.ActiveCfg = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|Mixed Platforms.Build.0 = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|x86.ActiveCfg = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Profile|x86.Build.0 = Profile|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|x86.ActiveCfg = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Release|x86.Build.0 = Release|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Mixed Platforms.ActiveCfg = Silverlight2|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|Mixed Platforms.Build.0 = Silverlight2|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Silverlight2|x86.Build.0 = Silverlight2|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Unity|Any CPU.ActiveCfg = Unity|Any CPU
+ {8374E4D7-2A91-48F1-9360-09B09CF27C3F}.Unity|Any CPU.Build.0 = Unity|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Debug|x86.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Any CPU.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Any CPU.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|Mixed Platforms.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|x86.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.iOS|x86.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Any CPU.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Any CPU.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|Mixed Platforms.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|x86.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Net20|x86.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Any CPU.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Any CPU.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|Mixed Platforms.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|x86.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Profile|x86.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|x86.ActiveCfg = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Release|x86.Build.0 = Release|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Any CPU.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Any CPU.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|Mixed Platforms.Build.0 = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|x86.ActiveCfg = Debug|Any CPU
+ {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Silverlight2|x86.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.CoreOnly|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.CoreOnly|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Debug|x86.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|Mixed Platforms.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|x86.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.iOS|x86.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|Mixed Platforms.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|x86.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Net20|x86.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|Mixed Platforms.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|x86.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Profile|x86.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|x86.ActiveCfg = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Release|x86.Build.0 = Release|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Any CPU.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|Mixed Platforms.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|x86.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Silverlight2|x86.Build.0 = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Unity|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEB5BF07-BB56-402A-97A3-A41C6444C6A5}.Unity|Any CPU.Build.0 = Debug|Any CPU
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Any CPU.Build.0 = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|x86.ActiveCfg = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Debug|x86.Build.0 = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Any CPU.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Mixed Platforms.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|Mixed Platforms.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.iOS|x86.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Any CPU.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Mixed Platforms.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|Mixed Platforms.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Net20|x86.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Any CPU.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Mixed Platforms.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|Mixed Platforms.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Profile|x86.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Any CPU.ActiveCfg = Debug|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|Mixed Platforms.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|x86.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Release|x86.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Mixed Platforms.ActiveCfg = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|Mixed Platforms.Build.0 = Release|x86
+ {E81DED36-EDF5-41A5-8666-A3A0C581762F}.Silverlight2|x86.ActiveCfg = Release|x86
+ EndGlobalSection
+ GlobalSection(MonoDevelopProperties) = preSolution
+ StartupItem = Src\SteamBot.csproj
+ Policies = $0
+ $0.DotNetNamingPolicy = $1
+ $1.DirectoryNamespaceAssociation = None
+ $1.ResourceNamePolicy = FileFormatDefault
+ $0.TextStylePolicy = $2
+ $2.inheritsSet = null
+ $2.scope = text/x-csharp
+ $0.CSharpFormattingPolicy = $3
+ $3.inheritsSet = Mono
+ $3.inheritsScope = text/x-csharp
+ $3.scope = text/x-csharp
+ $0.TextStylePolicy = $4
+ $4.FileWidth = 120
+ $4.inheritsSet = VisualStudio
+ $4.inheritsScope = text/plain
+ $4.scope = text/plain
+ $0.TextStylePolicy = $5
+ $5.inheritsSet = null
+ $5.scope = application/octet-stream
+ $0.StandardHeader = $6
+ $6.Text =
+ $6.IncludeInNewFiles = True
+ $0.NameConventionPolicy = $7
+ $7.Rules = $8
+ $8.NamingRule = $9
+ $9.Name = Namespaces
+ $9.AffectedEntity = Namespace
+ $9.VisibilityMask = VisibilityMask
+ $9.NamingStyle = PascalCase
+ $9.IncludeInstanceMembers = True
+ $9.IncludeStaticEntities = True
+ $8.NamingRule = $10
+ $10.Name = Types
+ $10.AffectedEntity = Class, Struct, Enum, Delegate
+ $10.VisibilityMask = VisibilityMask
+ $10.NamingStyle = PascalCase
+ $10.IncludeInstanceMembers = True
+ $10.IncludeStaticEntities = True
+ $8.NamingRule = $11
+ $11.Name = Interfaces
+ $11.RequiredPrefixes = $12
+ $12.String = I
+ $11.AffectedEntity = Interface
+ $11.VisibilityMask = VisibilityMask
+ $11.NamingStyle = PascalCase
+ $11.IncludeInstanceMembers = True
+ $11.IncludeStaticEntities = True
+ $8.NamingRule = $13
+ $13.Name = Attributes
+ $13.RequiredSuffixes = $14
+ $14.String = Attribute
+ $13.AffectedEntity = CustomAttributes
+ $13.VisibilityMask = VisibilityMask
+ $13.NamingStyle = PascalCase
+ $13.IncludeInstanceMembers = True
+ $13.IncludeStaticEntities = True
+ $8.NamingRule = $15
+ $15.Name = Event Arguments
+ $15.RequiredSuffixes = $16
+ $16.String = EventArgs
+ $15.AffectedEntity = CustomEventArgs
+ $15.VisibilityMask = VisibilityMask
+ $15.NamingStyle = PascalCase
+ $15.IncludeInstanceMembers = True
+ $15.IncludeStaticEntities = True
+ $8.NamingRule = $17
+ $17.Name = Exceptions
+ $17.RequiredSuffixes = $18
+ $18.String = Exception
+ $17.AffectedEntity = CustomExceptions
+ $17.VisibilityMask = VisibilityMask
+ $17.NamingStyle = PascalCase
+ $17.IncludeInstanceMembers = True
+ $17.IncludeStaticEntities = True
+ $8.NamingRule = $19
+ $19.Name = Methods
+ $19.AffectedEntity = Methods
+ $19.VisibilityMask = VisibilityMask
+ $19.NamingStyle = PascalCase
+ $19.IncludeInstanceMembers = True
+ $19.IncludeStaticEntities = True
+ $8.NamingRule = $20
+ $20.Name = Static Readonly Fields
+ $20.AffectedEntity = ReadonlyField
+ $20.VisibilityMask = Internal, Protected, Public
+ $20.NamingStyle = PascalCase
+ $20.IncludeInstanceMembers = False
+ $20.IncludeStaticEntities = True
+ $8.NamingRule = $21
+ $21.Name = Fields (Non Private)
+ $21.AffectedEntity = Field
+ $21.VisibilityMask = Internal, Protected, Public
+ $21.NamingStyle = PascalCase
+ $21.IncludeInstanceMembers = True
+ $21.IncludeStaticEntities = True
+ $8.NamingRule = $22
+ $22.Name = ReadOnly Fields (Non Private)
+ $22.AffectedEntity = ReadonlyField
+ $22.VisibilityMask = Internal, Protected, Public
+ $22.NamingStyle = PascalCase
+ $22.IncludeInstanceMembers = True
+ $22.IncludeStaticEntities = False
+ $8.NamingRule = $23
+ $23.Name = Fields (Private)
+ $23.AllowedPrefixes = $24
+ $24.String = _
+ $24.String = m_
+ $23.AffectedEntity = Field, ReadonlyField
+ $23.VisibilityMask = Private
+ $23.NamingStyle = CamelCase
+ $23.IncludeInstanceMembers = True
+ $23.IncludeStaticEntities = False
+ $8.NamingRule = $25
+ $25.Name = Static Fields (Private)
+ $25.AffectedEntity = Field
+ $25.VisibilityMask = Private
+ $25.NamingStyle = CamelCase
+ $25.IncludeInstanceMembers = False
+ $25.IncludeStaticEntities = True
+ $8.NamingRule = $26
+ $26.Name = ReadOnly Fields (Private)
+ $26.AllowedPrefixes = $27
+ $27.String = _
+ $27.String = m_
+ $26.AffectedEntity = ReadonlyField
+ $26.VisibilityMask = Private
+ $26.NamingStyle = CamelCase
+ $26.IncludeInstanceMembers = True
+ $26.IncludeStaticEntities = False
+ $8.NamingRule = $28
+ $28.Name = Constant Fields
+ $28.AffectedEntity = ConstantField
+ $28.VisibilityMask = VisibilityMask
+ $28.NamingStyle = PascalCase
+ $28.IncludeInstanceMembers = True
+ $28.IncludeStaticEntities = True
+ $8.NamingRule = $29
+ $29.Name = Properties
+ $29.AffectedEntity = Property
+ $29.VisibilityMask = VisibilityMask
+ $29.NamingStyle = PascalCase
+ $29.IncludeInstanceMembers = True
+ $29.IncludeStaticEntities = True
+ $8.NamingRule = $30
+ $30.Name = Events
+ $30.AffectedEntity = Event
+ $30.VisibilityMask = VisibilityMask
+ $30.NamingStyle = PascalCase
+ $30.IncludeInstanceMembers = True
+ $30.IncludeStaticEntities = True
+ $8.NamingRule = $31
+ $31.Name = Enum Members
+ $31.AffectedEntity = EnumMember
+ $31.VisibilityMask = VisibilityMask
+ $31.NamingStyle = PascalCase
+ $31.IncludeInstanceMembers = True
+ $31.IncludeStaticEntities = True
+ $8.NamingRule = $32
+ $32.Name = Parameters
+ $32.AffectedEntity = Parameter
+ $32.VisibilityMask = VisibilityMask
+ $32.NamingStyle = CamelCase
+ $32.IncludeInstanceMembers = True
+ $32.IncludeStaticEntities = True
+ $8.NamingRule = $33
+ $33.Name = Type Parameters
+ $33.RequiredPrefixes = $34
+ $34.String = T
+ $33.AffectedEntity = TypeParameter
+ $33.VisibilityMask = VisibilityMask
+ $33.NamingStyle = PascalCase
+ $33.IncludeInstanceMembers = True
+ $33.IncludeStaticEntities = True
+ outputpath = ..\Bin
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
View
770 SteamBot/Bot.cs
@@ -1,385 +1,385 @@
-using System;
-using System.Web;
-using System.Net;
-using System.Text;
-using System.Threading;
-using System.Security.Cryptography;
-using SteamKit2;
-using System.Collections.Generic;
-
-namespace SteamBot
-{
- public class Bot
- {
- // If the bot is logged in fully or not. This is only set
- // when it is.
- public bool IsLoggedIn = false;
-
- // The bot's display name. Changing this does not mean that
- // the bot's name will change.
- public string DisplayName { get; private set; }
-
- // The response to all chat messages sent to it.
- public string ChatResponse;
-
- // A list of SteamIDs that this bot recognizes as admins.
- public ulong[] Admins;
-
- public SteamFriends SteamFriends;
- public SteamClient SteamClient;
- public SteamTrading SteamTrade;
- public SteamUser SteamUser;
-
- // The current trade; if the bot is not in a trade, this is
- // null.
- public Trade CurrentTrade;
-
- public bool IsDebugMode = false;
-
- // The log for the bot. This logs with the bot's display name.
- public Log log;
-
- public delegate UserHandler UserHandlerCreator(Bot bot, SteamID id);
- public UserHandlerCreator CreateHandler;
- Dictionary<ulong, UserHandler> userHandlers = new Dictionary<ulong, UserHandler>();
-
- List<SteamID> friends = new List<SteamID>();
-
- // The maximum amount of time the bot will trade for.
- public int MaximumTradeTime { get; private set; }
-
- // The maximum amount of time the bot will wait in between
- // trade actions.
- public int MaximiumActionGap { get; private set; }
-
- // The bot's username (for the steam account).
- string Username;
-
- // The bot's password (for the steam account).
- string Password;
-
- // The SteamGuard authcode, if needed.
- string AuthCode;
-
- // The Steam Web API key.
- string apiKey;
-
- // The prefix put in the front of the bot's display name.
- string DisplayNamePrefix;
-
- // The number, in milliseconds, between polls for the trade.
- int TradePollingInterval;
-
- string sessionId;
- string token;
-
- public Bot(Configuration.BotInfo config, string apiKey, UserHandlerCreator handlerCreator, bool debug = false)
- {
- Username = config.Username;
- Password = config.Password;
- DisplayName = config.DisplayName;
- ChatResponse = config.ChatResponse;
- MaximumTradeTime = config.MaximumTradeTime;
- MaximiumActionGap = config.MaximumActionGap;
- DisplayNamePrefix = config.DisplayNamePrefix;
- TradePollingInterval = config.TradePollingInterval <= 100 ? 800 : config.TradePollingInterval;
- Admins = config.Admins;
- this.apiKey = apiKey;
- AuthCode = null;
- log = new Log (config.LogFile, this);
- CreateHandler = handlerCreator;
-
- // Hacking around https
- ServicePointManager.ServerCertificateValidationCallback += SteamWeb.ValidateRemoteCertificate;
-
- log.Debug ("Initializing Steam Bot...");
- SteamClient = new SteamClient();
- SteamTrade = SteamClient.GetHandler<SteamTrading>();
- SteamUser = SteamClient.GetHandler<SteamUser>();
- SteamFriends = SteamClient.GetHandler<SteamFriends>();
- log.Info ("Connecting...");
- SteamClient.Connect();
-
- Thread CallbackThread = new Thread(() => // Callback Handling
- {
- while (true)
- {
- CallbackMsg msg = SteamClient.WaitForCallback (true);
- HandleSteamMessage (msg);
- }
- });
-
- new Thread(() => // Trade Polling if needed
- {
- while (true)
- {
- Thread.Sleep (TradePollingInterval);
- if (CurrentTrade != null)
- {
- try
- {
- CurrentTrade.Poll ();
- }
- catch (Exception e)
- {
- log.Error ("Error Polling Trade: " + e);
- }
- }
- }
- }).Start ();
-
- CallbackThread.Start();
- log.Success ("Done Loading Bot!");
- CallbackThread.Join();
- }
-
- /// <summary>
- /// Creates a new trade with the given partner.
- /// </summary>
- /// <returns>
- /// <c>true</c>, if trade was opened,
- /// <c>false</c> if there is another trade that must be closed first.
- /// </returns>
- public bool OpenTrade (SteamID other)
- {
- if (CurrentTrade != null)
- return false;
- CurrentTrade = new Trade (SteamUser.SteamID, other, sessionId, token, apiKey, this);
- CurrentTrade.OnTimeout += CloseTrade;
- getHandler (other).SubscribeTrade (CurrentTrade);
- getHandler (other).OnTradeInit ();
- return true;
- }
-
- /// <summary>
- /// Closes the current active trade.
- /// </summary>
- public void CloseTrade() {
- if (CurrentTrade == null)
- return;
- getHandler (CurrentTrade.OtherSID).UnsubscribeTrade ();
- CurrentTrade = null;
- }
-
- void HandleSteamMessage (CallbackMsg msg)
- {
- log.Debug(msg.ToString());
-
- #region Login
- msg.Handle<SteamClient.ConnectedCallback> (callback =>
- {
- log.Debug ("Connection Callback: " + callback.Result);
-
- if (callback.Result == EResult.OK)
- {
- SteamUser.LogOn (new SteamUser.LogOnDetails
- {
- Username = Username,
- Password = Password,
- AuthCode = AuthCode
- });
- }
- else
- {
- log.Error ("Failed to connect to Steam Community, trying again...");
- SteamClient.Connect ();
- }
-
- });
-
- msg.Handle<SteamUser.LoggedOnCallback> (callback =>
- {
- log.Debug ("Logged On Callback: " + callback.Result);
-
- if (callback.Result != EResult.OK)
- {
- log.Error ("Login Error: " + callback.Result);
- }
-
- if (callback.Result == EResult.AccountLogonDenied)
- {
- log.Interface ("This account is protected by Steam Guard. Enter the authentication code sent to the proper email: ");
- AuthCode = Console.ReadLine();
- }
- });
-
- msg.Handle<SteamUser.LoginKeyCallback> (callback =>
- {
- while (true)
- {
- if (Authenticate (callback))
- {
- log.Success ("User Authenticated!");
- break;
- }
- else
- {
- log.Warn ("Authentication failed, retrying in 2s...");
- Thread.Sleep (2000);
- }
- }
-
- log.Info ("Downloading Schema...");
-
- Trade.CurrentSchema = Schema.FetchSchema (apiKey);
-
- log.Success ("Schema Downloaded!");
-
- SteamFriends.SetPersonaName (DisplayNamePrefix+DisplayName);
- SteamFriends.SetPersonaState (EPersonaState.Online);
-
- log.Success ("Steam Bot Logged In Completely!");
-
- IsLoggedIn = true;
- });
- #endregion
-
- #region Friends
- msg.Handle<SteamFriends.FriendsListCallback> (callback =>
- {
- foreach (SteamFriends.FriendsListCallback.Friend friend in callback.FriendList)
- {
- if (!friends.Contains(friend.SteamID))
- {
- friends.Add(friend.SteamID);
- if (friend.Relationship == EFriendRelationship.PendingInvitee &&
- getHandler(friend.SteamID).OnFriendAdd())
- {
- SteamFriends.AddFriend (friend.SteamID);
- }
- }
- }
- });
-
- msg.Handle<SteamFriends.FriendMsgCallback> (callback =>
- {
- EChatEntryType type = callback.EntryType;
-
- log.Info (String.Format ("Chat Message from {0}: {1}",
- SteamFriends.GetFriendPersonaName (callback.Sender),
- callback.Message
- ));
- if (callback.EntryType == EChatEntryType.ChatMsg ||
- callback.EntryType == EChatEntryType.Emote)
- {
- getHandler(callback.Sender).OnMessage(callback.Message, type);
- }
- });
- #endregion
-
- #region Trading
- msg.Handle<SteamTrading.SessionStartCallback> (callback =>
- {
- OpenTrade (callback.OtherClient);
- });
-
- msg.Handle<SteamTrading.TradeProposedCallback> (callback =>
- {
- if (CurrentTrade == null && getHandler (callback.OtherClient).OnTradeRequest ())
- SteamTrade.RespondToTrade (callback.TradeID, true);
- else
- SteamTrade.RespondToTrade (callback.TradeID, false);
- });
-
- msg.Handle<SteamTrading.TradeResultCallback> (callback =>
- {
- log.Debug ("Trade Status: "+ callback.Response);
-
- if (callback.Response == EEconTradeResponse.Accepted)
- {
- log.Info ("Trade Accepted!");
- }
- if (callback.Response == EEconTradeResponse.Cancel ||
- callback.Response == EEconTradeResponse.ConnectionFailed ||
- callback.Response == EEconTradeResponse.Declined ||
- callback.Response == EEconTradeResponse.Error ||
- callback.Response == EEconTradeResponse.InitiatorAlreadyTrading ||
- callback.Response == EEconTradeResponse.TargetAlreadyTrading ||
- callback.Response == EEconTradeResponse.Timeout ||
- callback.Response == EEconTradeResponse.TooSoon ||
- callback.Response == EEconTradeResponse.VacBannedInitiator ||
- callback.Response == EEconTradeResponse.VacBannedTarget ||
- callback.Response == EEconTradeResponse.NotLoggedIn) // uh...
- {
- CloseTrade ();
- }
-
- });
- #endregion
-
- #region Disconnect
- msg.Handle<SteamUser.LoggedOffCallback> (callback =>
- {
- IsLoggedIn = false;
- log.Warn ("Logged Off: " + callback.Result);
- });
-
- msg.Handle<SteamClient.DisconnectedCallback> (callback =>
- {
- IsLoggedIn = false;
- CloseTrade ();
- log.Warn ("Disconnected from Steam Network!");
- SteamClient.Connect ();
- });
- #endregion
- }
-
- // Authenticate. This does the same as SteamWeb.DoLogin(),
- // but without contacting the Steam Website.
- // Should this one doesnt work anymore, use SteamWeb.DoLogin().
- bool Authenticate (SteamUser.LoginKeyCallback callback)
- {
- sessionId = Convert.ToBase64String (Encoding.UTF8.GetBytes (callback.UniqueID.ToString ()));
-
- using (dynamic userAuth = WebAPI.GetInterface ("ISteamUserAuth"))
- {
- // generate an AES session key
- var sessionKey = CryptoHelper.GenerateRandomBlock (32);
-
- // rsa encrypt it with the public key for the universe we're on
- byte[] cryptedSessionKey = null;
- using (RSACrypto rsa = new RSACrypto (KeyDictionary.GetPublicKey (SteamClient.ConnectedUniverse)))
- {
- cryptedSessionKey = rsa.Encrypt (sessionKey);
- }
-
-
- byte[] loginKey = new byte[20];
- Array.Copy (Encoding.ASCII.GetBytes (callback.LoginKey), loginKey, callback.LoginKey.Length);
-
- // aes encrypt the loginkey with our session key
- byte[] cryptedLoginKey = CryptoHelper.SymmetricEncrypt (loginKey, sessionKey);
-
- KeyValue authResult;
-
- try
- {
- authResult = userAuth.AuthenticateUser (
- steamid: SteamClient.SteamID.ConvertToUInt64 (),
- sessionkey: HttpUtility.UrlEncode (cryptedSessionKey),
- encrypted_loginkey: HttpUtility.UrlEncode (cryptedLoginKey),
- method: "POST"
- );
- }
- catch (Exception)
- {
- return false;
- }
-
- token = authResult ["token"].AsString ();
-
- return true;
- }
- }
-
- UserHandler getHandler (SteamID sid)
- {
- if (!userHandlers.ContainsKey (sid))
- {
- userHandlers [sid.ConvertToUInt64 ()] = CreateHandler (this, sid);
- }
- return userHandlers [sid.ConvertToUInt64 ()];
- }
-
- }
-}
+using System;
+using System.Web;
+using System.Net;
+using System.Text;
+using System.Threading;
+using System.Security.Cryptography;
+using SteamKit2;
+using System.Collections.Generic;
+
+namespace SteamBot
+{
+ public class Bot
+ {
+ // If the bot is logged in fully or not. This is only set
+ // when it is.
+ public bool IsLoggedIn = false;
+
+ // The bot's display name. Changing this does not mean that
+ // the bot's name will change.
+ public string DisplayName { get; private set; }
+
+ // The response to all chat messages sent to it.
+ public string ChatResponse;
+
+ // A list of SteamIDs that this bot recognizes as admins.
+ public ulong[] Admins;
+
+ public SteamFriends SteamFriends;
+ public SteamClient SteamClient;
+ public SteamTrading SteamTrade;
+ public SteamUser SteamUser;
+
+ // The current trade; if the bot is not in a trade, this is
+ // null.
+ public Trade CurrentTrade;
+
+ public bool IsDebugMode = false;
+
+ // The log for the bot. This logs with the bot's display name.
+ public Log log;
+
+ public delegate UserHandler UserHandlerCreator(Bot bot, SteamID id);
+ public UserHandlerCreator CreateHandler;
+ Dictionary<ulong, UserHandler> userHandlers = new Dictionary<ulong, UserHandler>();
+
+ List<SteamID> friends = new List<SteamID>();
+
+ // The maximum amount of time the bot will trade for.
+ public int MaximumTradeTime { get; private set; }
+
+ // The maximum amount of time the bot will wait in between
+ // trade actions.
+ public int MaximiumActionGap { get; private set; }
+
+ // The bot's username (for the steam account).
+ string Username;
+
+ // The bot's password (for the steam account).
+ string Password;
+
+ // The SteamGuard authcode, if needed.
+ string AuthCode;
+
+ // The Steam Web API key.
+ string apiKey;
+
+ // The prefix put in the front of the bot's display name.
+ string DisplayNamePrefix;
+
+ // The number, in milliseconds, between polls for the trade.
+ int TradePollingInterval;
+
+ string sessionId;
+ string token;
+
+ public Bot(Configuration.BotInfo config, string apiKey, UserHandlerCreator handlerCreator, bool debug = false)
+ {
+ Username = config.Username;
+ Password = config.Password;
+ DisplayName = config.DisplayName;
+ ChatResponse = config.ChatResponse;
+ MaximumTradeTime = config.MaximumTradeTime;
+ MaximiumActionGap = config.MaximumActionGap;
+ DisplayNamePrefix = config.DisplayNamePrefix;
+ TradePollingInterval = config.TradePollingInterval <= 100 ? 800 : config.TradePollingInterval;
+ Admins = config.Admins;
+ this.apiKey = apiKey;
+ AuthCode = null;
+ log = new Log (config.LogFile, this);
+ CreateHandler = handlerCreator;
+
+ // Hacking around https
+ ServicePointManager.ServerCertificateValidationCallback += SteamWeb.ValidateRemoteCertificate;
+
+ log.Debug ("Initializing Steam Bot...");
+ SteamClient = new SteamClient();
+ SteamTrade = SteamClient.GetHandler<SteamTrading>();
+ SteamUser = SteamClient.GetHandler<SteamUser>();
+ SteamFriends = SteamClient.GetHandler<SteamFriends>();
+ log.Info ("Connecting...");
+ SteamClient.Connect();
+
+ Thread CallbackThread = new Thread(() => // Callback Handling
+ {
+ while (true)
+ {
+ CallbackMsg msg = SteamClient.WaitForCallback (true);
+ HandleSteamMessage (msg);
+ }
+ });
+
+ new Thread(() => // Trade Polling if needed
+ {
+ while (true)
+ {
+ Thread.Sleep (TradePollingInterval);
+ if (CurrentTrade != null)
+ {
+ try
+ {
+ CurrentTrade.Poll ();
+ }
+ catch (Exception e)
+ {
+ log.Error ("Error Polling Trade: " + e);
+ }
+ }
+ }
+ }).Start ();
+
+ CallbackThread.Start();
+ log.Success ("Done Loading Bot!");
+ CallbackThread.Join();
+ }
+
+ /// <summary>
+ /// Creates a new trade with the given partner.
+ /// </summary>
+ /// <returns>
+ /// <c>true</c>, if trade was opened,
+ /// <c>false</c> if there is another trade that must be closed first.
+ /// </returns>
+ public bool OpenTrade (SteamID other)
+ {
+ if (CurrentTrade != null)
+ return false;
+ CurrentTrade = new Trade (SteamUser.SteamID, other, sessionId, token, apiKey, this);
+ CurrentTrade.OnTimeout += CloseTrade;
+ getHandler (other).SubscribeTrade (CurrentTrade);
+ getHandler (other).OnTradeInit ();
+ return true;
+ }
+
+ /// <summary>
+ /// Closes the current active trade.
+ /// </summary>
+ public void CloseTrade() {
+ if (CurrentTrade == null)
+ return;
+ getHandler (CurrentTrade.OtherSID).UnsubscribeTrade ();
+ CurrentTrade = null;
+ }
+
+ void HandleSteamMessage (CallbackMsg msg)
+ {
+ log.Debug(msg.ToString());
+
+ #region Login
+ msg.Handle<SteamClient.ConnectedCallback> (callback =>
+ {
+ log.Debug ("Connection Callback: " + callback.Result);
+
+ if (callback.Result == EResult.OK)
+ {
+ SteamUser.LogOn (new SteamUser.LogOnDetails
+ {
+ Username = Username,
+ Password = Password,
+ AuthCode = AuthCode
+ });
+ }
+ else
+ {
+ log.Error ("Failed to connect to Steam Community, trying again...");
+ SteamClient.Connect ();
+ }
+
+ });
+
+ msg.Handle<SteamUser.LoggedOnCallback> (callback =>
+ {
+ log.Debug ("Logged On Callback: " + callback.Result);
+
+ if (callback.Result != EResult.OK)
+ {
+ log.Error ("Login Error: " + callback.Result);
+ }
+
+ if (callback.Result == EResult.AccountLogonDenied)
+ {
+ log.Interface ("This account is protected by Steam Guard. Enter the authentication code sent to the proper email: ");
+ AuthCode = Console.ReadLine();
+ }
+ });
+
+ msg.Handle<SteamUser.LoginKeyCallback> (callback =>
+ {
+ while (true)
+ {
+ if (Authenticate (callback))
+ {
+ log.Success ("User Authenticated!");
+ break;
+ }
+ else
+ {
+ log.Warn ("Authentication failed, retrying in 2s...");
+ Thread.Sleep (2000);
+ }
+ }
+
+ log.Info ("Downloading Schema...");
+
+ Trade.CurrentSchema = Schema.FetchSchema (apiKey);
+
+ log.Success ("Schema Downloaded!");
+
+ SteamFriends.SetPersonaName (DisplayNamePrefix+DisplayName);
+ SteamFriends.SetPersonaState (EPersonaState.Online);
+
+ log.Success ("Steam Bot Logged In Completely!");
+
+ IsLoggedIn = true;
+ });
+ #endregion
+
+ #region Friends
+ msg.Handle<SteamFriends.FriendsListCallback> (callback =>
+ {
+ foreach (SteamFriends.FriendsListCallback.Friend friend in callback.FriendList)
+ {
+ if (!friends.Contains(friend.SteamID))
+ {
+ friends.Add(friend.SteamID);
+ if (friend.Relationship == EFriendRelationship.PendingInvitee &&
+ getHandler(friend.SteamID).OnFriendAdd())
+ {
+ SteamFriends.AddFriend (friend.SteamID);
+ }
+ }
+ }
+ });
+
+ msg.Handle<SteamFriends.FriendMsgCallback> (callback =>
+ {
+ EChatEntryType type = callback.EntryType;
+
+ log.Info (String.Format ("Chat Message from {0}: {1}",
+ SteamFriends.GetFriendPersonaName (callback.Sender),
+ callback.Message
+ ));
+ if (callback.EntryType == EChatEntryType.ChatMsg ||
+ callback.EntryType == EChatEntryType.Emote)
+ {
+ getHandler(callback.Sender).OnMessage(callback.Message, type);
+ }
+ });
+ #endregion
+
+ #region Trading
+ msg.Handle<SteamTrading.SessionStartCallback> (callback =>
+ {
+ OpenTrade (callback.OtherClient);
+ });
+
+ msg.Handle<SteamTrading.TradeProposedCallback> (callback =>
+ {
+ if (CurrentTrade == null && getHandler (callback.OtherClient).OnTradeRequest ())
+ SteamTrade.RespondToTrade (callback.TradeID, true);
+ else
+ SteamTrade.RespondToTrade (callback.TradeID, false);
+ });
+
+ msg.Handle<SteamTrading.TradeResultCallback> (callback =>
+ {
+ log.Debug ("Trade Status: "+ callback.Response);
+
+ if (callback.Response == EEconTradeResponse.Accepted)
+ {
+ log.Info ("Trade Accepted!");
+ }
+ if (callback.Response == EEconTradeResponse.Cancel ||
+ callback.Response == EEconTradeResponse.ConnectionFailed ||
+ callback.Response == EEconTradeResponse.Declined ||
+ callback.Response == EEconTradeResponse.Error ||
+ callback.Response == EEconTradeResponse.InitiatorAlreadyTrading ||
+ callback.Response == EEconTradeResponse.TargetAlreadyTrading ||
+ callback.Response == EEconTradeResponse.Timeout ||
+ callback.Response == EEconTradeResponse.TooSoon ||
+ callback.Response == EEconTradeResponse.VacBannedInitiator ||
+ callback.Response == EEconTradeResponse.VacBannedTarget ||
+ callback.Response == EEconTradeResponse.NotLoggedIn) // uh...
+ {
+ CloseTrade ();
+ }
+
+ });
+ #endregion
+
+ #region Disconnect
+ msg.Handle<SteamUser.LoggedOffCallback> (callback =>
+ {
+ IsLoggedIn = false;
+ log.Warn ("Logged Off: " + callback.Result);
+ });
+
+ msg.Handle<SteamClient.DisconnectedCallback> (callback =>
+ {
+ IsLoggedIn = false;
+ CloseTrade ();
+ log.Warn ("Disconnected from Steam Network!");
+ SteamClient.Connect ();
+ });
+ #endregion
+ }
+
+ // Authenticate. This does the same as SteamWeb.DoLogin(),
+ // but without contacting the Steam Website.
+ // Should this one doesnt work anymore, use SteamWeb.DoLogin().
+ bool Authenticate (SteamUser.LoginKeyCallback callback)
+ {
+ sessionId = Convert.ToBase64String (Encoding.UTF8.GetBytes (callback.UniqueID.ToString ()));
+
+ using (dynamic userAuth = WebAPI.GetInterface ("ISteamUserAuth"))
+ {
+ // generate an AES session key
+ var sessionKey = CryptoHelper.GenerateRandomBlock (32);
+
+ // rsa encrypt it with the public key for the universe we're on
+ byte[] cryptedSessionKey = null;
+ using (RSACrypto rsa = new RSACrypto (KeyDictionary.GetPublicKey (SteamClient.ConnectedUniverse)))
+ {
+ cryptedSessionKey = rsa.Encrypt (sessionKey);
+ }
+
+
+ byte[] loginKey = new byte[20];
+ Array.Copy (Encoding.ASCII.GetBytes (callback.LoginKey), loginKey, callback.LoginKey.Length);
+
+ // aes encrypt the loginkey with our session key
+ byte[] cryptedLoginKey = CryptoHelper.SymmetricEncrypt (loginKey, sessionKey);
+
+ KeyValue authResult;
+
+ try
+ {
+ authResult = userAuth.AuthenticateUser (
+ steamid: SteamClient.SteamID.ConvertToUInt64 (),
+ sessionkey: HttpUtility.UrlEncode (cryptedSessionKey),
+ encrypted_loginkey: HttpUtility.UrlEncode (cryptedLoginKey),
+ method: "POST"
+ );
+ }
+ catch (Exception)
+ {
+ return false;
+ }
+
+ token = authResult ["token"].AsString ();
+
+ return true;
+ }
+ }
+
+ UserHandler getHandler (SteamID sid)
+ {
+ if (!userHandlers.ContainsKey (sid))
+ {
+ userHandlers [sid.ConvertToUInt64 ()] = CreateHandler (this, sid);
+ }
+ return userHandlers [sid.ConvertToUInt64 ()];
+ }
+
+ }
+}
View
36 SteamBot/BotInfo.cs
@@ -1,18 +1,18 @@
-namespace SteamBot
-{
- public class BotFile
- {
- public ulong[] Admins { get; set; }
- public BotInfo[] Bots { get; set; }
- public string ApiKey { get; set; }
- }
-
- public class BotInfo
- {
- public string Username { get; set; }
- public string Password { get; set; }
- public string DisplayName { get; set; }
- public string ChatResponse { get; set; }
- public ulong[] Admins;
- }
-}
+namespace SteamBot
+{
+ public class BotFile
+ {
+ public ulong[] Admins { get; set; }
+ public BotInfo[] Bots { get; set; }
+ public string ApiKey { get; set; }
+ }
+
+ public class BotInfo
+ {
+ public string Username { get; set; }
+ public string Password { get; set; }
+ public string DisplayName { get; set; }
+ public string ChatResponse { get; set; }
+ public ulong[] Admins;
+ }
+}
View
146 SteamBot/ExampleBot.csproj
@@ -1,73 +1,73 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
- <ProductVersion>10.0.0</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{E81DED36-EDF5-41A5-8666-A3A0C581762F}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <RootNamespace>SteamBot</RootNamespace>
- <AssemblyName>ExampleBot</AssemblyName>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\Bin\Debug</OutputPath>
- <DefineConstants>DEBUG;</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <PlatformTarget>x86</PlatformTarget>
- <Externalconsole>true</Externalconsole>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
- <DebugType>none</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\Bin\Release</OutputPath>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <PlatformTarget>x86</PlatformTarget>
- <Externalconsole>true</Externalconsole>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Net" />
- <Reference Include="System.Core" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xaml" />
- <Reference Include="System.Numerics" />
- <Reference Include="System.Management" />
- <Reference Include="System.Web" />
- <Reference Include="MonoDevelop.CSharpBinding, Version=2.6.0.0, Culture=neutral">
- <Private>False</Private>
- <Package>monodevelop-core-addins</Package>
- </Reference>
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Web.Extensions" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Bot.cs" />
- <Compile Include="AssemblyInfo.cs" />
- <Compile Include="SteamWeb.cs" />
- <Compile Include="Trade.cs" />
- <Compile Include="Inventory.cs" />
- <Compile Include="Schema.cs" />
- <Compile Include="Configuration.cs" />
- <Compile Include="Program.cs" />
- <Compile Include="Log.cs" />
- <Compile Include="UserHandler.cs" />
- <Compile Include="SimpleUserHandler.cs" />
- </ItemGroup>
- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
- <ItemGroup>
- <ProjectReference Include="..\Lib\Newtonsoft.Json\Src\Newtonsoft.Json\Newtonsoft.Json.csproj">
- <Project>{A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}</Project>
- <Name>Newtonsoft.Json</Name>
- </ProjectReference>
- <ProjectReference Include="..\Lib\SteamKit2\SteamKit2\SteamKit2.csproj">
- <Project>{BEB5BF07-BB56-402A-97A3-A41C6444C6A5}</Project>
- <Name>SteamKit2</Name>
- </ProjectReference>
- </ItemGroup>
-</Project>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+ <ProductVersion>10.0.0</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{E81DED36-EDF5-41A5-8666-A3A0C581762F}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <RootNamespace>SteamBot</RootNamespace>
+ <AssemblyName>ExampleBot</AssemblyName>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\Bin\Debug</OutputPath>
+ <DefineConstants>DEBUG;</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <PlatformTarget>x86</PlatformTarget>
+ <Externalconsole>true</Externalconsole>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+ <DebugType>none</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\Bin\Release</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <PlatformTarget>x86</PlatformTarget>
+ <Externalconsole>true</Externalconsole>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Net" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xaml" />
+ <Reference Include="System.Numerics" />
+ <Reference Include="System.Management" />
+ <Reference Include="System.Web" />
+ <Reference Include="MonoDevelop.CSharpBinding, Version=2.6.0.0, Culture=neutral">
+ <Private>False</Private>
+ <Package>monodevelop-core-addins</Package>
+ </Reference>
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Web.Extensions" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Bot.cs" />
+ <Compile Include="AssemblyInfo.cs" />
+ <Compile Include="SteamWeb.cs" />
+ <Compile Include="Trade.cs" />
+ <Compile Include="Inventory.cs" />
+ <Compile Include="Schema.cs" />
+ <Compile Include="Configuration.cs" />
+ <Compile Include="Program.cs" />
+ <Compile Include="Log.cs" />
+ <Compile Include="UserHandler.cs" />
+ <Compile Include="SimpleUserHandler.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <ItemGroup>
+ <ProjectReference Include="..\Lib\Newtonsoft.Json\Src\Newtonsoft.Json\Newtonsoft.Json.csproj">
+ <Project>{A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}</Project>
+ <Name>Newtonsoft.Json</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Lib\SteamKit2\SteamKit2\SteamKit2.csproj">
+ <Project>{BEB5BF07-BB56-402A-97A3-A41C6444C6A5}</Project>
+ <Name>SteamKit2</Name>
+ </ProjectReference>
+ </ItemGroup>
+</Project>
View
168 SteamBot/Schema.cs
@@ -1,84 +1,84 @@
-using System;
-using Newtonsoft.Json;
-
-namespace SteamBot
-{
- public class Schema
- {
-
- public static Schema FetchSchema (string apiKey)
- {
- var url = "http://api.steampowered.com/IEconItems_440/GetSchema/v0001/?key=" + apiKey;
-
- string result = SteamWeb.Fetch (url, "GET");
-
- SchemaResult schemaResult = JsonConvert.DeserializeObject<SchemaResult> (result);
- return schemaResult.result ?? null;
- }
-
- [JsonProperty("status")]
- public int Status { get; set; }
-
- [JsonProperty("items_game_url")]
- public string ItemsGameUrl { get; set; }
-
- [JsonProperty("items")]
- public Item[] Items { get; set; }
-
- [JsonProperty("originNames")]
- public ItemOrigin[] OriginNames { get; set; }
-
- /// <summary>
- /// Find an SchemaItem by it's defindex.
- /// </summary>
- public Item GetItem (int defindex)
- {
- foreach (Item item in Items)
- {
- if (item.Defindex == defindex)
- return item;
- }
- return null;
- }
-
- public class ItemOrigin
- {
- [JsonProperty("origin")]
- public int Origin { get; set; }
-
- [JsonProperty("name")]
- public string Name { get; set; }
- }
-
- public class Item
- {
- [JsonProperty("name")]
- public string Name { get; set; }
-
- [JsonProperty("defindex")]
- public ushort Defindex { get; set; }
-
- [JsonProperty("item_class")]
- public string ItemClass { get; set; }
-
- [JsonProperty("item_type_name")]
- public string ItemTypeName { get; set; }
-
- [JsonProperty("item_name")]
- public string ItemName { get; set; }
-
- [JsonProperty("craft_material_type")]
- public string CraftMaterialType { get; set; }
-
- [JsonProperty("used_by_classes")]
- public string[] UsableByClasses { get; set; }
- }
-
- protected class SchemaResult
- {
- public Schema result { get; set; }
- }
-
- }
-}
-
+using System;
+using Newtonsoft.Json;
+
+namespace SteamBot
+{
+ public class Schema