# first section is usage
# second section is that config maker will put into config or /msg style help
# third section is full help

module irc-channel
:%*
:
:Base channel support for IRC networks: joining/parting channel, autojoin,\
 autorejoin, users' statistics, main control (permanent bans/exceptions),\
 logging, netsplit/netjoin detection, some channel interactions.


set irc-netsplit-log-timeout
:%* <seconds>
:Netsplit collection timeout for logging.
:This variable determines how long we will collect netsplit data before it\
 will be logged. Used for grouping users who got netsplit.
 Default: 3.

set irc-netjoin-log-timeout
:%* <seconds>
:Netjoin collection timeout for logging.
:This variable determines how long we will collect netjoin data before it\
 will be decided that users who don't returned yet are lost in netsplit.
 Default: 20.

set irc-netsplit-keep
:%* <seconds>
:Netsplit keep timeout for logging.
:This variable determines how log we will keep list of users who got netsplit.\
 After this timeout data will be dropped and users will be reported as lost in\
 netsplit.
 Default: 21600.

set irc-join-on-invite
:%* ["ask-"]<"yes"|"no">
:Should we join a channel when got invite?
:This variable defines behavior what we should do when we are invited to join\
 some channel. If it is set to yes then we will join the channel where we are\
 invited. Otherwise invite will be ignored.
 Default: ask-no.

set irc-enforcer-time
:%* <seconds>
:Bans enforcer delay.
:This variable defines delay after mode change onto channel and before we will\
 kick users who must be removed from channel.
 Default: 4.

set irc-ban-keep
:%* <minutes>
:Dynamic bans keeping time.
:This variable defines how long dynamic ban will be set on the channel before\
 we unset it. Unsetting is useful to avoid overloading maximum channel modes\
 (it's limited so if we add too many bans onto channel then we will get\
 message that we cannot set mode at some moment).
 Default: 120.

set irc-mode-timeout
:%* <seconds>
:Our mode changes for the same user timeout.
:This variable is used when we changed mode of some user on the channel but\
 someone (possibly network services) changed it back. It defines how much\
 minimum timeout is between our modechanges (so any changes before this\
 timeout will be tolerated). That timeout is useful to avoid abusive mode\
 change flood.
 Default: 4.

set irc-greet-time
:%* <seconds>
:Greeting timeout.
:This variable is used when someone joining the channel. It defines minimum\
 timeout between greetings to avoid greetings flood and to don't greet the\
 same user again if he/she was reconnected the network.
 Default: 120.

set irc-ignore-ident-prefix
:%* <yes|no>
:Should we ignore ident prefix for non-idented users?
:This variable defines if we should ignore ident prefix (^ or ~) in host mask.
 Default: yes.

set irc-default-kick-reason
:%* <string>
:Default reason for command "kick".
:This variable defines which reason must me send to IRC server if none was\
 written in command %ckick%n or %ckickban%n.
 Default: "requested".

set irc-kick-on-revenge
:%* <yes|no>
:Should we kick user on revenge?
:This variable defines whether we should kick user out of a channel when\
 appropriate channel flag is set or just deop them.
 Default: no.

fset irc_join
:
:
:Used when someone joins some IRC channel. Macros: %%N, %%@, %%L, %%#.
 Default: "%%y%%N%%n(%%@) has joined %%#".

fset irc_part
:
:
:Used when someone leaves some IRC channel. Macros: %%N, %%@, %%L, %%#,\
 %%* (message).
 Default: "%%^%%N%%^(%%@) has left %%# (%%*)".

fset irc_nickchange
:
:
:Used when someone on IRC network changed their nick to another. Macros:\
 %%N (old nick), %%@, %%L, %%* (new nick).
 Default: "%%^%%N%%^ is now known as %%y%%*%%n".

fset irc_quit
:
:
:Used when someone quits IRC network. Macros: %%N, %%@, %%L, %%# (network),\
 %%* (reason).
 Default: "%%^%%N%%^(%%@) has quit %%# (%%*)".

fset irc_lost_in_netsplit
:
:
:Used when there was a netsplit on IRC network and some users didn't returned\
 to the channel after netsplit is over. Macros: %%N, %%@, %%L, %%# (network),\
 %%* (netsplit servers pair).
 Default: "%%^%%N%%^ has lost in netsplit (%%*)".

fset irc_kick
:
:
:Used when one user (possibly network services) has kicked another user from\
 IRC channel. Macros: %%N, %%@, %%L (target), %%#, %%* (reason).
 Default: "%%^%%N%%^ has kicked %%L from %%# (%%*)".

fset irc_modechange
:
:
:Used when someone changed mode of some IRC channel. Macros: %%N, %%@, %%L,\
 %%#, %%* (mode change line).
 Default: "mode/%%# (%%*) by %%^%%N%%^".

fset irc_netsplit
:
:
:Used when network split (disconnect between servers) has been detected on\
 IRC network and some user(s) quit the network. Macros: %%N (nicklist), %%#,\
 %%* (netsplit servers pair).
 Default: "netsplit (%%*), quits: %%N".

fset irc_netjoin
:
:
:Used when network join (reconnect of server after network split) has been\
 detected on IRC network and some user(s) join the IRC channel. Macros:\
 %%N (nicklist), %%#, %%* (joined server), %%- (time of split).
 Default: "netsplit of %%* is over, joins: %%N".

fset irc_topic
:
:
:Used when someone changed topic of some IRC channel. Macros: %%N, %%@, %%L,\
 %%#, %%* (topic).
 Default: "%%N %%?*changed?unset? the topic of %%#%%?* to: %%*??".

fset irc_topic_is
:
:
:Used when we got topic of some IRC channel from server on our join.\
 Macros: %%#, %%* (topic).
 Default: "Topic on %%# is: %%*"

fset irc_topic_by
:
:
:Used when server said us who and when set the topic of some IRC channel on\
 our join. Macros: %%N, %%@ (when it is set), %%#.
 Default: "Topic for %%# is set %%@ by %%N".

ss-irc adduser
:adduser ["!"]nick [lname]
:
:Adds current hostmask of user %_nick%_ to client record %_lname%_. If there\
 isn't client record of %_lname%_ then adds new client record with no flags.\
 If %_lname%_ is omitted then use %_nick%_ as client record name. If %_nick%_\
 is prepended with exclamation sign then form hostmask literally, otherwise\
 form hostmask from some assumes.

ss-irc deluser
:deluser ["!"]nick
:
:Deletes current hostmask from client record of user who has currently nick\
 %_nick%_ on the IRC network. If there is no hostmasks left then deletes\
 client record of that user. If %_nick%_ is prepended with exclamation sign\
 then form hostmask literally, otherwise form hostmask from some assumes.

ss-irc say
:say [channel["@"net]] text
:
:Sends some message %_text%_ to some IRC channel.

ss-irc act
:act [channel["@"net]] text
:
:Sends some CTCP ACTION %_text%_ to some IRC channel.

ss-irc ctcp
:ctcp target["@"net] text
:
:Sends some CTCP %_text%_ to some %_target%_ (channel or nick) on IRC\
 network. First word of %_text%_ is converted to upper case before sending.

ss-irc notice
:notice target["@"net] text
:
:Sends some NOTICE %_text%_ to some %_target%_ (channel or nick) on IRC\
 network.

ss-irc topic
:topic [channel["@"net]] text
:
:Changes (unsets if %_text%_ is empty) topic of some IRC channel to %_text%_.

ss-irc kick
:kick [channel["@"net]] nick [reason]
:
:Kicks user %_nick%_ from current channel with some %_reason%_ if bot have\
 enough privileges to do that. If %_reason%_ is omitted then kicks with\
 reason from variable %circ-default-kick-reason%n.

ss-irc kickban
:kickban [channel["@"net]] ["-"|"@"]nick [reason]
:
:Sets ban and kicks user %_nick%_ from current channel with some %_reason%_\
 if bot have enough privileges to do that. If %_reason%_ is omitted then\
 kicks with reason from variable %circ-default-kick-reason%n. Mask is formed\
 from current hostmask for %_nick%_ and may be modified by prefix "%^-%^" or\
 "%^@%^" as follows:
   no prefix    *!ident@*.host.net
   prefix "-"   *!ident@site.host.net
   prefix "@"   *!*@site.host.net

ss-irc voice
:voice nick [channel["@"net]]
:
:Sets mode +v for %_nick%_ on some IRC channel if bot have enough privileges\
 to do that.

ss-irc devoice
:devoice nick [channel["@"net]]
:
:Removes mode +v for %_nick%_ on some IRC channel if bot have enough\
 privileges to do that.

ss-irc op
:op nick [channel["@"net]]
:
:Sets mode +o for %_nick%_ on some IRC channel if bot have enough privileges\
 to do that.

ss-irc deop
:deop nick [channel["@"net]]
:
:Removes mode +o for %_nick%_ on some IRC channel if bot have enough\
 privileges to do that.

ss-irc hop
:hop nick [channel["@"net]]
:
:Sets mode +h for %_nick%_ on some IRC channel if bot have enough privileges\
 to do that and network has that mode.

ss-irc dehop
:dehop nick [channel["@"net]]
:
:Removes mode +h for %_nick%_ on some IRC channel if bot have enough\
 privileges to do that.

ss-irc reset
:reset [+b|+e|+I] [channel["@"net]]
:
:Resets expired bans, exempts and invites on some IRC channel and enforce\
 existing bans on users by kicking them out of a channel. If parameter\
 "+b", "+e", or "+I" is given then do only that mode reset.

ss-irc invite
:invite nick [channel[@net]]
:
:Invites someone %_nick%_ to some IRC channel if bot have enough privileges\
 to do that.

IDENTIFY
:
:%* <password>: Identifies you as owner of nick %_%N%_.
:
