Skip to content

BurbSec/JohnnyBot

Repository files navigation

JohnnyBot - The Missing Discord Server Management Toolkit

JohnnyBot does all of the stuff Discord bizarrely won't let you do! Designed to automate tons of server management and enforce some rules while you're at it. It provides features such as mass role management, message moderation, permissions cloning, and event feed integration to ensure a smooth server experience. Most commands are limited to users with the MODERATOR_ROLE_NAME, however the PetBot commands can be leveraged by all users.

Documentation

For complete documentation, installation guides, and command references, visit the JohnnyBot Wiki.

Quick Links

Key Features

  • Command-based Moderation - Slash commands for kicking, timing out, purging messages (by count, string match, or webhook), and archiving user messages
  • Permissions Management - Clone, clear, and sync permissions across categories, channels, and roles
  • Role Management - Mass assign/remove roles, list users without roles
  • Voice Channel Chaperone - Automatic safety monitoring for voice channels with configurable adult/child role detection
  • Reminder System - Recurring reminders with persistent scheduling
  • Event Feed Integration - Subscribe to iCal and RSS feeds (including Meetup.com); auto-detect feed type; configurable display of description, location, and link; automatic Discord Event creation with duplicate detection; weekly Monday 10am CT feed checks; feeds persist across restarts
  • Event Announcements - Independent /event_announce command posts this week's Discord Events to a channel every Mon & Thu at 10am CT; works with or without feeds
  • Autoreply System - Automatic message replies based on configurable trigger strings with case sensitivity options
  • Message Archive - User message dumps with temporary download links hosted via built-in web server
  • Channel Write Protection - Enforce read-only channels for non-moderators
  • Update Checking - Automatic daily check for new commits on GitHub with moderator notifications
  • Dashboard - Display all available commands grouped by category with double-confirmation
  • PetBot Interactions - Fun bot interactions (mood check, petting, favorites) for all users

Quick Start

  1. Clone and Install:

    git clone https://github.com/burbsec/johnnybot.git
    cd johnnybot
    pip install -r requirements.txt
  2. Configure: Edit config.py with your server settings

  3. Set Token: Add your Discord bot token as environment variable:

    export DISCORD_BOT_TOKEN="your_bot_token_here"
  4. Run: python bot.py

Need help? Check the Setup Guide for detailed instructions.

Requirements

  • Python 3.8+ (tested up to 3.13)
  • Dependencies: Listed in requirements.txt
  • Network: TCP port access for message archive hosting (auto-selects a free port)

Contributing

Contributions are welcome! If you encounter any bugs or have suggestions, feel free to open an issue or submit a pull request.

For detailed development information, see the Wiki.

License

This project is licensed under the GNU General Public License v3.0.

Attribution: Bot interaction functionality adapted from PetBot under MIT License.

About

The Missing Discord Server Administration Toolkit!

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages