home *** CD-ROM | disk | FTP | other *** search
/ ftp.madoka.org / 2014.12.ftp.madoka.org.tar / ftp.madoka.org / pub / plum / 2.x / plum2_32_1.lzh / module / channel / join / invite.plm < prev    next >
Text File  |  1999-02-20  |  3KB  |  110 lines

  1. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><!-- $_ if 0; # -*- perl -*-
  2. # $Id: invite.plm,v 2.15 1999/01/28 12:19:07 hasegawa Exp $
  3. # copyright (c)1997-1999 Yoshinori Hasegawa <hasegawa@madoka.org>
  4.  
  5. package channel_join_invite;
  6.  
  7. $_ = 'channel_join_invite';
  8.  
  9. sub ss_invite {
  10.   local($serverno, $prefix, $cmd, @params) = @_;
  11.   local($userno, $regex, $user, $list);
  12.   $userno = $'userno[$serverno];
  13.   if (&check_mask($userno, $prefix, $params[1])) {
  14.     &'s_print($serverno, '', 'JOIN', $params[1]);
  15.   }
  16.   return ($prefix, $cmd, @params);
  17. }
  18.  
  19. sub check_mask {
  20.   local($userno, $prefix, $chan) = @_;
  21.   local($user, $chlist, $list);
  22.   foreach $mask (&'property($userno, 'mask')) {
  23.     ($user, $chlist) = split(/\s+/, $mask);
  24.     $list = '';
  25.     foreach $vchan (split(/\,/, $chlist || '')) {
  26.       $list = &'add($list, &'real($vchan));
  27.     }
  28.     if (&'channel($chan)) {
  29.       next unless (!$list || &'exist($list, $chan));
  30.     } else {
  31.       next unless (!$list || &'exist($list, '*'));
  32.     }
  33.     if ($user =~ /^\-/) {
  34.       $regex = &'regex(substr($user, 1));
  35.       return 0 if $prefix =~ /$regex/i;
  36.     }
  37.     if ($user =~ /^\+/) {
  38.       $regex = &'regex(substr($user, 1));
  39.     } else {
  40.       $regex = &'regex($user);
  41.     }
  42.     return 1 if $prefix =~ /$regex/i;
  43.   }
  44.   return 0;
  45. }
  46.  
  47. __END__
  48. --><HTML><HEAD>
  49. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-2022-JP">
  50. <LINK REV="made" HREF="mailto:hasegawa@madoka.org">
  51. <TITLE>channel/join/invite.plm</TITLE></HEAD><BODY>
  52.  
  53. $B%*%s%i%$%s%I%-%e%a%s%H(B
  54.  
  55.  
  56. <HR><H3>$BL>A0(B</H3>
  57.  
  58. channel/join/invite.plm - $B>7BT$5$l$?%A%c%s%M%k$KF~$k(B
  59.  
  60.  
  61. <HR><H3>$B@bL@(B</H3>
  62.  
  63. $B%A%c%s%M%k$K>7BT$5$l$?$H$-$K!"$=$N%A%c%s%M%k$KF~$j$^$9!#(B
  64.  
  65.  
  66. <HR><H3>$B%W%m%Q%F%#(B</H3>
  67.  
  68. <DL>
  69. <DT>  channel.join.invite.mask* $B%f!<%6%^%9%/(B [($B%A%c%s%M%kL>(B)]
  70. </DT>
  71. <DD>    $B>7BT$7$??M!"$*$h$S%A%c%s%M%k$,$3$3$G;XDj$5$l$?(B
  72.         $B$b$N$K%^%C%A$7$?>l9g!"$=$N%A%c%s%M%k$KF~$j$^$9!#(B
  73. </DD>
  74. </DL>
  75.  
  76.  
  77. <HR><H3>$B@_DjNc(B</H3>
  78.  
  79. <PRE>
  80. + channel/join/invite.plm
  81. channel.join.invite.mask: *!*@* #$B$^$I$+(B:*.jp
  82. channel.join.invite.mask: *!*@* #$B$W$i$`(B
  83. </PRE>
  84.  
  85. $B>7BT$5$l$?%A%c%s%M%k$,!V(B#$B$^$I$+(B:*.jp$B!W$+!V(B#$B$W$i$`!W$@$C$?>l9g$K!"(B
  86. $B$=$N%A%c%s%M%k$KF~$j$^$9!#(B
  87.  
  88. <PRE>
  89. + channel/join/invite.plm
  90. channel.join.invite.mask: pupu_j!*@*.jp
  91. channel.join.invite.mask: pupu_d!*@*.jp %$B$^$I$+(B
  92. </PRE>
  93.  
  94. $B$^$?!">7BT$7$??M$,!V(Bpupu_j!*@*.jp$B!W$K%^%C%A$7$?>l9g!"(B
  95. $B$=$N%A%c%s%M%k$KF~$j$^$9!#$^$?>7BT$5$l$??M$,!V(Bpupu_d!*@**.jp$B!W(B
  96. $B$K%^%C%A$7!"%A%c%s%M%k$,!V(B%$B$^$I$+!W$@$C$?>l9g!"!V(B%$B$^$I$+!W$K(B
  97. $BF~$j$^$9!#(B
  98.  
  99. <PRE>
  100. + channel/join/invite.plm
  101. channel.join.invite.mask: -*!*@* #$B$W$i$`(B
  102. channel.join.invite.mask: *!*@*
  103. </PRE>
  104.  
  105. $B>7BT$5$l$?%A%c%s%M%k$,!V(B#$B$W$i$`!W$@$C$?>l9g$O!"(B
  106. $B!V(B#$B$W$i$`!W$K$OF~$j$^$;$s!#$=$l0J30$N%A%c%s%M%k$@$C$?>l9g$O!"(B
  107. $B$=$N%A%c%s%M%k$KF~$j$^$9!#(B
  108.  
  109. </BODY></HTML>
  110.