# SomeBot The SomeBot is a simple Discord Bot with the D++ Discord Library! ## Features The bot is completely modular and allows the creation of different configurations for different bot tokens. D++ also allows auto-sharding and automatically starts the right number of shards. ### Modules * Captcha: Gives people a specific role when they answer a captcha * Embedmaker: Creates user-defined embeds * Fun: A couple of fun commands * Globalchat: Connects text channels on different servers with each other * Info: Displays information about the bot, server and user * Lastseen: Tracks user activity and shows when a user was last active * Levels: Assigns levels with user-defined speed and assigns roles * Management: Allows the bot to be managed from a central Discord server (bans, global chat moderation, etc.) * Ticket: Allows the creation and management of support tickets and saves logs ## Configuration Here is an example configuration: [ { "id": "tuxi", "management_guild_id": "1073679409623617556", "token": "ODAyODYzNTU0MjY4NjI2OTY1<redacted>r7zrQOCRI", "owner_id": "609486822715818000", "private": false, "modules_mode": "blacklist", "modules": ["Globalchat"] }, { "id": "exxo", "token": "MTA0ODk3NjA3MDA4NDQxMTM5Mg<redacted>sCvig8wEA", "owner_id": "<redacted>", "private": true, "modules_mode": "whitelist", "modules": ["Captcha", "Levels", "Info", "Globalchat", "Lastseen", "Ticket", "Embedmaker"] } ] And here is an explanation of the different options: { "id": "<name of the instance, any>", "token": "<bot token>", "owner_id": "<ID of the owner, optional>", "management_guild_id": "<ID of the management server, for the "Management" module>", "private": <whether the bot is private, i.e. will only be added by the user on servers>, "modules_mode": "<Whether the following module list is a blacklist or a whitelist (whitelist/blacklist), optional (default: whitelist)>", "modules": "<list of modules, see modules_mode>", "command_alias_mode", "<Which variants of the command names are used (all/first/last), optional (default: all)>" } The configuration must be saved as `config.json` in the bot's working directory. ## Building The bot is built with CMake and requires some submodules: git submodule update --init --depth 1 --recursive mkdir build cd build cmake .. make -j$(nproc) The executable is created under `./SomeBot`. ## Usage The executable takes no arguments, but if there are problems with the slash commands (after deactivating modules), they can be reset with `--reregister-commands`.