Ignorieren von Admins verbieten

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

      Ignorieren von Admins verbieten

      Wieder eine Macke :D Ich hab ständig das Problem, dass mich irgendwelche User ignorieren und danach die Sau rauslassen. Raus kommt sowas dann erst, wenn man die Logs ließt. Um dieses Problem direkt im Vorraus aus der Welt zu schaffen, hilft diese kleine Erweiterung. Sie sorgt dafür, dass man eigentlich niemanden ignorieren kann, der einen höheren Status hat, als man selbst. Wobei dies natürlich anpassbar ist (falls man nen Knuddels Chat hat, wird man nämlich dieses Problem haben, da man es dort ja mit den Rängen übertrieben hat...) Folgende Anleitung hilft euch erst einmal, dass Problem grundlegend zu beheben:

      Öffnet die Datei ignoring.pm (Plugins/CommandHandlers) und sucht nach:


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


      Fügt direkt darunter ein :


      my ($nick) = split(/\s+/,$text);
      my $candidates = $main->getPossibleOnlineUsers($nick);
      my $user = $candidates->[0];
      return [$main->createErrorOutput('ign_cantignore',{nick => $user->{nick}})] if ($user->{tempgroup} > 1);


      Öffnet die german.lng

      Sucht nach

      error_ungag_admin =>


      Fügt darunter ein :

      error_ign_cantignore => '%%nick%% kann von dir nicht ignoriert werden!',


      Sollte es nun jemanden geben, der mehr Ränge als User hat, kann man in folgender Zeile einfach den Userstatus ändern (User=0 , Admin=5 , Chat-Master=10 ist eigentlich Standard):

      $user->{tempgroup} > 1);


      Aus der 1 muss nun der Wert gemacht werden, den man für angebracht hält ;)

      Zum Eintrag in der Datenbank
      Hi, das Addon funktioniert soweit einwandfrei.
      Nur sobald man /ignore eingibt ohne einen Usernamen anzugeben (um die aktuelle Liste anzuzeigen) bekommt man halt die Fehlermeldung wenn man versuchen würde einen Admin zu ignorieren.
      Kann man da irgendwas dran machen?
      Theoretisch kann man sogar die ganze Abfrage etwas abkürzen...

      Suche:

      Quellcode

      1. elsif ($#$candidates > 1)
      2. {
      3. push @toDo,$main->createErrorOutput('ambiguousname',{nick => $_});
      4. }


      Füge darunter ein:

      Quellcode

      1. elsif ($user->{tempgroup} > 1)
      2. {
      3. push @toDo,$main->createErrorOutput('ign_cantignore',{nick => $_});
      4. }


      Sollte eigentlich reichen. Falls nicht, sag Bescheid.
      Wenn ich das so mache kommt folgende Fehlermeldung:

      Quellcode

      1. Perl error message:
      2. Global symbol "$user" requires explicit package name at /is/htdocs/***/projekte/chat/cgi-bin/gtchat/Plugins/CommandHandlers/Ignoring.pm line 61.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Cyberhawk“ ()

      Ich glaube du schlägst mich gleich :D

      Quellcode

      1. Fatal error occured: Can't use string ("cyberhawk") as a HASH ref while "strict refs" in use at /is/htdocs/***/projekte/chat/
      2. cgi-bin/gtchat/Plugins/CommandHandlers/Ignoring.pm line 54.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Cyberhawk“ ()

      Och... Gibt schlimmeres... Zudem bin ich ja selbst Schuld :D

      Also... Von Vorne :D

      Suche:

      Quellcode

      1. elsif ($#$candidates > 1)
      2. {
      3. push @toDo,$main->createErrorOutput('ambiguousname',{nick => $_});
      4. }


      Füge darunter ein:

      Quellcode

      1. my ($nick) = split(/\s+/,$text);
      2. my $candidates = $main->getPossibleOnlineUsers($nick);
      3. my $user = $candidates->[0];
      4. elsif ($user->{tempgroup} > 1)
      5. {
      6. push @toDo,$main->createErrorOutput('ign_cantignore',{nick => $_});
      7. }


      Bis zum nächsten Mal :D
      So, bei dieser Variante kommt folgendes:

      Quellcode

      1. Perl error message:
      2. syntax error at /is/htdocs/***/projekte/chat/
      3. cgi-bin/gtchat/Plugins/CommandHandlers/Ignoring.pm line 64, near "elsif"syntax error at /is/htdocs/***/projekte/chat/cgi-bin/gtchat/Plugins/CommandHandlers/Ignoring.pm line 101, near "}"


      Habe dann mal versucht den Code so einzusetzen:

      Quellcode

      1. elsif ($user->{tempgroup} > 1)
      2. {
      3. my ($nick) = split(/\s+/,$text);
      4. my $candidates = $main->getPossibleOnlineUsers($nick);
      5. my $user = $candidates->[0];
      6. push @toDo,$main->createErrorOutput('ign_cantignore',{nick => $_});
      7. }


      Leider klappt das auch nicht und es kommt leider wieder folgender Fehler:

      Quellcode

      1. Perl error message:
      2. Global symbol "$user" requires explicit package name at /is/htdocs/***/projekte/chat/
      3. cgi-bin/gtchat/Plugins/CommandHandlers/Ignoring.pm line 61.


      Irgendwann treibt es dich in den Wahnsinn. :D
      Ausgeschlafen geht sowas besser :rolleyes:

      Aaaaaaaaalso....

      Suche:

      Quellcode

      1. my($self,$main,$command,$text) = @_;


      Füge darunter ein:


      Quellcode

      1. my ($nick) = split(/\s+/,$text);
      2. my $candidates = $main->getPossibleOnlineUsers($nick);
      3. my $user = $candidates->[0];


      Suche:

      Quellcode

      1. elsif ($#$candidates > 1)
      2. {
      3. push @toDo,$main->createErrorOutput('ambiguousname',{nick => $_});
      4. }


      füge darunter ein:

      Quellcode

      1. elsif ($user->{tempgroup} > 1)
      2. {
      3. push @toDo,$main->createErrorOutput('ign_cantignore',{nick => $_});
      4. }