]> git.donarmstrong.com Git - infobot.git/commitdiff
- one more last try.
authordms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Wed, 21 May 2003 15:36:57 +0000 (15:36 +0000)
committerdms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Wed, 21 May 2003 15:36:57 +0000 (15:36 +0000)
- added support for wantnick+. will kill if we are +n.

git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@789 c11ca15a-4712-0410-83d8-924469b57eb5

src/UserExtra.pl

index aaf37c488f42ec5a6dbae2fa2311d659474b4681..d967932054e65630971ea1071e70f3bfbc3f893d 100644 (file)
@@ -841,7 +841,10 @@ if (0) {
     }
 
     # 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.");
@@ -859,14 +862,22 @@ if (0) {
        }
 
        # 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;
     }