DJS-如果受害者是机器人,在特定频道删除消息时从quick.db中减去



我正在尝试为我的建议通道中的消息数量实现一个计数器。向上计数的代码可以完美地工作。但我很难从触发消息删除中减去,只有当消息的作者是机器人时才能这样做。因此(target.id==='953904462701948938'(

我正在使用quick.db作为我的数据库。

我是Discord JS和编码的新手——在游戏中呆了两周,所以任何改进我的代码的建议都会受到赞赏。

var dbSuggestionMinus = new db.table('counterM');
dbSuggestionMinus.set('minus', 0);
let dbSuggestionSubtract = parseInt();
client.on('messageDelete', async message => {
let logs = await message.guild.fetchAuditLogs({
type: 72
});
let entry = logs.entries.first();
const {executor, target} = entry;
if (target.id === '953904462701948938') {
db.subtract('counterM.minus', 1);
dbSuggestionSubtract = await db.fetch('counterM.minus');
} 
})

我有一个建议通道,可以嵌入用户发送的消息并删除用户消息。这似乎引发了事件,我认为这就是问题所在。如果我登录target.id,当机器人进行删除时,我会得到机器人的id。如果受害者是机器人,我只想做减法。

我还没有做到的是,让这个活动专门针对一个频道,我在标题中确实要求这样做。但这是下一步。

我想我把事情搞得太复杂了。这很好。

var dbSuggestionMinus = new db.table('counterM');
dbSuggestionMinus.set('minus', 0);
let dbSuggestionSubtract = parseInt();
client.on('messageDelete', async message => {
if (message.channel.id === '918462969975812166' && message.author.bot) {
db.subtract('counterM.minus', 1)
} 
})

我想要实现的目标有一些明显的缺点。但希望这可以用于其他事情。

target.id
// gives you message id
target.author.id
// this is what you need

最新更新