• 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 Tag-Vergabe nach Request

Relentless

Well-Known Member
Contributor
Guten Tag Leute,

ich arbeite derzeit an einem Script, welches Usern ermöglichen soll bestimmte Gruppen nach Befehl zu erhalten. Sogenannte Tags, da ich dafür Gruppen benutzen möchte, die nur Sachen hinter dem Username hinzufügen. Wie dem auch sei...

Die Idee ist, dass ein beliebiger User einen Channel betritt, den man in der Config wählen kann und dann vom Bot angeschrieben wird mit einer Nachricht, wo Zahlen aufgelistet sind von 1 bis wie viele Gruppen es auch immer gibt und man dort einfach die Zahl als Chatnachricht zurück gibt, von der Gruppe, die man erhalten möchte.

Das ist so weit der Plan. Die Umsetzung ist, nun ja. Schwierig. Was JavaScript angeht bin ich ein ziemlicher Neuling aber ich lerne und verstehe schnell. Derzeit habe ich dieses Script (benutze übrigens die OKlib, die hat einige gute Funktionen, die mir gefallen): https://pastebin.com/jMqiQcra
Es wird auch vom Server angenommen und ich kann es auch ordentlich konfigurieren, allerdings bekomme ich keine Nachricht, wenn ich den eingestellten Channel betrete. Kann mir da jemand unter die Arme greifen? Fertiger Sourcecode bringt mir nichts. Ich möchte schließlich lernen, wie ich diese Probleme selbst löse.

Danke im Voraus,
Grüße :)
 

Diesmon

Tuetchen Dominator
is awesome!
Contributor
Insider
benutze übrigens die OKlib, die hat einige gute Funktionen, die mir gefallen

Danke schon mal dafür :D
Leider ist glaube ich die public doc atm nicht gaaanz aktuell. Muss @Tuetchen da mal auf die Füße treten >.>, aber sollte nix für dich relevantes sein.

Zu deinem Problem:
Das nachrichten schreiben ging bei mir von Anfang an. Ka was da bei dir nicht stimmt :D Da war alles richtig.

Zum rest:
3t4QRxl.png
 

Diesmon

Tuetchen Dominator
is awesome!
Contributor
Insider
Aso, beim letzten punkt [parseInt(ev.text) -1] kannst du auch nur [ev.text-1] machen, da in JS nur der Plus-operator vordefiniert ist für strings. Minus (-) ist noch frei. Sprich er versucht direkt den string in ne int zu kovertieren und die 1 abzuziehen.

Und wenn dich das out of date nicht stört (da du bisher nur core krams benutzt, welcher seit 1.0.0 drin ist) dann kannste es so lassen, Falls du es doch
"richtig" checken willst, hier nochmal der Beispiel code von der OKlib

Code:
function(sinusbot, config) {
    require('event').on('load', function() {
        var lib = require('OKlib.js');
        var version = '1.0.6'; //version you want of the lib
        if(!lib || !lib.general.checkVersion(version)){
            require('engine').log("OKlib could not be loaded or the installed version is not compatible with this script. The required version is: " + version + ". The latest version can always be downloaded from https://forum.sinusbot.com/resources/oklib.325/");
            return;
        }
        main(lib);
    });
    function main(lib){
 
Last edited:

Relentless

Well-Known Member
Contributor
Okay, hab es soweit, dass er mir erstmal eine Nachricht schreibt. Ich habe eine Testgruppe erstellt und diese in meiner Config mit der Nummer 1 verknüpft. Wenn ich dem Bot nun die Nummer 1 zurück gebe, bekomme ich meine Log-Nachricht: ev2.text + " ist keine gültige Zahl!
Was mich ein bisschen wundert, denn eigentlich sollte ja raus kommen, dass die 1 gültig ist.

Was noch viel witziger ist, ist dass der Bot die Zahl natürlich als Chatnachricht widergibt und das Event 'chat' wieder getriggered wird und das artet dann in einem ziemlichen großen Spam aus. :D
Kann man einen Check einbauen, dass nur Nachrichten von Usern an den Bot geprüft werden?
 

Relentless

Well-Known Member
Contributor
Puh.. ich sehe schon. Da gibt es noch eine Menge zu lernen aber ich bin schon mal stolz, dass ich das so weit hinbekommen habe. Danke für die ganze Hilfe. Das gilt auch für den anderen Post. :p
 

Tuetchen

Diesmon Dominator
is awesome!
Contributor
Insider
ein weiteres prob is das momentan nicht geprüft wird ob der Client den bot überhaupt aus dem channel anschreibt, wenn das irrelevant ist is gut so - wenn dus aber die channelvergabe an die joinrechte des channels koppeln willst kann man das momentan umgehen indem man den bot direkt anwhispert^^
 

Relentless

Well-Known Member
Contributor
Oh, das wäre echt extrem gut. Danke für den Tipp. Ich möchte ja nicht, dass der Bot bei jeder Nachricht getriggert wird, sondern nur bei Direktnachrichten aus dem Channel.

Ist halt ein wenig blöd, wenn man sich neu mit dem Thema befasst und leider nur dieses Forum hier hat um sowas zu besprechen. Deswegen habe ich auch letztens in der Shoutbox nach einem Discord oder so gefragt, wo man sich austauschen könnte.
Danke noch mal, mal gucken, was sich da machen lässt. Muss noch ein bisschen die Documentation studieren. :D
 

flyth

is reticulating splines
Staff member
Developer
Contributor
Deswegen habe ich auch letztens in der Shoutbox nach einem Discord oder so gefragt, wo man sich austauschen könnte.
Die "Shoutbox", also der Chat ist für Moderatoren und einige aktive Scriptentwickler direkt an Telegram angebunden, d.h. auch wenn der Chat leer aussieht, sehen einige Leute neue Nachrichten zeitnah und beantworten da ggf. Fragen.
 

Diesmon

Tuetchen Dominator
is awesome!
Contributor
Insider
Die "Shoutbox", also der Chat ist für Moderatoren und einige aktive Scriptentwickler direkt an Telegram angebunden, d.h. auch wenn der Chat leer aussieht, sehen einige Leute neue Nachrichten zeitnah und beantworten da ggf. Fragen.
Nicht desto trotz, gibt es einen? Würde mich auch mal interessieren.
 

flyth

is reticulating splines
Staff member
Developer
Contributor
Ich hatte damals mal einen angelegt, wurde nie benutzt. Aber technisch gesehen: ja.
 
Top