javascript - Discord.js - AFK 在一个小时左右后消失
问题描述
我有一个 AFK 命令,它工作得很好。它设置AFK,它在ping 时提醒用户是AFK,当用户发送另一条消息时它会删除AFK。但有个问题。出于某种原因,机器人会在一个小时左右后删除 AFK。只是完全消失了:没有提醒,没有任何东西,甚至没有删除 AFK!我想知道为什么会这样
const db = require(`quick.db`)
if (db.has(message.author.id + '.afk')) {
let currentNickname = message.member.displayName
let newNickname = currentNickname.replace(`[AFK]`, ``);
message.channel.send(`Welcome Back ${message.author}!`).then(message => {
message.delete({ timeout: 15000 })
})
message.member.setNickname(newNickname).catch(error => false);
db.delete(message.author.id + '.afk')
db.delete(message.author.id + '.messageafk')
db.delete(message.author.id + '.time')
}
if(message.content.toLowerCase().startsWith('>afk')) {
let reason = message.content.split(' ').slice(1).join(' ')
if(!reason) reason = `AFK`
let nickname = message.member ? message.member.displayName : null;
message.member.setNickname(`[AFK] ${nickname}`).catch(error => false);
db.set(message.author.id + '.afk', 'true')
db.set(message.author.id + '.messageafk', reason)
db.set(message.author.id + '.time', Date.now())
message.channel.send(`${message.author}, AFK Set: ${reason}`)
}
message.mentions.users.forEach(user => {
let timestamp = db.get(user.id + '.time')
let timeAgo = moment(timestamp).fromNow()
if (db.has(user.id + '.afk')) message.channel.send(user.username + ` Is AFK: ` + db.get(user.id + '.messageafk') + `
- ${timeAgo}`)
})
解决方案
推荐阅读
- javascript - HTML Canvas 从数据库中绘制图像
- java - 我的代码运行了 15 分钟但只有白色输出?
- python-3.x - 在 Pandas 数据框中查找在列子集上具有相同值的行子集(N 行)
- javascript - 第二次使用后显示“未定义”的警报框
- python - 如何部分读取文本文件并将片段写入另一个文本文件
- sql - 如何获取日历的日期作为标题并从数据库中获取相关记录
- swift - 当文本包含返回时滚动到 UITextView 的末尾
- java - 更改微调器项目数据时更新recyclerview单行数据
- java - 由于@OneToMany,JPA 更新记录失败
- google-sheets - 使用脚本在 Google 表格中定义单元格