# madoka 4.2 doc_plugin
__END__

                       ޤɤ  plugin  

                                     Copyright(c)1998- cookie
                                                       The madoka project
                                                   last update 2001/06/14


----------
⤯
1.  plugin
2.  plugin λ
3   ѿ
4.  ֥롼
4.1 madoka.pl
4.2 plugin/kanji.mpi
----------

1. plugin

  ޤɤ 4.0 ΤΤۤ plugin ȤΤޤ
  plugin ɲä뤳Ȥˤꤽʤ˵ǽĥ뤳ȤǤޤ


2. pluginλ

  plugin ̾掠֥롼Ȥ󶡤ޤ
  ѿ֥롼˰¤ΤǤ줵ĤС֤֤
  פǤ礦


3. ѿ

  ޤɤǻȤѿȤѿ򼨤ޤ
  ޤؤͤѹ˽붲⤢ޤ

  $at_state
    ưư bit Ȥ˻äƤޤ
    ˼ʳ bit ͤݾڤޤ

    bit  status
     0   auto nick
     1   auto mode 
     2   auto op (Ȥʤ뤿)
     3   auto down
     4   auto topic
     5   auto priv
     6   auto dcc ($dcc_state  bit 0 ƱǤ뤳)
     7   auto opget

  $bot_*
    $bot_ ǻϤޤѿϥ桼ͳ˻Ȥޤ
    ץǰȤƤޤ

  $cl_cn
     bit 饤Ȥ³Ƥ뤫ɤξ֤򼨤ޤ
    0 ΤȤ̤³1 ΤȤ³Ǥ

  $cl_max
    饤Ȥκ³Ǥdefault Ǥ 256 åȤޤ

  $cl_no
    ƥ饤Ȥ˿ֹ椬Ǽޤ
    äƤֹ椬߽Ƥ륯饤ȤȤʤޤ

  $cl_ok
     bit 饤Ȥǧڤɤξ֤򼨤ޤ
    0 ΤȤǧ1 ΤȤǧںѤǤ

  $dcc_state
    dcc  bit Ȥ˻äƤޤ
    ˼ʳ bit ͤݾڤޤ

    bit  status
     0   auto get ($at_state  bit 6 ƱǤ뤳)
     1   allow in channel
     2   refusename
     3   client ([dcc]client ꤵ)

  $homedir
    ۡǥ쥯ȥΰ֤ǼƤޤ

  $i, $j, $k, $l, $u 
    ѿǤƤݾڤޤ

  $interval
    mainloop ԤÿǤ
    åȤ줿ˤʤˤʤȰٶ롼פޤ

  $mdk_label
    ޤɤΤʤޤǤ̾ 'madoka' ȥåȤƤޤ

  $mdk_rc
    madoka.rc Τꡣdefault  ./madoka.rc Ǥ

  $mdk_modes
    madoka.modes Τꡣdefault  ./madoka.modes Ǥ

  $mdk_version
    ޤɤΥСäƤޤ
    "$mdk_label $mdk_version" ǡversion ɽȤޤ

  $per_sec
  $per_min
  $per_hour
  $per_day
    ꥹѿǤƻ֤Ȥ˥ꥹȤ˳Ǽ줿ؿ¹Ԥޤ

  $cmin, $chour, $cday
    $per_min, $per_hour, $per_day Υåѡ
    줾졢$min, $hour, $mday ȰۤʤäȤ $per_* ˥åȤ줿
    ֥롼󤬸ƤФޤ

  $perl_version
    perl ΥС󤬳ǼƤޤ
    5.6.0 ʹߤ 5.005 Ǥɽۤʤޤ

  $plugin_do
    ꥹѿǤ˳Ǽ줿ե̾Ƥ &plugin ǸƤФ
    ˼¹Ԥޤ

  $plugin_list
    ꥹѿǤȤƤץ饰ΤʤޤϤޤ
    ƥץ饰Ūˤѿ &list_add ʤȤޤ

  $plugin_sub
    ꥹѿǤ˳Ǽ줿ؿ̾ &plugin ǸƤФ˼¹Ԥ
    ޤ

  $sv ( == $sv[0])
    ³Ƥ/褦ȤƤ륵̾Ǥ  

  $sv_port ( == $sv_port[0])
    ³Ƥ/褦ȤƤ륵ФΥݡֹǤ

  $sv_state
    ФȤ³֤ bit Ȥ˻äƤޤ
    ˼ʳ bit ͤݾڤޤ

    bit  status
     0   Ф³Ƥ(1)     Ƥʤ(0)
     1   channel  join Ƥ(1) Ƥʤ(0)
     2   001 äƤ(1)     äƤʤ(0)
     3   IPv6 ˤ³(1)          IPv4 ˤ³(0)

  $sv_tm
    ФǸˤʤˤƤȤλ֡

  $sv_tmout
    ФȤΥॢȴֳ(sec)Ǥ
    λְʾʤˤʤȥФǤ줿Ȥߤʤޤ

  $sv_tmout_cn
    ³ΥФȤΥॢȴֳ(sec)Ǥ
    λְʾʤˤʤ³˼ԤȤߤʤޤ

  $us_state
    桼 bit Ȥ˻äƤޤ
    ˼ʳ bit ͤݾڤޤ

    bit  status
     0   nicklist 
     1   nicknumber 
     2   madoka.pid 
     3   fork ʤ

  $yr_cache
    [yuurii]cache ǻꤷͤäƤޤ

  $yr_invite
    [yuurii]invite ǻꤷͤäƤޤ
    0: off
    1: on

  $yr_owner
    owner ޥɼ¹ԸĤҤȤ user@domain ޤ
    $yr_owner = 'cookie\@.*\.madoka\.org';
    Τ褦ˤޤ

  $yr_timer
    [yuurii]timer ǻꤷͤäƤޤ

  $yr_version
    yuurii  version ꤷޤ

  @yr_nalias
    plugin/yuurii/convnick.mpi ǻѤ alias ե̾äƤޤ
    ͤ ('yuurii/.nalias', 'yuurii/.nalias2') Ǥ


4. ֥롼

4.1 madoka.pl

  ޤɤΤȤ߹ޤƤ¾Ѳǽʥ֥롼Ǥ

  &alias_chan
    @_ = ($chan);
      $chan Ϥ줿ͥ̾ [channel]alias= ǻꤵ줿 mask
      ˽äѴ֤ޤ

    return: ($chanr, $chanv) = (#chan:mask, %chan) η

  &cached
    @_ = ($mes, $chan, $code, $wait);
      å򥭥å夷Ƥ &sendSCL ޤ
      å夵줿åƱȯä &sendSCL 
      ޤ

  &check_chan
    @_ = ($chan);
      $chan Ϳ줿ͥ̾åޤ

    return: 0: ʤ
            1: 

  &check_chl
    @_ = ($chan);
      $chan Ϳ줿ͥ̾Ȥޤɤ¦ǻäƤͥ̾
      ʸʸפʤˤޤɤ¦ǻäƤͥ̾ˤ
      ֤ޤ
      ޤɤ¦ǻäƤʤͥ̾ξϤΤޤ֤ޤ

    return: $chan

  &check_host
    @_ = ($cl_no, @ip);
      $cl_no Υ饤Ȥ @ip ǻꤷ access ¤˥ޥå뤫
      åޤޥåʤä³ݤޤ

    return: 0: ޥåʤ(³)
            1: ޥå(³)

  &chl_split
    @_ = ($chan);
      , Ƕڤ줿 $chan ʬΥ褦Ȥޤ

    return: ($chan1, $chan2, ...)
            , ʬ줿ͥ

  &client
    @_ = ($cl_no, $line);
      饤ȤΥåȤδؿƤФޤ
      ޥɤȤˡ&cl_COMMAND ˽錄ޤ

  &cl_*
    饤ȤΥޥɽ롼

  &ctcp
    @_ = ($chan, $mes);
      CTCP(Client To Client Protocol) åȡδؿ
      Фޤ
      CTCP ΥޥɤȤ &ctcp_COMMAND ˽Ϥޤ

  &ctcp_*
    CTCP Υޥɽ롼

  &current_time
    @_ = undef;
      ߤλ֤ $year(ǯ()), $mon((1-12)), $mday((1-31)),
      $hour((0-23)), $min(ʬ(0-59)), $sec((0-59)) ˥åȤޤ

  &down
    @_ = ($mes);
      Ϥ줿($mes) STDERR ˤϤƤޤɤλޤ

  &init_client
    @_ = undef;
      饤Ȥ³Ȥ˼¹Ԥޤ

  &list_init
    @_ = ($list);
      $list  $list = "$;";

    return: ʤ

  &list_add
    @_ = ($list, @dist);
      $list  @dist äޤ

    return: 0: 
            1: 

  &list_delete
    @_ = ($list, @dist);
      $list  @dist ޤ

    return: 0: ٤Ƽ
            1: İʾ

  &list_change
    @_ = ($list, $dist1, $dist2);
      $list  $dist1  $dist2 ֤ޤ

    return: 0: 
            1: 

  &list_exist
    @_ = ($list, @dist);
      $list  @dist ¸ߤ뤫ɤĴ٤ޤ

    return: 0: ¸ߤʤ
            1: İʾ¸ߤ

  &mes
    @_ = ($mes, $chan);
      $mes  $chan Υ˽񤭽Фޤ
      
  &mio
    @_ = ($tag, $mes);
      [mio]conf= ꤷƤ硢ե $tag б
      ֤ޤꤷƤʤ $mes ֤ޤ

  &plugin
    @_ = undef;
      ƥޥ hook ǸƤФޤ
      [plugin]main=, bot= ꤷƤʤϤʤˤ⤷ޤ

  &read_rc
    @_ = undef;
      $mdk_rc ꤵƤե̾եȤɤߤߤޤ

  &_redo
    @_ = ($file, $line);
      $file Ƥ eval($line) ޤ

    return: 1: 
            0: ̤

  &search_file
    @_ = ($file);
      $file  ./, @plugindir, ./plugin/, (madoka.plΤdirectory)/plugin/,
      @INC νˤޤ
      ֤ͤϸĤäե path/filename Ȥʤޤ
      ʤä $file ֤ޤ

  &send
    @_ = ($p, $mes);
    $p = 'sv' || 'cl' || 'ccn' || 'cch' || 'cco';
      $p ǻꤵ줿Ȥ $mes 򤽤Τޤ޽Ϥޤ
      $p Ϥ줾졢
        sv : server
        cl : client (all)
        ccn: client (connected/all client)
        cch: client (connected/current client)
        cco: client (connected/other client)
      ȤʤäƤޤ

  &sendSCL
    @_ = ($mes, $chan, $code, $wait);
      &send('sv' , &send('cch' Ԥʤޤ
      $code ꤵƤȤϡ$mes δɤ $code ǤȤ
      JIS ѴԤޤ
      $wait ꤵƤȤϡꤵ줿ÿԤäȤȯ
      ޤ

  &server
    @_ = ($sv_no, $line);
      ФΥåȤδؿƤФޤ
      ޥɤȤˡ&sv_COMMAND ˽錄ޤ

  &sv_*
    ФΥޥɽ롼

  &taillog
    @_ = undef;
      taillog ([client]tail= ꤷƤ) 饤Ȥ˽Ϥޤ

4.2 plugin/kanji.mpi

  Υץ饰ϡɤѴôޤ
  ȤäƤ뤫ɤ &list_exist($plugin_list, 'kanji') ȽǤޤ

  Υץ饰ϡȾѥʤΤߤ sjis  euc ȸǧ
  ޤ

  &kanji_code
    @_ = ($mes);
      $mes δɤĴ٤֤ޤ

    return: 'jis'    : JIS Ǥ
            'euc'    : EUC Ǥ
            'sjis'   : SHIFT-JIS Ǥ

  &kanji_euc
    @_ = (*mes);
    @_ = (*mes, $code);
      $mes Ƥ euc ˤޤɤϼưȽ̤ޤ
      $code ꤵƤϡɤ $code ǤȤ
      Ѵޤ

  &kanji_jis
    @_ = (*mes);
    @_ = (*mes, $code);
      $mes Ƥ jis ˤޤɤϼưȽ̤ޤ
      $code ꤵƤϡɤ $code ǤȤ
      Ѵޤ

  &kanji_sjis
    @_ = (*mes);
    @_ = (*mes, $code);
      $mes Ƥ sjis ˤޤɤϼưȽ̤ޤ
      $code ꤵƤϡɤ $code ǤȤ
      Ѵޤ

