# 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");
}
if ($firsttime) {
- &ScheduleThis(1, \&setupSchedulers);
+ &ScheduleThis(1, "setupSchedulers");
$firsttime = 0;
}
&rawout("MODE $ident $param{'ircUMode'}");
}
- &status("End of motd. Now lets join some channels...");
- if (!scalar @joinchan) {
- &WARN("joinchan array is empty!");
- @joinchan = &getJoinChans(1);
- }
-
# ok, we're free to do whatever we want now. go for it!
$running = 1;
&rawout("PRIVMSG Q\@CServe.quakenet.org :AUTH $param{'Q_user'} $param{'Q_pass'}");
}
- &joinNextChan();
+ &status("End of motd. Now lets join some channels...");
+ #&joinNextChan();
}
sub on_endofwho {
my ($event) = @_;
my $from = $event->from();
my $what = ($event->args)[0];
+ my $mynick=$conn->nick();
- &status("disconnect from $from ($what).");
+ &status("$mynick disconnect from $from ($what).");
$ircstats{'DisconnectTime'} = time();
$ircstats{'DisconnectReason'} = $what;
$ircstats{'DisconnectCount'}++;
return;
}
- if (!$conn->connect()) {
- &DEBUG("on_disconnect: 3");
- &WARN("not connected? help me. gonna call ircCheck() in 60s");
- &clearIRCVars();
- &ScheduleThis(1, "ircCheck");
- }
+ &WARN("scheduling call ircCheck() in 60s");
+ &clearIRCVars();
+ &ScheduleThis(1, "ircCheck");
}
sub on_endofnames {
return if ($netsplit);
# who == bot.
- if ($who eq $ident or $who =~ /^\Q$ident\E$/i) {
+ if ($who =~ /^\Q$ident\E$/i) {
if (defined( my $whojoin = $cache{join}{$chan} )) {
&msg($chan, "Okay, I'm here. (courtesy of $whojoin)");
delete $cache{join}{$chan};
### ROOTWARN:
&rootWarn($who,$user,$host,$chan) if (
- &IsChanConf("rootWarn") &&
+ &IsChanConf('RootWarn') &&
$user =~ /^~?r(oo|ew|00)t$/i
);
sub on_nick_taken {
$conn = shift(@_);
my $nick = $conn->nick();
- my $newnick = $nick.int(rand 10);
+ #my $newnick = $nick . int(rand 10);
+ my $newnick = $nick . "_";
- if ($nick eq $ident) {
- &DEBUG("on_nick_tane: nick eq ident... wtf?");
- return;
- }
-
- &DEBUG("on_nick_taken: ident => $ident");
+ &DEBUG("on_nick_taken: nick => $nick");
&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 {
$conn = shift(@_);
my ($event) = @_;
$chan = lc( ($event->to)[0] ); # CASING!!!
+ my $mynick = $conn->nick();
my $nick = $event->nick;
my $userhost = $event->userhost;
$who = $nick;
$msgType = "public";
- if (0 and !exists $channels{$chan}) {
- &DEBUG("on_part: found out we're on $chan!");
+ if (!exists $channels{$chan}) {
+ &DEBUG("on_part: found out $mynick is on $chan!");
$channels{$chan} = 1;
}
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: does this work?
- my $mynick = $conn->nick();
- if ($nick !~ /^\Q$ident\E$/ and $nick =~ /^\Q$mynick\E$/i) {
- &status("nickchange: own nickname became free; changing.");
+ # 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);
}
}
my @args = $event->args;
my $chan = $args[1];
- &status(">>> banned/$b_blue$chan$ob $b_cyan$args[0]$ob");
-
+ &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;