{ -6ren">
gpt4 book ai didi

javascript - 在 discord.js 中设置用户昵称

转载 作者:搜寻专家 更新时间:2023-11-01 00:37:16 26 4
gpt4 key购买 nike

所以对于我的 discord 机器人,我想添加一个 nick 命令。为此,我查看了 this线程并将其改编为我的代码。

client.on("message", async message => {
const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();

if (command == "nick") {
var userID = args[0].replace('<@', '').replace('>', '').replace('!', '');
message.channel.send(userID);
message.guild.members.get(args[0]).id.setNickname("test", "nick command executed");
message.channel.send(`Successfully changed ${args[0]}'s nickname to "${message.channel.server.detailsOf(args[0]).nick}"`);
}
});

client.login("token");

出于某种原因,这会将 TypeError: Cannot read property 'id' of undefined 输出到控制台,但会成功将 UserID 发送到 channel 。

为什么会这样,我该如何“修复”它才能真正改变用户的昵称?

最佳答案

您的代码中发生的事情是您正在存储 args[0] 的更改版本在userId :

var userID = args[0].replace('<@', '').replace('>', '').replace('!', '');

但随后您将传递未更改的 args[0]进入.get :

message.guild.members.get(args[0]).id.setNickname("test", "nick command executed");

因此代码正在运行:..get(<@...>)这将返回一个错误,因为那不是一个有效的 id。

有两件事你应该改变:

  1. 替换args[0]userId
  2. 删除 .id来自 message.guild.members.get(args[0]).id因为之后您将无法调用 setNickname。

关于javascript - 在 discord.js 中设置用户昵称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47142557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com