On Sun, Apr 18, 2004 at 07:48:29AM -0400, Jeff Bisbee wrote:
> I got this bit of code from Martijn van Beers' http proxy bot and it
> handles the problem.  Basically just post nick to the IRC session with
> the new nick.   
> 
>     $kernel->post($irc_session, 'nick', $new_nick);
> 
> Here is the call in context:
> 
>     irc_433 => \&bot_nick_taken,
> 
>     sub bot_nick_taken
>     {
>       my ($kernel, $heap) = @_[KERNEL, HEAP];
>       substr($heap->{irc}{nick}, 0, 1)++; 
>       warn "Nick taken! Trying new nick $heap->{irc}{nick}";
>       $kernel->post($heap->{irc}{session}, 'nick', $heap->{irc}{nick});
>     }
> 

I tried doing just that, but didn't have any luck. I even tried adding a 'post' to 
restart the "login" process. It doesn't seem that the session ever shows up on 
IRC though.

I've been fighting with this one for a month. :)

sub irc_433  #nickname in use? Try to ghost it! Give it one shot, then quit.
{
    my $self=shift;
    my $server=shift;

    my $sess=$self->{KERNEL}->alias_resolve($server);
    my $heap=$sess->get_heap();
    my $nick=$heap->{"nick"};

    print "Error on $server : Nickname \"$nick\" in use.\n";
    $nick = ($nick . int(rand(10000)));
    $self->nick($nick);
    $self->{KERNEL}->post($sess, 'irc_001');
}


-- 
There are more acronyms floating around [NANAE] than feathers during a 
pillow fight. -- Beverly in NANAE

Reply via email to