--- trigger.pl~ 2007-01-19 22:43:49.000000000 -0600+++ trigger.pl 2010-04-07 22:10:09.000000000 -0500@@ -74,10 +74,12 @@ Examples: %|-channels '#chan1 #chan2' or -channels 'IRCNet/#channel' %|-channels 'EFNet/' means every channel on EFNet and is the same as -tags 'EFNet' -masks: %|The person who triggers it must match one of the given list of masks+ -not_masks: %|The person who triggers it must not match one of the given list of masks -hasmode: %|The person who triggers it must have the give mode Examples: %|'-o' means not opped, '+ov' means opped OR voiced, '-o&-v' means not opped AND not voiced -hasflag: %|Only trigger if if friends.pl (friends_shasta.pl) or people.pl is loaded and the person who triggers it has the given flag in the script (same syntax as -hasmode) -other_masks+ -not_other_masks -other_hasmode -other_hasflag: %|Same as above but for the victim for kicks or mode_nick.@@ -445,6 +447,27 @@ return (defined($nickname) && defined($address) && defined($server) && $server->masks_match($param, $nickname, $address)); } },+'not_masks' => {+ 'types' => \@all_types,+ 'sub' => sub {+ my ($param, $signal,$parammessage,$server,$channelname,$nickname,$address,$condition,$extra) = @_;+ return (defined($nickname) && defined($address) && defined($server) && !$server->masks_match($param, $nickname, $address));+ }+},+'away' => {+ 'types' => \@all_types,+ 'sub' => sub {+ my ($param, $signal,$parammessage,$server,$channelname,$nickname,$address,$condition,$extra) = @_;+ return $server->{usermode_away};+ }+},+'not_away' => {+ 'types' => \@all_types,+ 'sub' => sub {+ my ($param, $signal,$parammessage,$server,$channelname,$nickname,$address,$condition,$extra) = @_;+ return !$server->{usermode_away};+ }+}, 'other_masks' => { 'types' => ['kicks', 'mode_nick'], 'sub' => sub {@@ -454,6 +477,15 @@ return defined($other_address) && $server->masks_match($param, $extra->{'other'}, $other_address); } },+'not_other_masks' => {+ 'types' => ['kicks', 'mode_nick'],+ 'sub' => sub {+ my ($param, $signal,$parammessage,$server,$channelname,$nickname,$address,$condition,$extra) = @_;+ return 0 unless defined($extra->{'other'});+ my $other_address = get_address($extra->{'other'}, $server, $channelname);+ return defined($other_address) && !$server->masks_match($param, $extra->{'other'}, $other_address);+ }+}, 'hasmode' => { 'types' => \@all_types, 'sub' => sub {