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)
这是我得到的错误。
这应该会起作用:
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);