Extensible chat bot for Steam
C#
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Addins
CoreAddins/CoreConsoleCommands
MoistureBot
MoistureBotLib
MoistureBotTest
assets
.gitignore
.travis.yml
LICENSE
MoistureBot.sln
README.md

README.md

Build Status

MoistureBot

MoistureBot is an extensible chat bot for steam based on SteamKit2. It uses Mono.Addins to provide extensibility.

Example usage

Dependencies

In order to run or build MoistureBot, you will need .NET 4.5 or Mono ≥ 3.0.0. You can check your current Mono version by typing mono --version into your command line.

Building on Linux

Tested on: Debian GNU/Linux 8.5 (jessie), Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-10)

cd ~
git clone https://github.com/attemoi/MoistureBot.git
cd MoistureBot
xbuild /p:Configuration=Release

After a successful build, the binaries will be in MoistureBot/bin/Release and can be run with mono MoistureBot.exe

Possible issues

  • Nuget can't find referenced libraries:
    • Try to import required certificates with mozroots --import --sync

Building on Windows

Building on Windows is the same as for linux, but you may also use msbuild instead of xbuild if you don't have Mono installed. In order for SQLite to work on Windows, you need to download the precompiled SQLite3 binaries from http://www.sqlite.org/download.html. Place the binaries (sqlite3.dll) in the same folder with MoistureBot.exe.

Creating addins

You can start by taking a look at some of the sample plugins listed below. In short, an addin only needs three things to work:

  1. A reference to MoistureBotLib.dll (included in the project)
  2. A file named PluginName.addin.xml for configuring what the addin extends.
  3. Your own fantastic addin code, that implements the wanted extension point interfaces defined in MoistureBotLib.dll.

If you want to know more about how the addin system works, see http://monoaddins.codeplex.com/.

The project includes the following addins:

  • Moikkaaja: reply to greetings defined in an xml file.
  • AutoInviteJoin: automatically join group chats when invited.
  • AutoReconnect: automatically check connection every 10 minutes and reconnect and join favorite rooms if needed.
  • GameInviteReply: automatically reply to game lobby invites with random message sequences selected from an xml file.
  • EmbedlyUrlInfo: reply to video urls with title using embed.ly API.
  • SQLiteChatLogger: log chat messages and urls to SQLite database.
  • UrlHistoryCommand: Displays last 20 urls from chat log when user types !urlhistory.
  • HistoryCommand: Displays last 20 messages from chat log when user types !history.

License

This project is licensed under the MIT license.