Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| module:ircbot [2012/01/16 15:49] – created digitalman | module:ircbot [2019/05/30 23:43] (current) – Created sections digital man | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| + | |||
| + | ===== Install ===== | ||
| + | |||
| + | The IRC bot is included with Synchronet BBS, at '' | ||
| + | |||
| + | ===== Configure ===== | ||
| + | |||
| + | The IRC bot configuration file is [[: | ||
| < | < | ||
| - | < | + | [server_ServerName] |
| - | < | + | addresses=add.ress.one, add.ress.two |
| - | < | + | nick=BotNickname |
| - | < | + | services_password=? |
| - | < | + | channels=# |
| - | < | + | 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 [[: | ||
| + | - You may place more than one server section in [[: | ||
| + | |||
| + | **Modules** | ||
| + | There are a number of modules available for the IRC bot, but they are not all enabled (or listed) in '' | ||
| + | |||
| + | < | ||
| + | [module_ModuleName] | ||
| + | channels=# | ||
| + | dir=/ | ||
| + | lib=mylib.js | ||
| + | global=true | ||
| + | </ | ||
| + | |||
| + | Looking at the '' | ||
| + | |||
| + | < | ||
| + | |||
| + | ; | ||
| + | ; | ||
| + | |||
| + | [module_Admin] | ||
| + | global=true | ||
| + | dir=/ | ||
| + | |||
| + | [module_Antispam] | ||
| + | global=true | ||
| + | channels = # | ||
| + | dir=/ | ||
| + | |||
| + | [module_Decider] | ||
| + | global=true | ||
| + | dir=/ | ||
| + | |||
| + | [module_Dice] | ||
| + | global=true | ||
| + | dir=/ | ||
| + | |||
| + | [module_Dis] | ||
| + | dir=/ | ||
| + | |||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | |||
| + | [module_Ham] | ||
| + | dir=/ | ||
| + | |||
| + | [module_Humanity] | ||
| + | dir=/ | ||
| + | |||
| + | [module_Info] | ||
| + | global=true | ||
| + | dir=/ | ||
| + | lib=http.js | ||
| + | |||
| + | [module_Poker] | ||
| + | dir=/ | ||
| + | lib=cardlib.js | ||
| + | |||
| + | [module_Presence] | ||
| + | dir=/ | ||
| + | |||
| + | [module_Weather] | ||
| + | global=true | ||
| + | dir=/ | ||
| + | lib=http.js | ||
| + | |||
| + | [module_WhereIs] | ||
| + | global=true | ||
| + | dir=/ | ||
| + | lib=http.js | ||
| + | |||
| + | [module_RPG] | ||
| + | channels = # | ||
| + | dir=/ | ||
| + | </ | ||
| + | |||
| + | //Notes// | ||
| + | - Google seems to have some missing file dependencies and doesn' | ||
| + | - No trivia directory although it is listed in the ini file. | ||
| + | - Add a module to a channel by adding the line channels = # | ||
| + | - 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 [[: | ||
| + | |||
| + | You can also run the IRC bot via your services thread by adding an entry to [[: | ||
| + | |||
| + | < | ||
| + | [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. | ||
| + | |||
| + | You can add '' | ||
| + | |||
| + | ===== Use ===== | ||
| + | |||
| + | - See the help menu by sending **/msg < | ||
| + | - 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 < | ||
| + | |||
| + | Without **IDENT** the help looks like; | ||
| + | |||
| + | < | ||
| + | Usage: HELP < | ||
| + | [main] help,?, | ||
| + | [admin] whois, | ||
| + | [antispam] | ||
| + | [decider] should | ||
| + | [dice] roll,dice | ||
| + | [dis] quote,dis | ||
| + | [ham] specs, | ||
| + | [humanity] humanity, | ||
| + | [info] def, | ||
| + | [poker] deal, | ||
| + | [presence] nodelist | ||
| + | [weather] weather, | ||
| + | [whereis] whereis | ||
| + | [rpg] create, | ||
| + | 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 < | ||
| + | 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 < | ||
| + | [main] reload, | ||
| + | [admin] whois, | ||
| + | [antispam] | ||
| + | [decider] should | ||
| + | [dice] roll,dice | ||
| + | [dis] quote,dis | ||
| + | [ham] specs, | ||
| + | [humanity] humanity, | ||
| + | [info] def, | ||
| + | [poker] deal, | ||
| + | [presence] nodelist | ||
| + | [weather] weather, | ||
| + | [whereis] whereis | ||
| + | [rpg] create, | ||
| + | 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 < | ||
| + | for help creating a characer, type 'rpg help create' | ||
| + | for help with the editor, type 'rpg help editor' | ||
| + | </ | ||
| + | |||
| + | The main module functions are contained in the ''/ | ||
| + | |||
| + | < | ||
| + | Bot_Commands[" | ||
| + | get_cmd_prefix() + " | ||
| + | Bot_Commands[" | ||
| + | " | ||
| + | </ | ||
| + | |||
| + | This is an example from the command RELOAD. | ||
| + | The usage line dictates the syntax required to execute the command. | ||
| + | The help line contains a text description of the command' | ||
| + | |||
| + | **Module Main** | ||
| + | * reload - Reloads the internal bot command and function structure. | ||
| + | * load - ??? Unconfirmed ??? I suspect this loads messages from a BBS message area but am unable to get this working. | ||
| + | * join - Instructs the specified bot to JOIN a new channel. [Note: may also be specified in the [[: | ||
| + | * part - Instructs the specified bot to dePART from a channel. | ||
| + | * die - Causes bot to die (shut down). You don't want that, do you? | ||
| + | * restart - Forces bot to restart, only works with bots running as a service. | ||
| + | * help - Displays helpful information about bot commands. | ||
| + | * ? - This is the same as help above [Note: This is a command alias, created via // | ||
| + | * ident - Identifies a user by alias and password. Use via private message only. [Note: create an alias for IDENT too.] | ||
| + | * addquote - Adds a quote from your nick to the database. | ||
| + | * quote - QUOTE returns quote assoicated with your nick, or search for a string to quote. | ||
| + | * greet - Sets or clears the greeting I will display when you enter the room. | ||
| + | * save - ??? Unconfirmed ??? Save some data locally? | ||
| + | * prefix - Changes the bot command prefix. Default is BOT. Only needed in channels, not in private msgs. | ||
| + | * nick - Change the bots nickname. | ||
| + | * module - Toggle the status of modules in channels. | ||
| + | * modules - Same as modules above. | ||
| + | * abort - Instruct the bot to ABORT server output. | ||
| + | * ignore - Tell the bot to IGNORE the specified nickname. | ||
| + | |||
| + | Note: The RELOAD command throws an error in it's default config. This should result in reloading [[: | ||
| + | |||
| + | < | ||
| + | TypeError: redeclaration of const MODULE_NAME | ||
| + | file: / | ||
| + | line: 27 | ||
| + | </ | ||
| + | |||
| + | You may comment out this section in the ''/ | ||
| + | |||
| + | < | ||
| + | Bot_Commands[" | ||
| + | srv.o(target," | ||
| + | load(" | ||
| + | load(" | ||
| + | for(var m in Modules) { | ||
| + | /* Don't reload libraries?? | ||
| + | for(var l in Modules[m].load) { | ||
| + | if(Modules[m].load[l]) load(Modules[m], | ||
| + | } */ | ||
| + | } | ||
| + | srv.o(target," | ||
| + | return; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | I'll start creating separate pages for the other modules as I work though them. | ||
| ===== See Also ===== | ===== See Also ===== | ||
| * [[: | * [[: | ||
| - | {{tag>}} | + | {{tag>irc chat}} |