DNetBot - A Discord Bot built using Dot Net Core
A Simple Discord Bot using the Discord .NET Bot library and Dot Net Core. This bot is built with a microservices architecture using a range of Azure Services such as Functions and Event Grid. I'm trying to build this bot in a modular fashion with the basic functionality provide and documented in such a way as to be expandable by others.
This bot now uses GitHub actions to build and deploy the infrastructure and code to Microsoft Azure. To get the bot up and running for you as quickly as possible you will need to:
- Ensure you have an Azure Tenancy with a Resource Group setup and ready to go, as well as Discord Developer Account with an application and bot token.
- Create a Service Principle with access to this Resource Group and save the corresponding JSON output. You do this with the Azure Command Line or the Cloud Shell with the following command line:
az ad sp create-for-rbac --name "github-deployer" --sdk-auth --role contributor --scopes /subscriptions/<YOUR_SUBSCRIPTION_ID>/resourcegroups/<YOUR_RESOURCE_GROUP>
- Fork the main branch or releases of this repository into your GitHub own account
- Add the following secrets to your repository:
AZURE_CREDENTIALSwith the JSON from step 1
SUBSCRIPTION_IDwith your Azure Subscription ID
DISCORD_BOT_TOKENwith your Bot token from the Discord Developer Portal
WEBHOOK_TOKENwith a generated secret of your choice to protect your webhooks
- Modify the environment variables at the top of the
deployment.ymlfile to suit your needs / customize the naming of resources:
env: DNETBOT_NAME: 'discordnetbot' # DNet Bot Naming Prefix for Resources (Lowercase, No Spaces or Special Characters) DOTNET_VERSION: '3.1.403' # SDK Version to use AZURE_LOCATION: 'eastus' # Resource Location AZURE_RG: 'RG-DNet-Bot' # Resource Group Name to use AZURE_WEB_SKU: 'B1' # Size of the WebApp to deploy
- Create a new release or manually trigger the workflow to deploy the bot to your Azure instance.
- Currently the application will only respond to the !ping command with "pong!".
To extend this bot and add your own event handlers there is documentation in the wiki.
- The wiki contains all the relevant documentation about using and expanding upon the Discord Bot to implement your own functionality.
- The change log has both the history of changes and current changes in development
- My website has a number of posts about the development and background of this bot template.