|
BitchBOT Command Reference
General Info
This tells you how the general syntax of how a command works.
- Directing to the bot
There are two main ways of getting the bot to interpret you. You can either use botname, blah, or blah??. Example:
<R1CH> bitch, hello
<bitch> Hi, R1CH
<R1CH> hello??
<bitch> Hi, R1CH
Note that the second method will NOT always send status. Eg if you do hello?? and there are no factoids for hello, you will not be told so. Also note, that the ?? version may be disabled by the owner of the bot.
- Command Separator
By default, you can use botname, blah or botname: blah. The bot admin may change this in the config though.
Admin Commands
Commands the bot admin can use to add users, and other important stuff.
- Adding users
The syntax for this is bitch, adduser nickname levels. nickname is the nick of the person you want to add (the bot will lookup their address if they are in the channel, or use their last seen address if they aren't). levels are the access
levels, which can be one or more of the following:
ADDFACTS - Allow the user to add factoids to the bot.
DELFACTS - Allow the user to remove their own factoids (note, since recording host masks for each factoid would be very silly, this is only based on nickname. Eg someone can change nickname to the person who added a factoid, then remove it. To
help prevent this, the bot will not accept delete commands from anyone who changed nick for 60 seconds. If you are using a decent IRC network with Nickname Services (<plug> irc.edgeirc.net </plug>), this will force the person to identify
with the other person's nick or be killed (assuming the other person registered their nick)).
DELALLFACTS - Allow the user to remove any factoids. Note, you must give the user DELFACTS access too for this mode to work.
OP - Give the user access to bot op commands (see below).
AV - Auto-voice the user when they join the channel.
SERVERMANIP - Allow the user to manipulate game server lists. (see below)
STATIC - Specify the user's address is static (doesn't change, eg for cable/DSL users this is quite common).
If the static mode is not specified, the user host mask is in the form *!ident@*.isp.net (for resolving hosts) or *!ident@xxx.xxx.*.* for non-resolving hosts).
ADMIN - Grant the user access to bot admin functions. Not recommended :)
- Removing a user
Slightly easier than adding, you can use bitch, deluser nick. If you added them with the STATIC mode, you must use bitch, deluser nick STATIC for the bot to find the address correctly.
- Ignore a user
Simply use bitch, ignore [nickname|mask] time. Time is in minutes (there is no limit an admin can use :)). You can either specify a nickname
and bitchbot will attempt to match a pattern on the ISP and ignore that user, or you can specify your own custom
ignore mask in the format *!*@*.
- Evaluate Perl Command
WARNING: THIS COMMAND IS HIGHLY UNSAFE TO ENABLE ON A PUBLIC BOT
Read that warning :). You can use bitch, eval command to cause perl eval on the command. Be warned though, if eval is enabled, all it takes is someone to fake your host mask, then on a Windows box they can destroy anything, on
*nix, they can do whatever the user running the bot can do. This is disabled by default (I wonder why...)
WARNING: THIS COMMAND IS HIGHLY UNSAFE TO ENABLE ON A PUBLIC BOT
- Restart the bot
You can use bitch, restart to cause the bot to exit. The auto restarter script will then restart it (reloading any configs).
- Quitting the bot
Use bitch, quit. This will try and tell the auto restarter script to exit too by dropping a 'nospawn' file in the directory. Note that if you aren't using the auto restart script, restart and quit will perform identically.
- Deny Adding Factoids to something
Say you add a factoid about an address for something that doesn't change, you don't want others adding other useless factoids about it. Just use bitch, deny factoidname. Note that anyone with ADMIN access can still add to the factoid. eg.
<R1CH> bitch, bitchbot is cool
<bitch> OK R1CH
<R1CH> bitch, deny bitchbot
<bitch> Factoid adding for bitchbot has been denied.
<otheruser> bitch, bitchbot is kewl hax0r d00d l33t!
<bitch> Adding factoids for bitchbot is denied.
- Re-allow adding factoids
The opposite of deny, undeny (yeah lame isn't it :P). bitch, undeny factoidname.
Factoid commands:
Factoids are 'bits of information'. You can store factoids such as what certain things stand for, insult people or however you see fit...
- Adding factoids:
To do this, simply enter bitch, something is something else. As long as the phrase is in the form 'x is y', 'x are y' or similar, it will work. For more advanced factoids, such as 'x rocks your world' you need to use the <reply>
tag. To make the bot use an action (/me to most people), use the <action> tag. Factoids are displayed on demand, or on join. Some examples:
<R1CH> bitch, R1CH is cool
<bitch> OK R1CH
<R1CH> bitch, R1CH
<bitch> R1CH is cool
<R1CH> R1CH??
<bitch> R1CH is cool
<R1CH> bitch, x is <reply>x rocks your world
<bitch> OK R1CH
<R1CH> bitch, x
<bitch> x rocks your world
<R1CH> bitch, jump is <action> jumps around
<bitch> OK R1CH
<R1CH> bitch, jump
* bitch jumps around
*** R1CH has left #gloom
*** R1CH has joined #gloom
<bitch> R1CH is cool
- Counting factoids
Simply issue bitch, count x where x is the factoid to count. Example:
<R1CH> bitch, count R1CH
<bitch> There are 28 factoids for 'r1ch' (0.252502479935071% of the total)
- Factoid lists
If something has a lot of factoids, you can list them all using factoidlist. Generally, use a private message for this to avoid spamming the channel. The syntax is bitch, factoidlist object:page where page is the page number (10
factoids to a page, page starts at 0) and object is the thing to list the factoids for. Example:
<R1CH> bitch, factoidlist R1CH
<bitch> R1CH:
<bitch> 0: 0wns me!
<bitch> 1: i'm r1chs b1tch!
<bitch> 2: is your pimp
<bitch> 3: is the anti christ
<bitch> 4: is the maker of an unhaqable bot
<bitch> 5: trys to feel me up when nobody is looking
<bitch> 6: is funny
<bitch> 7: is a fool
<bitch> 8: is learning to drive.. stay AWAY from the roads
<bitch> 9: is getting rather good at Perl
<R1CH> bitch, factoidlist R1CH:1
<bitch> R1CH:
<bitch> 10: is a ph00l who knows nothing about star trek.
<bitch> 11: is The best bot scripter this world has seen.
<bitch> 12: is CompilerGuy[The]
<bitch> 13: worries far too much about Saturn
<bitch> 14: can't beat the bitch!
<bitch> 15: is a fool for telnetting in and running a 3hour long operation which can't be cancelled
<bitch> 16: is wrong about Vincent
<bitch> 17: spells it 'glook'
<bitch> 18: is r1ch
<bitch> 19: is speaking jibberish
As you can see, it's best to use private messages for factoid lists.
- Removing factoids
Depending on your access levels, you can delete factoids. To do this, either use bitch, forget x or bitch, delete x. Depending on your access levels, it will either
a) Remove ALL factoids for 'x' (with DELALLFACTS access)
b) Delete only the factoids you have added (DELFACTS)
c) Delete nothing (no access)
If, instead of deleting all the factoids, you want to delete a specific one (such as R1CH number 13, as above) then you can use bitch, forget R1CH:13. You can also use a , to separate multiple numbers, eg bitch, forget R1CH:13,15,19.
Some examples:
Deleting a specific factoid:
<R1CH> bitch, factoidlist test
<bitch> test:
<bitch> 0: is test1
<bitch> 1: is test2
<bitch> 2: is test3
<bitch> 3: is test4
<bitch> 4: is test5
<bitch> 5: is test6
<R1CH> bitch, forget test:2
<bitch> Deleted 1 of 1 factoids referencing 'test'
<R1CH> bitch, factoidlist test
<bitch> test:
<bitch> 0: is test1
<bitch> 1: is test2
<bitch> 2: is test4
<bitch> 3: is test5
<bitch> 4: is test6
Deleting more than one specific factoid:
<R1CH> bitch, forget test:0,2,4
<bitch> Deleted 3 of 3 factoids referencing 'test'
<R1CH> bitch, factoidlist test
<bitch> test:
<bitch> 0: is test2
<bitch> 1: is test5
Deleting ALL factoids
<R1CH> bitch, forget test
<bitch> Found 2 factoids referencing 'test', deleted 2 of them.
<R1CH> bitch, factoidlist test
<bitch> Sorry, I don't have any factoids for test.
- Retrieving a factoid
Just use bitch, object. If more than one factoid is defined for object, a random one is returned. To return a specific one, use bitch, object:num. Examples:
<R1CH> bitch, Vincent
<bitch> Squaresoft ripped off his name in FF7!!!
<R1CH> bitch, Vincent
<bitch> Vincent is a crazy old dude with no teeth!!
<R1CH> bitch, Vincent:8
<bitch> <Vincent> THIS IS BULLSHIT!! | <QID|YDL> Vincent: no, THIS is bullshit | * QID|YDL shoves Vincent's head into a pile of bullshit
- Finding out who added a factoid
Use bitch, whoadded object:num to find out the nickname that added the factoid. Example:
<R1CH> bitch, whoadded r1ch:12
<bitch> That factoid was added by PeaceMaker
- Factoid shortcuts
One other thing to note about factoids, where appropriate you can use the identifiers 'that' and 'last' in place
of factoid numbers. Example of 'that':
<R1CH> bitch, r1ch:12
<bitch> R1CH worries far too much about Saturn
<R1CH> bitch, whoadded that
<bitch> That factoid was added by PeaceMaker
<R1CH> bitch, forget that
<bitch> Deleted 1 of 1 factoids referencing 'r1ch'
<R1CH> bitch, whoadded that
<bitch> What's that?
Example of 'last':
<R1CH> bitch, r1ch:last
<bitch> R1CH plays too much gloom
<R1CH> bitch, whoadded r1ch:last
<bitch> That factoid was added by Pylon
Game Server Commands
All of this is possible thanks to qstat by Steve. Note that this qstat program must be installed before any of these commands work.
- Querying a server
Valid games for now are Quake2, Quake3, Half-Life, Unreal (Tournament) and Tribes. Simply use bitch, then a game mode: q2info, q3info, hlinfo, utinfo, tribesinfo servernameorip. Eg, bitch, q2info battlestar.onecall.net. Note,
if a user with SERVERMANIP access levels had added the server with a name you can use that, eg bitch, q2info 6on6. You can also specify a nickname from the channel (and optionally a port) to have bitch check the person's address, eg bitch, q2info R1CH. Examples:
<R1CH> bitch, q2info battlestar.onecall.net
<bitch> Server:battlestar.onecall.net Players:12/24 Map:mk-full Ping:60
<R1CH> bitch, q2info onecall
<bitch> Server:216.37.2.25:27910 Players:12/24 Map:mk-full Ping:60
- Adding a server name
Although not necessary, you can add a server with a name to make it easier to remember. Only users with SERVERMANIP access level can do this. Simply do bitch, addserver IP:PORT NAME. Example:
<R1CH> bitch, addserver dschrier.ne.mediaone.net:27912 Devils
<bitch> Server dschrier.ne.mediaone.net:27912 added, use bitch, [q2|q3|hl|ut|tribes]info Devils to query.
- Removing a server name
Even easier, just bitch, delserver name (SERVERMANIP required) Example:
<R1CH> bitch, delserver devils
<bitch> devils was removed from the server list.
Voting commands
A vote will allow users to vote yes or no on a particular topic.
- Starting a vote
Simply use bitch, startvote topic. Example:
<R1CH> bitch, startvote Does bitchBOT rock?
<bitch> R1CH started a vote: Does bitchBOT rock?
<bitch> Use bitch, vote yes|no to cast your vote! Use bitch, stopvote to finish the voting.
- Voting yes or no
Simply use bitch, vote yes or bitch, vote no, although you can just use vote yes or vote no in the channel, this is not recommended in case it conflicts with someone else's voting system. Multiple voting is
denied by host mask. Example:
<R1CH> bitch, vote yes
-bitch- Your vote has been registered.
*** you are now known as evil_vote_hacker
<evil_vote_hacker> bitch, vote yes
-bitch- You already voted!
- Stopping the vote
Only the person who started the vote (or someone with an ADMIN or OP access level) can stop the vote. Just use bitch, stopvote. Example:
<R1CH> bitch, stopvote
<bitch> Voting on Does bitchBOT rock? has ended. Results:
<bitch> YES: 1 (100%)
<bitch> NO : 0 (0%)
Polling commands
A poll is like a vote, but with more options. User's see a list of options and can choose only one.
- Starting a poll
Use bitch, startpoll topic | option1 | option2 | etc. There is a limit of 9 possible options (to prevent flooding). Example:
<R1CH> bitch, startpoll Which is the best Quake 2 MOD? | Action Quake | CTF | Glo0m | Jailbreak | Other
<bitch> R1CH started a poll: Which is the best Quake 2 MOD?
<bitch> 1: Action Quake
<bitch> 2: CTF
<bitch> 3: Glo0m
<bitch> 4: Jailbreak
<bitch> 5: Other
<bitch> Use bitch, poll [number] to choose an option! Use bitch, stoppoll to end.
- Voting in a poll
Simply use bitch, poll #, where # is the number you wish to vote for. For example, in the above poll, if I wanted to vote for glo0m, I would use bitch, poll 3. Multiple polling is prevented by host mask. Example:
<R1CH> bitch, poll 3
-bitch- Your vote has been registered.
*** you are now known as evil_poll_hacker
<evil_poll_hacker> bitch, poll 3
-bitch- You already voted in that poll!
- Stopping a poll
Only the person who started the poll (or someone with an ADMIN or OP access level) can stop the poll. Just use bitch, stoppoll. Example:
<R1CH> bitch, stoppoll
<bitch> The poll on Which is the best Quake 2 MOD? has ended. Results:
<bitch> Action Quake: 0 (0%)
<bitch> CTF: 0 (0%)
<bitch> Glo0m: 1 (100%)
<bitch> Jailbreak: 0 (0%)
<bitch> Other: 0 (0%)
OP commands
These can only be used by either existing channel operators, or people with access level OP.
- Kick a user(s)
Simply use bitch, kick nickname1 nickname2 nickname3 etc. The bot will kick the nicks in order.
- Kickban a user(s)
Simply use bitch, kickban nickname1 nickname2 nickname3 etc. The bot will kickban the nicks in order.
- OP a user(s) (MODE +o)
Use bitch, op nickname1 nickname2 etc to op the specified nicknames.
- DeOP a user(s) (MODE -o)
Use bitch, deop nickname1 nickname2 etc to deop the specified nicknames.
- Voice a user(s) (MODE +v)
You can use bitch, voice nickname1 nickname2 etc to voice the specified nicknames.
- Devoice a user(s) (MODE -v)
You can use bitch, devoice nickname1 nickname2 etc to devoice the specified nicknames.
- Bitchslap (kick) a user
Try bitch, bitchslap nickname1 nickname2 etc for a more fun kick :)
- Ignore a user
OPs on the channel can ignore a user for a specific amount of time if they abuse the bot. Simply use bitch, ignore user time. Time is in minutes. OPs cannot ignore anyone for more than one day (1440 mins)
Miscellaneous commands
- Find out when bitch last saw somebody
Either use bitch, seen nickname or just seen nickname. Examples:
<R1CH> bitch, seen Gumby
<bitch> R1CH, I last saw Gumby at 16:18:32 CST on Wednesday the 26th of April, 2000 (2 hours, 30 minutes, 44 seconds ago)
<R1CH> seen Gumby
<bitch> R1CH, I last saw Gumby at 16:18:32 CST on Wednesday the 26th of April, 2000 (2 hours, 30 minutes, 46 seconds ago)
<R1CH> seen someonewhoyouhaventseen
<bitch> No.
- Find out how many factoids someone has added
Use bitch, info nickname. Example:
<R1CH> bitch, info Gumby
<bitch> Gumby has added 281 factoids (2.52879769618431% of the total)
- 'cyborg' a nickname
Use bitch, cyborg nickname. Thanks to www.brunching.com. Example:
<R1CH> bitch, cyborg Gumby
<bitch> G.U.M.B.Y.: General Unit Manufactured for Battle and Yardwork
- 'techify' an acronym
Use bitch, techify acronym. Thanks to www.brunching.com. Example:
<R1CH> bitch, techify ansuf
<bitch> Asymmetric Negative Shared Usage Format
- Generate channel statistics
Use bitch, updatestats to generate channel stats (if enabled). If the bot is being run under Windows, it
might refuse further commands after this until the stats are finished, or in the worse case scenario, Ping Timeout. Example:
<R1CH> bitch, updatestats
<bitch> Stats bitchlet(tm) started. Waiting for response...
<bitch> Chanstats complete! bitch's #gloOm chanstats: http://bitch.edgeirc.net/
- Find nicknames by a custom mask
By passing a wildcard expression in the form nick!user@domain (case sensitive, wildcards) you can return a list of matching nicknames.
Simply use bitch, whois nickname!ident@host.domain to get the list, limited to 10 results. Example:
<R1CH> bitch, whois *!*@*.aol.com
<bitch> Users matching *!*@*.aol.com: idiot291, [A]5cr1p7k1dd13[A], CluelessN00b
- Find out a user's IRC hostmask
This will return the user's hostmask in the form nick!user@domain. Simply use bitch, host nickname to get the info. Note that the host list is persistent, if somebody leaves the channel, you can
still get their host information. Examples:
<R1CH> bitch, host R1CH
<bitch> R1CH is R1CH!r1ch@dyn219-ras9.screaming.net
<R1CH> bitch, host ChanServ
<bitch> ChanServ is ChanServ!services@services.edgeirc.net
- Get a user's IP/host
This is basically a cut down version of the above, returning only the domain name portion. Useful if someone says 'join my server' etc. Use bitch, ip nickname. Examples:
<R1CH> bitch, ip R1CH
<bitch> r1ch is dyn219-ras9.screaming.net
<R1CH> bitch, ip ChanServ
<bitch> ChanServ is services.edgeirc.net
BitchBOT Command Reference ©2000-2001 R1CH. Revised 29/10/2001. |