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 Brauche Hilfe bei einem Script - online check

byFoen

Member
Hiermit will ich abfragen ob noch ein Supporter online ist, nach dem ein Supporter den Server verlassen hat. Es klappt aber einfach nicht. Würde mich sehr über uere hilfe freue. Danke

if (ev.toChannel == null) {
if(CheckIfPermitted(ev.client)) {
backend.getClients().forEach(function (clients) {
clients.getServerGroups().forEach(function (groups) {
if(config.cmd_permissiongroups.indexOf(groups.id()) == -1) {
backend.getChannelByID(230).update({
name: '➥ Support • Premium [Geschlossen]',
maxClients: 0,
});
}
});
});
}
}
 

Runningcore

Well-Known Member
Contributor
Hallo,

erstmal ein paar grundsätzliche Punkte:
1. Es gibt hier im Forum einen Code Tag, damit ist dein Code wenn du ihn postet entsprechend formatiert und für andere einfacher lesbar.
2. Deine Problembeschreibung ist schlecht bzw. fast nicht existent. Du solltest uns im Zweifel mitteilen was du erwartest was passieren soll und was anstelle davon passiert, damit jemand der helfen will einfacher das Problem nachvollziehen kann.
3. Leider ist dein Snippet etwas nackig und wäre mir etwas mehr Code drum rum einfacher vollständig nachzuvollziehen.

So nun zum Thema:
Ich gehe mal davon aus das Problem besteht aus dem Fakt das obwohl noch ein weiterer Supporter online ist dein Channel auf closed gesetzt wird bzw. im Zweifel die Funktion nicht zuverlässig funktioniert.
Das Problem ist klar du prüfst ja alle Clients und deren Gruppen auf die Gruppe(n) die in deiner Config stehen und immer irgendeine Gruppe die einem Benutzer zugeordnet ist nicht in deiner Liste der Config steht, dann wird der Channel geclosed, also sofern der Teil funktioniert, sieht aber eigentlich ok aus. (kam mich aber irren ist schließlich noch viel zu früh) o_O

Die simpelste Lösung die mir grade einfällt wäre in dem du einfach in einen Integer zählst wie viele Gruppenbesitzer noch online sind und dann wenn 0 channel closen.

Da ich grade unterwegs bin und am Handy bin ich zu faul dir ein Snippet dazu zu schreiben :po_O
 

tMuse

Active Member
Prüfe jeden User und dessen Gruppen mit forEach
Gebe deine SupportGruppe in der Config an
Das ganze natürlich an deinen Bedarf anpassen

JavaScript:
clients.getServerGroups().forEach(function (groups) {

    var supporter = 0;
    if (config.supportGroup === groups) {
        supporter++;
    }
    if (supporter === 0) {
        backend.getChannelByID(230).update({
        name: '➥ Support • Premium [Geschlossen]',
        maxClients: 0
        });
    } else {return;}
});
 
Top