• 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 Wie bekommt man groupIds

Status
Not open for further replies.
bei
ev.clientServerGroups[1] bekommt man ein objekt aber wie bekomm ich aus diesen objekt eine servergroupid? also zb
ev.clientServerGroups[1].getId?

LÖSUNG:
if (ev.clientServerGroups) {
ev.clientServerGroups.forEach(function(group) {
log('Group found: ' + group.n + ', #' + group.i);
});
} else {
log('No groups found.');
}
 
Last edited:

Topsi

Member
Ich habe eigentlich nicht viel Ahnung von javascript, aber kannst du nicht mit einer for each in schleife über das objekt iterieren und dir mit log(..) die vorhandenen Schlüssel und Werte ausgeben lassen? Da wird dann doch bestimmt die id dabei sein.
 

Xuxe

Containerholic
Staff member
is awesome!
V.I.P.
Contributor
Insider
clientServerGroups an array of servergroups (if the bot knows about this)
ev.clientServerGroups[1]; sollte dir dann eine ID zurück geben...

http://www.w3schools.com/js/js_arrays.asp <= Hier kannst du etwas nach Lesen wie man mit Arrays umgeht.
 
Wenn ich alle gruppen durchgehe und überprüfe ob ev.clientServerGroups gleich eine gruppe ist die ich habe bekomme ich die nachricht das dies nicht der fall ist

wenn ich dich richtig verstehe sollte ja zb if (ev.clientServerGroups == 11) funktionieren
 

Xuxe

Containerholic
Staff member
is awesome!
V.I.P.
Contributor
Insider
Du kannst mit einem Array nicht ev.clientServerGroups == 1 (z.B) machen... das geht nicht.
Dann müsstest du mit indexOf() arbeiten in Javascript: http://www.w3schools.com/jsref/jsref_indexof_array.asp

Hier muss ich aber mal sagen wir Helfen zwar gern aber wir sind eigentlich nicht dazu da euch das Programmieren beizubringen.

Auf der Verlinkten Seite findest du einige gute Tutorials zum nachschlagen etc.
 
Das mag ja schön und gut seien danke dir hiermit auch habe halt keine ahnung von js arbeite eig mit java hab halt nur mit halbwissen rumgespielt und wegen nur halber api dokumentierung hier nachgefragt. :)
 

Xuxe

Containerholic
Staff member
is awesome!
V.I.P.
Contributor
Insider
Die Scripting Dokumentation ist soweit vollständig, ist ja auch richtig was das angeht kann man ja auch Fragen.
Aber wie man einen Index aus einem Array zieht ist halt Basis wissen wenn man Programmiert und das hat wenig mit der Dokumentation zutun :)

Aber nicht Falsch verstehen bitte, das war nicht böse gemeint! :x
 
Klar das es nichts mit der api zu tun hat habe wie gesagt nicht viel mit js zu tun deswegen wusste ich sowas auch ned aber eben weil ich nicht wusste wie hab ich hier nachgefragt :) danke für die gute antwort! Und ich weiß ned ob es eingeplant war aber kan man mit eurer api gruppen setzen und removen?
 

Xuxe

Containerholic
Staff member
is awesome!
V.I.P.
Contributor
Insider
Nein, aktuell geht das noch nicht, nur Kicken/Channel erstellen/Channel löschen. Ich denke das kommt aber durch aus noch in die API aber dazu muss @flyth was sagen :)
 

flyth

is reticulating splines
Staff member
Developer
Contributor
Yup, Gruppen-Änderungen sind für eine der kommenden Versionen geplant.

Zum eigentlichen Thema: servergroups ist ein Array aus Objekten bestehend aus Id und Name. Du kannst also über das Array iterieren und mit .id / .name dann auf die entsprechende Eigenschaft zugreifen. Ich gucke mal, dass ich die Beispiele erweitere. Momentan ist die Todo-Liste sehr voll ;)

Ah, und bitte: keine Doppelposts!
 

Patschi

Head of troll department / Xuxe dominator
Tier III
is awesome!
V.I.P.
is uber awesome!
Insider
Die Scripting Dokumentation ist soweit vollständig, ist ja auch richtig was das angeht kann man ja auch Fragen.

Verstehe ich das richtig: Doku ist fertig, aber derzeit noch nicht öffentlich? Oder bin ich gerade nur unfähig die Doku im Netz zu finden? :D
 
@flyth wenn ich es richtig verstanden habe sollte
chatPrivate(ev.clientId, ev.clientServerGroups[1].name);
chatPrivate(ev.clientId, ev.clientServerGroups[1].id);
jeweils name und id schreiben jedoch kommt nur
undefined
undefined
zurrück und im log steht auch nur 'TypeError: Cannot access member 'name' of undefined'
 

flyth

is reticulating splines
Staff member
Developer
Contributor
Ein Array in JS fängt bei 0 an - und wenn der Bot nicht die entsprechenden Rechte zum Auslesen der Gruppe hat, dann wird das Array ganz leer sein.

Kleines Beispiel:
Code:
if (ev.clientServerGroups) {
    ev.clientServerGroups.forEach(function(group) {
        log('Group found: ' + group.name + ', #' + group.id);
    });
} else {
    log('No groups found.');
}
 
im folgenden beispiel von @flyth kommt
015/08/24 08:52:02 626411f0 4e86d506 INFO Group found: undefined, #undefined
2015/08/24 08:52:02 626411f0 4e86d506 INFO Group found: undefined, #undefined
2015/08/24 08:52:02 626411f0 4e86d506 INFO Group found: undefined, #undefined
in der konsole
 

flyth

is reticulating splines
Staff member
Developer
Contributor
Welche Version verwendest du und auf welches Event bezieht sich das alles?
 

flyth

is reticulating splines
Staff member
Developer
Contributor
0.9.9 ist klar, aber ist das die aktuellste Version (im Info-Tab und beim Start gibt es noch eine eindeutige Versions-ID hinter dem 0.9.9)? Ich habe den Link vor ca. 2 Wochen aktualisiert. Es kann auch sein, dass die ID/Namen-Trennung erst danach passiert ist, dann müsstest du leider noch die kommende Version abwarten. Da sind aber noch ein paar Ungereimtheiten drin und das kann noch ein paar Tage dauern.
 
Status
Not open for further replies.
Top