#
Built-in Commands
Updated on Sep.24 2023
This page covers all the commands of base YABOB. For extension commands, see the extension commands page.
Where did some of the /set_...
commands go?
They have been moved under /settings
Title: Command name.
- Matches the exact command name in discord
Options: Possible arguments of this command.
- Arguments with a question mark are optional
Access Level: The lowest required access level role to access the command.
The roles are ordered (From high to low): Bot Admin > Staff > Student > Everyone
Example: If the access level specifies Student , then bot admins and staff also has access to this command. But if the access level is Bot Admin , then staff and students do not have access.
If you have the administrator permission of a server, you are not required to have any access level roles.
Throws: Possible errors that YABOB can throw.
- These errors are expected to happen, and YABOB will reply back to the user with the error. YABOB will not modify any internal states if it rejects the command.
#
Command List
#
/enqueue
Adds the user to the back of the queue.
queue_name?
- specifies which queue to join. If not specified, the user will be enqueued to the queue where they used the command if a #queue
channel exists in its parent category.
Student and above.
CommandParseError
- If the specified
queue_name
argument is not a valid queue channel. - If the command is used without specifying
queue_name
, and it's used in a channel with no parent category or the category does not have a#queue
channel. - If the user does not have the student role.
QueueError
- If the student is already in the queue.
- If the queue is not open (ie. if the queue is closed or paused)
/enqueue ECS32A
/enqueue # left blank, YABOB will check if the current category has a queue channel
#
/leave
Removes the user from a queue. If the queue_name
argument is not specified, the user will be removed from the queue where they used the command if a #queue
channel exists in its parent category.
queue_name?
- specifies which queue to leave from.
Student
CommandParseError
- If the specified
queue_name
argument is not a valid queue channel. - If the command is used in a channel with no parent category or the category does not have a
#queue
channel.
QueueError
- If the student is not in the queue.
/leave ECS32A
/leave # left blank, YABOB will check if the current category has a queue channel
#
/list_helpers
Lists all the helpers that are currently helping
Student
Nothing.
/list_helpers
#
/start
Opens all the queues that the user has a role for and start helping students.
mute_notif?
- If true, opening the queue will NOT notify the students who have signed up for notifications and the notification group will not be cleared. Defaults to false.
Staff
CommandParseError
- If the user does not have the Staff or Bot Admin role.
ServerError
- If the helper is already helping.
- If the helper does not have any class roles.
/start # notifies everyone in the notif group
/start mute_notif=True # none of the students will be notified
#
/stop
Closes the office-hour queues and stop students from entering the queue.
Students that were in the queue before closing will remain in the queue for the next office hour session.
If Queue Auto Clear is enabled when the queue is closed, a timer will be started if there are students remaining in the queue.
Staff
CommandParseError
- If the user does not have the Staff or Bot Admin role.
ServerError
- If the helper is not currently helping.
/stop
#
/next
Invites the student at the front of the queue to the helper's voice channel.
queue_name?
- Specifies which queue to dequeue from. If not specified, dequeues the student that has been waiting the longest out of all the queues that the helper has a role for.
user?
- Specifies which student to dequeue. If specified, YABOB will ignore queue order and search for this student. If queue_name
is also specified, YABOB will search in that queue for this student.
Staff
CommandParseError
- If the user does not have the Staff or Bot Admin role.
- If the specified
queue_name
is not a valid queue category
ServerError
- If there's no student to dequeue.
- If the specified
user
is not found in any of the queues. - If the specified
user
is not found in the specifiedqueue_name
.
/next # dequeues globally
/next queue_name=ECS32A # dequeues from the queue named "ECS32A"
/next user=someStudent # searches for the user with the username "someStudent"
/next queue_name=ECS32A user=someStudent # searches for the user with the username "someStudent" in the queue named "ECS 32A"
#
/announce
Sends a message to all of the students in all the queues that the helper is approved to help for.
message
- Required. The announcement message content.
queue_name?
- Which queue to send the announcement to. If not specified, YABOB will send the message to all the queues that the helper has a role of.
Staff
CommandParseError
- If the user does not have the Staff or Bot Admin role.
- If the specified queue category does not have a
#queue
channel. - If the announcement is longer than 4096 characters. This limit comes from discord's API.
- If the specified
queue_name
is not a valid queue category.
/announce "We are having pizza tonight!"
/announce "We are having pizza tonight!" ECS32A
#
/pause
Marks the user as a helper who has temporarily stopped accepting new students. When new students join the queue, this helper will not be notified.
Staff
CommandParseError
- If the user does not have the Staff or Bot Admin role.
ServerError
- If the user is not currently helping.
- If the user is already a paused helper.
PAUSED
queues
If all the helpers of the same queue have used /pause
, this queue will enter the PAUSED
state that will stop students from joining the queue. Helpers of a PAUSED
queue can still dequeue students. As of v4.3, ALL helpers of the same queue must use /pause
to make the queue PAUSED
.
- The queue embed of a
PAUSED
queue will have a yellow embed instead of an aqua embed.
#
/resume
Lets a helper exit the paused
state. They will become active
if the command succeeds.
Staff
CommandParseError
- If the user does not have the Staff or Bot Admin role.
ServerError
- If the user is not currently helping
- If the user is not a
paused
helper
#
/clear
Clears the specified queue.
<queue_name>
- Required parameter. Specifies which queue to clear.
Staff
CommandParseError
- If the user does not have the Staff or Bot Admin role.
- If the specified queue category does not have a
#queue
channel.
ServerError
- If there is no student in the specified queues
/clear ECS32A # Clears the queue named "ECS32A"
#
/clear_all
Clears all the queues on this server.
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
- If the specified queue category does not have a
#queue
channel.
ServerError
- If there is no student in any of the queues
/clear_all
#
/cleanup_queue
Debug feature. If the embeds in a queue were accidentally deleted, this command will ask the queue to perform a clean render.
<queue_name>
- Required Parameter. Which queue to clean up.
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
- If the specified queue category does not have a
#queue
channel.
/cleanup_queue ECS32A # sends new embeds in the #queue channel in category "ECS32A"
#
/cleanup_all
Same as /cleanup_queue
but affects all the queues.
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
- If the specified queue category does not have a
#queue
channel.
#
/cleanup_help_channels
Debug feature. If the embeds in a the help channels were accidentally deleted, this command will re-send all the help channel embeds.
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
/cleanup_help_channels
#
/queue
This command has 2 sub-commands.
/queue add <queue_name>
- Creates a new category with the name entered in
queue_name
and creates the #queue and #chat text channels within it.
/queue remove <queue_name>
- Deletes an existing category with the name entered in
queue_name
and all the channels within it.
queue_name
- Required Parameter
- For
/queue add
, this is a string of the name of the new queue - For
/queue remove
, this is the name of the existing queue
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
- If a queue with the same name already exists when using
/queue add
- If
/queue remove
was invoked in the queue category that the user wants to delete. YABOB will prompt the user to use the command in another text channel.
/queue add ECS32A
/queue remove ECS32B
#
/set_logging_channel
Sets the logging channel on this server. YABOB will start sending log messages to this text channel.
channel
- Required Parameter. Which text channel to send logs to.
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
- If the specified channel is being used as a queue channel.
- If the specified channel is not a text channel.
#
/stop_logging
Stops YABOB from sending log messages to this server.
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
#
/set_roles
Sets the access level roles on this server. Namely, controls which roles should be interpreted as Bot Admin , Staff , and Student .
role_name
- Which access level role you want to change.
Bot Admin
,
Staff
, or
Student
.
role
- The role to change to.
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
- If the specified role is a bot integration role. These roles can bon
/set_role "Bot Admin" @Administrator # now YABOB will treat @Administrator as the Bot Admin role
#
/prompt_help_topic
This command has 2 subcommands.
/prompt_help_topic on
YABOB will start showing students a modal that asks them what topic do they need help with. Students are not required to submit the modal, and they will still be queued if they don't submit.
This modal is shown when the student uses
/enqueue
or[Join]
Once the student submits this modal, all helpers of this queue will see:
/prompt_help_topic off
- YABOB will not show students the Help Topic modal. Students will be directly enqueued when they use
/enqueue
or the[Join]
button.
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
#
/settings
Brings up the settings menu. See more details in the Configuration Guide.
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
#
/create_offices
Batch creates voice channels with pre-configured permissions. As of 4.3, voice channels created with this command only allows Bot Admin and Staff to have direct access to the channels. Students can see and join the channels within 15 minutes after they are dequeued.
All 3 options are required.
category_name
: The name of the category that holds all the voice channels.
office_name
: The prefix of each voice channel.
number_of_offices
: How many channels to create
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
- If the inputs of
category_name
oroffice_name
are not valid discord channel names. - If the input of
number_of_offices
is not a valid integer
/create_offices "Offices Hour Voice Channels" "office" 5
Running this command creates the following:
#
/help
Get help with a command.
command
- Required Parameter. The name of the command to get help with. Currently, we are hitting the upper limit of this option so some of the commands are not listed. v4.3.1 will add auto complete to /help
to display all the commands.
Student and above.
Nothing.
#
/auto_give_student_role
This command has 2 sub commands.
/auto_give_student_role on
- YABOB will automatically give new members the Student access level role. The role will be given as soon as new members join the server.
- If the
@everyone
role is the students role, this setting is ignored.
/auto_give_student_role off
- YABOB will not automatically give new members the Student access level role. Students need to be manually assigned this role.
Bot Admin
CommandParseError
- If the user does not have the Bot Admin role.
#
Button List
This section covers these buttons:
#
🔘 Join
Adds the user to the end of the queue on button click.
Everyone
CommandParseError
- If the
#queue
channel does not have a parent category.
QueueError
- If the student is already in the queue.
#
🔘 Leave
Removes the user from the queue on button click.
Everyone
CommandParseError
- If the
#queue
channel does not have a parent category.
QueueError
- If the student not in the queue.
#
🔘 Notify When Open
Adds the user to the notification group for that queue. The user will be automatically removed from the notification group once the queue is open.
Everyone
CommandParseError
- If the
#queue
channel does not have a parent category.
QueueError
- If the user is already in the notification group.
#
🔘 Remove Notifications
Removes the user from the notification group for that queue.
Everyone
CommandParseError
- If the
#queue
channel does not have a parent category.
QueueError
- If the user is not in the notification group.