SDroid is a framework for designing and running custom bots for Steam network capable of trading and managing the Steam Account they are connected to.
Based on geel9's SteamAuth and Jessecar96's SteamBot projects.
SDroid.SteamWeb is a C# library that provides Steam web login, access and WebAPI functionalities.
Click here to read more about this library.
This library is available as a NuGet package here.
SDroid.SteamMobile is a C# library that provides Steam Mobile and Mobile Authenticator functionalities.
Click here to read more about this library.
This library is available as a NuGet package here.
SDroid.SteamTrade is a C# library that provides Steam trading and inventory retrieval functionalities.
Click here to read more about this library.
This library is available as a NuGet package here.
SDroid in the highest level library in this project that aims to provides developers with an easier path to design, develop and deploy a custom bot for the Steam Network.
This readme file contains information about the types available in this library and links to some simple sample bots developed with it.
This library is available as a NuGet package here.
--OR--
You can always donate your time by contributing to the project or by introducing it to others.
Followings are the classes available in this library along with their primary responsibility.
SteamBot
is an abstract class allowing developers to create a simple Steam Bot with as little code as possible.
SteamKitBot
is an abstract class extending the SteamBot
type which aims to allow developers
to make a Steam Bot with access to the Steam Network through the SteamKit2
library with as little code as possible.
Followings are the classes available in this library along with their primary responsibility.
IAuthenticatorBot
is an interface that can be added to a SteamBot
child class that allows the login
process to use the code generated by the authenticator to login into the Steam Website or Network.
The process of linking an authenticator to the account should be still handled by the developer. However, a
bot extending the SteamBot
and implementing the IAuthenticatorBot
will also be notified if a new
authenticator confirmation becomes available.
An IAuthenticatorBot
bot automatically logs in using the mobile endpoints. This also allows for a greater
session validity.
ITradeBot
is an interface that can be added to a SteamBot
child class that automatically initializes an instance of
TradeManager
after login and notifies the bot extending the SteamBot
and implementing the ITradeBot
of its events.
ITradeOfferBot
is an interface that can be added to a SteamBot
child class that automatically initializes an instance of
TradeOfferManager
after login and notifies the bot extending the SteamBot
and implementing the ITradeOfferBot
of its events.
There are three sample bots available as part of the SDroidTest project:
AuthenticatorBot
is a bot extending the SteamBot
and implementing the IAuthenticatorBot
interface that
asks for a "maFile" or a "maFile2" to deserialize an authenticator as part of the login process. This bot also gets
notifications regarding new authenticator confirmations and can accept or reject these confirmations from the terminal.
Read the code being this bot by clicking here or by compiling the SDroidTest
project.
SteamKitBot
is a bot extending the SteamKitBot
type and connects to the Steam Network, logs in, changes its online status, gets notifications regarding the account settings and wallet information as well as new chat messages.
Chat responses can be sent from the terminal to all friends.
Read the code being this bot by clicking here or by compiling the SDroidTest
project.
TradeOfferBot
is a bot extending the SteamBot
and implementing the ITradeofferBot
interface that login in and
gets notifications regarding changes in trade offers as well as retrieving bot's inventory on login.
Incoming trade offers can be accepted or rejected from the terminal.
Read the code being this bot by clicking here or by compiling the SDroidTest
project.
Please note that this library created for research and educational propose only and there is no guarantee for it to work or function properly.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The MIT License (MIT)
Copyright (c) 2018-2020 Soroush Falahati
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.