# 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");
my $x2 = ($event->args)[1];
$x2 =~ s/\s$//;
-# &nick( $param{'ircNick'} );
-
&DEBUG("on_ison: x1 = '$x1', x2 => '$x2'");
}
$conn = shift(@_);
# update IRCStats.
- $ident = $param{'ircNick'};
+ $ident = $conn->nick();
$ircstats{'ConnectTime'} = time();
$ircstats{'ConnectCount'}++;
if (defined $ircstats{'DisconnectTime'}) {
}
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;
# add ourself to notify.
- $conn->ison( $param{'ircNick'} );
+ $conn->ison($conn->nick());
# Q, as on quakenet.org.
if (&IsParam("Q_pass")) {
&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 =~ /^$ident$/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
);
$ident = $newnick;
} else {
&status(">>> $b_cyan$nick$ob materializes into $b_green$newnick$ob");
-
- if ($nick =~ /^\Q$param{'ircNick'}\E$/i) {
+ my $mynick=$conn->nick();
+ if ($nick =~ /^\Q$mynick\E$/i) {
&getNickInUse();
}
}
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};
###
- # does this work?
- if ($nick !~ /^\Q$ident\E$/ and $nick =~ /^\Q$param{'ircNick'}\E$/i) {
- &status("nickchange: own nickname became free; changing.");
- &nick( $param{'ircNick'} );
+ # 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;