Skip to content

A free, open-source Discord bot written in C# using .NET Core 6 and ASP.NET, including RESTFUL APIs, leaderboard systems, and moderation capabilities, generalised for use on multiple servers

License

Notifications You must be signed in to change notification settings

FeroxFoxxo/Dexter-v2-MASZ

 
 

Repository files navigation


Dexter MASZ

The official USF Discord bot!

Used to help moderate the server and provides useful tools. Made with love <3

Discord GitHub

Built With

Commemorations

This bot is an adaption from the version of Dexter, written in JavaScript, by Jakey Floofle. As such, some commands have been adaptions from their original sources.

This bot was originally built off of MASZ, but extends upon it by offering much more, general features, and a refreshed, plugin-based, abstracted backend!

Features

A website and a discord bot - to use Dexter
Localization - timezones and languages are fully customizable
Userscan - quickly spot relations between users with an included visualization

Plugins

Levelling - including a leaderboard and rank system
Infractions and managed (temporary) punishments - to moderate your server
Quicksearch - to reliably search for any infractions or notes a user has
Automoderation - to give trolls no chance
Ban appeals and webhook notifications - to moderate your server transparently
Music Player - for playing/pausing/resuming etc music from spotify and youtube, curtosy of Lilia

👀 Preview

dashboard preview

🛠 Hosting

You can host your own instance of Dexter by using the instructions below.
However! These instructions are only meant for developing. You should be using the official Dexter instance on your server.

TL;DR;

  • Create a discord application at https://discord.com/developers/applications
  • Set redirect urls on your discord application as defined.
  • Enable Server Members and Message Content Intent in your bot settings.
  • App will be hosted on 127.0.0.1:5565.
  • Read further for more information on different deployment methods and further steps.

If you want to deploy on a domain:

  • a (sub)domain to host the application on
  • a reverse proxy on your host

Request logging and ratelimit

Dexter uses the X-Forwarded-For http header for logging and ratelimit.
Ensure that this header is set in your reverse proxy for best experience.

MySQL Errors

Entity Framework implores some new features of MySQL for sake of optimising calls to the database.
As such, it is recommended you install MySQL 8+ to use this new syntax. Otherwise, you will encounter a MySQLException stating you need to check your MySQL version corresponds correctly with the version in your manual.

💻 Local hosting

  • Start your bot from the Launch project and enter in the variables as required. These are set environmentally.
  • To launch the frontend, run npm start from the terminal in the directory of frontend/dexter. Make sure to install dependencies prior using npm install.

↪ After Deployment

  • You can visit your application at yourdomain.com (or 127.0.0.1:5565). You will see a login screen that will ask you to authenticate yourself using Discord OAuth2.
  • After authorizing your service to use your Discord account you will see your profile picture in the toolbar (this is hosted on 127.0.0.1:4200 when developing).
  • If you are logged in as a siteadmin, you can use the "register guild" (+) button to register your guilds and to get started.
  • Based on wanted features and functionalities you might have to grant your bot advanced permissions, read above under Enabling Restricted Features.

🚀 Discord Permissions

Discord OAuth

Create your own OAuth application here. Also set the redirect paths in the tab OAuth2.
Be sure to set the following (choose localhost or domain depending on your deployment):

redirect example

Bot Intents

Enable Server Members and Message Content Intent in your bot settings.

intents example

Enabling Restricted Features For Inbuilt Plugins

⭐ Unban request feature

If you want banned users to see their cases, grant your bot the ban people permission.
This way they can see the reason for their ban and comment or send an unban request.
Furthermore, make sure the bot is high enough in the role hierarchy to ban people below him.

⭐ Punishment feature

If you want the application to execute punishments like mutes and bans and manage them automatically (like unban after defined time on tempban), grant your bot the following permissions based on your needs:

Manage roles - for muted role
Kick people
Ban people

⭐ Automoderation feature

To avoid any issue for message deletion or read permissions it is recommended to grant your bot a very high and strong or even the administrator role.

⭐ Invite tracking

Allows Dexter to track the invites new members are using. Grant your bot the manage guild permission to use this feature.

🤝 Contribute

Contributions are welcome.
You can find our contributions guidelines here.
If you are new to open source, checkout this tutorial.
Feel free to get in touch with me via our support server https://discord.gg/DBS664yjWN.

💁🏻 Further Help

Feel free to join our discord at https://discord.gg/DBS664yjWN if you have further questions about your dev environment.

About

A free, open-source Discord bot written in C# using .NET Core 6 and ASP.NET, including RESTFUL APIs, leaderboard systems, and moderation capabilities, generalised for use on multiple servers

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • C# 63.7%
  • TypeScript 21.1%
  • HTML 13.4%
  • CSS 1.6%
  • SCSS 0.1%
  • Dockerfile 0.1%