home *** CD-ROM | disk | FTP | other *** search
/ ftp.madoka.org / 2014.12.ftp.madoka.org.tar / ftp.madoka.org / pub / plum / 2.x / plum2_28_2.lzh / module / channel / join / kick.plm < prev   
Text File  |  1998-10-15  |  2KB  |  92 lines

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