Makoto

A feature packed discord bot!



## Step by Step Guide on how to set up a Development Environment
1. Install the following applications. These should get you started with a basic environment for C# development.
- [Git CLI](https://www.git-scm.com/downloads)
- [Visual Studio 2022](https://visualstudio.microsoft.com/vs/)
- Select .NET desktop development
2. Log into your Github Account with the Git CLI and clone the following repository:
- `Fortunevale/ProjectMakoto`
- To clone `ProjectMakoto` with it's submodules run: `git clone --recurse-submodules "https://github.com/Fortunevale/ProjectMakoto.git"`
- _You can skip this step if you're developing a plugin._
3. With this completed, you can already start developing for Makoto. To be able to debug Makoto, follow the guide below.
## Running/Debugging Makoto with all necessary dependencies
1. Install the following:
- [MariaDB Server](https://mariadb.org/download/)
- After installing the MariaDB Server, create 2 new databases: One for the main tables (guilds, users, scam_urls, etc.) and one for server members.
- You'll need a third database if you're using plugins.
2. Create an account on the following sites:
- [Discord](https://discord.com)
- Create a new [Discord Team](https://discord.com/developers/teams) and add a new [Discord Application](https://discord.com/developers/applications/) to the previously created team.
- Add a bot to the application and note down the bot token.
- Makoto currently requires the `Presence`, `Server Members` and `Message Content` Intents.
- I recommend disabling the `Public Bot` Option so no one can add your development client to their server.
- [AbuseIPDB API Key](https://www.abuseipdb.com/account)
- After creating your account, you can create an api key [here](https://www.abuseipdb.com/account/api).
- [Github](https://github.com/)
- Create a [Personal Access Token](https://github.com/settings/tokens) to your Github Account.
- The bot needs to be able to create issues and read your repository.
3. Build and run Makoto until the console says something like "Config reloaded".
4. Open the `config.json` in the path you built Makoto in (usually `bin/Debug/`) and put in all values.
5. You're all set.
## Useful resources for development
- [DisCatSharp Documentation](https://docs.dcs.aitsys.dev/articles/preamble.html)
- [Translation Documentation](TRANSLATING.md)
- [Plugin Documentation](PLUGINS.md)