Runs on Windows and Unix, Low memory usage, Small size program and easy to configure.
Multi-lingual - English, French, Spanish, Dutch, Latin, Arabic, Greek, Ebonics, Pig Latin, Russian- KOI8 encoding, Russian - CP1251 encoding, Portuguese, German, Italian, Chinese, Swedish, Norwegian, Romanian.
Dozens of commands and aliases, controlling functions of Darkbot Administration, Database Management, Channel Operation, User Access, Utilities, Status and Information.
Robot administration with commands to change online Darkbot's nickname, user id, virtual host, default channel and it's command character prefix; change servers, restart session or deactivate it; a sleep mode to temporarily stop reacting to channel text; it also has a command to send raw messages or notices to the server, channels or users.
Database controlled online or/and offline with dozens of commands making it possible to give strait or random answers to key-words or phrases, in human style, picking words from users and displaying them in the replies with a tokenized mechanism, output of replies with more than one line of text, or commands at a time; management of it's database with functions to add, delete, replace, display and backup topics/replies; use of wildcards on it's topics; several pre-defined but flexible variables that can be inserted on replies; a fast internal search engine permitting look for words in the database.
Commands ABOUT ACCESS ADD ADDUSER ALARM ALARMCLOCK AUTOTOPIC BACKUP BAN BANLIST CALC CHANINFO CMDCHAR? CYC CYCLE DATASEARCH DATE DEL DELBAN DELETE DELUSER DEOP DEV DEVOICE DFIND DIE DISPLAY DOWN DSEARCH DV DVOICE FIND FORGET HELP HLIST HUSH IDLE ILC INFO INFO2 J JOIN JOINS? JUMP K KICK L LANG LANGUAGE LEAVE LENGTH LOCATE LOCATION? LOGIN LOOK MASK MATH MEM N NAIL NICK OP OS P PART PASS PASSWD PASSWORD PERMBAN PERMBANS? PING QUE? QUIT RAM RAM? RANDOMSTUFF RANDOMSTUFF? RANDSTUFF RANDSTUFF? RAW RDB REHASH REMEMBER REMOVE REPEAT REPLACE RESTART SAVE SEARCH SEEN SENDQ? SERVER SETCHAN SETCHAR SETINFO SETNICK SETUSER SHITLIST SLEEP STORE T TEASEOP TELL TEMPBAN TIME TIMER TO TOPIC UNIXTIME UP UPTIME USERLIST V VARIABLES VHOST VOICE WACK WAKEUP WHAT WHERE WHO Administration Nickname Change [3] Changes for seconds Darkbot's current nickname to the one specified. Command N | NICK Syntax !NICK <newnick> Example BotUser: !nick test123 -DB- Attempting to /nick test123 *** DB is now known as test123 *** test123 is now known as DB Related Messages (if the user is not registered, logged in or type Darkbot's command character by mistake): -DB- Try /nick Nick-dork. (if no nick is specified): -DB- Specify a nick! See also: Set Nickname === top === Quit IRC [3] Makes Darkbot log off IRC and shut down. Command DIE | QUIT Syntax !DIE Example (with default reason): BotUser: !die *** Quits: DB (Killed (BotUser (cause I say so!))) (with reason): BotUser: !die hard *** Quits: DB (Killed (BotUser (hard))) Obs. 'cause I say so' is the default reason. You can specify yours instead of that one See also: Restart Session === top === Raw Input [3] Instructs Darkbot to send raw information directly to the server. You can use !raw privmsg #channel or nick and !raw notice #channel or nick followed by :text Command RAW Syntax !RAW <data> Example BotUser: !raw privmsg #darkbot :I'm a help robot DB: I'm a help robot BotUser: !raw notice #darkbot :test -DB:#darkbot- test === top === Repeat Data [3] Repeats a given raw input command a number of times with a delay. Command REPEAT | TIMER Syntax !REPEAT <number> <delay in seconds> <privmsg | notice> <nick | #channel> <:data> Example BotUser: !repeat 3 1 privmsg #darkbot :test DB: test DB: test DB: test Related Messages (if no parameters are specified): -DB- Syntax: REPEAT <number> <delay> <raw-data> See also: Raw Input === top === Restart Session [3] Restarts Darkbot with any changes saved to the configuration. Command REHASH | RESTART Syntax !RESTART Example BotUser: !restart *** Quits: DB (Restarting Darkbot6f6 ...) *** Joins: DB See also: Quit IRC === top === Server Jump [3] Makes Darkbot switch to another IRC server. Command JUMP | SERVER Syntax !SERVER <irc.server> [port] Example BotUser: !jump irc.superchat.org *** Quits: DB (Jumping to irc.superchat.org:6667) *** Joins: DB Related Messages (if no parameter set): -DB- Syntax: JUMP <server> [port] Obs. if no port is specified DB defaults to 6667 === top === Set Channel [3] Sets the Darkbot's default channel. Command SETCHAN Syntax !SETCHAN <#channel> Example BotUser: !setchan #darkbot -DB- Default channel: #darkbot Related Messages (if no parameter set): -DB- Syntax: SETCHAN <new channels> === top === Set Command Character [3] Sets Darkbot's command character (by default, it is "!"). Command SETCHAR Syntax !SETCHAR <command_character> Example BotUser: !setchar > -DB- New command char now: > Related Messages (if no parameter set): -DB- Syntax: SETCHAR <new command char> === top === Set Nickname [3] Changes Darkbot's default nick to the new one specified Command SETNICK Syntax !SETNICK <newDB> Example BotUser: !setnick HelpBot *** is now known as HelpBot Related Messages (if no parameter set): -DB- Syntax: SETNICK <newnick> === top === Set UserID [3] Changes Darkbot's userid. Command SETUSER Syntax !SETUSER <userid> Example !setuser botident -DB- Default userid now: botident Related Messages (if no parameter set): -DB- Syntax: SETUSER <new userid> Obs. requires a restart === top === Set Vhost [3] Changes Darkbot's virtual host. Command VHOST Syntax !VHOST <new Vhost> Example !Vhost VirtualHost.com -DB- Default Vhost now: VirtualHost.com Related Messages (if no parameter set): -DB- Syntax: !VHOST <new Vhost> Obs. requires a restart === top === Sleep (deactivate) [3] Prevents Darkbot from listening to topic queries or commands for 120 seconds (default). Command SLEEP | HUSH Syntax <DB> SLEEP Example BotUser: DB sleep *** DB falls asleep... ZzzZZzzZZzz Related Procedures Check defines.h file [#define SLEEP_LEVEL] if you want to change the level at which user's can make Darkbot shut up (aka hush) (default is 3) Modify [#define SLEEP_TIME 400] if you want to change the default sleep time from the default 400 seconds Modify [#define GOSLEEP_ACTION "1ACTION falls asleep... ZzzZZzzZZzz1"] if you want to change the default message for SLEEP. Obs. This command is useful for help channels when is necessary to make Darkbot stop 'talking' while something important is being addressed in the chan. See also: Wakeup === top === Wake Up (reactivate) [3] Reactivates Darkbot after being in sleep mode. Command WAKEUP Syntax <DB> WAKEUP Example BotUser: DB wakeup *** DB wakes up from a snooze. Related Procedures Check defines.h file [#define WAKEUP_ACTION "1ACTION wakes up from a snooze..1"] if you want to modify the default message for wake up. See also: Sleep (deactivate) === top === Database Management Adding Random Stuff [2] Adds a string of text to be randomly displayed in the channel Command RANDOMSTUFF | RANDSTUFF Syntax <DB> RANDOMSTUFF <text> Example BotUser: DB randomstuff test123 DB: BotUser, done. There are now 128 randomstuffs. Related Messages (if no randomstuff is added): BotUser, what do you want to add? Related Procedures Check defines.h file [#define RANDOM_STUFF] if you want to enable or disable RANDOM_STUFF If you want to change the required access level at which user's can on-line add Random Stuff (default is 2) change in [#define RAND_LEVEL 2] To define the time in seconds you want Darkbot to say something in home channel when no one says anything modify [#define RAND_IDLE] (this will override the RAND_STUFF_TIME counter (default is 10 min). === top === Add Topic Reply [1] Adds a topic and corresponding reply to Darkbot's database. Command ADD | REMEMBER | SAVE | STORE simple topic/reply Syntax <DB> ADD <topic> <reply> Example <BotUser>: DB add test This is a simple topic and reply <DB>: Okay <BotUser>: DB, test <DB>: BotUser, This is a simple topic and reply multiple word topic uses '+' as words separator Syntax <DB> ADD <topic+topic> <reply> Example <BotUser>: DB add word1+word2 This is a multiple word topic test <DB>: Okay <BotUser>: DB, word1 word2 <DB>: BotUser, This is a multiple word topic test Topic with wildcards uses '?' to substitute 1 character and '*' for anything in that place of the word or phrase Syntax <DB> ADD <topic|*|?> <reply> Example <BotUser>: DB add wil?card This is a wildcard topic example using ? <DB>: Okay <BotUser>: DB, wildcard <DB>: BotUser, This is a wildcard topic test using ? <BotUser>: DB add *wildcard This is a wildcard topic example using * <DB>: Okay <BotUser>: DB, show me wildcard <DB>: BotUser, This is a wildcard topic example using * reply with variables uses Darkbot's data variables Syntax <DB> ADD <topic> <data-N~|C~|T~|B~|Q~|R~|!~|S~|P~|V~|W~| H~|h~|t~|BAN|TEMPBAN> Example <BotUser>: DB add variables Hi N~, welcome to C~. I'm glad you asked now (T~) about "Q~" as R~ witnessed. I can tell you that I'm running V~ on server S~, port P~ and you can learn how this can be done at W~ or by typing !~Q~ and me, B~, will display Q~ <DB>: Okay <BotUser>: DB, variables <DB>: Hi BotUser, welcome to #darkbot. I'm glad you asked now (Sun Jul 1 02:41:56 2001) about "variables" as UserABC witnessed. I can tell you that I'm running Darkbot 6.f.6 on server irc.superchat.org, port 6667 and you can learn how this can be done at http://darkbot.org or by typing !variables and DB will display variables action reply uses a '+' right before the reply Syntax <DB> ADD <topic> <+><data> Example <BotUser>: DB add test +reply with an action <DB>: Okay <BotUser>: DB, test *DB reply with an action user's action reply uses '?action' right before the topic and '?' or '*' right after the topic to match on those places regular IRC CTCP action sufix and prefix Syntax <DB> ADD <?><action><topic><?|*> <reply> Example <BotUser>: DB add ?action+test? topic must start with ?action+ and finish with a wildcard (* or ?) <DB>: Okay *BotUser test <DB>: BotUser, topic must start with ?action+ and finish with a wildcard (* or ?) raw IRC commands reply uses raw IRC commands PRIVMSG, NOTICE, TOPIC, KICK, BAN and MODE prefixed by "-" Syntax <DB> ADD <topic> <-><Raw IRC command> <N~ | C~> <:><data> Example (full examples/replies are not shown here, so add the instructions and try yourself) <BotUser>: DB add test -PRIVMSG N~ :this is a reply using prefix '-' and IRC command PRIVMSG which sends a private message to the user <BotUser>: DB add test -NOTICE C~ :this is a reply using prefix '-' and IRC command NOTICE which sends a notice to all users in the channel <BotUser>: DB add test -TOPIC C~ :this is a reply using prefix '-' and IRC command TOPIC which changes channel's topic <BotUser>: DB add test -KICK C~ N~ :this is a reply using prefix '-' and IRC command KICK which applies a kick to the user on the channel <BotUser>: DB add test -BAN C~ N~ :this is a reply using prefix '-' and IRC command BAN which applies a ban to the user on the channel <BotUser>: DB add test -MODE C~ :+tn (this is a reply using prefix '-' and IRC command MODE which changes channel's modes - needs to be defined in defines.h) (DO NOT USE THIS COMMAND. Not active) PRIVMSG data reply as action uses $char(01) right before ACTION. To do _ type a space followed by $chr(01) and press key TAB - delete the space afterwards Syntax <DB> ADD <topic> <-><PRIVMSG> <N~ | C~> <$chr(01)><ACTION> <data> Example <BotUser>: DB add test -PRIVMSG C~ :.ACTION (to do the code before ACTION type a space followed by $chr(01) and press TAB. Delete the space afterwards) multiple replies uses '|' (pipe) to separate multiple instructions of raw IRC commands PRIVMSG, NOTICE, TOPIC, KICK and MODE. First instruction must be prefixed by "-" Syntax <DB> ADD <topic> <-><Raw IRC command> <N~|C~> <:><data> <|> <Raw IRC Command> <N~|C~> <:><data> Example <BotUser>: DB add test -PRIVMSG C~ :1st line needs '-' before the redirection command | PRIVMSG C~ :line2 <DB>: Okay <BotUser>: test Related Messages (if no topic is added): DB: Add what, BotUser? (if no reply is added): DB: BotUser: What info to be added for test1? (if already exists an entry for the topic): DB: Sorry, there is an existing entry under keyword test1 (if there is an error opening info2): DB: Unable to open dat/info2.db :( Related Procedures Check defines.h file [#define REQ_ACCESS_ADD] if you want to change the required user access level to add help topics (default is 1) The max length of each reply in info2.db (default is 400 characters) can be changed in darkboc.c [#define MAX_DATA_SIZE 400] (if you are loading your data from ram and the replies are all less than 400 chars you can save some ram). You can also change the max topic length in [#define MAX_TOPIC_SIZE] (default is 50 characters); Modify [#define EXISTING_ENTRY "Sorry, there is an existing entry under keyword"] if you want to change the default message for existing entries in topics. See also: Replace Reply - Recall Topic - Delete Topic/Reply - variables === top === Add Tokenized Replies [1] It's a function that makes Darkbot to pick a word out of a phrase by it's corresponding string number. Command basically the same commands for adding topics ADD | REMEMBER | SAVE | STORE and tokens 1~ 2~ 3~... Syntax <DB> ADD <topic> <reply> Example BotUser: DB ADD darkbot* 3~ 4~ 2~ 1~ DB: Okay, BotUser :) UserABC: Darkbot is the best DB: the best is darkbot BotUser: DB ADD give+me+* +gives N~ 3~ big 4~ DB: Okay, BotUser :) UserABC: give me a kiss *** DB gives UserABC a big kiss === top === Backup Database [3] Backs up the Darkbot database (dat/info2.db file). Command BACKUP Syntax !BACKUP Example BotUser: !backup DB: Backed up database. Obs. Execute this command regularly so you have a copy of your topics in case of any data loss === top === Delete Topic/Reply [1] Deletes a topic that has been stored in Darkbot's database. Command DEL | DELETE | FORGET | REMOVE Syntax <DB> DELETE <topic> Example BotUser: DB delete test123 DB: BotUser: I have deleted topic #2, test123. Related Messages if there is no topic test123 the answer will be: DB: BotUser: I was unable to find the topic test123. Delete failed. Related Procedures Check defines.h file [#define REQ_ACCESS_DEL] if you want to change the required user access level to delete help topics (default is 1) Modify [#define CANT_FIND "Was unable to find"] if you want to change the default unable to find message. See also: Display Topic Syntax - Replace Reply === top === Display Topic Syntax [0] Displays the syntax of a topic's reply; also, will tell what file is being linked to when done with Random Topic's Replies commands Command DISPLAY Syntax <DB>DISPLAY <topic> Example BotUser: DB display sup DB: Raw data for sup is: ~sup BotUser: DB display test123 DB: Raw data for test123 is: 123 Obs. This command is useful when you have a similar topic such as "hi" and "hello", you don't want to waste time by making two rdb files for each, just ask Darkbot what it's using for one, and link it in the other. === top === ILC [1] ILC = Is Lamer Channel. This function is implemented to give channel helpers, operators or IRC operators a way of having a quick and brief background information about a given channel, as well as the date and mask of who wrote it. (Check Obs.) Command ILC Syntax <DB> <ADD|REMEMBER|SAVE|STORE> <ILC><+>[#]<channel> <description> Example BotUser: DB add ilc+#channelABC known for spamming bots. DB: Okay BotUser :) UserABC: ILC #channelABC DB: UserABC, ([Thu Sep 13 08:47:40 2001] BotUser!ident@host.domain.org): known for spamming bots. Related Messages (if there is no ILC in Darkbot's database): 'DB: BotUser, I found no matching ILC for that channel.' Obs. As more people is using Darkbot for purposes other than a robot to support general help channels, some commands can be adapted to accomplish different tasks without the need of changing the code. It's a matter of BotUser's imagination. For instance, because you can perform ILC without '#' prefix, you can register information about users; rename in your mind ILC's acronym for Identity Lamer Check and add user information instead of channel. Example: BotUser: DB ADD ILC+UserABC UserXYZ did a mass flood to #mychannel DB: Okay BotUser :) UserABC: ILC UserXYZ DB: UserABC, ([Thu Sep 13 08:47:40 2001] BotUser!ident@host.domain.org): UserXYZ did a mass flood to #mychannel === top === Random Topic/Replies [2] (RANDOMFILE commands) Adds topics that give random replies. These topics start with ~. Command basically the same commands for managing single topics and randomstuffs plus rdb status commands. Explanation How it works? Lets say instead of having only one reply for each keyword (topic) you want to have several ones. For instance, you want DB to randomly reply to 'hi" with 'Hi Nick ;)', 'Hello Nick ;)' and 'Hey Nick ;)'. First is necessary to create a topic with the correspondent link to the rdb file. Ex: DB add hi ~hi. (DB adds an entry 'hi ~hi' to dat/info2.db and creates a file hi.rdb in /dat directory). Next you need to add random replies. Ex: 'DB randstuff ~hi Hi N~ ;)', 'DB randstuff ~hi Hello N~ ;)' and 'DB randstuff ~hi Hey N~ ;)'. (DB will add those entries in hi.rdb). When someone writes 'Hi', DB will read from dat/info2.db which file is linked to 'Hi' (hi ~hi = hi.rdb), picks randomly one of the 3 entries from hi.rdb and displays it to the user. You can link more topics to the same random reply file, display, delete and see status of rdb files.. To add random topic/files Commands ADD | REMEMBER | SAVE | STORE Syntax <DB> ADD <random_topic> <~random_link_entry) Example BotUser: DB add hi ~hi DB: Okay, BotUser :) Related Messages -(if there are no replies set for that topic): DB: Sorry, I cannot answer that topic because DB random text file (rdb) "dat/hi.rdb" was not found. To add random replies Commands RANDSTUFF | RANDOMSTUFF Syntax <DB> RANDSTUFF <~random_link_entry> <reply> Example BotUser: DB randstuff ~hi Hi N~ ;) DB: Done, there is 1 topic under dat/hi.rdb BotUser: DB randstuff ~hi Hello N~ ;) DB: BotUser, done. There are now 2 randomstuffs BotUser: DB randstuff ~hi Hey N~ ;) DB: BotUser, done. There are now 3 randomstuffs. (now DB replies randomly (Hi N~, Hello N~ and Hey N~) to hi) To link more topics to random file Commands ADD | REMEMBER | SAVE | STORE Syntax <DB> ADD <random_topic> <~random_link_entry> Example BotUser: DB add hello ~hi DB: Okay, BotUser :) (now DB uses the same reply of ~hi to hello) To delete random files Commands DELETE | REMOVE | FORGET | DEL Syntax <DB> DELETE <~random_link_entry> Example BotUser: DB del ~hi DB: I have unlinked dat/hi.rdb. Related Messages (if the file doesn't exist): DB: BotUser, hi.rdb does not exist. Obs. This command only removes the dat/*.rdb file. You might want to delete also the corresponding topics-links from dat/info2.db (in this case 'hi' and 'hello'). If not, users will get the error message "Sorry, I cannot answer that topic because DB random text file (rdb) "dat/hi.rdb" was not found". To display random (rdb) files -- Informs witch file is being linked to the topic. This command is useful if you have a similar topic an don't want to waste time by making two rdb files for each one. Ask Darkbot what is using for one and link it in the other. Commands DISPLAY Syntax <DB> DISPLAY <random_topic> Example BotUser: DB display hi DB: Raw data for sup is: ~hi BotUser: DB display hello DB: Raw data for hello is: ~hi Related Messages (if there is no topic associated with the query): DB: BotUser, I do not know of any topic named hi. To inform the number of rdb files in database Commands RDB Syntax <DB> RDB Example BotUser: DB rdb DB: 1 1 11 (number of files = 1 = ~hi) To inform rdb file's creation date and author as well as linked rdb file Commands Command: RDB Syntax <DB> RDB <random_topic> Example BotUser: DB rdb hi DB: -rw-rw-r-- 1 botuser botuser 33 Nov 29 00:06 dat/hi.rdb Related Messages (if the syntax is not correct): DB: BotUser, rdb files are made up of letters and or numbers, no other text is accepted.' Related Procedures Check defines.h file [#define RAND_LEVEL 2] if you want to change the required access level at which user's can on-line add Random Topic Replies (default is 2) See also: Add Topic/Reply - Delete Topic/Reply - Display Topic Syntax === top === Recall Topic [0] Displays an entry stored in Darkbot's database. This is not really a command but the main objective of Darkbot - the ability to reply to any channel text if that text is matched by any of the topics (keywords) stored in it's database. Syntax <DB> <topic> or (if GENERAL_QUESTIONS is enabled) <topic> Example BotUser: DB, test123 DB: BotUser: 123 (if GENERAL_QUESTIONS is enabled) BotUser: test123 DB: BotUser, 123 Related Messages (if Darkbot's nick is mentioned but no topic specified): DB: hmmm? (if Darkbot don't have a reply for the query) DB: BotUser, *shrug* Related Procedures Check defines.h file [#define GENERAL_QUESTIONS] if you want Darkbot to answer questions only whenDarkbot nick is specified before the topic (not recommended) (it's enabled by default) Modify [#define WHUT "hmmm?"] and [#define DONNO_Q "*shrug*"] if you want to change those default messages. Obs. Darkbot can be triggered when addressed in the following formats: DB, DB: DB: and DB .... See also: Recall Topic Human Style === top === Recall Topic human style [0] Triggers Darkbot with an interrogative human style sentence that begins with an interrogative adverb or pronoun (presently who, what, where) followed by any transitory word (usually a verb) and a topic Command WHO | WHAT | WHERE Syntax <DB> < WHAT | WHERE | WHO > <any_transitory_word> <topic> Example BotUser: DB, who is test123 DB: Last I heard, 123 BotUser: DB what is test123 DB: BotUser: rumor has it, 123 BotUser: DB, where is test123 DB: BotUser heh, 123 Obs. The use of the transitory word is mandatory See also: Recall Topic === top === Replace Reply [0] Replaces a topic's reply to Darkbot's database Command REPLACE Syntax <DB> REPLACE <topic> <new_reply> Example ...first add a topic ... BotUser: DB add test123 123 DB: Okay, BotUser :) ... BotUser: DB replace test123 123456 DB: BotUser: I have deleted topic #7, test123. DB: BotUser, test123 has been updated. ... now topic test123 replies 123456 instead of 123 Related Messages (if topic not found): DB: I was unable to find entry: test123 Related Procedures Check defines.h file [#define NO_ENTRY "I was unable to find entry:"] if you want to modify the default message for no entry found.in topics. See also: Add Topic - Display Topic Syntax - Delete Topic === top === Search in Topics [0] Searches Darkbot's database for any replies that matches the string you enter. Command FIND | LOOK | SEARCH Syntax <DB> SEARCH <data> Example BotUser: DB search darkbot DB: I found one match, BotUser: darkbot Related Messages -(if no itens found): DB: Sorry, I don't have any entry for item_searched.. ## entries searched. -(if more than ## matches): DB: Found more than ## matches, please narrow down your search: (followed by the fist ## matched topics) -(if no search string specified when used SEARCH): DB: What should i be searching for, BotUser?; -(if no search string specified when used FIND): DB: What am I trying to find, BotUser? Related Procedures Check defines.h file [#define NO_TOPIC "Sorry, I don't have any entry for"] if you want to modify the default message for no entry found in replies and topics. Modify [#define TRY_FIND "What am I trying to find"] if you want to change default message for no entry found in replies and topics when command FIND is used.. See also: Search in Replies === top === Search in Replies [0] Searches Darkbot's database for any topics that matches the string you enter. Command DATASEARCH | DSEARCH | DFIND Syntax <DB> DSEARCH <data> Example BotUser: DB dsearch darkbot DB: I found one match, BotUser: darkbot Related Messages -(if no itens found): DB: Sorry, I don't have any entry for item_searched.. ## entries searched. -(if more than ## matches): DB: Found more than ## matches, please narrow down your search: (followed by the fist ## matched topics) -(if no search string specified): DB: What should i be dsearching for, BotUser? Related Procedures Check defines.h file [#define NO_TOPIC "Sorry, I don't have any entry for"] if you want to modify the default message for no entry found in topics and replies. See also: Search in Topics === top === Tell User [0] Displays a topic in reference to the person specified Command TELL and [ABOUT] Syntax <DB> TELL <nick> [ABOUT] <topic> Example BotUser: DB tell UserABC about Darkbot DB: UserABC: Information about darkbot can be obtained at http://darkbot.net Related Messages -(if missing user and topic): BotUser: DB tell DB: Tell who, BotUser? -(if missing topic): BotUser: DB tell UserABC DB: BotUser: What do you want me to tell UserABC? -(if missing topic): BotUser: DB tell UserABC about DB: BotUser, Tell user about what? Obs. transition word ABOUT is facultative See also: Recall Topic === top === Variables [0] Displays a list of variables to use with Darkbot. Command VARIABLES Syntax !VARIABLES Example BotUser: !variables DB: BotUser, data variables are: N~ (Nick), C~ (Chan), T~ (Time/date) B~ (Botnick), Q~ (Question asked), R~ (random nick), !~ (command char), S~ (current Server), P~ (current port) V~ (botVer), W~ (db WWW site), H~ (u@h), h~ (user's u@h without the suffix ~ if present), t~ (unixtime), BAN (sets a ban), TEMPBAN (bans for 60 sec) See also: Add Randomstuff - Random Topic/Replies - Add Topic/Reply === top === Channel Operation BAN [2] IRC raw command permitting to ban users from the channel. Command BAN Syntax <DB> <ADD> <topic> <-><PRIVMSG> <C~> :text | BAN Example BotUser: DB add ban+me -PRIVMSG C~ :okay N~. | BAN Obs. It takes no parameters. Just "BAN" (all caps). The topic must be a raw one (starts with a - prefix). A kickban can be done using this syntax: BotUser: DB add kickban+me -KICK C~ N~ :get out! | BAN See also: Permban User - Delete Permban - Ban List - TEMPBAN === top === Ban List [1] Lists permbans in Darkbot's database. Command BANLIST Syntax !BANLIST Example BotUser: !banlist -DB- *@poste*.ulaval.ca:0 -DB- End of PERMBAN list; 1 ban found. (if ban list is empty) -DB- End of PERMBAN list; 0 bans found. See also: Permban User - Delete Permban - BAN - TEMPBAN === top === Channel Autotopic [3] Automatically cycles channel's topic every 30 minutes. To turn autotopic off, use "0" (zero) in place of the topic. Command AUTOTOPIC Syntax !AUTOTOPIC <topic> Example BotUser: !autotopic This is a test topic -DB- AUTOTOPIC @ #channel ON: This is a test topic BotUser: !autotopic 0 -DB- Autotopic on #darkbot is now OFF Related Messages -(if no parameters are specified): -DB- SYNTAX: !AUTOTOPIC <topic> (set to "0" to turn off) Related Procedures Check defines.h file [#define AUTOTOPIC_TIME 1800] if you want to change the time interval in the cycle (default is 30 min) Obs. DB needs to be +op === top === Channel Information [0] Displays users totals in channel and slots allocated in ram. Command CHANINFO Syntax !CHANINFO Example BotUser: !chaninfo DB: BotUser, I see 2 users in #darkbot (2 user slots allocated in ram) === top === Channel Topic [2] Changes channel's topic Command T | TOPIC Syntax !TOPIC <newtopic> Example BotUser: !topic For help visit Darkbot page at http://darkbot.org *** DB changes topic to 'For help visit Darkbot page at http://darkbot.org' Obs. DB needs to be +op See also: Channel Autotopic === top === Cycling Channel [2] Parts/Rejoins a channel to resynchronize information Command CYC | CYCLE Syntax !CYCLE [#channel] Example BotUser: !cycle #darkbot DB: Cycling #darkbot *** Parts: DB *** Joins: DB Obs. Command can be called from/to a different channel === top === Delete Permban [2] Removes a u@h entry from Darkbot's permban database Command DELBAN Syntax !DELBAN <*user@*.host> Example BotUser: !delban *@poste*.ulaval.ca. -DB- Deleted permban #1, *@poste*.ulaval.ca. Related Messages (if no bans in the list) -DB- No such ban. See also: Permban User - Ban List - BAN - TEMPBAN === top === Deop User [2] Takes away channel ops from the person specified. Command DEOP Syntax !DEOP <nick> Example BotUser: !deop BotUser *** DB sets mode: -o BotUser Related Messages (if no given nick): DB: Specify a nick! Obs. DB needs to be +op See also: Op User - Up (op) BotUser - Down (deop) BotUser - Simulate Op === top === Devoice User [1] Takes voice (-v) away from the specified nick Command DEV | DEVOICE | DV | DVOICE Syntax !DEVOICE <nick> Example BotUser: !devoice BotUser *** DB sets mode: -v BotUser Related Messages (if no nick given): Specify a nick/chan! Obs. DB needs to be +op See also: Voice User === top === Down (deop) BotUser [2] Takes away your ops Command DOWN Syntax !DOWN Example BotUser: !down *** DB sets mode: -o BotUser Obs. DB needs to be +op See also: Op User - Deop User - Up (op) BotUser === top === Join Channel [2] Tells Darkbot to join the channel you specify. Command JOIN | J Syntax !JOIN <#channel> Example BotUser: !join #channel DB: Joining #channel See also: Leave Channel === top === Kick User [2] Kicks someone off the channel. You can also use commands !nail or !wack Command K | KICK | NAIL | WACK Syntax !KICK <nick> or !KICK <#chan> <nick> [reason] Example (with default reason): BotUser: !kick UserABC *** UserABC was kicked by DB (kick'ed: Requested!) (with reason specified): BotUser: !kick UserABC ReasonGoesHere *** UserABC was kicked by DB (kick'ed: ReasonGoesHere) Related Procedures Check defines.h file [#define DEFAULT_KICK "Requested!"] if you want to modify the default kick message. Obs. DB needs to be +op === top === Leave Channel [2] Tells Darkbot to leave the current channel or the one you specify. Command L | LEAVE | P | PART Syntax !LEAVE [#channel] Example BotUser: !part #channel DB: Leaving #channel See also: Join Channel === top === Op User [2] Gives the person specified channel ops. Command OP Syntax !OP <User> Example BotUser: !op BotUser *** DB sets mode: +o BotUser Related Messages (if no nick specified): Specify a nick! Obs. DB needs to be +op See also: Deop User - Up (op) BotUser - Down (deop) BotUser - Simulate Op === top === OPERATING SYSTEM INFO [0] Displays information about the Operating System in use Command OS Syntax <DB> <OS> Example BotUser: DB OS DB: I am running Linux (W)arning command not active in Windows versions === top === Permban User [3] Sets a permanent ban in Darkbot's permban database Command PERMBAN | SHITLIST Syntax !PERMBAN <user@*.host> [reason] Example (with default reason): BotUser: !permban test@host.domain.net -DB- Added in permban #1, test@host.domain.net; reason: Permbanned! (with reason specified): BotUser: !permban test@host.domain.net reason of the ban -DB- Added in permban #2, test@host.domain.net; reason: reason of the ban Obs. DB needs to be +op See also: Ban List - Delete Permban - Mask - BAN - TEMPBAN === top === Simulate Op/Deop [2] Tease someone by simulating OP and DEOP Command TEASEOP | TO Syntax !TEASEOP <UserABC> Example (if user is not op): BotUser: !teaseop UserABC *** DB sets mode: +o-o+o-o+o-o UserABC UserABC UserABC UserABC UserABC UserABC (if user is +op): BotUser: !teaseop UserABC *** DB sets mode: -o+o-o+o-o UserABC UserABC UserABC UserABC UserABC Obs. DB needs to be +op; This command never gives +op but deops if user is +o See also: Op User - Deop User === top === TEMPBAN IRC raw command permitting to temporarily ban users from the channel. Command TEMPBAN Syntax <DB> <ADD> <topic> <-><PRIVMSG> <C~> :text | TEMPBAN Example BotUser: DB add tempban+me -PRIVMSG C~ :okay N~. | TEMPBAN Obs. Works the same way as BAN with the difference Darkbot will unban the user in 60 seconds (using DBTIMERS). It takes no parameters. Just "TEMPBAN" (all caps). The topic must be a raw one (starts with a - prefix). A kickban can be done using this syntax: BotUser: DB add kickban+me -KICK C~ N~ :sure, came back in 60s! | TEMPBAN See also: Permban User - Delete Permban - Ban List - BAN === top === Up (op) BotUser [2] Gives you OP. Command UP Syntax !UP Example BotUser: !up *** DB sets mode: +o BotUser Obs. DB needs to be +op See also: Op User - Deop User - Down (deop) BotUser === top === Voice User [1] Gives voice (+v) to the person specified. Command V | VOICE Syntax !VOICE <User> Example BotUser: !voice UserABC *** DB sets mode: +v UserABC Related Messages (if no nick given): Specify a nick/chan! Obs. DB needs to be +op See also: Devoice User === top === Status and Information COMMAND CHARACTER INFO [0] Displays information about the command character in use (default is !) Command CMDCHAR? Syntax <DB> <CMDCHAR?> Example BotUser: DB CMDCHAR? DB: BotUser, my command char is: !simple topic/reply See also: Set Command Character === top === CODE STATUS [0] Displays information about darkbot.c file; total number of lines it has and when was last compiled as well as number of lines processed during the session. Command INFO2 Syntax <DB> <INFO2> Example BotUser: DB INFO2 DB: BotUser, src: darkbot.c (5590 lines of code), compiled @ Dec 13 2001. I have processed 469 lines of text since startup... === top === DATABASE STATUS [0] Displays information about Darkbot's version, amount of topic/replies in info2.db, session uptime in hours and minutes, database activity (questions asked, topic additions and topic deletions) and processing time period of this command. Command INFO Syntax <DB> <INFO> Example BotUser: DB INFO DB: Running Darkbot6f6. I have 1 topics in my database, Uptime: 2 hours, 3 mins, There have been 4 questions asked, 1 topic additions, and 1 topic deletions. Process time: 0 secs (W)arning Darkbot's version on Windows machines will show up 'Win'. ex: Darkbot6f6-Win === top === JOINS STATUS [0] Displays information about how many joins Darkbot witnessed in the channel during it's session Command JOINS? Syntax <DB> <JOINS?> Example BotUser: DB JOINS? DB: I have seen 15 joins thus far. === top === LANGUAGE INFO [0] Displays the current language setting Command LANG | LANGUAGE Syntax !LANG Example BotUser: !lang DB: BotUser, I speak English. Related Procedures Check defines.h file [#define LANG 1] if you want to change the default language (default is English). Available languages are English, French, Spanish, Dutch, Latin, Greek, Ebonics, Pig Latin, Russian- KOI8 encoding, Russian - CP1251 encoding, Portuguese, German, Italian, Chinese, Swedish, Norwegian, Romanian. More will be available soon. E-Mail play janson@superlink.net if you want to help add other langs. === top === MEMORY STATUS [0] Displays information about how much memory is in use by darkbot.c Command MEM | RAM Syntax <DB> <MEM> Example BotUser: DB MEM DB: BotUser 13419 0.0 0.8 1496 264 ? S 15:39 0:04 ./darkbot (W)arning command not active in Windows versions === top === PERMBANS INFO [0] Displays information about how many permanent bans are loaded into ram Command PERMBANS? Syntax <DB> <PERMBANS?> Example BotUser: DB PERMBANS? DB: There are 2 permbans loaded into ram. See also: Permban User - Delete Permban - BAN - TEMPBAN === top === QUE STATUS [0] Displays information about how many items Darkbot has ready to be displayed. Command QUE? | SENDQ? Syntax <DB> <QUE?> Example BotUser: DB SENDQ? DB: BotUser, There is currently 0 items in Que. === top === RAM STATUS [0] Displays information about if Darkbot is accessing dat/info2.db via direct disk or ram and the amount used. Command RAM? Syntax <DB> <RAM> Example BotUser: DB RAM? DB: I am accessing dat/info2.db via direct disk. (W)arning command not active in Windows versions See also: Sleep (deactivate) === top === RANDSTUFF STATUS [0] Displays information about how many seconds are left to be displayed next random reply in randomstuff.ini Command RANDOMSTUFF? | RANDSTUFF? Syntax <DB> <RANDSTUFF?> Example BotUser: DB RANDOMSTUFF? DB: BotUser, 350 seconds left till randstuff See also: Addind Random Stuff === top === SERVER STATUS [0] Displays information about how many servers are in the server.ini file and what # server is in use Command LOCATION? Syntax <DB> <LOCATION?> Example BotUser: DB LOCATION? DB: There is 5 servers in my server list. I am currently on server #1. Obs. server order is counting from last line in the file (#1 is the last line). See also: Server Jump === top === UPTIME STATUS [0] Displays information about Darkbot's unix computer time, system's uptime in days hours and minutes, how many users logged in the shell and load averages. Command UPTIME Syntax <DB> <UPTIME> Example BotUser: DB UPTIME DB: Uptime: 5:01PM up 305 days, 5:22, 1 user, load averages: 0.19, 0.38, 0.43 (W)arning command not active in Windows versions === top === User Access Add User [3] Adds someone into Darkbot's access list. Command ADDUSER Syntax !ADDUSER <#chan | #*> <*user@*.host> <level> [pass] Example BotUser: !adduser #darkbot *jason@*.superlink.net 3 HisPassword -DB- Added user: *test@*.test.net - level 3 Related Messages (if any parameter is missing): -DB- Syntax: ADDUSER <#chan> <*user@*.host> <level> <pass>. ie; ADDUSER #darkbot *jason@*.superlink.net 3 hisPasswd ... Obs. -Use #* if you want to give access to all channels. -The default password is 0 (zero) -Use command MASK if you are in doubt what User@host to use See also: Delete User - Mask - Login - Password === top === Delete User [3] Removes someone from Darkbot's access list Command !DELUSER Syntax !DELUSER <*user@*.host> Example BotUser: !deluser *test@*.test.net -DB- Deleted user: *test@*.test.net [3:0] Related Messages (if no user is specified): -DB- Enter the u@h to delete! See also: User List - Add User === top === Join Greets [1] Sets the string of text that is displayed when you join a channel if you are on Darkbot's access list. Adding a "+" (plus) in front of the message will turn it into an ACTION rather than a PRIVMSG. First time shows DB: 6!BotUser: I need to use SETINFO. To turn function off use !setinfo 0 Command !SETINFO Syntax !SETINFO < message | 0 > Example BotUser: !setinfo Welcome!! -DB- Updated #1: [*janson*@*SuperChat.Org] info: Welcome!! DB: 11!BotUser: Welcome!! BotUser: !setinfo +feels happy to see ^!! wow,,, % times I see this $ in & :) -DB- Updated #1: [*janson*@*SuperChat.Org] info: +feels happy to see ^!! wow,,, % times I see this $ in & :) *** DB feels happy to see BotUser!! wow,,, 10 times i see this *janson*@*SuperChat.Org in #darkbot :) BotUser: !setinfo 0 -DB- Updated #1: [*janson*@*SuperChat.Org] info: 0 Related Messages (If no parameters are specified): -DB- My !setinfo variables are: ^ nick, % Number of joins, & Channel, $ user@host. Example: !setinfo ^ has joined & % times!! (also, if you make the first char of your SETINFO a "+" the setinfo will be shown as an ACTION) === top === Login BotUser [1] Enables you to use Darkbot's commands. Command LOGIN Syntax /msg <DB> LOGIN <password> Example BotUser: /msg DB login mypassword -DB- Verified: #channel[1] Related Messages (if is the first time you access DB): You have not set a password, to set a pass: /msg DB PASS <oldpass> <newpass> (since this is your first time setting a pass, use '0' as your old pass) See also: Password === top === Mask [0] Outputs given user's user@*.host. Use this if you don't know what to put in the Add User or Permban command. Command !MASK Syntax !MASK <user@host> Example BotUser: !mask test@user-123.test.domain.com DB: BotUser, test@*.domain.com BotUser: !mask test@12.34.56.78 DB: BotUser, This is an unresolved host (IP address), just delete the last section and replace with a *, ie; user@125.34.12.44 would be user@125.34.12.* Related Messages (when no user@host specified): DB: BotUser, Specify a host! See also: User List - Add User === top === Password [1] Changes the password. Command PASS | PASSWD | PASSWORD Syntax /msg <DB> PASS (oldpass) (newpass) Example BotUser: /msg DB pass mypass1999 mypass2000 -DB- Password for test@host.domain.net has been updated Related Messages (on missed parameters): -DB- Syntax: /msg DB PASS <oldpass> <newpass> Obs. You need to login prior to use this command; Max number of pass digits = 25 See also: Login === top === Seen User [0] Displays the last time/date Darkbot saw the person specified Command SEEN Syntax !SEEN <UserABC> Example (if specified nick is found in the database): BotUser: !seen NickABC DB: BotUser, I last saw UserABC (userid@userhost.com) 2 hours, 30 mins ago in #darkbot (if no user is found in the database): BotUser: !seen UserABC2 DB: BotUser, I have not seen UserABC2 in the last week. (if specified nick is the user who does the query): BotUser: !seen BotUser DB: You'd know more about that than I do, BotUser. (if no nick is specified DB displays the total number of items in the database (seen.ini file): BotUser: !seen DB: BotUser, There are 1000 SEEN's in my database. Relate Procedures Check defines.h file [#define SEEN] if you want to enable or disable SEEN as well as max length to keep a lastseen [#define MAX_LASTSEEN] (default is one week - in seconds) and the seen reply message [#define SEEN_REPLY "in the last week."]. === top === User's Idle Time [0] Displays the specified user's idle time. Command IDLE Syntax !IDLE <nick> Example BotUser: !idle UserABC DB: BotUser, UserABC has been idle 1 minutes, 3 secs Related Messages -(when the command is directed to the BotUser): DB: BotUser, don't be lame. -(if nick isn't in the channel): DB: BotUser, I do not see NickGiven in #darkbot. === top === User List [1] Lists those who are on Darkbot's access list. Command USERLIST | HLIST | ACCESS Syntax !USERLIST Example BotUser: !userlist -DB- jason@NewBrunswick.NJ.US.SuperChat.Org[#*:3:6] *test@*.test.net[#darkbot:3:0] *test@*.test.net[#darkbot:3:0] -DB- End of Helper Userlist; 3 users found. See also: Add User - Delete User === top === Utilities Alarm Clock [2] A handy alarm clock, allowing to add in a timer in your Darkbot, which will activate at a given time. Times can be set in minutes, hours, and days. Just add the prefix of h (hour), m (minute), or d (day) before the amount of time you want it at. Command ALARM | ALARMCLOCK Syntax <DB> ALARM <time type: d/h/m><time duration> <reminder data> Example <BotUser>: !alarmclock m1 one minute timer. <DB>: BotUser, alarmclock set to go off in 1 minute, 0 secs ... 1 minute later ... <DB>: ALARMCLOCK by BotUser!~userid@userhost: one minute timer. Related Messages (if any parameter is missing): -DB- Syntax: <time type: d/h/m><time> <text to say> Related Procedures Check defines.h file [#define DBTIMERS] if you want to enable or disable the the alarm clock function === top === Calculator [0] A handy calculator. Functions are: "+" (addition); "-" (subtraction); "*" (multiplication); "/" (division). Command CALC | MATH Syntax <DB> CALC <value> < + | - | * | / > <value> Example BotUser: DB calc 1+1 BotUser: 2.000000 Related Messages - (if used incorrect operator): BotUser: Illegal operation! -(if value is missing): DB: BotUser: Division by zero error! Related Procedures Check defines.h file [#define DO_MATH_STUFF] if you want to enable or disable the calculator. === top === Character Length [0] Displays the character length of the given string. Command LENGTH Syntax <DB> LENGTH <data> Example BotUser: DB length antidisestablishmentarianism DB: BotUser: it was 28 chars long. === top === Date & Time [0] Displays date and time of the local machine where Darkbot is running Command DATE | TIME Syntax <DB> DATE Example BotUser: !date DB: BotUser, Wen Dec 1 09:10:51 1999. === top === Help [0] Sends a notice to the user with a brief run down on how to use Darkbot Command HELP Syntax !HELP Example BotUser: !help -DB- I can be triggered by various forms of speech, all which must be addressed to me, in one of the following formats: DB, DB: DB: or even DB .... In my database, you can find a topic by saying my nick, <topic> . e.g.; DB, nuke ..........to do a search on a word, or partial text, just type: <mynick>, search <text> ... eg; DB, search nuke -DB- I can also be triggered with even more human formats: DB, who is bill gates? .. You can also phrase it in a question: DB, where is msie? ...For more info about me, visit http://darkbot.net === top === Ping Reply [0] Replies "PONG" on the channel to gauge how lagged you or Darkbot is. Command PING Syntax !PING Example BotUser !ping DB: PONG! === top === Unixtime [0] Returns the time elapsed in comparison to the current time of the box Darkbot is on. (time since 00:00:00 UTC of January 1st 1970) Command UNIXTIME Syntax <DB> UNIXTIME <unixtime> Example BotUser: DB unixtime 90280928 DB: BotUser, -192 days, 12 mins, 93 secs Obs. use command calc if you need to to convert/calculate the result See also: Calculator User access management with options to add, delete, login, change password, list, greet registered users on join, check users idle time, mask and function "Seen". Several channel operation commands, i.e. op, deop, simulate op, voice, devoice, kick, ban and temp ban; set topic and auto-topic; join, leaves and cycles channels; channel information with total number of users and seen joins. Commands to display the status and information of the memory, ram, code, database uptime and others. Wildcards within multi-word topics to define NLP processing. Handy utilities, like an alarm clock, a calculator, a way of checking the length of words or phrases, display date and time, ping, and unix time calculation. Raw IRC commands on connect giving the possibility to automatically perform tasks like any IRC client program; CTCP ping and version replies. Many more options and functions changeable on the configuration scripts.