Wie bekomme ich alle User eines Servers, die eine bestimmte Rolle besitzen [Dicord, JDA, Java]?
Ich arbeite nun schon seit ein paar Tagen an einem Discord bot und da ich bis jetzt noch keine Methode dafür gefunden haben, wollte ich mal nachfragen, wie ich alle User auf einem Discord Server bekommen kann, die eine bestimmte Rolle haben.
Vielen Dank schonmal im Voraus für alle Antworten.
4 Antworten
Einfach eine eigene Methode schreiben:
Ich würde eine Array Liste mit allen User Objekten anlegen und dann über den Index laufen und schauen, ob der jeweilige User Rolle XY besitzt. Wenn ja, wird dieser einer neuen Array Liste hinzugefügt.
Am Ende hast du eine ArrayListe mit allen User Objekten, die Rolle XY besitzen.
Ich glaube du meinst discord.js oder? Weil ich wusste nicht, dass es eine Java-Modul für die DiscordAPI gibt.
Funktioniert so: Erst alle User eines Servers in einer Collection sammeln und dann nach einer Rolle filtern.
Wenn es discord.js ist, kann ich dir gerne das ganze als Code-Beispiel zeigen.
VG Ishidres
Vielen Dank für eine Antwort erstmal aber es ist tatsächlich java :D und in der library finde ich keine Methode, in der ich nach den Rollen filtern kann. Ich werde deinen Lösungsansatz trotzdem mal versuchen umzusetzen.
Du kannst einfach Event.getGuild ().getMembersWithRoles (Role) ausführen
Könntest du dir zumindest einen eigenen Filter zusammenbauen?
- Alle Nutzer holen.
- Über Nutzerliste iterieren und pro Nutzer die Rolle überprüfen.
Jo
for (User u : Main.getJDA().getGuildById(**ID**).getUsers()) {
if (u.getRoles().contains(Main.getJDA().getGuildById(**ID**).getRoleByID(**ID**)) {
WHATEVER
}
}
PS: Ist frei geschrieben --> Die Methoden-Namen stimmen ggf. nicht.
Vielen Dank für diesen Lösungsansatz. Er hat funktioniert.