=encoding euc-jp =head1 NAME Net::IRC::Event - サブルーチン間でイベントデータを渡すためのクラス =head1 SYNOPSIS いまだありません.これらのドキュメントは作成中です. =head1 DESCRIPTION このドキュメントはメインのNet::IRCドキュメントの一部分です.もしまだ読 んでいなければ,続ける前に"perldoc Net::IRC"を行ってください. Net::IRC::EventはクライアントがIRC上で出会うであろう全てのイベントにつ いての重要な情報を扱う標準のインターフェースを定義します.これはPerlで 得ることができる構造体に等しいようなもので,さらに素晴らしい機能が少し 付け加えられています. =head1 METHOD DESCRIPTIONS このセクションはまだ作成中ですが,上手くいけばついに次のリリースで書か れるでしょう.このモジュールの詳細についてはCスクリプトとソー ス自体を参照してください. =head1 LIST OF EVENTS Net::IRCは完全にイベントベースのシステムで,最初は慣れるまでに時間がか かるでしょう.IRCサーバと通信するために,あるイベントを監視してそれが起 これば自作のサブルーチンを呼び出すように,Net::IRCのサーバコネクション に伝えます.問題は,もし皆さんが何に対して監視すればいいかを知らない場 合は助けにならないことです.下記はNet::IRCに渡すことができる起こりうる イベントの一覧で,それぞれに要約された説明がついています.これが手助け になるように期待します. =head2 Common events =over =item * nick "nick"イベントはクライアントがNICKメッセージを受け取ると発生します.こ れはそのクライアントと同じチャンネルにいる誰かがニックネームを変更した ことを意味します. =item * quit "quit"イベントはQUITメッセージを受け取ると発生します.これはそのクライ アントと同じチャンネルにいる誰かが切断したことを意味します. =item * join "join"イベントはJOINメッセージを受け取ると発生します.これはそのクライ アントがいるチャンネルに誰かが参加したことを意味します. =item * part "part"イベントはPARTメッセージを受け取ると発生します.これはそのクライ アントがいるチャンネルから誰かが去ったことを意味します. =item * mode "mode"イベントはMODEメッセージを受け取ると発生します.これはそのクライ アントと同じチャンネルにいる誰かがそのチャンネルの設定を変更したことを 意味します. =item * topic "topic"イベントはTOPICメッセージを受け取ると発生します.これはそのクラ イアントと同じチャンネルにいる誰かがそのチャンネルのトピックを変更した ことを意味します. =item * kick "kick"イベントはKICKメッセージを受け取ると発生します.これはそのクライ アントと同じチャンネルにいる誰か(そのクライアント自身かもしれません)が 力ずくで追い出されたことを意味します. =item * public The "public" event is triggered upon receipt of a PRIVMSG message to an entire channel, which means that someone on a channel with the client has said something aloud. "public"イベントはチャンネル全体へのPRIVMSGメッセージを受け取ると引き起 こされます.これはそのクライアントと同じチャンネルにいる誰かがなにかを 発言したことを意味します. =item * msg "msg"イベントは一つ以上のクライアントに向けて話しかけられたPRIVMSGメッ セージを受け取ると発生します.これは誰かがそのクライアントにプライベー トメッセージを送っていることを意味します.(自明過ぎるけど.:-) =item * notice "notice"イベントはNOTICEメッセージを受け取ると発生します.これは誰かが そのクライアントにパブリックあるいはプライベートの通知を送っていること を意味します.(曖昧すぎますか?) =item * ping "ping"イベントはPINGメッセージを受け取ると発生します.これはIRCサーバが クライアントに生存確認の質問をしていることを意味します.これを後述の CTCP PINGと取り違えないようにしてください. =item * other "other"イベントは分類できない種々なメッセージを受け取ると発生します.し かしおそらくこれに出会うことはあまりないでしょう. =item * invite "invite"イベントはINVITEメッセージを受け取ると発生します.これは誰かが そのクライアントが+iされたチャンネルに参加するのを許可していることを意 味します. =item * kill "kill"イベントはKILLメッセージを受け取ると発生します.これはIRCオペレー タの一人があなたの気の毒なお尻を蹴り飛ばしてオフラインにしたことを意味 します.バイバイ! =item * disconnect "disconnect"イベントはクライアントが通信しているIRCサーバとの接続を失う と発生します.これを"leaving"イベント(下記参照)と取り違えないようにして ください. =item * leaving "leaving"イベントはクライアントがIRCサーバとのコネクションを故意に閉じ ようとする直前に発生します.ここで終了する前に特別にしておきたいことを することができます. =item * umode "umode"イベントはクライアントが自身の個人的な設定のフラグを変更すると発 生します. =item * error "error"イベントはIRCサーバがクライアントに何か不平を言うと発生します. 実際には,"other"イベントの双子の悪い方みたいなものです. =back =head2 CTCP Requests =over =item * cping "cping"イベントはクライアントが他のユーザからCTCP PINGリクエストを受け 取ると発生します.この一般的なリクエストへの適切な応答方法の例がirctest スクリプト内にあります. =item * cversion "cversion"イベントはクライアントが他のクライアントからCTCP VERSIONリク エストを受け取ると発生します.これはIRCクライアントプログラムのバージョ ン情報を尋ねています. =item * csource "csource"イベントはクライアントが他のクライアントからCTCP SOURCEリクエ ストを受け取ると発生します.これはそのIRCクライアントプログラムのソース がどこにあるのかを尋ねています. =item * ctime "ctime"イベントは他のクライアントからCTCP TIMEリクエストを受け取ると発 生します.これはその端末の現地時間を尋ねています. =item * cdcc "cdcc"イベントはクライアントが他のクライアントから何らかのDCCリクエスト を受け取ると発生します.これはDCCコネクションの確立を試みています. =item * cuserinfo "cuserinfo"イベントはクライアントが他のクライアントからCTCP USERINFOリ クエストを受け取ると発生します.これはクライアントのユーザの個人情報を 尋ねています. =item * cclientinfo "cclientinfo"イベントはクライアントが他のクライアントからCTCP CLIENTINFOリクエストを受け取ると発生します.これは"clientinfo"が意味す るなにかを尋ねています. =item * cerrmsg "cerrmsg"イベントはクライアントが他のクライアントからCTCP ERRMSGリクエ ストを受け取ると発生します.これは前のCTCP通信中のプロトコルエラーを通 知しています. =item * cfinger "cfinger"イベントはクライアントが他のクライアントからCTCP FINGERリクエ ストを受け取ると発生します.これに対する応答方法はユーザ自身のモラルス タンスに最も任されているようです. =item * caction "caction"イベントはクライアントが他のクライアントからCTCP ACTIONメッセ ージを受け取ると発生します.そろそろNet::IRCがどのようにCTCPリクエスト を扱うか分かってきたことと思います. =back =head2 CTCP Responses =over =item * crping "crping"イベントはクライアントが他のユーザからCTCP PINGレスポンスを受け 取ると発生します.この一般的なリクエストへの適切な応答方法の例がirctest スクリプト内にあります. =item * crversion "crversion"イベントはクライアントが他のユーザからCTCP VERSIONレスポンス を受け取ると発生します. =item * crsource "crsource"イベントはクライアントが他のユーザからCTCP SOURCEレスポンスを 受け取ると発生します. =item * crtime "crtime"イベントはクライアントが他のユーザからCTCP TIMEレスポンスを受け 取ると発生します. =item * cruserinfo "cruserinfo"イベントはクライアントが他のユーザからCTCP USERINFOレスポン スを受け取ると発生します. =item * crclientinfo "crclientinfo"イベントはクライアントが他のユーザからCTCP CLIENTINFOレス ポンスを受け取ると発生します. =item * crfinger "crfinger"イベントはクライアントが他のユーザからCTCP FINGERレスポンスを 受け取ると発生します.これについてはジョークを考えることさえもしようと は思いません. =back =head2 DCC Events =over =item * dcc_open "dcc_open"イベントはクライアントと他のクライアントの間にDCCコネクション が確立されると発生します. =item * dcc_update "dcc_update"イベントはDCCコネクション上を何らかのデータが流れると発生し ます.例えばファイル転送の進行状況を測定するようなことに役立つでしょう. =item * dcc_close "dcc_close"イベントは,原因がエラーであろうと自然な理由であろうと,DCC コネクションが閉じると発生します. =item * chat "chat"イベントはDCC CHATコネクションの反対側の人からメッセージが送られ ると発生します.個人的に"msg"と同等として扱うこともできるでしょう. =back =head2 Numeric Events =over =item * ニューメリックイベントはとても多くあり,そして他の場所で詳しく説明され ています.詳しい説明についてはIRCのRFC(1495, http://cs-ftp.bu.edu/pub/irc/support/IRC_RFC)を,手短な一覧については Net::IRC::Event.pmのソースコードを参照してください. =back =head1 AUTHORS Greg Bacon Egbacon@adtran.comEとDennis Taylor Edennis@funkplanet.comEによって考えられ,初めに開発されました. Nat "King" Torkingtonによりアイデアと大量のコードが寄付されました. 現在はNet::IRC開発者メーリングリストのメンバーによって開発されています. 詳細はhttp://www.execpc.com/~corbeau/irc/list.htmlを参照してください. =head1 URL Net::IRCプロジェクトに関する最新のソースと情報は http://netirc.betterbox.net/にあります. =head1 SEE ALSO =over =item * perl(1). =item * RFC 1459: The Internet Relay Chat Protocol =item * http://www.irchelp.org/ : 優秀なIRCリソースの源 =back =head1 Translators 井上 謙次