Ändern Benutzer mit nickname discord.js
Ich Frage mich, wenn Sie helfen können (ich Suche es und nichts...) ich Lerne, wie man die Arbeit mit discord.js Knoten und das will ich ändern meine Benutzer-nickname (nicht den Benutzernamen selbst)
Mein code ist
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
console.log('I am ready!');
});
client.on('message', message => {
if (message.content.includes('changeNick')) {
client.setNickname({nick: message.content.replace('changeNick ', '')});
}
});
client.login('token');
InformationsquelleAutor Bossa | 2016-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend der Docs, können Sie nur ändern, eine Gilde Mitglieder Spitzname, so müssen Sie das member-Objekt an den client seine id, und legen Sie die Spitznamen, die es, wie gezeigt, in der Dokumentation nach, Wie diese:
Beachten Sie, dass dies nicht immer funktionieren, wird der client müssen
changeNickname
oder es wird nicht funktionierenInformationsquelleAutor Zaidhaan Hussain
Discord.js implementiert eine Namensänderung durch zu bekommen die GuildMember aus der Nachricht, und mit dem GuildMember#setNickname Methode. Hier ist ein einfaches Beispiel für die Einstellung der nickname des Benutzers, der lief die Nachricht:
Aber das einfach nicht tun Sie im Falle Ihrer bot nicht unter die Erlaubnis zum setzen eines user ' s nickname. Wenn Sie möchten, um einen Benutzer-Spitznamen, der bot selbst wird haben Sie die Berechtigung haben, setzen Spitznamen. Dies erfordert ein wenig mehr Tricks, aber Sie können dies tun, indem Gilde#me, um die GuildMember, und verwenden Sie dann GuildMember#hasPermission zu prüfen, für die MANAGE_NICKNAMES Berechtigung gefunden in Berechtigungen#Flags. Ich weiß, das kann eine ganze Menge Holz, also hier ist ein Beispiel tut alles, was ich eben gesagt habe, zusammen gestellt.
Und dies wird zu arbeiten, um den Benutzer, der den Befehl ausgeführt Spitzname. Aber was ist, wenn wir das ändern wollen die BOT ' S nickname, nicht der Benutzer? Nun, das ist einfach. Wir können nur ersetzen
message.member.setNickname
mitmessage.guild.me.setNickname
soll, ähnlich wie wir aktivierten Berechtigungen. Dies wird sich ändern die bot ' s nickname anstelle des Benutzers, der den Befehl ausgeführt. Happy coding!InformationsquelleAutor FireController1847
wie @Zaidhaan sagte, hier ein kleiner snippet, dass nur trys zu legen Sie den Spitznamen ein, wenn es die Dauerwellen
seit Ihr, die user über
message.guild.members.get()
es erfordert die Dauerwellen zu Bearbeiten Spitznamen, die auf dem serverInformationsquelleAutor DEG0029
Sollte es funktionieren, wenn Sie diese
InformationsquelleAutor K1nzy_The_Idiot
Verwenden
message.content.startsWith()
undmessage.author.setNickname()
:InformationsquelleAutor Tyler Berger
Es ist tatsächlich einfacher, als Sie denken. Alles, was Sie tun müssen, ist fügen Sie diesen code ein:
Sowieso, um dies zu tun, müssen wir die zuerst genannten Benutzer.
Zu tun wäre:
Nachdem wir das machen, müssen wir dann das bekommen, was wir möchten, rufen Sie die Benutzer. Ich habe gerade mit nickReason, Sie können tun, was Sie tun möchten.
Okay, danach müssen wir überprüfen, ob gab es keine erwähnte user. Das ist einfach:
Einmal nach dem hinzufügen, dass wir brauchen, um zu überprüfen, ob es ein Gültiger name ist, das ist einfach wie gut:
Nun überprüfen wir, wenn Sie die MANAGE_NICKNAMES Berechtigungen, die ist auch einfach. Wir werden auch prüfen, ob der erwähnte user hat MANAGE_NICKNAMES-Genehmigung:
Okay, jetzt, dass wir diese haben, wir ändern Ihre Spitznamen!
Ich werde mich nicht einfach fügen Sie den code, Sie könnte genauso gut Lesen Sie es, wenn Sie gehen, einfach kopieren und einfügen, wie auch immer, hoffe, dass ich geholfen!
InformationsquelleAutor Toku