We are always happy with people genuinely seeking to contribute in anyway. If you aren't familiar with programming you can still help out with creating well written issues and helping test. There are also guides below on what sections of the code are most newcomer friendly and how to get started.
Read the GitHub Doc's Code of Conduct for an idea of how we'd like everyone to act here.
- When developing (even making small changes) we recommend using Rider, Visual Studio, or Visual Studio Code
- These are listed in order of increasing required setup, but also increasing ease of access. No matter what though, setting up even Visual Studio Code will be easier in the long run than trying to use GitHub web editor anything that isn't an IDE that is compatible with C#.
- This project uses MongoDB and if testing you may need to have some tools downloaded.
- Community Server may be required for the bot to save data locally.
- Compass is useful for viewing (and editing) the data both locally and if you have access to the server.
- We are open to migrating from MongoDB, but it is simply not the highest priority and has worked surprisingly well.
- Make sure to search for other issues or PRs (Pull Requests) addressing the topic before continuing.
- Add all appropriate tags such as
bug
orenhancement
(this is a good time to consider if this will bedifficult
to implement)- If it is a
bug
make sure to include information on how to replicate or track down the events in the log in case of an error (context and IDs are useful for both, but timestamps are critical for tracking down logs) - For
enhancement
make sure it follows the other established features and philosophy of the bot. We've had many requests that just simply don't fit here like infraction expiration.
- If it is a
If you're interested in helping get a new version out when it's held up by uncertainty of stability:
- Make sure follow the tools guide above.
- Download the ReleaseCandidate/pre-release.
- Head over to the Discord Developers Page and copy a bot token.
- If you have never done this before you'll need to click
New Application
and insert a name.
- Then go to the bot tab and click
Add Bot
. - Then you need to scroll down and under
Privileged Gateway Intents
enableServer Members Intents
. - You can go back up and copy the token now or do this step after step IV.
- Go into the downloaded pre-release and open the
BotCatMaxy.ini
file under theProperties
folder. - Paste the token replacing
YOURTOKENHERE
.
- Go into the downloaded pre-release and open the
- Go to the
OAuth2
tab of your Discord Bot page.- Specify the
bot
scope. - For the permissions you can specify
Admin
or copy the URL and replacepermissions=0&
withpermissions=122813803734&
. - then just use the URL to invite the bot to the server you want to test in.
- Specify the
- If you have never done this before you'll need to click
- Everything has been oriented around the commands being simple to write, if you have an idea you should be able to look at a similar command, copy it, and add your changes without requiring a full understanding of the system.
- On a similar note we have gotten testing to a decent place and would benefit from more tests being written for more commands and more cases.
- As of writing this the Temp Act system has been refactored massively but in the past it used to be the most troubling piece of code and will likely keep being troubling. Always feel free to suggest better patterns and architecture if you feel like it's pointing to a bad place.
- On that last note, the Advanced Permissions System draft is stalling because of a similar feel. If you think you can improve the design of how the pieces connect, or want to add more parts together, feel free to add another PR as the draft is more to track overall progress.