Bei Away => Raumwechsel

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ich hab mir vor einem Jahr schon Gedanken darüber gemacht, wie man realisieren könnte, dass man bei Away in einen anderen Raum geschubst wird. Nun... In meinem Chat ist diese Technik bereits umgesetzt, jedoch wollen auch viele wissen wie. Daher habe ich hier schonmal den Ansatz dazu, wie man zumindest vom Raum, in dem man sich gerade befindet, in einen Away Raum geschoben werden kann.

    Das Problem ist der Wechsel zurück. Dazu müsste man entweder ein Profilfeld anlegen, welches den aktuellen Raum wiederspiegelt oder im Away Grund den Raumnamen auslesen lassen und damit arbeiten. Jedoch hab ich mich mit dieser Sache nicht weiter beschäftigt.

    Zum Hauptthema muss man einfach nur den Away Handler in der Datei Plugins/CommandHandlers/TextCommands.pm abändern:

    Suche:

    sub away_handler
    {
    my($self,$main,$command,$text) = @_;

    my @ret=();

    if (my $error=check_gagged($main))
    {
    return $error;
    }
    elsif ($text eq "")
    {
    $main->{current_user}{away}=1;

    my $output = $main->createInfoOutput('awayon',{nick => $main->{current_user}{nick}});
    push @ret, $output->restrictToUser->restrictToCurrentRoom->setChangedAttributes('away');
    }
    else
    {
    $text = $main->toHTML($text);
    $main->{current_user}{away}=$text;

    my $output = $main->createInfoOutput('awayon_reason!',{nick => $main->{current_user}{nick}, reason => $text});
    push @ret, $output->restrictToUser->restrictToCurrentRoom->setChangedAttributes('away');
    }

    return \@ret;
    }



    Ersetze durch:

    sub away_handler
    {
    my($self,$main,$command,$text) = @_;

    my @ret=();

    if (my $error=check_gagged($main))
    {
    return $error;
    }
    elsif ($text eq "")
    {
    $main->{current_user}{away}=1;
    $main->{current_user}{room}="away";

    my $output = $main->createInfoOutput('awayon',{nick => $main->{current_user}{nick}});
    push @ret, $output->restrictToUser->restrictToCurrentRoom->setChangedAttributes('away','room');
    }
    else
    {
    $text = $main->toHTML($text);
    $main->{current_user}{away}=$text;
    $main->{current_user}{room}="away";

    my $output = $main->createInfoOutput('awayon_reason!',{nick => $main->{current_user}{nick}, reason => $text});
    push @ret, $output->restrictToUser->restrictToCurrentRoom->setChangedAttributes('away','room');
    }

    return \@ret;
    }


    Der rot markierte Bereich stellt den Raumnamen dar, in den der User geschubst wird. Demnach müsste der Raum also away heißen.

    Sollte er anders heißen, müssten dese Abschnitte dementsprechend abgeändert werden.

    Vielleicht findet sich ja mal jemand mit einer effizienten Lösung zum awayoff :rolleyes:

    553 mal gelesen