ModBot for Discord
ModBot is a Discord bot for mod.io using modio-rs and serenity.
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.
- Invite the ModBot https://discordbot.mod.io/
- View the games list
~gamesand set the default game~game ID - In the channel(s) you want the bot to post updates (mod added / edited), run the command
~subscribe ID - Ensure the bot has
Read Messages,Send MessagesandEmbed Linkspermissions 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:
~helpshow these commands~prefix CHARACTERchange the default prefix from~to something else~game <ID|Name>set the default game~gamereturn information about the default game~gamesreturn a list of all games~mod <ID|Name>return information about the mod(s) requested~mods [ID|Name]return a list of all mods belonging to the default game~popularreturn a list of mods ordered by popularity~subscribe <ID|Name> [Tag..]subscribe to a game for updates (mods added/edited) [alias:sub]~sub 51 ~sub xcom ~sub xcom "UFO Defense" Major ~sub "Skate XL" "Real World Spot" ~sub skate Gear Deck~subscriptionssee all games subscribed too [alias:subs]~unsubscribe <ID|Name> [Tag..]unsubscribe from a game [alias:unsub]~unsub 51 ~unsub OpenXcom ~unsub xcom "UFO Defense" Major ~unsub "Skate XL" "Real World Spot" ~unsub skate Gear Deck~mute <Game> <Mod>mute a mod from update notifications~mutedreturn a list of all muted mods~unmute <Game> <Mod>unmute a mod from update notifications
Screenshots
Mod details

New Mod 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.
[]
="your discord bot token"
="/path/to/sqlite.db"
[]
="your mod.io api key"
A example is provided as bot.example.toml.
Running the bot
Logging
Logging can be configured via environment variables.
RUST_LOG=modio=debug,modbot=debug
See tracing_subscriber::EnvFilter for more information.
Metrics
By default, the metrics are exposed via Prometheus endpoint listing on http://127.0.0.1:8080/metrics.
[]
= "127.0.0.1:3000"
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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.