# Version: 20000126
# NOTE: Based on code by Kevin Lenzo & Patrick Cole (c) 1997
#
+use vars qw(%chanconf);
# GENERIC. TO COPY.
sub on_generic {
if ($message =~ s/^\.//) { # dcc chat commands.
### TODO: make use of &Forker(); here?
- &loadMyModule( $myModules{'ircdcc'} );
+ &loadMyModule( $myModules{'UserDCC'} );
&DCCBroadcast("#$who# $message","m");
### ROOTWARN:
&rootWarn($who,$user,$host,$chan) if (
- &IsChanConf("rootWarn") &&
+ &IsChanConf('RootWarn') &&
$user =~ /^~?r(oo|ew|00)t$/i
);
&status("nick taken ($nick); preparing nick change.");
$conn->whois($nick);
- $conn->schedule(5, sub {
+ #$conn->schedule(5, sub {
&status("nick taken; changing to temporary nick ($nick -> $newnick).");
&nick($newnick);
- } );
+ #} );
}
sub on_notice {
my $chans = join(' ', &getNickInChans($nick) );
&status(">>> $b_cyan$nick$ob has signed off IRC $b_red($ob$reason$b_red)$ob [$chans]");
- if ($nick =~ /^\Q$ident\E$/) {
- &ERROR("^^^ THIS SHOULD NEVER HAPPEN (10).");
- }
###
### ok... lets clear out the cache
delete $chanstats{lc $nick};
###
- # FIXME: broken for multiple connects
- #my $mynick = $conn->nick();
- #if ($nick !~ /^\Q$ident\E$/ and $nick =~ /^\Q$mynick\E$/i) {
- #&status("nickchange: own nickname became free; changing.");
- #&nick($mynick);
- #}
+ # if we have a temp nick, and whoever is camping on our main nick leaves
+ # revert to main nick. Note that Net::IRC only knows our main nick
+ if ($nick eq $conn->nick()) {
+ &status("nickchange: own nick \"$nick\" became free; changing.");
+ &nick($mynick);
+ }
}
sub on_targettoofast {
my @args = $event->args;
my $chan = $args[1];
- &status(">>> banned/$b_blue$chan$ob $b_cyan$args[0]$ob");
- #FIXME if $args[0] == me then kill autojoin!
+ &status(">>> banned/$b_blue$chan$ob $b_cyan$args[0]$ob, removing autojoin for $chan");
+ delete $chanconf{$chan}{autojoin};
&joinNextChan();
}
$conn = shift(@_);
my ($event) = @_;
my @args = $event->args;
+ my $chan = $args[1];
- &DEBUG("on_badchankey: args => @args");
+ &DEBUG("on_badchankey: args => @args, removing autojoin for $chan");
+ delete $chanconf{$chan}{autojoin};
&joinNextChan();
}
&joinNextChan();
}
+# TODO not used yet
+sub on_stdin {
+ my $line = <STDIN>;
+ chomp($line);
+ &FIXME("on_stdin: line => \"$line\"");
+}
+
1;