Boucherot::Channels - A Boucherot's internal data structure to store channels
use Boucherot::Channels; $channels=new Boucherot::Channels;
$channels->join('WaRlOrDz','#WaRzZZ'); $channels->userMode('WaRlOrDz','#WaRzZZ','@'); $channels->join('AnOTh3r][3|eeT','#WaRzZZ'); $channels->userMode('AnOTh3r][3|eeT','#WaRzZZ','+');
$channels->topic('#WaRzZZ','http://azerty0.multimania.com/');
$channels->join('AnOTh3r][3|eeT','#ElEEt');
$channels->who('#ElEEt'); # [ 'AnOTh3r][3|eeT' ] $channels->who('#WaRzZZ'); # [ 'AnOTh3r][3|eeT', 'WaRlOrDz' ] $channels->where('AnOTh3r][3|eeT'); # [ '#ElEEt', '#WaRzZZ' ] $channels->topic('#WaRzZZ'); # 'http://azerty0.multimania.com/'
$channels->quit('AnOTh3r][3|eeT'); $channels->where('AnOTh3r][3|eeT'); # [ ] $channels->who('#WaRzZZ'); # [ 'WaRlOrDz' ]
Boucherot::Channels is a class for storage only. That mean you'll never join or part or even force someone to join or part a channel with that class.
class Boucherot::Channels
Attributs:
{ '_chans' => channel1 => 'infos' => 'modes' => 'topic' => 'nicks' => nick1 => [ 1, 0 ] # Op nick2 => [ 0, 1 ] # Voice channel2 => 'nicks' => nick3 => [ 1, 0 ] # Op nick1 => [ 0, 0 ] # Nothing nick4 => 'nicks' => nick4 => [ 0, 0 ] # Nothing '='nick5 => 'nicks' => nick5 => [ 0, 0 ] # Nothing '_nicks' => nick1 => 'infos' => 'nick' => 'address' => 'ircname' => ... 'chans' => channel1 => [ 1, 0 ] # Op channel2 => [ 0, 0 ] # Nothing nick2 => 'infos' => ... 'chans' => channel1 => [ 0, 1 ] # Voice nick3 => 'infos' => ... 'chans' => channel2 => [ 1, 0 ] # Op nick4 => 'chans' => nick4 => [ 0, 0 ] # Nothing nick5 => 'chans' => '='nick5 => [ 0, 0 ] # Nothing }
Methods:
Constructor
+$ new ( ) : Boucherot::Channels
Write
+ join ( nick, chan ) : + part ( nick, chan ) : + quit ( nick ) : + selfpart ( chan ) : + selfquit ( ) : + nick ( oldnick, newnick ) :
Read
+ where ( nick ) : [ chan1, chan2, chan3, ... ] : ARRAY + who ( chan ) : [ nick1, nick2, nick3, ... ] : ARRAY + xwhere ( nick ) : [ [ chanOp1, chanOp2, ... ], [ chanVoice1, ... ], [ chanNormal1, ... ], [ nick ], [ =nick ] ] : ARRAY + xwho ( chan ) : [ [ nickOp1, nickOp2, ... ], [ nickVoice1, ... ], [ nickNormal1, ...] ] : ARRAY + isInChannel ( nick, chan ) : Boolean + isNormal ( nick, chan ) : Boolean + getNick ( nick ) : Scalar
Read | Write
+ op ( nick, chan [ , opStatus : Boolean ] ) : Boolean + voice ( nick, chan [ , voiceStatus : Boolean ] ) : Boolean + address ( nick [ , address ] ) : Scalar + ircname ( nick [ , ircname ] ) : Scalar + topic ( chan [ , topic ] ) : Scalar + chanModes ( chan , mode [ , value ] ) : Scalar
+$ new ( ) : Boucherot::Channels
Create a new instance.
+ join ( nick, chan, info=undef() ) :
Let the instance know that the ``nick'' joined the chan.
+ part ( nick, chan ) :
Let the instance know that the ``nick'' parted from a chan.
+ quit ( nick ) :
Let the instance know that the ``nick'' has quit IRC.
+ selfpart ( chan ) :
Let the instance know that I parted the chan.
+ selfquit ( ) :
Let the instance know that I've quit IRC.
+ selfdisco ( ) :
Let the instance know that I've been disconnected from IRC.
+ nick ( oldnick, newnick ) :
The oldnick has change nick to newnick.
+ where ( nick ) : [ chan1, chan2, chan3, ... ] : ARRAY
Ask where a nick is.
+ whereconnect ( ) : [ chan1, chan2, chan3, ... ] : ARRAY
Ask where should I connect. To be called only after a ``selfdisco''. Return the list of all the chan I should connect to.
+ who ( chan ) : [ nick1, nick2, nick3, ... ] : ARRAY
Ask who is in a chan.
+ xwhere ( nick ) : [ [ chanOp1, chanOp2, ... ], [ chanVoice1, ... ], [ chanNormal1, ... ], [ nick ], [ =nick ] ] : ARRAY
Ask where a nick is.
+ xwho ( chan ) : [ [ nickOp1, nickOp2, ... ], [ nickVoice1, ... ], [ nickNormal1, ...] ] : ARRAY
Ask who is in a chan.
+ isInChannel ( nick, chan ) : Boolean
Ask if a nick is in a chan.
+ isNormal ( nick, chan ) : Boolean
Ask if a nick is normal (has no voice, has no chanop status) in a chan.
+ getNick ( nick ) : Scalar
Look for the real nick (with exact case).
+ op ( nick, chan [ , opStatus : Boolean ] ) : Boolean
Ask if a nick is operator in a chan.
+ voice ( nick, chan [ , voiceStatus : Boolean ] ) : Boolean
Ask if a nick has voice in a chan.
+ address ( nick [ , address ] ) : Scalar
Set or get somebody's address.
+ ircname ( nick [ , ircname ] ) : Scalar
Set or get somebody's ircname.
+ topic ( chan [ , topic ] ) : Scalar
Set or get a chan's topic.
+ chanModes ( chan , mode [ , value ] ) : Scalar
Set or get a chan's modes.
+ userMode ( nick, chan [ , mode ] ) : Scalar
Set or get a somebody's mode.
This class was written by Arthibus Gissehel <gissehel@vachefolle.com> in 2000.
This class is part of the Boucherot project.