尝试使用discordjs node js bot im making设置昵称

ruarlubt  于 2023-04-05  发布在  Node.js
关注(0)|答案(1)|浏览(95)

这是我的第一个机器人,我遵循了一个教程来达到这一点:

var Discord = require('discord.io');

var logger = require('winston');

var auth = require('./auth.json');

// Configure logger settings

logger.remove(logger.transports.Console);

logger.add(new logger.transports.Console, {

colorize: true
});

logger.level = 'debug';

// Initialize Discord Bot

var bot = new Discord.Client({

token: auth.token,

autorun: true

});

bot.on('ready', function (evt) {

logger.info('Connected');

logger.info('Logged in as: ');

logger.info(bot.username + ' - (' + bot.id + ')');
});

bot.on('messageCreate', function (user, userID, channelID, message, evt) {

// Our bot needs to know if it will execute a command

// It will listen for messages that will start with `!`

if (message.substring(0, 1) == '!') {

    var args = message.substring(1).split(' ');

    var cmd = args[0];

    args = args.splice(1);

    switch(cmd) {

        // !ping

        case 'ping':

            bot.sendMessage({

                to: channelID,

                message: 'Pong!'

            });

        break;

        // Just add any case commands if you want to..

     }

 }
});

这工作完美,并发送一条消息回来,我想找到一种方法来改变昵称,而不是只发送消息
我用这段代码替换了它检查!的部分

if (message.content.includes('changeNick')) {
    message.member.setNickname(message.content.replace('changeNick ', ''));

它什么也没做?我试着把成员改成用户ID或用户,很困惑
不知道该怎么办任何建议都会有帮助

wgxvkvu9

wgxvkvu91#

这里很可能存在权限问题。最明显/不太明显的是,您自己正在运行命令,并且由于bot可能在层次结构中较低,因此它没有权限设置您的昵称。尝试向方法添加.catch,并查看是否有任何错误。

message.member.setNickname(message.content.replace('changeNick ', ''))
  .catch(err => console.error(err))

相关问题