- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
{ -6ren">
所以对于我的 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。
有两件事你应该改变:
args[0]
与 userId
.id
来自 message.guild.members.get(args[0]).id
因为之后您将无法调用 setNickname。关于javascript - 在 discord.js 中设置用户昵称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47142557/
有没有办法通过 ejabberd 服务器获取 MUC Room 的所有昵称? 我正在尝试: 但我只获得没有昵称的 jid: 最佳答案 在 6.5 Qu
有人知道获取用户 App Store 昵称的方法吗?我知道 CloudKit 方法 fetchUserRecordIDWithCompletionHandler,但这会返回用户的名字和姓氏,而不是用户
这个接口只能获得一些非敏感信息,例如用户昵称,用户头像,经过用户授权允许获取的情况下即可获得用户信息,至于openid这些,需要调取wx.login来获取。 index.wxml
在 python xmpp 模块中,我可以按如下方式检索任何联系人的昵称: self.connection.auth(userJid.getNode(), self.password) self.ro
我想在我的 XMPP 聊天消息中添加自定义属性(昵称),如下例 hello 我知道,XMPP 不推荐但这是我的要求,因为这个属性(nick)已经在我正在使用的应用程序的 iOS 版本中实现上。 最佳答
我是一名优秀的程序员,十分优秀!