【发布时间】:2021-01-21 20:51:10
【问题描述】:
演示文稿
目标:查找指定的最后一条消息的发送时间
如何:使用User的属性lastmessageID,获取该ID对应的消息,找到属性createdTimestamp
问题:我是唯一一个没有属性 lastmessageID 等于 null 的人,即使用户在几分钟前发送了消息
问题:它是来自我的编码还是来自 Discord.js?有没有办法绕过这个问题?
注意:我知道它已缓存:
-
当有人在机器人还活着的时候发送消息时,给出相同的结果。
-
为了测试,我召唤了一个机器人,以便在测试时给我一个“新鲜”的消息
代码示例
每个“...”都是为了保护个人数据
脚本
function findID() {
var IDarray = userm.users.map((user) => user.lastMessageID)
console.log("IDarray: ", IDarray)
var ID = IDarray[0]
console.log("ID: ", ID)
msg(ID)
}
function msg(lastmsgID) {
var lastmsg = message.channel.messages.fetch(lastmsgID).then(message => time(message)).catch(console.error);
}
function time(msg){
...
}
findID();
结果 和我一起
user: [
User {
id: '...',
bot: false,
username: '...',
discriminator: '....',
avatar: '...',
flags: UserFlags { bitfield: ... },
lastMessageID: '...',
lastMessageChannelID: '...'
}
]
IDarray: [ '...' ]
ID: ...
<Wed Oct 07 2020 00:30:52 GMT+0200 (GMT+02:00)> : Recieved Message to ..., content /test <@!...>
Date as YYYY-MM-DD hh:mm:ss ==> 2020-10-07 00:30:54
结果 与任何人
user: [
User {
id: '...',
bot: false,
username: '...',
discriminator: '...',
avatar: '...',
lastMessageID: null,
lastMessageChannelID: null,
flags: UserFlags { bitfield: ... }
}
]
IDarray: [ null ]
ID: null
<Wed Oct 07 2020 00:26:44 GMT+0200 (GMT+02:00)> : Recieved Message to ..., content /test <@...>
Date as YYYY-MM-DD hh:mm:ss ==> NaN-aN-aN aN:aN:aN
如果您认为我可以改进这个问题,请不要犹豫告诉我! 感谢阅读!
【问题讨论】:
-
您说消息是在几分钟前发送的,但您从那时起是否重置了您的机器人?
-
我知道它被缓存了,即使有人在机器人还活着的时候发送消息也会给出相同的结果。为了测试,我召唤了机器人(例如!help),所以我在测试时总是有一个“新鲜”的消息
标签: node.js discord discord.js