Commands

All commands must be preceeded by my command prefix: p?

For a summary of available commands, you can use p? help.

Certain commands require special permissions. See configure role for details.

Legend

[...] Required arguments are in square brackets
(...) Optional arguments are in regular brackets
(-...) This represents an optional flag. For example, if a command has the syntax p? example (-x) you can call it with p? example or p? example -x for different results
(-... [...]) If square brackets are inside regular brackets that represents a required argument for an optional flag, e.g. (-expires [date]).

Note that you cannot change the order of the arguments.

Date format

At several locations in this documentation, a user can provide a date. Almost all date formats are available and many different languages are supported. Relative times are also supported e.g. in 2 days.

The preferred date format is DMY so, for example, the date 1/5/2020 would be interpreted as May 1st 2020 and not January 5th 2020. This can be circumvented by providing the month name instead of its number, e.g. 5 january 2020.

Users can also specify a time zone by adding its abreviation to their date e.g. tomorrow at 23:30 CST

The defualt time zone is always UTC so all times are assumed to be in UTC. The exception to this is if a guild configured their time zone (see configure timezone) and the date is for scheduling an event.

This bot uses the dateparser python library to parse dates.

Here are some valid date examples: tomorrow at 12:30 5 june at 15:00 CST in 3 weeks eftir 5 mín montag um 8:00

Setup

Once the bot joins your server, It will ask you to run p? setup. This command will create all the necessary channels and roles so that this bot can function normally.

Setup

Usage: p? setup This command will attempt to create the channel #events under a new category, events. This channel will automatically be registered as the events channel.

If the bot fails to create the #events channel, it will let you know and you will have to create one manually. Once a suitable channel has been created, you can set it as the events channel with the configure channel command.

This command can be run however many times, for instance if you accidentally remove the events channel, however, it will always create a new category, channel and role so you need to delete the old stuff manually.

You can always manually set the event channel with the configure channel command.

Note

This command can only be executed by the server owner.

Configuration

In this section you can find the commands related to configuring different aspects of the bot such as setting bot role permissions, which channel to use as the events channel and the guild's time zone.

Configure

aliases: config, conf

Usage: p? configure When this command is called without a subcommand, it will open up an interactive settings menu.

Note

This command is only available to members with permission to configure roles.

Configure channel

Usage: p? configure channel [channel type] This command sets the channel it is executed in to [channel type]. Available channel types are:

events The channel with the events message. WARNING! This will erase all messages in the channel the command is executed in! You will be asked to confirm this action.
friendly The channel where the morning recurring event messages are posted.

Example

p? configure channel friendly This command would set the channel it was executed in to the friendly type.

Note

This command is only available to members with permission (see configure role for details).

Configure role

Certain commands require special permission. This command is the way to give those permissions to roles on your server.

Usage: p? configure role [@role] This command allows you to change the permissions for a certain [@role]. Roles that have the administrator permission already have all permissions for this bot.

Commands that require special permission to use are:

If you are the owner of an event, you do not require any special permissions for commands related to that particular event.

Example

p? configure role @Mod This would give you the configuration dialogue for the role @Mod.

Note

This command is only available to members with permission (see configure role for details).

Configure timezone

Usage: p? configure timezone This command will give you a dialogue to change your guild's time zone.

Note

This command is only available to members with permission (see configure role for details).

Event related commands

The following commands are all related to the events feature. They are the only commands that can be executed within the Events channel.

Schedule

alias: s

Usage: p? schedule (name) (date & time) (description) (limit) (-noroles) Starts the scheduling process for a new event. Note that if any of the optional arguments above are provided, the corresponding step below will be skipped. The bot will ask you to give a title, date and time, description, optional roles and people limit for your new event. If at any time you want to cancel the scheduling process, type cancel. The process is as follows:

1. Name

First you will be asked to provide a name for the event.

If the (name) optional argument is provided, this step will be skipped.

2. Date & Time

Next you will be asked to give a date and a time for the event. It is important to note that you must specify the date AND time, e.g. June 15th 2020 at 14:00.

Almost all date formats are supported. See date for details. If the date specified includes a weekday, the event will be set as recurring at the same time every week. You can also specify that an event is yet to be dated by entering TBD as the date.

If an event is recurring then instead of removing the event once it starts, the attendant list will simply be cleared.

At 10:00 A.M. on a day with a recurring event the bot will post a little message in the designated friendly channel (see configure channel for details)

If the (date & time) optional argument is provided, this step will be skipped.

3. Description

Third, you will be asked to provide a description for your event.

If the (description) optional argument is provided, this step will be skipped.

4. Roles

After asking you for a description, the bot will ask you to react to a message with emojis to represent any event specific roles. Once you have added all your reactions, type done in the text channel. You will then have to give a name and a limit of people for each role.

If you are not in need of any event specific roles, type done without reacting to the message with any emojis.

These roles are purely visual and no actual server roles are added.

If the (-noroles) optional flag is provided, this step will be skipped.

5. Limit

Lastly, you will be asked to specify how many people in total can join your event. If the (limit) optional argument is provided, this step will be skipped.

Event and role limits

Role limits and event limits work exactly the same. If an event or role is full, you will not be able to join that event or that role. If all roles are full but there is still space left in an event, new attendants will not get a role but they will still be added.

If you do not want a limit for your role or event, simply give 0 when you are asked for a limit.

Owner

When scheduling an event, you will be registered as the event owner and thus do not require any other event related permissions when executing commands related to this event.

Examples

p? schedule p? schedule "Example event" tomorrow "Come join us for some fun!" 2 -noroles p? schedule "Example event" tomorrow

Notes

  1. You cannot change the order of the optional arguments. Your first argument will always be interpreted as (name), the second as (date & time) and so on. The exception is that you can specify -noroles anywhere.
  2. This command is only available to members with permission (see configure role for details).

Remove

alias: r

Usage: p? remove [event id] Removes the event number [event id].

Example

p? remove 1 This command would delete event number 1.

Note

This command is only available to members with permission (see configure role for details).

Join

alias: j, attend, a

Usage: p? join [event id] Signs you up for event number [event id] and adds your name to the list of people showing up.

You can also use this command to change your role in an event. To do so, simply join the event again.

Example

p? join 3 This command would sign you up for event number 3.

Leave

alias: l

Usage: p? leave [event id] Use this command to leave event number [event id] and remove your name from the list of people showing up.

Example

p? leave 3 This command would remove you from the list of people showing up for event number 3.

Update

alias: u

Usage: p? update [event id] [what to update] [new value] This command sets the field [what to update] to [new value] for event number [event id]. Available fields to update are

date The date and time of the event. The same formats as in schedule.
name The name of the event.
description The description of the event.
owner The owner of the event. When updating this field, use the @Mention for the new owner as [new value].
limit The total number of people that can join the event.
role Update a role.

Editing roles

When editing a role, the command syntax becomes as follows: p? update [event id] role [the role's emoji] [attribute] [new value] Available values for [attribute] are

name The name of the role.
limit The limit of people that can join a role.
emoji The role's emoji. When updating this attribute, [new value] can be left blank.

Examples

p? update 2 description Free oj for everyone who shows up. This would update the description for event number 2 to Free oj for everyone who shows up..

p? update 1 role :thumbsup: limit 5 This would update the role with the :thumbsup: emoji and set its limit to 5.

p? update 1 role :thumbsup: emoji This would allow you to change this role's emoji from :thumbsup:.

Note

This command is only available to members with permission (see configure role for details).

Kick

alias: k

Usage: p? kick [@member] [event id] This command kicks member @member from event number event id

Example

p? kick @exampleMember#1234 1 This command would kick the member @exampleMember#1234 from event number 1.

Note

This command is only available to members with permission (see configure role for details).

When

Usage: p? when [event id] [UTC offset] This command returns the start time with regards to the given UTC offset. It also returns the time until the event starts.

Example

p? when 1 -2 This command would give you the start time of event 1 in UTC-2 time.

Owner

Usage: p? owner [event id] This command will make the bot reply with the current owner of event with id [event id]

Salt related commands

These commands are for when you get Sastasha for the 5th time in a row on duty roulette or when PEOPLE DON'T STACK! GEEZ, HOW HARD IS IT?!

Salt

Usage: p? salt This command gives you a little demotivational quote and ups the count of salty nugs you have had.

Saltboard

Usage: p? saltboard This command prints a salty leaderboard so you can ascertain who is the saltiest of all your friends.

Fun stuff

These commands are here because they are fun. Some of these are pretty weird though.

Eyebleach

aliases: cute, cutestuff, helppls

Usage: p? eyebleach This command give you a cute image of something or other from /r/eyebleach.

Clowntime

alias: trúðagrín

Usage: p? clowntime It's clowntime!

Orangejuice

aliases: oj, applejuice, juice, akidrugs

Usage: p? orangejuice This command posts a picture of high quality orange juice! The best in all the land!

Sorry

Usage: p? sorry Use this command to apologise to the bot if you have been mean to it. why would you do that though? :'(

Roll

Usage: p? roll [list of names] The bot selects a random person from the [list of names] provided.

[list of names] A list of names seperated by a ,

Example

p? roll Lahabread, Emet, Ardbert, Driur This would make the bot choose one of Lahabread, Emet, Ardbert or Driur and post the winner in chat.

Julia

Usage: p? julia (colour scheme) (complex number) This command generates a random julia set unless a (complex number) is specified, then it will generate the set with the given constant. You can choose the colour scheme by specifiyng (colour scheme).

(hue|value) The colour scheme to use for the image. Available colour schemes are hue and value. Unless specified, hue will be used.
(complex number) The complex number to use as the constant for every series. The format is a+bi.

If neither parameter is specified, you will receive a random Julia set.

Example

p? julia value -0.77568377+0.13646737i This will generate the Julia set with the constant -0.77568377+0.13646737i and use the value colour scheme.
An example of a julia set.

Lo-fi radio

These commands are related to the Lo-fi radio player.

Chill

Usage: p? chill This command will only work when you are connected to a voice channel.

This command makes the bot join your voice channel and starts playing some chill tunes.

Chill stop

Usage: p? chill stop This command makes the bot stop playing chill tunes and leave your voice channel.

Chill volume

alias: v

Usage: p? chill volume [volume] Where

[volume] A number from 0 to 100 denoting volume percent.

This command sets the chill tunes volume to [volume]

Example

p? chill volume 20 This would set the volume to 20%.

Chill nowplaying

aliases: now, playing

Usage: p? chill nowplaying This command displays the currently playing song.

Miscellaneous

I don't know where to put these commands so they go here

Log

Usage: p? log The bot messages you with a log of recent activity in the events channel. The log only consists of commands found under Event related commands.

Clean

Usage: p? clean This command clears the channel it is executed in. You will be asked to confirm this action.

Note

This command is only available to members with the administrator permission.

Readycheck

Usage: p? readycheck [list of mentions] (-expires [date]) This command invokes a ready check for all members listed. The [list of mentions] is a list of @mentions for members or roles you want to include in the ready check.

Use the optional argument -expires [date] to specify when the readycheck should expire. If this argument is not present, there expiration time will be set to 24 hours (see date for more details about date formats).

Example

p? readycheck @member1#1234 @member2#5678 @role -expires in 1 hour This would start a ready check for member1, member2 and all members with the role role. The ready check would expire in one hour.

Calculate

Usage: p? calculate [query] This command queries wolfram alpha for your [query] and returns the result.

Example

p? calculate the surface area of the earth This command would return the surface area of the earth.

Spoiler

Usage: p? spoiler [message] This command reuploads all attachments as spoilers with the message [message] attached.

Example

Video of marking a spoiler.

Spoiler delete

Usage: p? spoiler delete This command deletes the last message the user posted with the spoiler command.

Poll

Usage: p? poll [name] [options] This command will create a poll with the name [name] and the options [options]

name The name of the poll as a string of characters, surrounded by double quotes if it is more than one word.
options A list of options for the poll, seperated by a space. If an option contains multiple words, surround it with double quotes.

Example

p? poll "What is your favourite colour?" red blue green "another colour" This would create a poll called What is your favourite colour? with the options red, blue, green and another colour

Notes

  1. The number of options for a poll is limited to 20.
  2. After some time without any activity, the poll will stop working

Notice new

Usage: p? notice new This command creates a new notice message that can be edited by everyone with permission to display whatever you want. You can edit this message with the notice edit command.

Note

This command is only available to members with permission (see configure role for details).

Notice edit

Usage: p? notice edit [message id] [new message] This command will edit the notice message with id [message id] to display the new message [new message]. You do not need to surround [new message] with quotes.

Notes

  1. You need to be in the same channel as the notice message you want to edit.
  2. This command is only available to members with permission (see configure role for details).

Forget_me

Usage: p? forget_me This command will purge all stored information this bot has stored on you which is:

  • Salt count
  • All reminders you have set and have not yet deleted
  • All spoiler messages you have sent with the spoiler command and have not yet been deleted
  • You will be removed from all scheduled events

Soundboard

Here are all the commands related to the soundboard feature.

Soundboard

alias: sb

Usage: p? soundboard When this command is invoked without a subcommand it will list all the available sounds and you will be able to pick one to play.

Soundboard add

alias: a

Usage: p? soundboard add [name] To add a new sound, upload a mp3 or wav file to any channel the bot has access to and put this command in the comment when uploading. The new sound will be called [name].

Example

Video of adding a sound.

Notes

  1. Sound names cannot include spaces.
  2. If you delete the message with the file upload, then that sound will no longer work.
  3. This command is only available to members with permission (see configure role for details).
  4. The maximum amount of sounds for a server is 19.

Soundboard remove

alias: r

Usage: p? soundboard remove [name] This command will remove the sound called [name].

Example

p? soundboard remove ExampleSound This would remove the sound called ExampleSound.

Note

This command is only available to members with permission (see configure role for details).

Soundboard play

alias: p

Usage: p? soundboard play [name] This command will play the sound called [name].
To see all available sounds, use the Soundboard command.

Soundboard rename

alias: rn

Usage: p? soundboard rename [oldname] [newname] This command will rename the sound [oldname] to [newname].

Example

p? soundboard rename wow amazing This command would rename the sound called wow to amazing.

Reminders

Here you can find all commands related to reminders.

Remindme

Usage: p? remindme [time] to [reminder] Where

[time] The time you want to set the reminder for. See the date section at the top for details on available formats.
[reminder] is what you want to be reminded of.
This command will set a reminder for [reminder] which will go off at [time].

Examples: p? remindme in 2 days to water my cactus This command would set a reminder for 2 days in the future to water your cactus. p? remindme tomorrow at 14:30 UTC-3 to put cookies in the oven This command would set a reminder for tomorrow at 14:30 UTC-3 time to put cookies in the oven.

Remindme list

Usage: p? remindme list (page) This command will give you a list of reminders you have set for yourself as well as their ids. If (page) is not specified, you will receive page one of the list. There are 10 reminders per page.

Example

p? remindme list 2 This command would give the user page two of their reminder list.

Note

All times are in UTC.

Remindme remove

Usage: p? remindme remove [reminder id] This command will remove the reminder with the given [reminder id]. You can check all your reminders and their ids with the remindme list command.

Example

p? remindme remove 5 This command would remove reminder number 5 on the remindme list.