XYZ schaut in dein Profil

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

      RE: XYZ schaut in dein Profil

      Das Addon habe ich heute mal bei mir ausprobiert, bekomme aber immer nur die Meldung "Der Benutzer admin ist nicht online", wenn ich in ein Profil schaue.

      Quellcode

      1. return [$main->createErrorOutput('notonline',{nick => $nick})] if ($#$candidates < 0);

      Diese Zeile ist ja für die Meldung verantwortlich ... kommentiere ich diese jedoch aus, bekomme ich angezeigt "Jörg schaut gerade in dein Profil" ... und das, wenn ich mein eigenes Profil betrachte.

      Ich habe dann mal mit einer if-Abfrage experimentiert:

      Quellcode

      1. if ($user->{name} ne $main->{current_user}{name})
      2. {
      3. return [$info->restrictToUser($user->{name})];
      4. }


      Dies führte leider dazu, dass alle User die Meldung erhielten, ich würde ihr Profil besichtigen.
      mit dem Originalcode?

      Quellcode

      1. sub profilevisit_handler
      2. {
      3. my($self,$main,$command,$text) = @_;
      4. my ($nick) = split(/\s+/,$text);
      5. return [$main->createErrorOutput('kick_namenotgiven')] unless defined($nick);
      6. my $candidates = $main->getPossibleOnlineUsers($nick);
      7. return [$main->createErrorOutput('notonline',{nick => $nick})] if ($#$candidates < 0);
      8. return [$main->createErrorOutput('ambiguousname',{nick => $nick})] if ($#$candidates > 0);
      9. my $user = $candidates->[0];
      10. my $output2 = $main->createInfoOutput('profilevisit_send',
      11. {
      12. admin => $main->{current_user}{nick},
      13. });
      14. return [$output2->restrictToUser($user->{name})];
      15. }


      Was müsste ich denn ändern, wenn der Eigentümer eines Profiles nicht diese Meldung bekommt, daß er/sie sein eigenes Profil besucht?

      Quellcode

      1. sub profilevisit_handler
      2. {
      3. my($self,$main,$command,$text) = @_;
      4. if ($user->{name} ne $main->{current_user}{name})
      5. {
      6. my ($nick) = split(/\s+/,$text);
      7. return [$main->createErrorOutput('kick_namenotgiven')] unless defined($nick);
      8. my $candidates = $main->getPossibleOnlineUsers($nick);
      9. return [$main->createErrorOutput('notonline',{nick => $nick})] if ($#$candidates < 0);
      10. return [$main->createErrorOutput('ambiguousname',{nick => $nick})] if ($#$candidates > 0);
      11. my $user = $candidates->[0];
      12. my $output2 = $main->createInfoOutput('profilevisit_send',
      13. {
      14. admin => $main->{current_user}{nick},
      15. });
      16. return [$output2->restrictToUser($user->{name})];
      17. }
      18. }


      Vielleicht so?!
      Hallo TrioxX,

      dann kommt:
      Failed to load the file ./Plugins/CommandHandlers/ProfileVisit.pm. Possible reasons:

      * The file doesn't exist
      * The file is incomplete
      * The program is not permitted to read the file

      Please contact the webmaster.

      Perl error message:
      Global symbol "$user" requires explicit package name at ./Plugins/CommandHandlers/ProfileVisit.pm line 24. ?!?


      Die Variable $user wird ja erst später durch "my $user = $candidates->[0];" deklariert.

      Und mit dem Originalcode der ProfilVisit.pm bekommt man nur die Meldung:
      Der Benutzer st%2ffpzks ist nicht online.
      Stimmt, nicht aufgepasst...

      Quellcode

      1. sub profilevisit_handler
      2. {
      3. my($self,$main,$command,$text) = @_;
      4. my ($nick) = split(/\s+/,$text);
      5. return [$main->createErrorOutput('kick_namenotgiven')] unless defined($nick);
      6. my $candidates = $main->getPossibleOnlineUsers($nick);
      7. return [$main->createErrorOutput('notonline',{nick => $nick})] if ($#$candidates < 0);
      8. return [$main->createErrorOutput('ambiguousname',{nick => $nick})] if ($#$candidates > 0);
      9. my $user = $candidates->[0];
      10. if ($user->{name} ne $main->{current_user}{name})
      11. {
      12. my $output2 = $main->createInfoOutput('profilevisit_send',
      13. {
      14. admin => $main->{current_user}{nick},
      15. });
      16. return [$output2->restrictToUser($user->{name})];
      17. }
      18. }