问题描述
嗨,我正在尝试让我的 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"});
});