14

助けていただけないでしょうか (検索しても何もありません...) 私は discord.js ノードの操作方法を学んでおり、ユーザーのニックネーム (ユーザー名自体ではありません) を変更したいと考えています。

私のコードは

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');
4

14 に答える 14

7

Docsによると、ギルドメンバーのニックネームのみを変更できるため、クライアントのメンバーオブジェクトをその ID から取得し、ドキュメントに示されているようにニックネームを設定する必要があります。次のように:

message.guild.members.get(bot.user.id).setNickname("some nickname");

これは常に機能するとは限らないことに注意してください。クライアントが必要にchangeNicknameなるか、機能しません。

于 2016-12-30T14:55:35.000 に答える
0

これには GuildMember#setNickname メソッドを使用できます。簡単な例を挙げましょう。

const nickName = "PREFERRED NICKNAME"
message.member.setNickname(nickName)
于 2021-06-13T17:07:42.927 に答える
0

ボットにニックネームを付けようとしているように見えます。ボットのニックネームを変更するには、次を使用します。

const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
    console.log('I am ready!');
});

client.on('message', message => {
    let args = message.content.split(" ");

    if (args[0].toLowerCase() === "changenick") { //command is 'changeNick <new nickname>
       var newNickname = args.slice(1).join(" ");
       message.guild.me.setNickname(newNickname);
    }
});

ユーザーのニックネームを変更したい場合は、これを使用する必要があります。

const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
    console.log('I am ready!');
});

client.on('message', message => {

    let args = message.content.split(" ");

    if(args[0].toLowerCase() === "changenick"){ //command is 'changeNick <@usertag> <new nickname>'
        if(!message.mentions.users.first()) return message.channel.send("You didn't specify a user!");
         const user = message.mentions.members.first();
         var newNickname = args.slice(2).join(" ");
         user.setNickname(newNickname);
    }
});
于 2020-11-12T15:37:08.000 に答える