This is an old revision of the document!
IRC Bot
<cellguy> can anyone answer a Sychronet IRC question for me? has to do with the bot scripts included with synchronet package <cellguy> How do you get them working? Cant find any documentation on them <cellguy> need to get one oman IRC channel on my server <cellguy> saw them in the directory and looked at the configs, just need a jump start <Troice> You set up the ini file and run it using jsexec. <cellguy> ok sweet, thats the jump start I was looking for <Troice> ctrl/ircbot.ini <Troice> sbbs/exec/jsexec -d ircbot.js <cellguy> thanks a bunch
Installation
The IRC bot is included with Synchronet BBS, at exec/ircbot.js
. Additional IRC bot modules are available in exec/ircbots/
.
Configuration
The IRC bot configuration file is ctrl/ircbot.ini
.
[server_ServerName] addresses=add.ress.one, add.ress.two nick=BotNickname services_password=? channels=#channelone, #channeltwo port=6667
Notes:
- If you are running the Synchronet ircd, you can connect the bot to localhost, 127.0.0.1, or the specific interface that the ircd binds to as configured in
ctrl/services.ini
- You may place more than one server section in
ctrl/ircbot.ini
, however connecting to multiple servers with one bot currently does not work. Instead, you would need to run multiple instances of ircbot.js.
Modules
There are a number of modules available for the IRC bot, but they are not all enabled (or listed) in ctrl/ircbot.ini
by default.
[module_ModuleName] channels=#channelone <key>,!#channeltwo dir=/sbbs/exec/ircbots/mybot/ lib=mylib.js global=true
Looking at the exec/ircbots
directory, you may see more modules that are installed but bot configured. As of the time of this writing, the following are available:
;[module_Trivia] ;dir=/sbbs/exec/ircbots/trivia/ [module_Admin] global=true dir=/sbbs/exec/ircbots/admin/ [module_Antispam] global=true dir=/sbbs/exec/ircbots/antispam/ [module_Decider] global=true dir=/sbbs/exec/ircbots/decider/ [module_Dice] global=true dir=/sbbs/exec/ircbots/dice/ [module_Dis] dir=/sbbs/exec/ircbots/dis/ ;[module_Google] ;global=true ;dir=/sbbs/exec/ircbots/google/ [module_Ham] dir=/sbbs/exec/ircbots/ham/ [module_Humanity] dir=/sbbs/exec/ircbots/humanity/ [module_Info] global=true dir=/sbbs/exec/ircbots/info/ lib=http.js [module_Poker] dir=/sbbs/exec/ircbots/poker/ lib=cardlib.js [module_Presence] dir=/sbbs/exec/ircbots/presence/ [module_Weather] global=true dir=/sbbs/exec/ircbots/weather/ lib=http.js [module_WhereIs] global=true dir=/sbbs/exec/ircbots/whereis/ lib=http.js [module_RPG] dir=/sbbs/exec/ircbots/rpgbot/
Notes
- Google seems to have some file dependencies and doesn't execute so I have it commented out.
- No trivia directory although it is listed in the ini file.
- Otherwise, by adding the modules to the ini and restarting the bot you may make these available in your ircd.
Running the IRC Bot
The IRC bot can be executed via jsexec, jsexec ircbot.js
, and an alternate configuration file may be specified like so: jsexec ircbot.js -f /some/other/ircbot.ini
.
You can also run the IRC bot via your services thread by adding an entry to services.ini:
[IRCBot] Port=6668 Options=STATIC|LOOP Command=ircbot.js
Note that the Port value must be supplied, but is irrelevant; the bot does not listen for connections. Just pick an unused port.
You can add -f /some/other/ircbot.ini
to the Command line to specify an alternate configuration file.
Using the IRC Bot
- See the help menu by sending /msg <botnick> help.
- Some commands are restricted and will not show up in the help menu (or be usable), until you have identified yourself to the bot. To identify, use /msg <botnick> ident <password>. (Your IRC nickname must be the same as your username on the BBS for this to work.)
Without IDENT the help looks like;
Usage: HELP <module> <command> | HELP <command> [main] help,?,ident,quote [admin] whois,eval,lastspoke [antispam] [decider] should [dice] roll,dice [dis] quote,dis [ham] specs,z,geo,vhf,hf,country,callsign,contests,bands [humanity] humanity,submit,humanity!,pick,humanity?,score [info] def,syn,info,wtf [poker] deal,go,fold,check,bet,call,raise,status,list,show,hole,invite,balance [presence] nodelist [weather] weather,forecast [whereis] whereis [rpg] create,classes,races,zones,login,logout,help editor commands: set, link, unlink, move, mobs, items, exits, title, desc, goto, look battle commands: flee, kill item commands: drop, get, put, unlock, lock, open, close, remove, wear, equip, wield rpg commands: score, status, move, equipment, inventory, look for detailed command info, type 'rpg help <command>' for help creating a characer, type 'rpg help create' for help with the editor, type 'rpg help editor'
With IDENT it looks like;
Usage: HELP <module> <command> | HELP <command> [main] reload,load,join,part,die,restart,help,?,ident,addquote,quote,greet,save,prefix,nick,module,modules,abort,ignore [admin] whois,addmask,delmask,adduser,change,resetpass,pass,seval,eval,groups,subs,subgroups,read,finger,udpfinger,exec,say,lastspoke,force,debug,objkeys,tail,pipe [antispam] [decider] should [dice] roll,dice [dis] quote,dis [ham] specs,z,geo,vhf,hf,country,callsign,contests,bands [humanity] humanity,submit,humanity!,pick,humanity?,score [info] def,syn,info,wtf [poker] deal,go,fold,check,bet,call,raise,status,list,show,hole,invite,balance,buyin [presence] nodelist [weather] weather,forecast [whereis] whereis [rpg] create,classes,races,zones,login,edit,logout,save,help,restore editor commands: set, link, unlink, move, mobs, items, exits, title, desc, goto, look battle commands: flee, kill item commands: drop, get, put, unlock, lock, open, close, remove, wear, equip, wield rpg commands: score, status, move, equipment, inventory, look for detailed command info, type 'rpg help <command>' for help creating a characer, type 'rpg help create' for help with the editor, type 'rpg help editor'