提问者:小点点

discord.js无法检查“LastMessage.Content”


function broadcast() {
  client.guilds.cache.forEach(g => {
    g.channels.cache.find(c => c.name === 'chat' && c.lastMessage.content !== 'test').send('test')
    })
};

setInterval(broadcast, 3000);

这个代码不管用。 如果你不明白,我试图得到所有频道命名为‘聊天’,顺便说一句,最后的消息不是广播消息,然后发送一个消息到频道。

2020-07-09T13:33:43.715482+00:00 app[worker.1]:  
    c.lastMessage.content !== 'test'
2020-07-09T13:33:43.715483+00:00 app[worker.1]:                           ^
2020-07-09T13:33:43.715483+00:00 app[worker.1]: 
2020-07-09T13:33:43.715484+00:00 app[worker.1]: TypeError: Cannot read property 'content' of undefined
2020-07-09T13:33:43.715484+00:00 app[worker.1]:     at /app/events/ready.js:22:27
2020-07-09T13:33:43.715485+00:00 app[worker.1]:     at Map.find (/app/node_modules/@discordjs/collection/dist/index.js:160:17)
2020-07-09T13:33:43.715486+00:00 app[worker.1]:     at /app/events/ready.js:20:28
2020-07-09T13:33:43.715486+00:00 app[worker.1]:     at Map.forEach (<anonymous>)
2020-07-09T13:33:43.715486+00:00 app[worker.1]:     at Timeout.broadcast [as _onTimeout] (/app/events/ready.js:19:29)
2020-07-09T13:33:43.715487+00:00 app[worker.1]:     at listOnTimeout (internal/timers.js:549:17)
2020-07-09T13:33:43.715487+00:00 app[worker.1]:     at processTimers (internal/timers.js:492:7)

这是我得到的错误。


共1个答案

匿名用户

这应该会起作用:

function broadcast() {
  client.guilds.cache.forEach(g => {
    const channel = g.channels.cache.find(c => c.name === 'chat')
    if (channel.lastMessage.content !== 'test') channel.send('test')
  })
};

setInterval(broadcast, 3000);