Miscellaneous Module

A collection of miscellaneous commands that don't belong to a module.



Maximum number of search results that can be requested at once.


!lastseen <@user>

Returns when a user was last seen on discord, which is usually their last status change.


Either a ping for the user, their username, or their nickname.
!search [*[result-range]] [@user[|@user2|...]] [#channel[|#channel2|...]] [~timestamp] [message]

This is an arbitrary search command run on the 7 day chat log. All parameters are optional and can be input in any order, and will all be combined into a single search as appropriate, but if no searchable parameters are given, the operation will fail. Remember that if a username has spaces in it, you have to put the entire username parameter in quotes, not just the username itself! Example: !search #manechat @cloud|@Potluck *4 "~Sep 8 12:00pm" This will return the most recent 4 messages said by any user with "cloud" in the name, or the user Potluck, in the #manechat channel, before Sept 8 12:00pm.


(optional) Specifies what results should be returned. Specifying '*10' will return the first 10 results, while '*5-10' will return the 5th to the 10th result (inclusive). If you ONLY specify a single * character, it will only return a count of the total number of results.


(optional) Specifies a target user name to search for. An actual ping will be more effective, as it can directly use the user ID, but a raw username will be searched for in the alias table. Multiple users can be searched for by separating them with |, but each user must still be prefixed with @ even if it's not a ping


(optional) Must be an actual channel recognized by discord, which means it should be an actual ping in the format #channel, which will filter results to that channel. Multiple channels can be specified using |, the same way users can.


(optional) Tells the search to only return messages that appeared before the given timestamp. This parameter MUST BE IN QUOTES or it will not be parsed correctly.


(optional) Will be constructed from all the remaining unrecognized parameters, so you don't need quotes around the message you're looking for.


!roll <expression>

Evaluates an arbitrary mathematical expression, replacing all **N**d**X** values with the sum of n random numbers from 1 to **X**, inclusive. For example, !roll d10 will return 1-10, whereas !roll 2d10 + 2 will return a number between 4 and 22.


The mathematical expression to parse.


!showroll <expression>

Evaluates a dice roll expression, returning the individual die results. Can also optionally report hit counting for success and fail thresholds. Acceptable expressions are defined as [**N**]d**X**[t**Y**][f**Z**] where: N: number of dice to roll (postive integer < 250; optional, defaults to 1) dX: the type of dice to roll, where X is the number of sides (required) tY: the threshold to use for hit counting, (x is postive integer; optional) fZ: the fail threshold to use for hit counting, (x is postive integer; optional) Examples: d6: Rolls a single 6-sided die 4d20: Rolls 4 20-sided dice 12d6t5: Rolls 12 6-sided dice, and counts the number that score 5 or higher 17d10t8f2: Rolls 17 10-sided dice, counts number that roll 8 or higher (successes) and 2 or lower (fails)


The dice expression to parse (e.g. 12d6t5f1).


!snowflaketime <ID>

Given a discord snowflake ID, returns when that ID was created.


Any unique ID used by discord (these are called snowflake IDs)