4 You'll need to have perl support compiled with irssi. If "/LOAD"
5 doesn't show perl in list of loaded modules, you have a problem. See
6 INSTALL file for information about perl problems.
12 Scripts are run with /SCRIPT LOAD command, or the default /RUN alias.
13 "/SCRIPT" shows list of running script, and /SCRIPT UNLOAD can unload
16 Scripts should be placed to ~/.irssi/scripts/ or
17 /usr/local/lib/irssi/scripts/ (or depending on where irssi was
18 installed) directories. After that /RUN script_name should work, you
19 don't need to add the .pl suffix.
25 Irssi is pretty much based on sending and handling different signals.
26 Like when you receive a message from server, say
28 :nick!user@there.org PRIVMSG you :blahblah
30 Irssi will first send a signal:
32 "server incoming", SERVER_REC, "nick!user@there PRIVMSG ..."
34 You probably don't want to use this signal. Default handler for this
35 signal interprets the header and sends a signal:
37 "server event", SERVER_REC, "PRIVMSG ...", "nick", "user@there.org"
39 You probably don't want to use this either, since this signal's default
40 handler parses the event string and sends a signal:
42 "event privmsg", SERVER_REC, "you :blahblah", "nick", "user@there.org"
44 You can at any point grab the signal, do whatever you want to do with
45 it and optionally stop it from going any further by calling
51 # $data = "nick/#channel :text"
52 my ($server, $data, $nick, $address) = @_;
53 my ($target, $text) = split(/ :/, $data, 2);
55 Irssi::signal_stop() if ($text =~ /free.*porn/ || $nick =~ /idiot/);
58 Irssi::signal_add("event privmsg", "event_privmsg")
60 This will hide all public or private messages that match the regexp
61 "free.*porn" or the sender's nick contain the word "idiot". Yes, you
62 could use /IGNORE instead for both of these :)
64 You can also use signal_add_last() if you wish to let the Irssi's internal
65 functions be run before yours.
67 A list of signals that irssi sends can be found from signals.txt file.
70 Creating/replacing /COMMANDS
71 ----------------------------
73 You can create your own commands, or replace existing ones with
74 Irssi::command_bind(). The command handling work internally pretty much
75 the same as signal handlers, so if you replace existing command and don't
76 wish to let it run, call Irssi::signal_stop().
80 # Usage: /HELLO [<nick>]
82 # data - contains the parameters for /HELLO
83 # server - the active server in window
84 # witem - the active window item (eg. channel, query)
85 # or undef if the window is empty
86 my ($data, $server, $witem) = @_;
88 if (!$server || !$server->{connected}) {
89 Irssi::print("Not connected to server");
94 $server->command("MSG $data Hello!");
95 } elsif ($witem && ($witem->{type} eq "CHANNEL" ||
96 $witem->{type} eq "QUERY")) {
97 # there's query/channel active in window
98 $witem->command("MSG ".$witem->{name}." Hello!");
100 Irssi::print("Nick not given, and no active channel/query in window");
104 Irssi::command_bind('hello', 'cmd_hello');
110 Several functions expect message levels. They're used to roughly
111 classify messages. They're used by a lot of things including logging,
112 ignoring, highlighting, etc. so you should use as good level as
113 possible. It's possible to have several levels in one message, like
114 ACTIONS+PUBLIC or ACTIONS+MSGS.
116 Here's all the levels that irssi supports currently:
118 CRAP, MSGS, PUBLIC, NOTICES, SNOTES, CTCPS, ACTIONS, JOINS, PARTS
119 QUITS, KICKS, MODES, TOPICS, WALLOPS, INVITES, NICKS, DCC, DCCMSGS,
120 CLIENTNOTICE, CLIENTCRAP, CLIENTERROR
122 And a few special ones that could be included with the levels above:
124 HILIGHT - text is highlighted
125 NOHILIGHT - don't check highlighting for this message
126 NO_ACT - don't trigger channel activity when printing this message
127 NEVER - never ignore or log this message (not a good idea usually)
129 You can use them with a MSGLEVEL_ prefix, for example:
131 $server->print("#channel", 'Hello, world', MSGLEVEL_CLIENTCRAP);
133 Writes text to #channel window with CLIENTCRAP level.
139 Meaning of "window" should be pretty clear, but "window item" is
140 something I couldn't really figure out a better name for :) They're
141 simply something that's inside a window, a channel or a query usually.
142 Windows can have multiple items inside them. It's possible to create
143 non-channel/query window items too, currently the third possible window
144 item is created by /EXEC -interactive.
146 In scripts, I think you can quite safely assume that the window item is
147 query or channel if the script is intended to be run in one of them.
148 Stupid users won't probably have other window items, and smart users
149 know where to run the script, or at least later figure out why it
153 Functions that you can use in Irssi's Perl scripts
154 --------------------------------------------------
156 If there's a "Xxxx::" text before the command, it means that it belongs to
157 that package. Like "Server::command" means that you should either call it as
158 Irssi::Server::command($server, $cmd);
160 $server->command($cmd);
162 Commands that don't have the Xxxx prefix are called as Irssi::command();
164 Information from most objects can be fetched with $object->{data}, for
165 example current nick in server could be read with $server->{nick}. List
166 of all the information that are in objects are in "Object->{}" sections
169 Commands are split in two groups, generic ones that could be used with
170 any chat protocol, and IRC specific commands. If you want to use IRC
171 specific commands, or use IRC specific ->{data} in your scripts, you'll
172 need to add "use Irssi::Irc" to your scripts. IRC specific commands are
173 listed after the generic ones.
178 Window active_win() - return active window
179 Server active_server() - return server in active window
181 windows() - return list of all windows
182 servers() - return list of all servers
183 reconnects() - return list of all server reconnections
184 channels() - return list of all channels
185 queries() - return list of all queries
186 commands() - return list of all commands
187 logs() - return list of all log files
188 ignores() - returns list of all ignores
190 Server::channels() - return list of channels in server
191 Server::queries() - return list of queries in server
194 Server::print(channel, str[, level])
195 Window::print(str[, level])
196 Windowitem::print(str[, level])
197 Print `str'. Default level is MSGLEVEL_CLIENTNOTICE.
202 Windowitem::command(cmd)
203 Send a command `cmd' (in current channel). The '/' char isn't needed.
208 You can have user configurable texts in scripts that work just like
209 irssi's internal texts that can be changed in themes.
211 First you'll have to register the formats:
213 Irssi::theme_register([
214 'format_name', '{hilight my perl format!}',
215 'format2', 'testing.. nick = $0, channel = $1'
218 Printing happens with one of the functions:
220 printformat(level, format, ...)
221 Window::printformat(level, format, ...)
222 Server::printformat(target, level, format, ...)
223 Windowitem::printformat(level, format, ...)
227 $channel->printformat(MSGLEVEL_CRAP, 'format2',
228 'nick', $channel->{name});
233 settings_get_str(key)
234 settings_get_int(key)
235 settings_get_bool(key)
236 settings_get_time(key)
237 settings_get_level(key)
238 settings_get_size(key)
239 Return value for setting.
241 settings_set_str(key, value)
242 settings_set_int(key, value)
243 settings_set_bool(key, value)
244 settings_set_time(key, value)
245 settings_set_level(key, value)
246 settings_set_size(key, value)
247 Set value for setting.
248 If you change the settings of another module/script with one of these, you
249 must emit a "setup changed" signal afterwards.
251 settings_add_str(section, key, def)
252 settings_add_int(section, key, def)
253 settings_add_bool(section, key, def)
254 settings_add_time(section, key, def)
255 settings_add_level(section, key, def)
256 settings_add_size(section, key, def)
265 signal_emit(signal, ...)
266 Send signal `signal'. You can give 6 parameters at maximum.
269 Continue currently emitted signal with different parameters.
271 signal_add(signal, func)
272 Bind `signal' to function `func'.
274 signal_add_first(signal, func)
275 Bind `signal' to function `func'. Call `func' as soon as possible.
277 signal_add_last(signal, func)
278 Bind `signal' to function `func'. Call `func' as late as possible.
280 signal_remove(signal, func)
281 Unbind `signal' from function `func'.
284 Stop the signal that's currently being emitted.
286 signal_stop_by_name(signal)
287 Stop the signal with name `signal' that's currently being emitted.
289 signal_register(hash)
290 Register parameter types for one or more signals.
291 `hash' must map one or more signal names to references to arrays
292 containing 0 to 6 type names. Some recognized type names include
293 int for integers, intptr for references to integers and string for
294 strings. For all standard signals see src/perl/perl-signals-list.h
295 in the source code (this is generated by src/perl/get-signals.pl).
297 Any signals that were already registered are unaffected.
299 Registration is required to get any parameters to signals written in
300 Perl and to emit and continue signals from Perl.
302 *** timeouts / IO listener / pidwait
304 timeout_add(msecs, func, data)
305 Call `func' every `msecs' milliseconds (1000 = 1 second) with
306 parameter `data'. Returns tag which can be used to stop the timeout.
308 timeout_add_once(msecs, func, data);
309 Call `func' once after `msecs' milliseconds (1000 = 1 second)
310 with parameter `data'. Returns tag which can be used to stop the timeout.
313 Remove timeout with tag.
315 input_add(source, condition, func, data)
316 Call `func' with parameter `data' when specified IO happens.
317 `source' is the file handle that is being listened. `condition' can
318 be INPUT_READ, INPUT_WRITE or both. Returns tag which can be used to
322 Remove listener with tag.
325 Adds `pid' to the list of processes to wait for. The pid must identify
326 a child process of the irssi process. When the process terminates, a
327 "pidwait" signal will be sent with the pid and the status from
328 waitpid(). This is useful to avoid zombies if your script forks.
331 Removes `pid' from the list of processes to wait for. Terminated
332 processes are removed automatically, so it is usually not necessary
333 to call this function.
338 Level string -> number
341 Level number -> string
343 combine_level(level, str)
344 Combine level number to level string ("+level -level").
345 Return new level number.
354 command_bind(cmd, func[, category])
355 Bind command `cmd' to call function `func'. `category' is the
356 category where the command is displayed in /HELP.
358 command_runsub(cmd, data, server, item)
359 Run subcommands for `cmd'. First word in `data' is parsed as
360 subcommand. `server' is Irssi::Server rec for current
361 Irssi::Windowitem `item'.
363 Call command_runsub in handler function for `cmd' and bind
364 with command_bind("`cmd' `subcmd'", subcmdfunc[, category]);
366 command_unbind(cmd, func)
367 Unbind command `cmd' from function `func'.
369 command_set_options(cmd, data)
370 Set options for command `cmd' to `data'. `data' is a string of
371 space separated words which specify the options. Each word can be
372 optionally prefixed with one of the following character:
374 '-': optional argument
375 '+': argument required
376 '@': optional numeric argument
378 command_parse_options(cmd, data)
379 Parse options for command `cmd' in `data'. It returns a reference to
380 an hash table with the options and a string with the remaining part
381 of `data'. On error it returns the undefined value.
387 refnum - Reference number
393 history_name - Name of named historylist for this window
395 active - Active window item
396 active_server - Active server
398 servertag - active_server must be either undef or have this same tag
399 (unless there's items in this window). This is used by
400 /WINDOW SERVER -sticky
401 level - Current window level
403 sticky_refnum - 1 if reference number is sticky
405 data_level - Current data level
406 hilight_color - Current activity hilight color
408 last_timestamp - Last time timestamp was written in window
409 last_line - Last time text was written in window
411 theme_name - Active theme in window, undef = default
414 window - Window where the text will be written
415 server - Target server
416 target - Target channel/query/etc name
419 hilight_priority - Priority for the hilighted text
420 hilight_color - Color for the hilighted text
424 Return a list of items in window.
427 window_create(automatic)
428 Windowitem::window_create(automatic)
436 Returns parent window for window item.
439 window_find_name(name)
440 Find window with name.
443 window_find_refnum(refnum)
444 Find window with reference number.
447 window_find_level(level)
448 Server::window_find_level(level)
449 Find window with level.
452 window_find_closest(name, level)
453 Server::window_find_closest(name, level)
454 Find window that matches best to given arguments. `name' can be either
455 window name or name of one of the window items.
458 window_find_item(name)
459 Server::window_find_item(name)
460 Find window which contains window item with specified name/server.
463 window_item_find(name)
464 Server::window_item_find(name)
465 Window::item_find(server, name)
466 Find window item that matches best to given arguments.
468 window_refnum_prev(refnum, wrap)
469 window_refnum_next(refnum, wrap)
470 Return refnum for window that's previous/next in windows list.
472 windows_refnum_last()
473 Return refnum for last window.
475 Window::item_add(item, automatic)
476 Window::item_remove(item)
477 Window::item_destroy(item)
478 Add/remove/destroy window item
483 Window::change_server(server)
484 Window::set_refnum(refnum)
485 Window::set_name(name)
486 Window::set_history(name)
487 Window::set_level(level)
488 Change server/refnum/name/history/level in window.
490 Windowitem::set_active()
491 Change window item active in parent window.
495 Change to previous/next window item.
497 Windowitem::change_server(server)
498 Change server in window item.
500 Windowitem::is_active()
501 Returns 1 if window item is the active item in parent window.
503 Window::get_active_name()
504 Return active item's name, or if none is active, window's name
510 type - "SERVER CONNECT" text
511 chat_type - String ID of chat protocol, for example "IRC"
513 address - Address where we connected (irc.blah.org)
514 port - Port where we connected
515 chatnet - Chat network
517 password - Password we used in connection.
518 wanted_nick - Nick which we would prefer to use
523 server_create_conn(address[, port=6667[, password=''[, nick=''[, channels='']]]])
524 Create new server connection.
531 chat_type - String ID of chat protocol, for example "IRC"
533 (..contains all the same data as Connect above..)
535 connect_time - Time when connect() to server finished
536 real_connect_time - Time when server sent "connected" message
538 tag - Unique server tag
541 connected - Is connection finished? 1|0
542 connection_lost - Did we lose the connection (1) or was
543 the connection just /DISCONNECTed (0)
545 rawlog - Rawlog object for the server
547 version - Server version
548 last_invite - Last channel we were invited to
549 server_operator - Are we server operator (IRC op) 1|0
550 usermode_away - Are we marked as away? 1|0
551 away_reason - Away reason message
552 banned - Were we banned from this server? 1|0
553 lag - Current lag to server in milliseconds
560 Disconnect from server.
567 server_find_chatnet(chatnet)
568 Find first server that is in `chatnet'
570 Server::isnickflag(flag)
571 Returns 1 if flag is a nick mode flag (@, + or % in IRC)
573 Server::ischannel(data)
574 Returns 1 if start of `data' seems to mean channel.
576 Server::get_nick_flags()
577 Returns nick flag characters in order: op, voice, halfop ("@+%" in IRC).
579 Server::send_message(target, msg, target_type)
580 Sends a message to nick/channel. target_type 0 = channel, 1 = nick
583 *** Server reconnections
586 type - "RECONNECT" text
587 chat_type - String ID of chat protocol, for example "IRC"
589 (..contains all the same data as Connect above..)
591 tag - Unique numeric tag
592 next_connect - Unix time stamp when the next connection occurs
598 type - "CHATNET" text
599 chat_type - String ID of chat protocol, for example "IRC"
601 name - name of chat network
603 nick - if not empty, nick preferred in this network
604 username - if not empty, username preferred in this network
605 realname - if not empty, realname preferred in this network
607 own_host - address to use when connecting this network
608 autosendcmd - command to send after connecting to this network
611 Find chat network with name.
614 *** Server redirections
616 This is a powerful feature of Irssi that I haven't seen in other IRC
617 clients. You can EASILY grab the server's reply for a command you send
618 to server without any horrible kludges.
620 redirect_register(command, remote, timeout, start, stop, opt)
621 Register new redirection command. By default irssi has already
622 registered at least: whois, whowas, who, list, ison, userhost, ping,
623 "mode channel" (/MODE #channel), "mode b" (/MODE #channel b), "mode e"
626 `command' specifies the name of the command to register, it doesn't
627 have to be a real command name, but something you just specify to
628 redirect_event() when using this redirection.
630 `remote' specifies if the command is by default a remote command
631 (eg. sent to another server). redirect_event() may override this.
633 `timeout' - If remote is TRUE, specifies how many seconds to wait for
634 reply before aborting.
636 `start', `stop', `opt' - hash references with "event" => argpos entries.
637 List of events that start and stop this redirection.
638 Start event list may be empty, but there must be at least one
639 stop event. Optional events are checked only if they are received
640 immediately after one of the stop-events. `argpos' specifies the
641 word number in event string which is compared to wanted argument,
642 -1 = don't compare, TRUE always.
644 Example (already done by irssi):
646 Irssi::redirect_register('mode channel', 0, 0,
647 undef, # no start events
649 "event 324" => 1, # MODE-reply
650 "event 403" => 1, # no such channel
651 "event 442" => 1, # "you're not on that channel"
652 "event 479" => 1 # "Cannot join channel (illegal name)"
653 }, { # optional events
654 "event 329", 1 # Channel create time
657 Server::redirect_event(command, count, arg, remote, failure_signal, signals)
658 Specify that the next command sent to server will be redirected.
659 NOTE: This command MUST be called before sending the command to server.
661 `command' - Name of the registered redirection that we're using.
663 `count' - How many times to execute the redirection. Some commands may
664 send multiple stop events, like MODE #a,#b.
666 `arg' - The argument to be compared in event strings. You can give multiple
667 arguments separated with space.
669 `remote' - Specifies if the command is a remote command, -1 = use default.
671 `failure_signal' - If irssi can't find the stop signal for the redirection,
672 this signal is called.
674 `signals' - hash reference with "event" => "redir signal" entries.
675 If the event is "", all the events belonging to the redirection but not
676 specified here, will be sent there.
680 # ignore all events generated by whois query, except 311.
681 $server->redirect_event("whois", 1, "cras", 0, undef, {
682 "event 311" => "redir whois",
683 "" => "event empty" });
684 $server->send_raw("WHOIS :cras");
690 type - Type of the window item, for example "CHANNEL" or "QUERY"
691 chat_type - String ID of chat protocol, for example "IRC"
693 server - Active server for item
694 name - Name of the item
696 createtime - Time the window item was created
697 data_level - 0=no new data, 1=text, 2=msg, 3=highlighted text
698 hilight_color - Color of the last highlighted text
704 type - "CHANNEL" text
705 chat_type - String ID of chat protocol, for example "IRC"
707 (..contains all the same data as Windowitem above..)
709 topic - Channel topic
710 topic_by - Nick who set the topic
711 topic_time - Timestamp when the topic was set
713 no_modes - Channel is modeless
715 limit - Max. users in channel (+l mode)
716 key - Channel key (password)
718 chanop - You are channel operator
719 names_got - /NAMES list has been received
720 wholist - /WHO list has been received
721 synced - Channel is fully synchronized
723 joined - JOIN event for this channel has been received
724 left - You just left the channel (for "channel destroyed" event)
725 kicked - You was just kicked out of the channel (for
726 "channel destroyed" event)
728 Server::channels_join(channels, automatic)
729 Join to channels in server. `channels' may also contain keys for
730 channels just like with /JOIN command. `automatic' specifies if this
731 channel was joined "automatically" or if it was joined because join
732 was requested by user. If channel join is "automatic", irssi doesn't
733 jump to the window where the channel was joined.
740 channel_find(channel)
741 Find channel from any server.
744 Server::channel_find(channel)
745 Find channel from specified server.
752 chat_type - String ID of chat protocol, for example "IRC"
757 hops - Hop count to the server the nick is using
759 gone, serverop - User status, 1 or 0
760 op, voice, halfop - Channel status, 1 or 0
762 last_check - timestamp when last checked gone/ircop status.
763 send_massjoin - Waiting to be sent in a "massjoin" signal, 1 or 0
766 Channel::nick_insert(nick, op, voice, send_massjoin)
767 Add nick to nicklist.
769 Channel::nick_remove(nick)
770 Remove nick from nicklist.
773 Channel::nick_find(nick)
774 Find nick from nicklist.
777 Channel::nick_find_mask(mask)
778 Find nick mask from nicklist, wildcards allowed.
781 Return a list of all nicks in channel.
783 Server::nicks_get_same(nick)
784 Return all nick objects in all channels in server. List is in format:
785 Channel, Nick, Channel, ...
792 chat_type - String ID of chat protocol, for example "IRC"
794 (..contains all the same data as Windowitem above..)
796 address - Host address of the queries nick
797 server_tag - Server tag used for this nick (doesn't get erased if
798 server gets disconnected)
799 unwanted - 1 if the other side closed or some error occured (DCC chats)
802 query_create(chat_type, server_tag, nick, automatic)
808 Query::query_change_server(server)
809 Change the active server of the query.
813 Find query from any server.
816 Server::query_find(nick)
817 Find query from specified server.
822 You should use the Server version of the function if possible, since
823 with different chat protocols the mask matching could be different.
825 mask_match(mask, nick, user, host)
826 Server::mask_match(mask, nick, user, host)
827 Return 1 if `mask' matches nick!user@host.
829 mask_match_address(mask, nick, address)
830 Server::mask_match_address(mask, nick, address)
831 Return 1 if `mask' matches nick!address.
833 masks_match(masks, nick, address)
834 Server::masks_match(masks, nick, address)
835 Return 1 if any mask in the `masks' (string separated with spaces)
836 matches nick!address.
842 logging - The rawlog is being written to file currently
843 nlines - Number of lines in rawlog
853 Returns all lines in rawlog.
855 rawlog_set_size(lines)
856 Set the default rawlog size for new rawlogs.
858 Rawlog::open(filename)
859 Start logging new messages in rawlog to specified file.
862 Stop logging to file.
864 Rawlog::save(filename)
865 Save the current rawlog history to specified file.
868 Send `str' to raw log as input text.
871 Send `str' to raw log as output text.
873 Rawlog::redirect(str)
874 Send `str' to raw log as redirection text.
880 fname - Log file name
881 real_fname - The actual opened log file (after %d.%m.Y etc. are expanded)
882 opened - Log file is open
883 level - Log only these levels
884 last - Timestamp when last message was written
885 autoopen - Automatically open log at startup
886 failed - Opening log failed last time
887 temp - Log isn't saved to config file
888 items - List of log items
891 type - 0=target, 1=window refnum
893 servertag - Server tag
896 log_create_rec(fname, level)
900 Add log to list of logs / save changes to config file.
904 Find log with file name.
910 Open log file and start logging.
915 Log::item_add(type, name, server)
918 Log::item_destroy(item)
919 Remove log item from log.
922 Log::item_find(type, item, server)
930 servertag - Ignore only in server
931 channels - Ignore only in channels (list of names)
932 pattern - Ignore text pattern
936 exception - This is an exception ignore
937 regexp - Regexp pattern matching
938 fullword - Pattern matches only full words
940 ignore_add_rec(ignore)
943 ignore_update_rec(ignore)
944 Update ignore record in configuration
946 ignore_check(nick, host, channel, text, level)
947 Server::ignore_check(nick, host, channel, text, level)
948 Return 1 if ignoring matched.
954 id - ID for the process
955 name - Name for the process (if given)
956 args - The command that is being executed
958 pid - PID for the executed command
959 target - send text with /msg <target> ...
960 target_win - print text to this window
962 shell - start the program via /bin/sh
963 notice - send text with /notice, not /msg if target is set
964 silent - don't print "process exited with level xx"
968 *** IRC specific functions. All objects below this are prefixed with Irc::
974 (..contains all the same data as core Server object..)
975 real_address - Address the IRC server gives
976 usermode - User mode in server
977 userhost - Your user host in server
980 (..contains all the same data as core Connect object..)
981 alternate_nick - Alternate nick to use if default nick is taken.
984 Connect to IRC server.
986 Server::get_channels(server)
987 Return a string of all channels (and keys, if any have them) in server,
988 like "#a,#b,#c,#d x,b_chan_key,x,x" or just "#e,#f,#g"
990 Server::send_raw(cmd)
991 Send raw message to server, it will be flood protected so you
992 don't need to worry about it.
994 Server::send_raw_now(cmd)
995 Send raw message to server immediately without flood protection.
997 Server::send_raw_split(cmd, nickarg, max_nicks)
998 Split the `cmd' into several commands so `nickarg' argument has only
999 `max_nicks' number of nicks.
1002 $server->send_raw_split("KICK #channel nick1,nick2,nick3 :byebye", 3, 2);
1004 Irssi will send commands "KICK #channel nick1,nick2 :byebye" and
1005 "KICK #channel nick3 :byebye" to server.
1007 Server::ctcp_send_reply(data)
1008 Send CTCP reply. This will be "CTCP flood protected" so if there's too
1009 many CTCP requests in buffer, this reply might not get sent. The data
1010 is the full raw command to be sent to server, like
1011 "NOTICE nick :\001VERSION irssi\001"
1013 Server::isupport(name)
1014 Returns the value of the named item in the ISUPPORT (005) numeric to the
1015 script. If the item is not present returns undef, if the item has no value
1016 then "" is returned use defined $server->isupport("name") if you need to
1017 check whether a property is present.
1018 See http://tools.ietf.org/id/draft-brocklesby-irc-isupport-03.txt
1019 for more information on the ISUPPORT numeric.
1025 setby - Nick of who set the ban
1026 time - Timestamp when ban was set
1029 Return a list of bans in channel.
1031 Channel::ban_get_mask(nick)
1032 Get ban mask for `nick'.
1034 Channel::banlist_add(ban, nick, time)
1035 Add a new ban to channel.
1037 Channel::banlist_remove(ban)
1038 Remove a ban from channel.
1044 type - Type of the DCC: chat, send, get
1045 orig_type - Original DCC type that was sent to us - same as type except
1046 GET and SEND are swapped
1047 created - Time stamp when the DCC record was created
1049 server - Server record where the DCC was initiated.
1050 servertag - Tag of the server where the DCC was initiated.
1051 mynick - Our nick to use in DCC chat.
1052 nick - Other side's nick name.
1054 chat - Dcc chat record if the request came through DCC chat
1055 target - Who the request was sent to - your nick, channel or empty
1056 if you sent the request
1057 arg - Given argument .. file name usually
1059 addr - Other side's IP address.
1060 port - Port we're connecting in.
1062 starttime - Unix time stamp when the DCC transfer was started
1063 transfd - Bytes transferred
1066 id - Unique identifier - usually same as nick
1067 mirc_ctcp - Send CTCPs without the CTCP_MESSAGE prefix
1068 connection_lost - Other side closed connection
1071 (..contains all the same data as core Dcc object..)
1073 skipped - Bytes skipped from start (resuming file)
1075 get_type - What to do if file exists? 0=default, 1=rename, 2=overwrite,
1077 file - The real file name which we use.
1078 file_quoted - 1 if file name was received quoted ("file name")
1081 (..contains all the same data as core Dcc object..)
1083 skipped - Bytes skipped from start (resuming file)
1085 file_quoted - 1 if file name was received quoted ("file name")
1086 waitforend - File is sent, just wait for the replies from the other side
1087 gotalldata - Got all acks from the other end
1090 dccs() - return list of all dcc connections
1093 Destroy DCC connection.
1096 dcc_find_item(type, nick, arg)
1097 Find DCC connection.
1100 dcc_find_by_port(nick, port)
1101 Find DCC connection by port.
1104 Windowitem::get_dcc(item)
1105 If `item' is a query of a =nick, return DCC chat record of nick.
1107 Dcc::chat_send(data)
1108 Send `data' to dcc chat.
1110 Server::dcc_ctcp_message(target, notice, msg)
1111 Dcc::ctcp_message(target, notice, msg)
1112 Send a CTCP message/notify to target.
1119 address - Nick's host
1120 destroy - Timestamp when this record should be destroyed
1121 server - Netsplitserver object
1122 channels - list of channels (Netsplitchannel objects) the nick was in
1125 server - The server nick was in
1126 destserver - The other server where split occured.
1127 count - Number of splits in server
1134 Server::netsplit_find(nick, address)
1135 Check if nick!address is on the other side of netsplit. Netsplit records
1136 are automatically removed after 30 minutes (current default)..
1139 Server::netsplit_find_channel(nick, address, channel)
1140 Find nick record for nick!address in channel `channel'.
1146 mask - Notify nick mask
1147 away_check - Notify away status changes
1148 idle_check_time - Notify when idle time is reset and idle was bigger
1150 ircnets - List of ircnets (strings) the notify is checked
1152 notifies() - Return list of all notifies
1155 notifylist_add(mask, ircnets, away_check, idle_check_time)
1156 Add new item to notify list.
1158 notifylist_remove(mask)
1159 Remove item from notify list.
1162 notifylist_find(mask, ircnet)
1166 notifylist_ison(nick, serverlist)
1167 Check if `nick' is in IRC. `serverlist' is a space separated
1168 list of server tags. If it's empty string, all servers will be checked.
1170 Server::notifylist_ison_server(nick)
1171 Check if `nick' is on IRC server.
1173 Notifylist::ircnets_match(ircnet)
1174 Returns 1 if notify is checked in `ircnet'.
1179 nick - nick of the client
1180 host - host of the client
1181 proxy_address - address of the proxy server
1182 server - Irc::Server for which we proxy to this client
1183 pass_sent - whether the client already send a PASS command
1184 user_sent - whether the client already send a USER command
1185 connected - whether the client is connected and ready
1186 want_ctcp - whether the client wants to receive CTCPs
1187 ircnet - network tag of the network we proxy