javascript - 带有昵称和头像的公会成员更新日志频道
问题描述
我想记录成员何时更新,例如新头像或昵称。我可以将它记录到控制台,但是当我尝试将它发送到通道时它失败了。控制台中没有错误。我尝试过使用多个帐户和不同的渠道,但控制台中仍然没有结果或任何错误。
client.on('guildMemberUpdate', async (oldMember, newMember) => {
const guild = newMember.guild;
var Changes = {
unknown: 0,
addedRole: 1,
removedRole: 2,
username: 3,
nickname: 4,
avatar: 5
}
var change = Changes.unknown
var removedRole = ''
oldMember.roles.every(function (value) {
if (newMember.roles.cache.find('id', value.id) == null) {
change = Changes.removedRole
removedRole = value.name
}
})
var addedRole = ''
newMember.roles.every(function (value) {
if (oldMember.roles.cache.find('id', value.id) == null) {
change = Changes.addedRole
addedRole = value.name
}
})
if (newMember.user.username != oldMember.user.username) {
change = Changes.username
}
if (newMember.nickname != oldMember.nickname) {
change = Changes.nickname
}
if (newMember.user.avatarURL() != oldMember.user.avatarURL()) {
change = Changes.avatar
}
var log = guild.channels.cache.get(`755216180603650059`)
if (log != null) {
switch (change) {
case Changes.unknown:
log.send('**[User Update]** ' + newMember)
break
case Changes.addedRole:
log.send('**[User Role Added]** ' + newMember + ': ' + addedRole)
break
case Changes.removedRole:
log.send('**[User Role Removed]** ' + newMember + ': ' + removedRole)
break
case Changes.username:
log.send('**[User Username Changed]** ' + newMember + ': Username changed from ' +
oldMember.user.username + '#' + oldMember.user.discriminator + ' to ' +
newMember.user.username + '#' + newMember.user.discriminator)
break
case Changes.nickname:
log.send('**[User Nickname Changed]** ' + newMember + ': ' +
(oldMember.nickname != null ? 'Changed nickname from ' + oldMember.nickname +
+newMember.nickname : 'Set nickname') + ' to ' +
(newMember.nickname != null ? newMember.nickname + '.' : 'original username.'))
break
case Changes.avatar:
log.send('**[User Avatar Changed]** ' + newMember)
break
}
}
})
解决方案
基于 Levi_OP 的评论
if (a != b) {
//...
}
需要变成:
if (a !== b) {
//...
}
推荐阅读
- mongodb - Mongo批量更新输入的数组键值
- amp-html - AMP HTML | 链接下拉列表 - 多个链接/依赖项
- algorithm - 我们如何找到具有两个不同“ID”的图的最大连续区域?
- javascript - 电子:具有多种功能的按钮?
- r - 错误:$ 运算符对于没有 $ 的代码的原子向量无效?
- project-reactor - 如何调用 Sinks.Many
.tryEmitNext 来自多个线程? - django-rest-framework - Django Rest 框架面板 - 登录和注销不适用于 Simple JWT
- sorting - 图表 - 日期顺序 - Google 数据洞察
- c# - 为什么它不在编辑器中绘制圆形 Gizmo?
- sql - 我在 pgweb Heroku 中创建一个表,并收到此错误“错误:pq:在“(”)或附近的语法错误