https://github.com/mmesek/mbot.py
MFramework.py's based commands/systems used by my Discord Bots
https://github.com/mmesek/mbot.py
Last synced: about 2 months ago
JSON representation
MFramework.py's based commands/systems used by my Discord Bots
- Host: GitHub
- URL: https://github.com/mmesek/mbot.py
- Owner: Mmesek
- License: agpl-3.0
- Created: 2021-08-29T21:34:01.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-14T18:34:26.000Z (3 months ago)
- Last Synced: 2025-04-14T19:40:29.089Z (3 months ago)
- Language: Python
- Homepage:
- Size: 1.29 MB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# MBot.py
[](https://github.com/psf/black)
[](https://open.vscode.dev/Mmesek/MBot.py)[](https://www.codefactor.io/repository/github/mmesek/mbot.py)
[]()
[]()
[]()[](../../issues)
[](../../pulls)
[](../../graphs/contributors)Multipurpose collection of systems written from scratch for automation & moderation of chat communities. Used as Modmail on [Dying Light](https://discord.gg/dyinglight)'s server.
## Features
- Forum-based [Modmail](bot/commands_slash/modmail.py) system forwarding communication between user direct messages and server moderation team's thread
- [Logging](bot/dispatch/logging.py)
- [Stream](bot/dispatch/dispatch.py) Log (based on presence)
- [Infractions](bot/infractions) system with automated actions
- [Info](bot/commands_slash/info.py) (about Discord objects (User, Role, Channel, Guild etc)
- Basic [interacting](bot/commands_slash/mod.py) as bot - (Say/React)
- [Leaderboards](bot/commands_slash/leaderboards.py)
- [Giveaways](bot/commands_slash/giveaways.py)
- [Reaction](bot/dispatch/reactions.py)/[Presence](bot/dispatch/dispatch.py) [Roles](bot/systems/roles.py)
- Auto [Moderation](bot/dispatch/actions.py)
- [Ghostping](bot/dispatch/actions.py) detection
- Spoiler *[only](bot/dispatch/actions.py)* channel
- [Antiraid](bot/dispatch/guild.py) system (autokick)
- Database "[Stash](bot/commands_slash/database.py)" for memes/rules etc
- [Custom role](bot/commands_slash/database.py) for Nitro Users
- Tracking [Chat](bot/dispatch/actions.py)/[Voice](bot/dispatch/voice.py)/[Presence](bot/dispatch/dispatch.py) activity
- [Steam](bot/commands_slash/steam.py) calculator
- [Graphing](bot/commands_slash/graphs.py) (things like member join over time histograph)
- Auto dice roll in [RPG](bot/dispatch/actions.py) channels
- [Dynamic](bot/dispatch/dynamic.py) Voice Channel generation
- [Voice](bot/dispatch/voice.py#L54-L126) & [Text](bot/systems/xp.py) chat activity tracking
- Miscellaneous commands for [random](bot/commands_slash/rand.py) rolls (Dice roll, coinflip etc)
- Various [converters](bot/commands_slash/converters.py) (Like Morse Transaltor, Making text upsidedown or Currency Converter)
- [Search](bot/commands_slash/search.py)ing other APIs (Like Steam, UrbanDict or Word Definitions)
- [Story](bot/commands_slash/story.py) conversation executor (Reads json or yaml file with story flow and responds to user accordingly)## Minigames
- [Hangman](bot/commands_slash/games.py) game
- [Wordle](bot/commands_slash/games.py)
- [Halloween](bot/events/Halloween)
- Reaction [Hunt](bot/events/hunts.py) events
- [Christmas](bot/events/Christmas)---
## Running locally
Run once to generate `secrets.ini`, modify to suit your needs.
Make sure to set `intents` in `bot` section to at least `1`.#### Docker Compose:
```sh
docker compose up -f .docker/docker-compose.yml
```#### Docker
```sh
docker run -it Mmesek/MFramework \
-v data:/app/data \
-v bot:/app/bot \
-v locale:/app/locale \
```### Manually
#### Install required packages
```sh
python -m pip install -r requirements.txt
```#### Run
```sh
python -m MFramework bot
```