Princess Bot
About Princess Bot
Princess Bot is the core control bot in use on CCC's servers. It performs a number of important tasks to maintain and manage the server.
What is Princess Bot?
Princess is an instance of Red Discord Bot an open source bot. It runs currently under docker on a box located at Underestimated's House.
How does Princess Bot Work?
Princess bot uses plug in functions called 'Cogs' to provide different functions and tools. It has fun and utility functions all in the same place.
We interact with the bot primarily via ! commands, which tell the bot we're talking to it specifically. However some functions also use / commands, which also give you a little guide when writing them, so that you know you're giving it the info it needs.
What does CCC use the Princess Bot for?
We use it for many things but in short we have
Utility:
Ticketing and Support Requests (Including feedback and Question of the Day)
Welcome channel cleanup (Autodeletes messages)
Seen Tracking and User Presence checking
Reminder Management and Automatic Notifications
Temp Roles
Channel Cleaner
Birthday Roles and Announcer (not enabled yet)
Useful:
Website Down Checking
Embed Creator
Emoji Stealer and Uploader
Custom Commands and Responses
Automatic Reactions
Mention Checker
Unit Converters
Button Polls
Fun:
Starboard
Bot Says Game
Citation Generator
Hangman
Monopoly
Performative Reactions
Plant Tycoon
Tic-Tac-Toe
Wordle
Potential Planned Future Functions:
Automod Replacement (Still working that out)
Mod Sanctioning System (Replacing Dyno)
Welcomer (Swapping from Dyno)
Mod logger and Activity Tracker (Replacing Dyno)
How do I check if the bot is working OK? (Mods)
The bot is reliant on a steady internet connection at Under's location right now, this may change in the future but to keep costs down we're running it on existing hardware. If the bot is offline there may be a connection problem. Firstly if you can visit this site, the server is running OK, this runs on the same box. If the bot is offline and this site is reachable ping @Underestimated37 to let him know, and he'll check. You can also issue the command !uptime to get a message telling you how long the bot's been awake. Note that while you can run some commands in a DM with the bot, some server specific stuff needs you to run the command from on the server. Mods can use the #bot-spam channel for admin commands, and regular members have the #poke-the-bot channel for public safe commands.
Bot Command Formatting Guide
When you read through this wiki, you will see many examples of commands you may need/want to enter. These follow a fairly simple syntax but if you're not aware of it you may end up entering in stuff that the bot has no idea on how to handle.
This quick guide will help you understand how we document commands.
Data You Need To Input
Following standard computing terminology, we will document commands that need information from you with a descriptive insert into the command example. These are referred to in standard terminology as arguments.
These will be encased in special bracket characters such as [ ] < > When you see these characters, you don't actually want to enter them into the command. Instead, you will need to replace that whole segment including the brackets with a response.
Brackets that are written as [ ] are optional you do not need to fill these out for the command to execute correctly.
However brackets written as < > are absolutely required . The command will not execute unless these are met.
For example, The command for a ticket embed is documented as follows: !tickets embed [colour] [channel]
and if you were to enter that you would need to fill out the arguments with something like this. !tickets embed 012356235234 Hello Hello and Welcome In the example we have ignored the colour option as it's optional, and filled out the channel title and description.
Some commands like this one determine the next argument by spaces, and if you need to add a space (Say to the title) you just enclose that argument in double quotes. !tickets embed 012356235234 "Hello There!" Hello and Welcome This can be inconsistent though, so on our documentation we will explicitly tell you when you need to use double quotes.
Reminder Management and Automatic Notifications
The reminders cog by AAA3A Cogs is an incredibly powerful and flexible tool we can use for many different functions.
The bot can be programmed to say a message on a recurring time schedule, it can remind you privately about things you need to remember, it can trigger bot commands for you on repeat, and even produce discord timestamps for you.
NOTE: There is a problem with the base /remind command. Despite it being listed as a function, only use it with a subcommand such as /remind say or /remindme
Before Using the Commands
Before you first use any command, you need to configure your timezone. You only ever do this once, and then the bot will remember it forever.
Simply enter /reminder timezone and discord should pop up a list of timezones for you. Find the one that is closest to you and select it, then send the command.
This will ensure that the bot operates in the correct timezone for you at all times.
Time Parsing Tips
Direct from the bot, you can get these by issuing the command /reminder timetips
Bot Tips
Time Parsing Tips Allowed absolutes are: • eoy - Remind at end of year at 17:00. • eom - Remind at end of month at 17:00. • eow - Remind at end of working week (or next friday) at 17:00. • eod - Remind at end of day at 17:00.
Allowed intervals are: • years/year/y • months/month/mo • weeks/week/w • days/day/d • hours/hour/hrs/hr/h • minutes/minute/mins/min/m
You can combine relative intervals like this: • [in] 1y 1mo 2 days, and -5h • on 29th may at 18h, and every year
Timestamps and iso-timestamps are supported: • For ISO, be aware that specifying a timezone will ignore your timezone.
Dates are supported, you can try different formats: • 5 jul, 5th july, july 5 • 23 sept at 3pm, 23 sept at 15:00 • 2030 • [at] 10pm • friday at 9h Note: the parser uses day-first and year-last (01/02/03 -> 1st February 2003).
Cron triggers are supported: • Check https://crontab.guru/ .
Unders Tips
You can get a simple repeat out of the bot by using the word every i.e. you want a reminder at 11am Sunday? You write 11am Sunday but if you want it 11am every Sunday you write 11am every sunday
List out your reminders
Command
/reminder list
A simple function that will list out all your active reminders. It will give you the reminder ID number as well so that you can edit your reminder.
Have the bot send a message at a specific time
Command
/reminder say time: