}
# wantNick. xk++
- if ($message =~ /^wantNick$/i) {
+ if ($message =~ /^wantNick(\+)?$/i) {
+ my ($force) = ($1) ? 1 : 0;
+ $force = 0 unless (&IsFlag("n"));
+
# cannot trust Net::IRC's nick()
if ($param{'ircNick'} eq $ident) {
&msg($who, "I hope you're right. I'll try anyway.");
}
# idea from dondelecarlo :)
- if ($param{'ircNick'} ne $ident and $param{'nickServ_pass'}) {
- &status("someone is using our nick; KILLing");
+ # todo: use cache{nickserv}
+ if ($param{'nickServ_pass'}) {
+ return if ($param{'ircNick'} eq $ident or $force == 0);
+
+ &status("someone is using our nick; GHOSTing");
+ &msg($who, "using GHOST on $param{'ircNick'}.");
&msg("NickServ", "GHOST $param{'ircNick'} $param{'nickServ_pass'}");
+
+ $conn->schedule(5, sub {
+ &status("going to change nick after GHOST.");
+ &nick( $param{'ircNick'} );
+ } );
+
return;
}
- &nick( $param{'ircNick'} );
-
return;
}