Checks for proper permissions Removes the birthday role if present Cancels any scheduled role removal tasks Provides appropriate feedback and error handling Logs all actions for debugging purposes
Birthday Cog for Red-DiscordBot
This cog allows you to assign a special role to users on their birthday and send them a celebratory message with cake (or pie) emojis! Supports both traditional prefix commands, slash commands, and context menu commands.
Installation
To install this cog, follow these steps:
-
Ensure you have Red-DiscordBot V3 installed.
-
Add the repository to your bot:
[p]repo add Pac-cogs https://github.com/pacnpal/Pac-cogs -
Install the Birthday cog:
[p]cog install Pac-cogs birthday -
Load the cog:
[p]load birthday
Replace [p] with your bot's prefix.
Setup
Before using the cog, you need to set it up. You can use either prefix commands or slash commands:
-
Set the birthday role:
[p]setrole @Birthdayor
/setrole @BirthdayNote: The bot's role must be above the birthday role in the server's role hierarchy, but users assigning the birthday role do not need to have a role above it.
-
Add roles that can use the birthday command:
[p]addrole @Moderatoror
/addrole @Moderator -
(Optional) Set the timezone for role expiration:
[p]settimezone America/New_Yorkor
/settimezone America/New_York -
(Optional) Set a specific channel for birthday announcements:
[p]setchannel #birthdaysor
/setchannel #birthdaysIf not set, the birthday message will be sent in the channel where the command is used.
Usage
To assign the birthday role to a user, you can use any of these methods:
-
Command:
[p]birthday @Useror
/birthday @User -
Context Menu: Right-click on a user and select "Apps > Give Birthday Role"
This will assign the birthday role to the user and send a celebratory message with random cake (or pie) emojis. The role will be automatically removed at midnight in the specified timezone.
Features
- Assigns a special birthday role to users
- Sends a celebratory message with random cake (or pie) emojis
- Automatically removes the birthday role at midnight
- Configurable timezone for role expiration
- Option to set a specific channel for birthday announcements (defaults to the channel where the command is used)
- Restricts usage of the birthday command to specified roles
- Users can assign the birthday role without needing a role higher than it in the hierarchy
- Full slash command and context menu support
- Persistent birthday role removal scheduling (survives bot restarts)
- Birthday role removal task checking
Commands
All commands support both prefix and slash command syntax:
Admin Commands
[p]setroleor/setrole: Set the birthday role[p]addroleor/addrole: Add a role that can use the birthday command[p]removeroleor/removerole: Remove a role from using the birthday command[p]settimezoneor/settimezone: Set the timezone for the birthday role expiration[p]setchannelor/setchannel: Set the channel for birthday announcements
User Commands
[p]birthdayor/birthday: Assign the birthday role to a user- Context Menu > "Give Birthday Role": Right-click a user to assign the birthday role
[p]bdaycheckor/bdaycheck: Check upcoming birthday role removal tasks
Support
If you encounter any issues or have questions, please open an issue on the GitHub repository.