#######################################################################
#####
-# Usage: &hookMode($chan, $modes, @targets);
+# Usage: &hookMode($nick, $modes, @targets);
sub hookMode {
- my ($chan, $modes, @targets) = @_;
+ my ($nick, $modes, @targets) = @_;
my $parity = 0;
- $chan = lc $chan; # !!!.
+ if ($chan =~ tr/A-Z/a-z/) {
+ &VERB("hookMode: cased $chan.",2);
+ }
my $mode;
foreach $mode (split(//, $modes)) {
# modes w/ target affecting nick => cache it.
if ($mode =~ /[bov]/) {
+ if ($mode eq "o" and $nick eq "ChanServ" and $target =~ /^\Q$ident$\E/i) {
+ &DEBUG("hookmode: chanserv deopped us! asking");
+ &chanServCheck($chan);
+ }
+
$channels{$chan}{$mode}{$target}++ if $parity;
delete $channels{$chan}{$mode}{$target} if !$parity;
}
my($chan) = @_;
my $l = $channels{$chan}{'l'};
+ if (scalar keys %netsplitservers) {
+ &WARN("clV: netsplit active (1); skipping. (netsplit => $netsplit)");
+ return;
+ }
+
# only change it if it's not set.
if (defined $l and &IsChanConf("chanlimitcheck")) {
my $plus = &getChanConfDefault("chanlimitcheckPlus", 5, $chan);
sub on_mode {
my ($self, $event) = @_;
my ($user, $host) = split(/\@/, $event->userhost);
- my @args = $event->args();
- my $nick = $event->nick();
- my $chan = ($event->to)[0];
+ my @args = $event->args();
+ my $nick = $event->nick();
+ $chan = ($event->to)[0];
$args[0] =~ s/\s$//;
&status(">>> mode $b_yellow\[$ob$b@args$b_yellow\]$ob by $b_cyan$nick$ob");
} else { # MODE
&status(">>> mode/$b_blue$chan$ob $b_yellow\[$ob$b@args$b_yellow\]$ob by $b_cyan$nick$ob");
- &hookMode($chan, @args);
+ &hookMode($nick, @args);
}
}
sub on_modeis {
my ($self, $event) = @_;
my $nick = $event->nick();
- my ($myself,$chan,@args) = $event->args();
+ my ($myself, undef,@args) = $event->args();
+ $chan = ($event->args())[1];
- &hookMode(lc $chan, @args); # CASING.
+ &hookMode($nick, @args);
}
sub on_msg {
} elsif ($ver =~ /epic/i) {
$ver{epic}{$nick} = $ver;
} elsif ($ver =~ /mirc/i) {
+ &DEBUG("verstats: mirc: $nick => '$ver'.");
$ver{mirc}{$nick} = $ver;
} elsif ($ver =~ /ircle/i) {
$ver{ircle}{$nick} = $ver;
} elsif ($ver =~ /xircon/i) {
$ver{xircon}{$nick} = $ver;
} else {
+ &DEBUG("verstats: other: $nick => '$ver'.");
$ver{other}{$nick} = $ver;
}
}