Implement `bot:channel-users' Scheme function
authorclinton <clinton@unknownlamer.org>
Tue, 24 Feb 2009 08:02:04 +0000 (08:02 +0000)
committerclinton <clinton@unknownlamer.org>
Tue, 24 Feb 2009 08:02:04 +0000 (08:02 +0000)
commitc1ea3a8644d445375f955464db26767b55424785
treeec71cd9edb9a4fd61c8fede1770f16e660425177
parent6ccc1042e6207517b4df38a0991b8652a97e1f9e
Implement `bot:channel-users' Scheme function

Returns a list of users in a channel. The user objects are opaque and
should only be accessed via the accessors:

 * `bot:channel-user-nick' user => nickname
 * `bot:channel-user-user/host' user => user@host string
 * `bot:channel-user-mode' user => channel mode bitvector

The channel mode bitvector may further inspected using:

 * `bot:channel-user-has-modes?' user . modes => boolean

Where MODES is a list of mode identifiers. Valid values are:

 * `bot:mode/op'
 * `bot:mode/voice'
 * `bot:mode/away'
 * `bot:mode/ircop'

Convenience functions for checking individual mode flags are
available:

 * `bot:channel-user-op?' user => boolean
 * `bot:channel-user-voice?' user => boolean
 * `bot:channel-user-away?' user => boolean
 * `bot:channel-user-ircop' user => boolean

Additionally some futzing with other bits are included because C++ is
an evil language and I had to beat it gently with a hammer until it
did what I wanted.
scripts/bobot-utils.scm
source/ChannelUserList.H
source/Interp.C
source/ScriptCommands.C
source/ScriptCommands.H
source/User.H