Deprecated: Use of "parent" in callables is deprecated in /var/www/html/forum/src/vendor/league/flysystem-eventable-filesystem/src/EventableFilesystem.php on line 431
  • If you need help or want to discuss things, you now can also join us on our Discord Server!
  • A first preview of the unlimited version of SinusBot can be found in the Upcoming Changes thread. A version for Windows will follow, but we don't have a release date, yet.

DE [Suche] Anti-Dauersenden Skript

AbsolutLeon

Active Member
Guten Abend,
dies ist einer meiner ersten Skript Anfragen, da folgen wahrscheinlich noch ein paar Anfragen (nur als Vorwarnung). 😬

Ich suche ein Skript, was gewisse Aktionen gegen Dauersenden durchführt.

Bevor die Fragen kommen, warum ich so etwas überhaupt anfordere, beantworte ich die Frage vorab.
Ich nutze ein Ranking System, was natürlich durch das Dauersenden sehr einfach ausgenutzt werden kann/wird.
Außerdem ist sowieso so ein dauerhaftes Rauschen im Hintergrund für eine ordentliche Unterhaltung auch nervig.
Dabei möchte ich noch anhängen, dass ich nicht, wie ein Vorgänger, mit dem Erzwingen von Push-To-Talk arbeiten möchte.

Da es sehr wahrscheinlich nicht möglich ist, die Aufnahmemethoden auszulesen, würde ich mit der Untätigkeitszeit arbeiten.
Meine Idee wäre, wenn innerhalb einer Zeitspanne gar keine Untätigkeitszeit bei einem User vorhanden ist, eine Aktion durchzuführen.
Beispiel: Wenn ein User innerhalb von 5 Minuten keine Untätigkeitszeit hat, wird dieser User vom Server gekickt.
Dabei würde ich das Skript mit folgenden Angaben/Auswahlen arbeiten lassen:

  • Zeitspanne (in Sekunden)
  • Aktion bei Dauersenden (Nachricht, Anstupsen, Verschieben, Channel Kick, Server Kick oder Bann)
  • Nachricht (bei Nachricht, Anstupsen, Kick oder Bann)
  • Ignorierte Servergruppen (Angabe mit IDs)
  • Ignorierte Channel (Angabe mit IDs)
Danke im Voraus

Mit freundlichen Grüßen
Leon
 
Last edited:

TwentyFour

BinusSot Junkie
V.I.P.
Contributor
Insider
Vorab ... sehr interessante Idee finde ich. Glaube die Kunst hierbei ist, die diskreten Abtastzeiträume so zu wählen, dass einerseits kein "viel Redender" fälschlich als Dauersender geflaggt wird, anderseits aber das Skript bei großen Servern und/oder zu kleinen Check-Intervallen in die Knie geht.

Liest dein Ranking-System auch die Idle-Zeit aus, oder ist das einfach ne Kombination aus Idle-Mover und dass der AFK-Channel dann ignoriert wird beim Rank-System?
 

AbsolutLeon

Active Member
Vorab ... sehr interessante Idee finde ich. Glaube die Kunst hierbei ist, die diskreten Abtastzeiträume so zu wählen, dass einerseits kein "viel Redender" fälschlich als Dauersender geflaggt wird, anderseits aber das Skript bei großen Servern und/oder zu kleinen Check-Intervallen in die Knie geht.

Liest dein Ranking-System auch die Idle-Zeit aus, oder ist das einfach ne Kombination aus Idle-Mover und dass der AFK-Channel dann ignoriert wird beim Rank-System?
Naja, die Zeitangabe erfolgt ja durch den Admin selber und daher liegt die Verantwortung bei ihm. Du kannst ja als Skript Developer nicht die Verantwortung für die Eingabe eines Users übernehmen. Du kannst es höchstens durch Tipps und Vorgaben in die richtige Richtung lenken. Also ich denke, wenn das Skript im Minutentakt die Untätigkeitszeit überprüft, sollte das Skript keine Probleme machen. Theoretisch liest das Ranking System auch die Idle-Zeit aus, diese wird aber nicht mit in die aktive Zeit (Ranking-Zeit) einberechnet. Ein Idle-Mover und das Ignorieren des AFK-Channel ist auch bereits integriert. Nur in diesen ganzen Systemen gibt es halt diese Lücke mit dem Dauersenden.
 
Last edited:

maxx8888

Active Member
Das wäre perfekt!

Bin genau wegen dem gleichen Problem hier aufgeschlagen.
Aber scheint leider so als wäre dieser Thread eingeschlafen :/
 

TwentyFour

BinusSot Junkie
V.I.P.
Contributor
Insider
Hab mir das Ganze mal angeschaut ... lässt sich leider nicht angemessen umsetzen.
Gibt einfach keinen zuverlässigen Live-Zugriff auf die Idle-Time ... und da eben diese inexakten Daten die Grundlage des Skriptes bilden würden, lässt sich das aus meiner Sicht nicht sinnvoll umsetzen. :(
Erklärt wohl die fehlenden Rückmeldungen. :cool:
 

maxx8888

Active Member
Danke erst mal für die Mühe das Du Dir das mal angesehen hast!
Ich hab schon vermutet das die Idle Zeit alleine ein Problem werden könnte :-/...

Mir ist noch ein Verhalten aufgefallen, dass hier vielleicht auch helfen könnte und einfacher zu implementieren wäre.
Wenn da mehrere Leute im Raum sind ist es sowieso so das ein Dauersender auf die Nerven geht. Das heißt Dauersender halten sich eher alleine in einem Raum auf (zumindest bei mir).

Was würdest du/ihr davon halten, wenn einfach Leute die sich alleine in einem Channel aufhalten, egal ob Idle oder nicht, nach einer gewissen Zeit gemoved werden? Wäre das vielleicht einfacher zu realisieren?
 

maxx8888

Active Member
Hab heute mal das Script getestet. Vielen Dank für Deine mühe!!

Bekomme nachdem das script einige Zeit gelaufen ist folgende Fehler im Instanz Log:

2021-01-24T19:55:35+01:00 error on setTimeout/setInterval callback: Uncaught exception: TypeError: Cannot read property 'forEach' of undefined at anti-solitary:401:15 ignoreGroups.forEach((group) => { ^ Stack trace: TypeError: Cannot read property 'forEach' of undefined at TakeAction (anti-solitary:401:16) at CheckTime (anti-solitary:387:6)
 
Top