JDA - Für irgendeine Rolle prüfen?
Hey ich bin zurzeit am Programmieren von einem Discord-Bot und möchte bei meinem Ping Command (Ein Command, der einfach "Pong" zurückschreibt) Permissions testen. Alle die eine Rolle haben (Z.b. Member) die aber nicht zugelassen ist bekommen eine Fehlermeldung alle die gar-keine Rolle haben (ausnahme Admin) bekommen keine Fehler meldung aber auch kein "Pong" zurück.
Wenn ich aber als Admin (Egal ob mit oder ohne Rollen) bekomme IMMER pong zurück. Was ist mein Fehler??? Hier meine Links (musste beide auf Pastebin machen, wäre sonst spam bei gutefrage.net)
Am besten wäre es, wenn jemand noch ein anderes System benutzt, und dieses mir auch erklären kann.
Vielen Dank
:D
Ein Link zum Discord -Server ist auch auf pastebin :D
2 Antworten
Er soll als test bei dem Befehl "ping" ein Pong zurückgeben.
Dies sollte aber nur geschehen, wenn er eine Rolle hat, (Owner, Admin, Supporter, etc.)
Ansonsten soll er einen Fehler ausgeben, nun ist es so, das nicht mehr der "permsCore" das übernimmt, sondern der command an sich (hier -> cmdPing.java).
Ich bekomme aber kein "pong" zurück, wenn ich alle permissions habe, die ich brauche. Das ist mein Problem. Ich möchte andernfalls aber auch nicht, jedes mal ein "Du hast keine Permissions" in die Class der Commands zu schreiben.
Normalerweise ist im permsCore eine Nachricht eingebaut die eigentlich den Command (das ausgeben von Pong) unterbinden soll, und selbst die Fehlernachricht senden soll.
Wie gesagt, wäre cool wenn jemand selber ein Rollen / Permissions system hat, und ich das in meinen Quellcode benutzen könnte.
also ich habe das aus einem tutorial, und für mich steht im Code:
.anyMatch(r.getName()::contains)
Das wenn er Irgendetwas hat (anyMatch) und das er dann überprüft, ob die Rolle (r) den Spielernamen nimmt und überprüft, ob sie dabei ist (contains). Deshalb ist das glaube ich unverständlich für mich.. Im Tutorial hat er halt auch bei -ping wer keine Rolle hat, auch einen Fehler ausgegeben. Bin deshalb etwas verwirrt.
Schmeiß den Lambda-Filter raus und schreibe selbst einen Rollentest. Du solltest keine Snippets in deinem Code verwenden, die du nicht verstehst.
Was ist denn das erwartete Verhalten?
Hast du irgendein Verständnis von diesem riesigen Filterausdruck, den du da im Code hast? Soweit ich das sehe prüft der explizit auf Admin und Owner.