WangBot Instructions

WangBot Instructions

Schema

Command
Result

General

!greet
be greeted as though you had just entered the room
!topic
Usage: !topic [new topic]
wangbot sets the topic

Scoring

!score
check your score!
!tip
Usage: !tip [nick] (amount) (comment)
Example: !tip willwybrow 5 being a great guy
tip an amount of your current points to another user as a reward, bribe, or act of kindness. the amount and comment parameters are both optional. if the amount is not specified, the default value of 1 is used. if the amount is more than your score, you tip the bucket. the first word after the nick is always interpreted as the amount if it is numeric, so just be careful if you are doing, for example, !tip TrustworthySam 1337 hax, you would tip up to thirteen hundred and thirty-seven points away that you might not have intended
!makeitrain (amount)
Tip every eligible-to-vote user at once
!leaders
see the three richest players in all the land
!losers
see the three poorest orphans in all the landfill

Ranking

!rank (nick)
display the rank and stars of you or someone else
!stars
see which stars you can afford and how to buy them
!copper
Buy yourself a copper star
!copper [nick]
Give one of your copper stars to another user
!copper wangbot
Sell one of your copper stars (for 50% of the cost to buy)
!promote [nick]
consolidates many of a person's small-value stars into fewer high-value stars. does not increase a person's rank but makes them look cooler
!demote [nick]
knock someone down a peg without actually affecting them. like all medals and decorations, utterly meaningless

Gaming

!lottery
See when the next lottery will occur! lotteries are drawn every Friday!
!jackpot
see how much you could win by entering the lottery!
!buyticket (rows)
buy rows chances to win in the lottery! the lottery is performed by the selection of two random numbers from 0-15. if any of your tickets contain rows with those exact numbers (in order) then you win!
!shuffle
gather in any cards held or on the table and shuffle them into the channel deck
!draw (number)
take one or more cards into your hand
!deal (number) [nick] (space-separated nicks)
deal number cards to each nick listed. cards dealt to wangbot get placed on the table
!table (number)
display the cards on the table, or, if a number is supplied, deal that many cards face-up onto the table
!hand
privately check which cards you're holding in your hand
!reveal
openly display your hand to the channel

Taxation

!audit (nick)
check how long it's been since a user gave a !tip to someone else in the channel. after two weeks of inactivity and every week thereafter, a user can be subject to a wealth tax of 10%. this is added 15 minutes after each lottery draw. a taxation lozenge will appear in the user's !rank

Synthesis

Many of these commands can take additional arguments that provide seed words for wangbot to base its synthesis on.

!opine
have wangbot state a thought. coherence not guaranteed
!topine
wangbot puts a thought straight into the topic
!macropine
Example: !m a * in the hand is worth two in the *
macroinstruction to !opine in all the gaps marked by a space-padded * character

Transmit

!tweet
Usage: !tweet [message]
wangbot tweets your message from the @wangingout account
!tweply
Usage: !tweply [twitter status URL]
Example: !tweply https://twitter.com/willwybrow/status/417312084364255232
wangbot does its own reply to the specified tweet, if possible
!twat
Usage: !twat @[twitter_username]
Example: !twat @willwybrow
short for "tweet at". wangbot replies to a user's latest tweet
!rt
Usage: !rt [twitter status url]
Example: !rt https://twitter.com/willwybrow/status/417312084364255232
wangbot retweets a tweet

Receive

!tw
Usage: !tw (@[twitter_username]|[twitter status URL])
Example: !tw @willwybrow
Example: !tw https://twitter.com/willwybrow/status/417312084364255232
wangbot pulls a tweet from a twitter stream. use this sparingly, though, since it sucks up my API calls. try .tw if the twitter account is unprotected
!tr
Usage: !tr :[from_language] :[to_language] [words to translate]
Example: !tr :en :ja robot
Translates, with an optional from and to language, the supplied message. If no to_language is supplied, it assumes en. If no from_language is supplied, it tries to guess.
!ud
Usage: !ud [term]
Example: !ud cumpkin
Get an urban dictionary definition for your supplied word

Recall

!line
Usage: !line [case-insensitive search term]
searches the log files in reverse for the most recent appearance of the search term. logs write out to disk every few minutes so the immediate past is usually excluded from the search
!firstline
searches the log files in chronological order for the first appearance of the search term.
!context
Usage: !context [case-insensitive search term]
by request, grabs a four line block containing the search term, if it appears in the logs, to provide more context than a simple !line search
!firstcontext
like first line but with context.

Democracy

!floor
Ask for the floor in order to propose democratic motions. you keep it until you cede it, or it can be seized by another user after 5 minutes
!whofloor
check who currently has the floor, and for how long they've had it
!cede
cede the floor if you have it and cancel any unseconded motion you have proposed
!whocan
list the enfranchised channel participants
!imove
Example: !imove that this club sucks
propose a motion to put on the statute book. it requires a !second who believes this motion is worthy of voting upon. it will appear in the list as "This channel believes " followed by your motion text. frequently (but not always), motions begin with "that", so !imove that this club sucks shows up as This channel believes that this club sucks unless it fails, in which case it shows up as This channel does not believe that this club sucks.
!second
to sponsor a proposed motion and open the channel for voting on it
!yea (argument)
Vote in the affirmative for a currently proposed and seconded motion
!nay (argument)
negatory on that, houston
!abstain (argument)
abstain from exercising your right to democracy
!motion
Check the status of any current motion
!statute
each statute gets an article number. supply that number here to view the statute it corresponds to. use negative numbers to get the most recent statutes

Trivial

!acronym
Example: !acronym BBC
picks words from the dictionary to match the initials you supply
!anagram
Example: !anagram feathers fall
limitedly tries to anagram the supplied string
!rhyme
Usage: !rhyme [words to rhyme]
Look up rhymes with various and unguessable accuracy
!roll
Usage: !roll [xdy+z]
takes basic dice notation and runs with it
!8ball
one of the ten good, five medium and five bad mattel eight-ball responses. eurgh.
!pokémon
Usage: !pokémon [name or number]
seek out details of pokémon
!%
Usage: !% (0—100)
prints out a little progress bar with a specified or random value between 0 and 100.
!rand
Usage: !rand [number]
prints out number random digits
!tab
Example: !tab trutab
Tabcomplete a known username
!upper
Usage: !upper [string to modify]
turns input string to UPPERCASE
!lower
Usage: !lower [string to modify]
turns input string to lower case
!title
Usage: !title [string to modify]
indiscriminately turns input string to title case. weird results on apostrophe words and words that oughtn't be Titled
!vreplace
Example: !vreplace willwybrow
each vowel is replaced by another vowel that it isn't

Wanguage

!w
make wangbot say things how you want
$self
your nick
$nick
normally the same as $self, but when inside the first level of a greeting, replaced by the nickname of the user who is being greeted
$here
Replaced by a nickname chosen randomly from all the nicks present
$user
Replaced by a nickname chosen randomly, without replacement, from the list of registered users
$rand
A random digit, 0-9
$alph
A random alpha character, [a-zA-Z]
$char
A random alphanumeric character, [a-zA-Z0-9]
$cons
A random uppercase consonant
$vowl
A random uppercase vowel (including Y)
$mond
One of the twelve months we have, as a word
$wday
A random weekday
$cmyk
A random colour (in words)!
$poke
A random pokémon!
$noun
A random noun phrase from the system list of noun phrases. Small pool to choose from. Also typing $nouns will substitute in the plural form
$()
a nested command. okay, so most of the commands in this instruction booklet can be embedded into a !w line or a greeting.
Example: !w $here is on record as saying "$(!opine)"
wangbot will do the work in his head and spit out the result
note that any command inside these parentheses will act almost exactly the same as if you had invoked it on its own. so any $vars in there will not be evaluated. typing !w $(!tip $here) will not tip a random here person, but instead try to tip a user called "$here" which obviously makes no sense
however, multiple levels of nesting is supported and $()s are evaluated from the inside out, so if you were to write !w $(!tip $(!w $here)), the innermost $(), which is !w $here gets evaluated first. That might return, for example JamieDass. then the line is in an internal state like !w $(!tip JamieDass) which is then evaluated. it makes perfect sense and I don't know why you'd think it would work any other way, chezmax

Registers

!r
!r and !r0 through !r9 set and then get eleven user-specific variables.
if you supply !r with an argument, the value of that !r is set. type it on its own, wangbot says the value currently stored in it
Example: !r0 hello $nick
Example: !r0
!wr
This is a shorthand for the following: !w $(!r)
Likewise you have !wr0 to !wr9 for the other ten registers
This lets you put bits of wanguage in them, for example, !r0 $(!tip JamieDass)
Then type !wr0 which evaluates to !w $(!tip JamieDass) which tips JamieDass
%*
One more feature specific to registers. %* placed inside a register will be replaced with user-supplied arguments when the register is executed using !wr
Example: !r0 $(!tip %*)
Then !wr0 JamieDass evaluates to !w $(!tip JamieDass) which acts as above

Greeting

These commands are best issued in private to wangbot in a /query

/query wangbot
For those of you who don't know, this will open up a new window where you can communicate in private with wangbot
!addgreeting
Usage: !addgreeting [greeting text]
Adds or updates a draft greeting. wangbot will let you preview it before adding it to the database, to check for typos. The greeting text can contain any of the wanguage features!
Example: !addgreeting $user bought $nick a ₩5$rand0,000 gold $noun on the 1$randth of $mond. $nick was delighted, but $user rated the purchase $char
!confirm
After you use !addgreeting, wangbot will read back your greeting with some generic substitutions so you can see if it worked okay. Then type !confirm to add it to the database
!addnoun
add a noun and its article and plural to be used in $noun substitution

Registration

!signup
Get ten points. Your nick gets turned into something we can use.
!nickof [main_nick]
add an alt nick to wangbot's memory brain

Admin

!checkyoself
use this if ever wangbot has wrecked himself (i.e., is present in the channel without being an op)
!callher
use this to call up clambot whenever she has fallen over which happens often because she is terrible