Beancounter Command Listing
Following is a list of all commands currently supported in Beancounter.
Unless otherwise noted, all commands on this page are available in master branch. Releases that introduce a given command will probably be noted when we have releases.
The commands are listed in no particular order.
There are three ways you can give a command to a Beancounter:
- In channel: Either using the fantasyString prefix (e.g., if the fantasyString is
?
, you could give the "quit" command by saying?quit
in the channel) - In channel: Addressing the bot directly (e.g., if the Beancounter's nickname is PaulaBeancounter, you could give the "quit" command by saying
PaulaBeancounter: quit
) - In private message: Simply lead your message with the command (e.g., if the Beancounter's nickname is PaulaBeancounter, you would give the "quit" command by doing
/msg PaulaBeancounter quit
)
For the usage information, angle brackets are used to denote a choice between specific argument values (for example, acl <grant|revoke>
means "type either 'acl grant' or 'acl revoke'"); brackets ([]
) are used to denote free-form arguments; braces ({}
) surround optional arguments (otherwise, arguments are required). No brackets surrounding a value means that you must enter that value verbatim.
Arguments to commands are space-delimited; however, in general, the final argument to any command may contain spaces.
Contents
- 1 quit
- 2 nick
- 3 join
- 4 part
- 5 say
- 6 act
- 7 raw
- 8 coin
- 9 dice / roll
- 10 more
- 11 slap
- 12 cfgslap
- 13 roulette
- 14 reload
- 15 spin
- 16 poulette
- 17 myperms
- 18 acl
- 19 rehash
- 20 seen
- 21 cfgseen
- 22 help
- 23 commands
- 24 weather
- 25 userweather
- 26 setlocation
- 27 cfgweather
- 28 listchans
- 29 cfginvites
- 30 remind
- 31 remindme
- 32 cfgquakes
- 33 lastquake
- 34 LookOfDisapproval
- 35 Lenny
- 36 AngryLenny
- 37 LookOfLenny
- 38 TableFLIP
- 39 Raise
- 40 Lower
- 41 SmallCaps
- 42 SuperScript
- 43 SwearToGod
- 44 entrymsg
- 45 lamborghini
- 46 fishbot
- 47 wikipedia
- 48 shakespeare
- 49 redditor
- 50 cfgwikilinks
- 51 youtube
- 52 cfgyoutube
- 53 idunknowlol
- 54 lelelennynnynny
- 55 morse
quit[edit | edit source]
- Usage:
quit {[quit message]}
- Permission needed: quit
- Implemented by: org.lizardirc.beancounter.commands.admin.AdminHandler
Disconnects the bot from the IRC network. The quit message, if provided, is given to the IRC server as the quit message, otherwise the default of "Tear in salami" is used.
nick[edit | edit source]
- Usage:
nick [nickname]
- Permission needed: nick
- Implemented by: org.lizardirc.beancounter.commands.admin.AdminHandler
Changes the bot's nickname to nickname immediately.
join[edit | edit source]
- Usage:
join [channel]
- Permission needed: join
- Implemented by: org.lizardirc.beancounter.commands.admin.AdminHandler
Instructs the bot to join the channel channel immediately. The bot will message the channel, indicating who asked it to join. The bot will remember the channel to be rejoined on next connect (unless it is kicked or parted from the channel).
part[edit | edit source]
- Usage:
- In channel:
part {[channel] {[part message]}}
- In private message:
part [channel] {[part message]}
- In channel:
- Permission needed: part
- Implemented by: org.lizardirc.beancounter.commands.admin.AdminHandler
Instructs the bot to part the channel channel immediately. If the command is given in a channel with no arguments, it will part the channel the command was given in. Note that if given in a channel, you still must specify the channel name always if you want the bot to part with a custom message. The part message will always indicate who instructed the bot to part the channel. The bot will forget the channel from the list of channels to be rejoined on next connect (also happens if the bot is kicked from the channel).
say[edit | edit source]
- Usage:
- In channel:
say {[channel]} {[message]}
- In private message:
say [user/channel] {[message]}
- In channel:
- Permission needed: say
- Implemented by: org.lizardirc.beancounter.commands.admin.AdminHandler
Instructs the bot to send the message to the given user or channel. If the command is given in a channel, the command may only target another channel, and if the first argument doesn't appear to be a valid channel name, the bot will target the channel the command was given in. If you wish to target a user directly (i.e., make the bot send a private message), you must give the command in a private message. When given in private message, the first argument (user or channel to target) is not optional.
act[edit | edit source]
- Usage:
- In channel:
act {[channel]} {[message]}
- In private message:
act [user/channel] {[message]}
- In channel:
- Permission needed: say
- Implemented by: org.lizardirc.beancounter.commands.admin.AdminHandler
Instructs the bot to act the message (analogous to the /me
command in most IRC clients) to the given user or channel. If the command is given in a channel, the command may only target another channel, and if the first argument doesn't appear to be a valid channel name, the bot will target the channel the command was given in. If you wish to target a user directly (i.e., make the bot send a private action), you must give the command in a private message. When given in private message, the first argument (user or channel to target) is not optional.
raw[edit | edit source]
- WARNING: DANGEROUS COMMAND - USE WITH CAUTION!
- Usage:
raw [raw IRC line]
- Permission needed: raw
- Implemented by: org.lizardirc.beancounter.commands.admin.AdminHandler
Instructs the bot to pass the raw IRC line exactly as is to the IRC server. Proper usage of this command requires knowledge of the raw IRC protocol. Caution is advised; misuse of this command can cause undefined behavior in the bot.
coin[edit | edit source]
- Usage:
coin
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.dice.DiceHandler
Flips a coin, and reports "heads" or "tails" back to the caller.
dice / roll[edit | edit source]
- Usage:
dice {{[N]d}[X]} {{[N]d}[X]} {...}
- Aliases: roll
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.dice.DiceHandler
Rolls N X-sided dice and reports their sum back to the caller. For clarity, you specify the number of dice to roll and how many sides the die have in the format NdX, where X is the number of sides the dice should have and N is how many dice with X sides you want to roll. You can leave off the "Nd" and the bot will assume that you only want to roll one die, with X sides. You can chain multiple of these dice specs together. If there are no arguments, the bot assumes 1d6 (i.e., roll 1 6-sided die). Here are some concrete examples:
dice 1d6
(default) - roll 1 6-sided diedice 6
- roll 1 6-sided diedice 1d20
- roll 1 20-sided diedice 20
- roll 1 20-sided diedice 5d15
- roll 5 15-sided dicedice 3d20 5d7 6 3
- roll 3 20-sided dice, 5 7-sided dice, 1 6-sided die, and 1 3-sided diedice 8d
- Invalid syntax
Note that if multiple dice are thrown, the bot will only report their total. If you want to see the result of each throw, immediately follow your dice command with the "more" command (see below).
more[edit | edit source]
- Usage:
more
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.dice.DiceHandler
Shows more detail about the last time the dice command was used - i.e., shows the exact values that were rolled. Use with caution, as the bot might flood you out if you rolled a lot of dice!
slap[edit | edit source]
- Usage:
slap {[user]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.slap.SlapHandler
Instructs the bot to viciously attack the given user. user must be present in the channel the command is given in; if you specify a user that doesn't exist (or give the command in a private message), the bot will slap you! The output of the slap command is always given in the channel it was called in; if called in private message, the response will be in a private message back to you. Authorized users can configure the slap command; see the "cfgslap" command below.
Example output: * Beancounter defenestrates FastLizard4 with a large trout
cfgslap[edit | edit source]
- Usage:
cfgslap <add|remove> <actions|modifiers|items|item_mods> [what]
cfgslap list <actions|modifiers|items|item_mods>
- Permission needed: cfgslap
- Implemented by: org.lizardirc.beancounter.commands.slap.SlapHandler
The cfgslap command allows an authorized user to modify the responses given by the slap command.
A slap consists of the following four elements: an action, a modifier, an item, and an item modifier. The bot is guaranteed to always randomly choose both an action and an item from the list; however, for modifiers and item modifiers, it may randomly choose one or choose not to include one.
The slap is constructed in the following format: Beancounter action target modifier withitem
Furthermore, the item may contain format string elements for the item modifier: %s
is replaced with the item modifier, and %2$s
is replaced with "n" if the item modifier starts with a vowel (useful for "a"/"an"). Here are some example items that demonstrate this: "a%2$s %s minnow", "Donald Trump's %s combover".
"cfgslap add" adds the given what to the appropriate list (actions, modifiers, items, or item modifiers), while "cfgslap remove" removes the given what from the appropriate list (must be an exact match). "cfgslap list" lists all items in the given list.
roulette[edit | edit source]
- Usage: In channel only:
roulette
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.roulette.RouletteHandler
Play a game of Russian Roulette with the bot. Beancounter hands you a gun; you pick it up, point it at your head, pull the trigger, and....
This command only works if given in a channel. If the bot has ops in the channel, it will kick you if you die. Either way, it reports back the result as a message too.
Beancounter has a variety of guns at its disposal; you can use the "reload" command (see below) to configure the gun. You can also use the "spin" command (see below) to instruct Beancounter to spin the barrel. Be advised, though, that spinning the barrel only delays the inevitable at best, and at worst....
Note that RouletteHandler is per-channel; that is, the gun's state (number of bullets, number of chambers, chamber position, etc.) is remembered for each channel the bot is in individually.
reload[edit | edit source]
- Usage: In channel only:
reload {[bullets] {[chambers]}}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.roulette.RouletteHandler
Instructs Beancounter to empty then reload the gun for Russian Roulette. By default, Beancounter puts one bullet in a six-chamber gun; however, that can be changed by specifying the bullets and chambers arguments. Note that bullets must always be specified if you want to specify chambers, and that these values persist for the channeluntil the bot is restarted. That is to say, if in a channel you tell the bot to put six bullets in a 20-chamber gun ("reload 6 20") and then tell the bot to put 3 bullets in the gun ("reload 3"), it will still use a 20-chamber gun in response to "reload 3"; further, if after this you call "reload" with no arguments, it will once again put 3 bullets in a 20-chamber gun.
Note that RouletteHandler is per-channel; that is, the gun's state (number of bullets, number of chambers, chamber position, etc.) is remembered for each channel the bot is in individually.
spin[edit | edit source]
- Usage: In channel only:
spin
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.roulette.RouletteHandler
Beancounter spins the barrel in its Russian Roulette gun. This may delay the inevitable, but it never prevents it.
Note that RouletteHandler is per-channel; that is, the gun's state (number of bullets, number of chambers, chamber position, etc.) is remembered for each channel the bot is in individually.
poulette[edit | edit source]
- Usage: In channel only:
poulette
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.roulette.RouletteHandler
You want to play Russian Roulette with Beancounter, but you're drunk, so you accidentally pick up a chicken instead of Beancounter's gun, and pluck a feather instead of pulling the trigger.
myperms[edit | edit source]
- Usage:
myperms
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.security.BreadBasedAccessControl.BreadBasedAccessControlHandler
Gets the list of permissions you have currently granted to you. The permissions returned by this command are the same permissions noted in this documentation by the "permission needed" lines.
acl[edit | edit source]
acl list[edit | edit source]
- Usage:
acl list <roles|permissions> {available}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.security.BreadBasedAccessControl.BreadBasedAccessControlHandler
If the second argument is "roles", lists the complete mapping of hostmask regexes to the roles they are granted, or if the "available" flag is specified as the third parameter, lists all available roles. If the second argument is "permissions", lists the complete mapping of roles to the permissions each role is granted, or if the "available" flag is specified as the third parameters, lists all permissions the bot has seen used (though note that this list is only populated during permissions checks, so it may not include all available permissions; this documentation is the definitive list of all available permissions).
Unlike the other acl subcommands, "acl list" requires no special permissions to run.
acl grant/revoke/revokeall/delete[edit | edit source]
- Usage:
acl <grant|revoke> roles [hostmask-regex] [role]
acl <grant|revoke> permissions [role] [permission]
acl revokeAll roles [role]
acl revokeAll permissions [permission]
acl delete hostmask [hostmask-regex]
acl delete role [role]
- Permission needed: acl
- Implemented by: org.lizardirc.beancounter.security.BreadBasedAccessControl.BreadBasedAccessControlHandler
(TODO: Long-form documentation for this)
rehash[edit | edit source]
- Usage:
rehash
- Permission needed: rehash
- Implemented by: org.lizardirc.beancounter.Listeners
Reloads all listeners. Usually only useful when debugging after hotswapping a classfile.
seen[edit | edit source]
- Usage:
seen [nickname]
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.seen.UserLastSeenCommandHandler
Queries the bot to ask when is the last time it saw nickname speak in a channel the bot tracks. Tracked channels include all public channels (i.e., without the "secret" channel mode, usually +s, set) that haven't been explicitly untracked using the "cfgseen" command (see below).
cfgseen[edit | edit source]
cfgseen istracked[edit | edit source]
- Usage: In channel only:
cfgseen istracked
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.seen.UserLastSeenCommandHandler
The "cfgseen istracked" command allows anyone to determine if the channel the command was issued in is tracked for the purposes of the "seen" command. The command will tell you if the channel is listed on the "do not track" list, and/or if it is untracked because it is marked secret (usually channel mode +s). Note that this command does not work in private messages, and will only tell you the status of the channel the command is given in; in this way, the bot protects secret/untracked channels from being exposed.
cfgseen track/notrack/list[edit | edit source]
- Usage:
cfgseen <track|notrack> [channel]
cfgseen list
- Permission needed: cfgseen
- Implemented by: org.lizardirc.beancounter.commands.seen.UserLastSeenCommandHandler
These commands allow an authorized user to add ("cfgseen notrack") or remove ("cfgseen track") a channel from the "do not track" list for the "seen" command. They also allow an authorized user to get the entire list of untracked channels. The list action is limited to authorized users to protect the privacy of channels on the list; likewise, caution is advised when using these commands in a channel, but they may be used in a channel or in private message. Note that the "cfgseen list" command will not list channels that are untracked because they are marked as secret (channel mode +s usually); it only lists channels added using the "cfgseen notrack" command.
help[edit | edit source]
- Usage:
help
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.help.HelpHandler
Shows some basic help text, with a link to this page, the GitHub repository, and some information on the "commands" command (see below).
commands[edit | edit source]
- Usage:
commands
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.help.HelpHandler
Shows an alphabetical list of commands the bot is aware of. Note that this may not be a complete list; the bot may have other commands and functionalities that are not listed here for a variety of reasons (technical, contextual, etc.).
weather[edit | edit source]
With the acquisition of Weather Underground by The Weather Channel (and IBM), these commands are no longer functional as the Weather Underground API has been shut down. The commands remain in the bot, but may be disabled as they will do nothing until a new solution is found. Dark Sky was originally a candidate to replace Weather Underground in Beancounter, but now that Dark Sky has been acquired by Apple and its API also closed, this is no longer an option. These commands will be updated whenever a new, robust solution is found and can be integrated. |
- IMPORTANT: Special configuration is required to use this command in your own Beancounter. Please read the documentation for the cfgweather command.
- Usage:
weather {[location]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.weather.WeatherHandler
- Note: This command may not be available or recognized depending on Beancounter configuration.
Displays the current weather at the given location. The weather data is provided by Weather Underground. To use this feature on your own Beancounter bot, you'll need to purchase (free tiers are available) a Weather Underground API key (see documentation for the "cfgweather" command below). Location can be almost anything; a city, an airport code, a ZIP code (or other postal code outside the U.S.), or a Weather Underground Personal Weather Station (PWS) identifier. PWD IDs are useful for finding very-local results - for instance, you can go to the Weather Underground website and find the PWS closest to you, then pass its PWS ID (e.g., KCALOSAN205
) as the argument to the weather command. The location parameter is optional if you set a default location for yourself using the "setlocation" command (documented below). If the location you provide can't be found in the Weather Underground location database, or if multiple matches are found for a given location, the bot will ask you to clarify.
Note: Retrieving weather data counts against your Weather Underground API limits, one call per command usage that returns weather data. Checking a location against the Location API does not, however. (For example, if a location is not found or is ambiguous, there is no API cost as the bot only queries the Location API, not the actual weather data API.)
userweather[edit | edit source]
With the acquisition of Weather Underground by The Weather Channel (and IBM), these commands are no longer functional as the Weather Underground API has been shut down. The commands remain in the bot, but may be disabled as they will do nothing until a new solution is found. Dark Sky was originally a candidate to replace Weather Underground in Beancounter, but now that Dark Sky has been acquired by Apple and its API also closed, this is no longer an option. These commands will be updated whenever a new, robust solution is found and can be integrated. |
- IMPORTANT: Special configuration is required to use this command in your own Beancounter. Please read the documentation for the cfgweather command.
- Usage: In channel only:
userweather [nickname]
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.weather.WeatherHandler
- Note: This command may not be available or recognized depending on Beancounter configuration.
Displays the current weather at the location of another IRC user given by nickname. The user must have used the "setlocation" command (see below) to set their default location for the userweather command to work on them. In addition, since this command uses the same nickname fuzzy matching system used by the "slap" command, you can use abbreviations for nickname, but as a consequence, this command must be run in a channel, and the user whose weather you want to query must also be in that channel.
Note: Retrieving weather data counts against your Weather Underground API limits, one call per command usage that returns weather data.
setlocation[edit | edit source]
With the acquisition of Weather Underground by The Weather Channel (and IBM), these commands are no longer functional as the Weather Underground API has been shut down. The commands remain in the bot, but may be disabled as they will do nothing until a new solution is found. Dark Sky was originally a candidate to replace Weather Underground in Beancounter, but now that Dark Sky has been acquired by Apple and its API also closed, this is no longer an option. These commands will be updated whenever a new, robust solution is found and can be integrated. |
- Usage:
setlocation {[location]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.weather.WeatherHandler
- Note: This command may not be available or recognized depending on Beancounter configuration.
When the optional location parameter is provided, sets your default location to location. Like with the "weather" command (see above), location can be anything the Weather Underground Location API understands, including city names, airport codes, ZIP codes (and other postal codes outside the U.S.), and Weather Underground Personal Weather Station (PWS) identifiers. Also as with the "weather" command, if the location you provide can't be resolved by the Weather Underground Location API, the bot will ask you to clarify instead of saving your default location choice.
When run without the location parameter, your default location is deleted.
Note: The setlocation command never counts against your Weather Underground API limits, as the Location API is not rate limited.
cfgweather[edit | edit source]
With the acquisition of Weather Underground by The Weather Channel (and IBM), these commands are no longer functional as the Weather Underground API has been shut down. The commands remain in the bot, but may be disabled as they will do nothing until a new solution is found. Dark Sky was originally a candidate to replace Weather Underground in Beancounter, but now that Dark Sky has been acquired by Apple and its API also closed, this is no longer an option. These commands will be updated whenever a new, robust solution is found and can be integrated. |
- Usage:
cfgweather <show|enable|disable|alertsenable|alertsdisable>
cfgweather <apisetkey|apisetdayrate|apisetminuterate|apisetburst> [operand]
- Permission needed: cfgweather
- Implemented by: org.lizardirc.beancounter.commands.weather.WeatherHandler
- Note: This command may not be available or recognized depending on Beancounter configuration.
This command is used to configure WeatherHandler, which must be done before you can use the "weather" command.
Before beginning, you should be advised of the following:
- Using WeatherHandler requires you to purchase a Weather Underground API key (free service tiers are available). You can do so here, but be aware of the following caveats:
- You will need to create a Weather Underground user account if you don't already have one (requires you to provide your email address)
- To get an API key, you will need to provide information including your name, your country of residence, a contact email address, and a description of what you will be using your API key for.
- Beancounter's WeatherHandler is designed to use a Cumulus Plan API key, but will work with a Stratus Plan key with certain features unavailable.
- Beancounter does not require historical data access.
- Beancounter's WeatherHandler contains internal rate limiting logic to allow you to more finely control your API usage (or simply limit usage to the maximum provided by your API key.
- By acquiring an API key and enabling WeatherHandler in your Beancounter configuration, you are agreeing to the Weather Underground API's Terms of Service, which include the following important provisions:
- You must not share your API keys with anyone (which is why none is provided with the bot's source code) - use caution when assigning the "cfgweather" permission since the
cfgweather show
command reveals the API key. - You must not alter the bot's source code to remove the attribution of data to Weather Underground
- You must not share your API keys with anyone (which is why none is provided with the bot's source code) - use caution when assigning the "cfgweather" permission since the
By default, the WeatherHandler module is not loaded on bot startup, so the bot will not recognize the "weather", "setlocation", or "cfgweather" commands. To use any of these commands, you must first enable the WeatherHandler by setting the weather.enable
option to "true" in your Beancounter startup configuration file. Be advised, though, that enabling WeatherHandler may constitute implicit agreement to the Terms of Service of the Weather Underground API.
Once WeatherHandler is enabled, the "weather" command will still be unavailable as you must complete setup on IRC. To do so, you'll need to use the cfgweather command.
cfgweather show
can be used to show the current WeatherHandler configuration, as well as the status of the WeatherHandler rate limiter. To enable the "weather" command, the following information must be provided:
- Your Weather Underground API key:
cfgweather apisetkey [apikey]
- The daily rate limit you wish to enforce:
cfgweather apisetdayrate [daily limit]
(note that daily limit must be an integer, and should not be greater than the number of daily calls the service level of your API key provides). - The per-minute rate limit you wish to enforce:
cfgweather apisetminuterate [minutely limit]
(note that minutely limit must be an integer, and should not be greater than the number of calls-per-minute the service level of your API key provides).
Once you have provided these three configuration values, you can freely enable the "weather" command by running cfgweather enable
, and disable it again by running cfgweather disable
. If trying to run the enable command produces a "configuration incomplete" error, try using the cfgweather show
command to get a configuration dump and see what's missing.
There are other optional configuration values you can change using the cfgweather command:
- If your API key is on the Cumulus Plan or higher, you can enable the output of current severe weather alerts in addition to the current conditions data; enable this functionality using the
cfgweather alertsenable
command and disable it using thecfgweather alertsdisable
command. Changing this setting does not affect your API call usage (only one call is used per "weather" command usage, ever). Note that enabling alerts when your API plan doesn't support it may result in undefined behavior at worst (and misleading information at best)! Alerts display defaults to disabled. - The bot employs, in addition to the hard per-day and per-minute rate limits, a progressive rate limiter that fairly divides up unused API calls throughout the remainder of the day. By default, the progressive rate limiter uses a burst size of 1 - that is, it allows for 1 API call before enforcing a progressive rate limit. This effectively means that if there are, for example, 6000 seconds remaining until the end of the API day and you have 60 API calls remaining, you will be able to use the "weather" command once every 100 seconds. You can, however, increase the burst size to allow for more API calls before the progressive rate limit is enforced by using the
cfgweather apisetburst [burst size]
command, where burst size is an integer greater than or equal to 1. For example, if you set the burst size to 10 and have 6000 seconds remaining until the end of the API day with 60 API calls remaining, the bot will allow the "weather" command to be used 10 times before enforcing a 1000-second standoff (measured from the time of the first command in the "burst"). Setting the burst size to be equal to your daily API limit effectively disables the progressive rate limiter. A recommended value for burst size is 5% to 10% of your daily API call allotment.
listchans[edit | edit source]
- Usage:
listchans
- Permission needed: listchans
- Implemented by: org.lizardirc.beancounter.commands.admin.AdminHandler
Returns a list of all channels the bot is currently in. Restricted to authorized users as this command may expose secret/private channels.
cfginvites[edit | edit source]
cfginvites (no arguments)[edit | edit source]
- Usage:
cfginvites
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.InviteAcceptor.InviteAcceptorHandler
With no arguments, the cfginvites command allows any user to check if the bot will accept invitations to join channels.
cfginvites accept/reject[edit | edit source]
- Usage:
cfginvites <accept|reject>
- Permission needed: cfginvites
- Implemented by: org.lizardirc.beancounter.InviteAcceptor.InviteAcceptorHandler
In this form, the cfginvites command allows an authorized user to change whether or not the bot will accept invitations to join a channel. When set to "accept", the bot will automatically join any channel it receives an invite (sent using the /invite
IRC command). When set to "reject", the bot will ignore invites. Remember that the bot will remember channels it joins (including by accepting invites), and automatically rejoin them in the future on connect. (Conversely, if the bot is kicked from a channel, it will be removed from the list of channels to automatically rejoin on connect.)
remind[edit | edit source]
- Usage:
remind [nickname] {in: [time]} [message]
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.remind.ReminderCommandHandler
- Note: Even though this command is included in current development releases of the bot, its syntax is not yet final and subject to change (in particular the syntax for scheduling a reminder to be delivered after a period of time).
This command allows you to send a reminder to another IRC user (to send a reminder to yourself, use the remindme command. By default, the reminder will be delievered as soon as the target user joins or talks in a channel the bot is in. To make the reminder deliver after a time delay, specify a time by including "in: time" before the message but after the nickname. The colon (:
) after "in" is important - without the colon, the bot will consider it part of the message. The time delay is given in this format: 1y2d3h4m5s, meaning 1 year, 2 days, 3 hours, 4 minutes, and 5 seconds. All fields of a time specification are optional; for example, "5h" is equivalent to "0y0d5h0m0s". If when a timed reminder is scheduled to be delivered the target nickname is offline, the reminder will be retained until the user joins or talks in a channel the bot is in. Timed reminders will never be delivered before their scheduled delivery time. Reminders will always be delivered in the channel the remind command was given in; if the reminder was scheduled by private message, or the target user is not in that channel, the reminder will be delivered by private message.
Note that if the target nickname is online when the reminder is scheduled, their user@host will be recorded instead of their nickname and will be used for delivery of the reminder - this means that even if they change their nickname, they will still receive the reminder.
remindme[edit | edit source]
- Usage:
remindme {in: [time]} [message]
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.remind.ReminderCommandHandler
- Note: Even though this command is included in current development releases of the bot, its syntax is not yet final and subject to change (in particular the syntax for scheduling a reminder to be delivered after a period of time).
This command allows you to schedule a reminder for yourself. It omits the nickname parameter (since it always targets yourself); but otherwise, it functions similarly to the remind command.
cfgquakes[edit | edit source]
cfgquakes get[edit | edit source]
- Usage:
cfgquakes get {[channel]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.earthquake.EarthquakeCommandHandler
This command allows you to see if the bot is reporting global earthquakes from one of the USGS's realtime earthquake feeds. The channel argument is mandatory in PM, but optional when the command is given in a channel; when the argument is omitted in channel, the command defaults to the command the channel is given in. If reporting is enabled, this command will also indicate which feed is driving the reporting for that channel.
cfgquakes getall/setchan/delchan[edit | edit source]
- Usage:
cfgquakes getall
cfgquakes setchan <all|M1.0|M2.5|M4.5|significant> {[channel]}
cfgquakes delchan {[channel]}
- Permission needed: cfgquakes
- Implemented by: org.lizardirc.beancounter.commands.earthquake.EarthquakeCommandHandler
The cfgquakes getall
command allows an authorized user to view a list of all channels that have enabled earthquake reporting with Beancounter, and what feed they are using to drive reporting. This is a privileged command to prevent exposure of private/secret channels to unauthorized users.
The cfgquakes setchan
command allows one to enable earthquake reporting in a channel, or change the driving data source to a different feed for a channel that already has earthquake reporting enabled. The first argument is an identifier for one the five USGS feeds the bot supports, in order: all earthquakes, earthquakes magnitude 1.0+, earthquakes magnitude 2.5+, earthquakes magnitude 4.5+, and significant earthquakes. The second argument is an optional channel argument, which is mandatory when the command is used in PM but optional when the command is used in channel; in this case, it defaults to the channel the command is being given in. Note that all feeds except the significant quakes feed can be quite spammy, the "all" and "M1.0" feeds especially so.
Finally, the cfgquakes delchan
command allows one to completely disable earthquake reporting in a channel. Its only argument, channel, is the name of the channel to disable reporting in, and is mandatory in PM but optional when the command is given in-channel; in this case, it defaults to the channel the command is being given in. Note that the bot will not remember which feed you were previously using.
For channels that have earthquake reporting enabled, the feeds are checked every five minutes. Feed checks are global for the entire bot; that is, every five minutes, all feeds to be checked are checked and all channels with reporting enabled get updates together, regardless of when reporting was enabled in that channel.
lastquake[edit | edit source]
- Usage:
lastquake <all|M1.0|M2.5|M4.5|significant>
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.earthquake.EarthquakeCommandHandler
This command causes the bot to list the most recent earthquake given in the indicated feed. The only argument to the command is the feed to be checked for earthquake data, with the five values representing the five different feeds available. Those feeds are, in order, all earthquakes, earthquakes magnitude 1.0+, earthquakes magnitude 2.5+, earthquakes magnitude 4.5+, and significant earthquakes. This command can be used in PM or any channel, regardless of whether automatic earthquake feed reporting is enabled with the cfgquakes
command and independent of any such reporting. Note that the feeds the bot uses are "last day" feeds, so if no applicable events have occurred within the last 24 hours, the command will report no data (this usually only happens with the "significant earthquakes" feed). In addition, note that the bot bases "last earthquake" on the time of the earthquake itself, not the time of any updates issued for the earthquake information by the USGS.
All data is sourced from feeds provided by the United States Geological Survey.
LookOfDisapproval[edit | edit source]
- Usage:
lookofdisapproval {[thing]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Outputs a look of disapproval (ಠ_ಠ), optionally directed at the given thing.
Lenny[edit | edit source]
- Usage:
lenny {[thing]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Outputs a Lenny face (( ͡° ͜ʖ ͡°)), optionally directed at the given thing.
AngryLenny[edit | edit source]
- Usage:
angrylenny {[thing]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Outputs an angry Lenny face (( ͠° ͟ʖ ͡°)), optionally directed at the given thing.
LookOfLenny[edit | edit source]
- Usage:
lookoflenny {[thing]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Outputs a Look of Lenny face (( ͡ಠ ʖ̯ ͡ಠ)), optionally directed at the given thing.
TableFLIP[edit | edit source]
- Usage:
tableflip {[thing]}
- Alternate usage:
fliptable {[thing]}
- Alternate usage:
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Outputs a flipped table, optionally also flipping the specified thing. Example: (╯°□°)╯︵ɹǝʇunoɔuɐǝq
Raise[edit | edit source]
- Usage:
raise {[thing]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Outputs ヽ༼ຈل͜ຈ༽ノ raise thing ヽ༼ຈل͜ຈ༽ノ; or if no thing is specified, raises dongers instead.
Lower[edit | edit source]
- Usage:
lower {[thing]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Outputs ┌༼ຈل͜ຈ༽┐ lower thing ┌༼ຈل͜ຈ༽┐; or if no thing is specified, lowers dongers instead.
SmallCaps[edit | edit source]
- Usage:
smallcaps {[text]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Outputs the given text in small caps, ʟɪᴋᴇ ᴛʜɪs. If no text is specified, outputs ᴜ ᴡᴏᴛ ᴍ8.
SuperScript[edit | edit source]
- Usage:
superscript {[text]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Outputs the given text in superscripted text, ˡᶦᵏᵉ ᵗʰᶦˢ. If no text is specified, outputs ˢᵉʳᶦᵒᵘˢ ᵗʳᵒᵘᵇˡᵉ.
SwearToGod[edit | edit source]
- Usage:
sweartogod {[something]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Instructs the bot to swear to god that if anyone does something, you will be in serious trouble. If no something is specified, "copy and paste this" is used as the default. Sample output: ヽ༼ຈل͜ຈ༽ノ ᴵ ˢʷᵉᵃʳ ᵗᵒ ᵍᵒᵈ ᶦᶠ ᵃⁿʸ ᵒᶠ ʸᵒᵘ ᵐᵒᵗʰᵉʳʳᶠᵘᶜᵏᵉʳˢ ˢᵒᵐᵉᵗʰᶦⁿᵍ ʸᵒᵘ ʷᶦˡˡ ᵇᵉ ᶦⁿ ˢᵉʳᶦᵒᵘˢ ᵗʳᵒᵘᵇˡᵉ ヽ༼ຈل͜ຈ༽ノ
entrymsg[edit | edit source]
- Usage: In channel only:
entrymsg {--force} {--clear} {[message]}
- Permission needed: globalEntryMsg or channel operator status
- Implemented by: org.lizardirc.beancounter.commands.entrymsg.EntryMessageCommandHandler
The entrymsg
command allows an automatic entry message to be set for a given channel - that is, when set, the bot will automatically regurgitate the specified entry message (as a channel message) to any and all users who join the channel. Entry messages can either be set by channel operators (they must be holding op status actively, not just have the ability to become operators in ChanServ), or by users with the globalEntryMsg
ACL permission. Note that in the latter case, the bot will require you to use the --force
switch to indicate that you are aware that you're overriding the channel operators.
The entrymsg
command on its own tells you if the channel has an entry message set, and if so by whom and when (no special permissions are needed for this). With the --clear
switch, the entry message is cleared (any provided message is ignored). If a message is specified and --clear
is not, the given message will be set as the entry message.
This command may not be used in private message. It only operates on the channel the command is given in.
lamborghini[edit | edit source]
- Usage:
lamborghini
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
uh, here in my irc bot, just implemented this, uh, new command here, fun to use up here on LizardIRC
This command outputs a random Tai Lopez (or Tai Lopez-parodying) quote. See http://knowyourmeme.com/memes/here-in-my-garage
fishbot[edit | edit source]
- Usage: In channel only:
fishbot {--force} {on|off}
- Permission needed: globalFishbot or channel operator status
- Implemented by: org.lizardirc.beancounter.commands.fishbot.FishbotCommandHandler
The fishbot
command enables or disables the fishb0t module (fish go m00!) in the channel it is used in. This can be set by channel operators (they must be holding op status actively, not just have the ability to become operators in ChanServ), or by users with the globalFishbot
ACL permission. Note that in the latter case, the bot will require you to use the --force
switch to indicate that you are aware that you're overriding the channel operators.
When used without the on/off flags set, it will report the current status of the fishb0t module - no permissions are needed for this.
This command may not be used in private message. It only operates on the channel the command is given in.
wikipedia[edit | edit source]
- Usage:
wikipedia [article]
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.wikipedia.WikipediaHandler
Looks up the given article on Wikipedia, and returns a brief summary and a link. Currently also supports interwikis supported by Wikipedia (e.g., one could use the command wikipedia q:Star Trek
to look up "Star Trek" on Wikiquote.
shakespeare[edit | edit source]
- Usage:
shakespeare {[target]}
- Alternatively,
insult {[target]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.shakespeare.ShakespeareHandler
Retrieves and fires off a Shakespearean insult at the target user (or yourself if you don't specify a person to insult). Supports nickname completion a la the slap
command.
Reimplementation of the @insult
command from LizardBot.
redditor[edit | edit source]
- Usage:
redditor [username]
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.reddit.RedditHandler
Retrieves and displays some information about the Reddit user specified by username. Reimplementation of the HAL-9001 (Willie/Sopel) bot command.
cfgwikilinks[edit | edit source]
cfgwikilinks (no arguments)[edit | edit source]
- Usage: In channel only:
cfgwikilinks
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.wikipedia.WikipediaHandler
The cfgwikilinks
command, when given without arguments, allows one to see if automatic [[wikilink]]
expansion is enabled in a channel or not. Of course, one could always just say a wikilink and see if the bot responds to it or not. The next section describes some of the current limitations of automatic wikilink expansion.
cfgwikilinks enable/disable[edit | edit source]
- Usage: In channel only:
cfgwikilinks <enable|disable>
- Permission needed: cfgwikilinks or channel operator status
- Implemented by: org.lizardirc.beancounter.commands.wikipedia.WikipediaHandler
Sets whether automatic [[wikilink]]
expansion is enabled or disabled in a given channel. The default state is enabled. Currently, auto-expanded wikilinks are expanded against the English Wikipedia, with any interwiki prefixes checked against the English Wikipedia's interwiki table. Allowing channels to specify a custom "base wiki" is a planned future feacher. To enable or disable automatic wikilink expansion, you must either be an operator in the channel you wish to change the configuration in, or hold the global cfgwikilinks permission.
cfgwikilinks ignore/unignore[edit | edit source]
- Usage:
cfgwikilinks <ignore|unignore> [nickname]
- Permission needed: cfgwikilinks
- Implemented by: org.lizardirc.beancounter.commands.wikipedia.WikipediaHandler
The "ignore" and "unignore" operations allow authorized users to ignore or unignore a nickname from automatic wikilink expansion. Anyone ignored in this fashion will not have their wikilinks auto-expanded by the bot. Note that this command only affects the automatic wikilink expander, and will not ignore users from using any other bot functionality. The ignore list applies globally in all channels.
cfgwikilinks ignorelist[edit | edit source]
- Usage:
cfgwikilinks ignorelist
- Permission needed: cfgwikilinks or channel operator status
- Implemented by: org.lizardirc.beancounter.commands.wikipedia.WikipediaHandler
The "ignorelist" command lists all nicknames ignored by the auto wikilink expander. Note that, in addition to being viewable by specifically authorized users, the ignorelist can also be viewed by channel operators.
youtube[edit | edit source]
- Usage:
youtube [search string]
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.youtube.YouTubeHandler
This command allows one to find information (including the URL) about a YouTube video. The search string can either be a video ID, or text for an actual search through YouTube. The returned information will include the URL, title of the video, duration, comments, likes/dislikes, and uploader.
Note that configuration is required for this command to work. Please see the documentation for the cfgyoutube command below.
cfgyoutube[edit | edit source]
cfgyoutube (no arguments)[edit | edit source]
- Usage:
cfgyoutube
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.youtube.YouTubeHandler
This command allows a user to check if YouTube commands have been disabled. If they are disabled (which they are by default, since an API key is needed and must be configured to access YouTube's API), the ?youtube command will not function.
cfgyoutube enable/disable/apikey[edit | edit source]
- Usage:
cfgyoutube <enable|disable>
cfgyoutube apikey {[API key]}
- Permission needed: configureYouTube
- Implemented by: org.lizardirc.beancounter.commands.youtube.YouTubeHandler
This command allows privileged users to set/change the YouTube API key used by Beancounter, and once the API key is set, to enable or subsequently disable the ?youtube command.
The apikey subcommand takes one optional arugment, which is the full Google API key for use with your YouTube account. See here for more information on obtaining a (free) API key; note that you'll want to use a "Server Key". Note that if you use the apikey subcommand with no API key argument, the API key will be deleted and the ?youtube command disabled.
Once your API key is set, you can use the enable/disable subcommands to enable and disable the ?youtube command.
Note that you should only ever use the apikey subcommand in a private message to avoid exposing your API key to any untrusted parties.
idunknowlol[edit | edit source]
- Usage:
idunknowlol {[something]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
Outputs ¯\_(ツ)_/¯, optionally directed at something. The command can be abbreviated to "idklol" or "idunnolol".
lelelennynnynny[edit | edit source]
- Usage:
lelelennynnynny {[something]}
- Permission needed: (none)
- Implemented by: org.lizardirc.beancounter.commands.memes.MemeHandler
( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°) ͡°)
Outputs an entire squadron of lennies (optionally directed at something), when one lenny is Simply Not Enough™. This command can be abbreviated to "lelele", or simply "lel".
morse[edit | edit source]
- Usage: In channel only:
morse{--force} {on|off}
- Permission needed: globalMorse or channel operator status
- Implemented by: org.lizardirc.beancounter.commands.morse.MorseCommandHandler
The morse
command enables or disables inline decoding of Morse code that is sent to the channel in the form of dot (.
) and hyphen (-
) characters. Spaces are used as character separators, and the forward slash (/
) is recognized as a word separator. Channel operators can enable or disable the feature for their channels, while users with the globalMorse
permission can pass the --force
flag to enable or disable the feature in any channel regardless of whether they are an operator.
Note that this command simply controls whether or not the automatic Morse code decoding feature is enabled, and does not perform encoding or decoding of Morse code itself.