[英]How do I Get the Client User's Last Message?
您如何獲得機器人最后一條消息的 object? 我嘗試做類似的事情:
if (message.content.split(' ')[0] === 'test') {
message.channel.sendMessage('Test')
console.log(client.user.lastMessage.content)
}
如果我觸發條件,控制台會給我一個錯誤: TypeError: Cannot read property 'content' of undefined
client.user.lastmessage
值為null
的原因是因為您剛剛啟動機器人,並且在您運行'test'
命令之前它沒有發送任何消息。
要環游這個,我會檢查它是否為空(如果它不是)和關斷的機會,這就是使用MessageCollector並等待發送您的消息。
if (client.user.lastMessage == null) {
// Set the collector for the same channel
// Ensure the id is the same
var myID = client.user.id;
// Create collector and wait for 5 seconds (overkill but you never know with bad internet/lots of traffic)
const collector = new Discord.MessageCollector(msg.channel, m => m.author.id === myID, { time: 5000 });
collector.on('collect', message => {
console.log(message.content);
collector.stop("Got my message");
});
} else {
console.log(client.user.lastMessage.content);
}
我測試的確切代碼塊:
client.on('message', msg => {
if (msg.content === '$ping') {
msg.reply("Pong!")
if (client.user.lastMessage == null) {
const collector = new Discord.MessageCollector(msg.channel, m => m.author.id === client.user.id, { time: 10000 });
collector.on('collect', message => {
console.log(message.content);
collector.stop("Got my message");
})
} else {
console.log(client.user.lastMessage.content);
}
}
}
你的代碼片段現在已經過時了。 從 Discord.js v13 起,以下屬性已被刪除(包括 lastMessage),因為它們不是由 Discord 提供且不可靠
您必須實施自定義解決方案來手動跟蹤此信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.