Difference between revisions of "Autopilot/Development"
From #openttdcoop wiki
(New page: outline of future autopilot development == aims == * Information and automation * minute-to-minute management of the game * provide admin / website with information * bridge to irc / irc ...) |
|||
Line 7: | Line 7: | ||
* bridge to irc / irc bot | * bridge to irc / irc bot | ||
* modular / customizable (without the need of editing ap source directly) | * modular / customizable (without the need of editing ap source directly) | ||
+ | |||
+ | == irc bot == | ||
+ | === rfc conform === | ||
+ | * use irc (0.6 or later) package from tcllib (1.10 or later) | ||
+ | * standard eol-style: crlf (handled by irc package) | ||
+ | * ping reply asap (handeld by irc package) | ||
+ | * join channel only after /end of MOTD received | ||
+ | |||
+ | === important callbacks === | ||
+ | '376' /end of MOTD (code to join channel in this callback) | ||
+ | '332' joined channel (send /NAMES to keep internal nick list of channel) | ||
+ | '353' reply from /NAMES (/NAMES response can appear multiple times depending on the number of clients in the channel, accumulate them) | ||
+ | '366' /end of NAMES (process the accumulated list of channel nicks) | ||
+ | 'MODE' a mode change occured, send /NAMES to update the internal list | ||
+ | 'NICK' nickchange, send /NAMES | ||
+ | 'QUIT' a user from our channel quit, send /NAMES | ||
+ | 'PART' a user from our channel left, send /NAMES | ||
+ | 'KICK' we were kicked from the channel | ||
+ | 'INVITE' we have been invited to a channel | ||
+ | 'PRIVMSG' a channel or private message (detect private message by comparing [target] with the bot's irc nick name, do this case insensitive) |
Revision as of 07:32, 22 August 2008
outline of future autopilot development
aims
- Information and automation
- minute-to-minute management of the game
- provide admin / website with information
- bridge to irc / irc bot
- modular / customizable (without the need of editing ap source directly)
irc bot
rfc conform
- use irc (0.6 or later) package from tcllib (1.10 or later)
- standard eol-style: crlf (handled by irc package)
- ping reply asap (handeld by irc package)
- join channel only after /end of MOTD received
important callbacks
'376' /end of MOTD (code to join channel in this callback) '332' joined channel (send /NAMES to keep internal nick list of channel) '353' reply from /NAMES (/NAMES response can appear multiple times depending on the number of clients in the channel, accumulate them) '366' /end of NAMES (process the accumulated list of channel nicks) 'MODE' a mode change occured, send /NAMES to update the internal list 'NICK' nickchange, send /NAMES 'QUIT' a user from our channel quit, send /NAMES 'PART' a user from our channel left, send /NAMES 'KICK' we were kicked from the channel 'INVITE' we have been invited to a channel 'PRIVMSG' a channel or private message (detect private message by comparing [target] with the bot's irc nick name, do this case insensitive)