# Bot

## Usage

Runs the Discord bot.

## Setup

You can click on the images to make them larger.

1. Create an application in your [Discord developer portal](https://discord.com/developers/applications).
2. Required privileged gateway intents: Server Members Intent, Message Content Intent\
   ![Intents](https://i.imgur.com/GhPA0So.png)
3. Required scopes: `applications.command, bot`\
   ![Scopes](https://i.imgur.com/N7UdnBY.png)
4. The bot needs to following bot permissions: Manage Channels, Manage Webhooks, Read Messages/View Channels, Send Messages, Manage Messages, Embed Links, Attach Files, Read Message History, Add Reactions\
   ![Permissions](https://i.imgur.com/RjCCYCK.png)\
   Alternatively you can use the following URL to add the bot with the required permissions. Just make sure to replace `CLIENT_ID` with your bots client ID. Link: [Link](https://discord.com/api/oauth2/authorize?client_id=CLIENT_ID\&permissions=2684480592\&scope=bot+applications.commands)
5. Copy the bot token and paste it at the `token` option in DiscordBridge/Modules/bot.yml.

## Ingame Commands

`/discordbridge invite`\
Get invite to thh Discord server. Only available if `invite-url` is configured in the module config.\
\&#xNAN;*Permission: discordbridge.command.invite*

## PlaceholderAPI Placeholders

Requires [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) to be installed.

### Format

The format is always as follows: `%discordbridge_module_bot_server_<server>_<placeholder>`\
You need to replace `<server>` with the ID of the server. You can retrieve the server ID by enabling the developer mode in Discord. You can use `total` as the server ID to display information for all servers combined, such as the user count on all servers combined. The `<placeholder>` argument needs to be replaced with the specific placeholder.

`%discordbridge_module_bot_server_<server>_members_amount%`\
Returns the amount of members. Example usage:

* `%discordbridge_module_bot_server_total_members_amount%` -> Returns the combined amount of members on all servers.
* `%discordbridge_module_bot_server_1234567891012131415_members_amount%` -> Returns the amount of members on the server with the ID `1234567891012131415`.

`%discordbridge_module_bot_server_<server>_boosters_amount%`\
Returns the amount of guild boosters.

`%discordbridge_module_bot_server_<server>_boosters_contains_<userId>%`\
Returns whether user with the ID `<userId>` has boosted the server or any server if `<server>` equals `total`.

`%discordbridge_module_bot_server_<server>_boosters_contains_<userId>_bool%`\
Returns `true`, if the user with the ID `<userId>` has boosted the server or any server if `<server>` equals `total`. Otherwise, returns `false`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.incredibleplugins.com/discordbridge/modules/bot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
