ModBot for Discord

Crates.io Rust version License GitHub Action Discord

ModBot is a Discord bot for [mod.io] using [modio-rs] and [serenity].

SetupCommandsScreenshotsBuildingInstallationUsageLicense

Setup

You can invite the officially hosted ModBot to join your Discord server using the following URL https://discordbot.mod.io, or you can build and install your own version of ModBot by following the instructions below.

  1. Invite the ModBot https://discordbot.mod.io/
  2. View the games list ~games and set the default game ~game ID
  3. In the channel(s) you want the bot to post updates (mod added / edited), run the command ~subscribe ID
  4. Ensure the bot has Read Messages, Send Messages and Embed Links permissions in the channel(s) it is in to be able to function correctly

Commands

By default ~ is the prefix used to issue commands to ModBot. Once you have invited ModBot to your server, you can set the default game using the command ~game ID. Now when a user issues the command ~mods, all of the mods for the game you specified will be returned. You can change the default game at any time.

We recommend you also ~subscribe ID to games you are interested in receiving push notifications from. For example in our #bot channel, we have subscribed to a bunch of games and whenever a mod is updated, the channel is notified.

Popular commands include:

Screenshots

Mod details

details

New Mod notification

notification

Building

MODBOT is written in Rust, so you'll need to grab a Rust installation in order to compile it. Building is easy:

$ git clone https://github.com/nickelc/modio-bot $ cd modio-bot $ cargo build --release $ ./target/release/modbot

Building with bundled sqlite3

Use the feature sqlite-bundled to compile sqlite3 from source and link against that.

$ cargo build --features sqlite-bundled

Installation

Cargo

$ cargo install --git https://github.com/nickelc/modio-bot $ $HOME/.cargo/bin/modbot

Usage

Create a bot.toml config file in the working directory.

```toml [bot] token="your discord bot token" database_url="/path/to/sqlite.db"

[modio] api_key="your mod.io api key" ```

A example is provided as bot.example.toml.

Running the bot

```bash ./path/to/modbot

./path/to/modbot --config path/to/bot.toml ```

Logging

Logging can be configured via environment variables.

bash RUST_LOG=modio=debug,modbot=debug

See [tracing_subscriber::EnvFilter] for more information.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.