Discord.js 从消息中获取状态

问题描述

嗨,我正在尝试让我的 Bot 从消息中更改其状态,并使用 quick.db 对其进行设置,因此如果它重新启动,它会更改回 sotd。例如,消息可能类似于:今日之歌:来自专辑 PWR UP 的“Wild Reputation”,我只想要歌曲名称作为状态。

client.on('message',message => {
  if (message.channel.id === '792250171320434688') {
    if (message.author.id === '403657714812715008') {

const ms = message.content
db.set('sotd_',ms)
let so = db.get('sotd_')
    client.user.setActivity(so,{ type: "PLAYING"})
  }
}
});

解决方法

我猜问题出在 quick.db 的某个地方,因为据我所知,discord.js 部分是正确的。我的建议是尝试以下操作:

client.on('message',message => {
  if (message.channel.id === '792250171320434688' && message.author.id === '403657714812715008') {
    const ms = message.content
    client.user.setActivity(ms,{ type: "PLAYING"})
    db.set('sotd_',ms)
  }
});

通过这种方式,您可以在尝试从数据库中获取数据时消除可能的错误。然后,如果您想从 quick.db 中获取最后一个状态,请执行以下操作

client.on('ready',() => {
  const lastStatus = db.get('sotd_');
  client.user.setActivity(lastStatus,{ type: "PLAYING"});
});