当前位置: 首页 > 知识库问答 >
问题:

Discord.jsbot审计日志问题(v12)

姬裕
2023-03-14

我正在写我的第一个机器人,我有一些审计日志的问题。

我想创建审计日志,这将是发送信息,谁踢了一个成员从服务器。

我在网上找到了一些东西,但它的工作方式真的很奇怪。当我踢我的测试帐户时,没关系,这表明我踢了他。但是当我想自己离开时,日志上说我正在踢这个测试帐户。更重要的是,当我的朋友踢这个帐户时,它说他踢了他是没关系的,但当我再次独自离开时,它说这个朋友踢了他。我不知道如何修理它。

这是我的代码:

bot.on('guildMemberRemove', async member => {
    const kanal = bot.channels.cache.get("698649855727501402");
    const fetchedLogs = await member.guild.fetchAuditLogs({
        limit: 1,
        type: 'MEMBER_KICK',
    });
    const kickLog = fetchedLogs.entries.first();
    if (!kickLog)  return kanal.send(`${member.user.tag} left the guild, most likely of their own will.`);

    const { executor, target } = kickLog;

    if (target.id === member.id) {
        kanal.send(`${member.user.tag} left the guild; kicked by ${executor.tag}?`);
    } else {
        kanal.send(`${member.user.tag} left the guild, audit log fetch was inconclusive.`);
    }
});

共有1个答案

柳英资
2023-03-14

之所以出现这种行为,是因为您总是获取审核日志,并且总是使用最新条目。当您自己离开时,根本不会生成审核日志条目。此外,每次您获取时,获取的最新条目将是相同的kick,而不存在新的kick。

为了避免这种情况,您应该比较某人离开的时间和您获取的日志生成的时间。但是请注意,审计日志不必立即生成(如果有的话)。

下面的代码片段应该允许你们做你们想做的事情——它检查你们的回迁日志是否比你们的回迁早5秒。这个时间窗口应该足够长,可以考虑到延迟等因素,但您可以自由地将其缩小。

const logs = await member.guild.fetchAuditLogs({ limit: 1, type: 'MEMBER_KICK' });
const log = logs.entries.first();
if (!log) return;
if (Date.now() - log.createdTimestamp < 5000) {
  kanal.send(`${member.user.tag} was kicked by ${log.executor.tag}.`);
} else {
  kanal.send(`${member.user.tag} left the guild.`);
}
 类似资料:
  • 日志审计支持查看平台上的所有操作日志以及公有云的操作日志等。 操作日志 操作日志用于显示系统中所有操作信息。 云上日志 将公有云操作日志同步到云联壹云平台上统一查看。

  • 该账号及其子账号的所有操作记录和登录日志,便于在发生问题时用户及时查看。 操作日志 登录历史 操作日志 记录用户及其子用户在页面的所有操作行为,可对操作行为进行追溯,并按照功能模块、操作行为等进行查询。 登录历史 记录用户及其子用户的所有登录行为,包括登录时间、登录IP、用户名、浏览器版本、登录方式等。

  • 4.5 ABP应用层—审计日志 维基百科定义:审计跟踪(也称为审核日志)是一个安全相关的时间顺序记录,记录这些记录的目的是为已经影响在任何时候的详细操作,提供程序运行的证明文件记录、源或事件。 ABP提供了能够为应用程序交互自动记录日志的基础设施,它能记录你调用的方法的调用者信息和参数信息。从根本上来说,存储区域包含: tenant id(相关的租户Id), user id(请求用户Id), se

  • Seafile 企业版在管理员界面中提供了四类日志: 登录日志 文件访问日志 文件更新日志 权限更改日志 日志功能默认是关闭的,以便不产生大量的数据库条目。参考文档 config options for pro edition 来开启这个功能。

  • 我一直在试图找到一个解决办法,我可以如何访问一个特定的不和谐。特定索引处的js审核日志。这是我的意思的一个例子: 这是一个将执行者、目标以及中每个日志的日志原因记录到控制台的函数。 这是运行后的错误: 基本上,我遇到的问题是我无法参考具体的审计日志。这可以被证明,因为当我运行这个而不是const{执行器,目标,原因}=l.entries[i]时,它不会输出错误: 感谢您的帮助。谢谢

  • 问题内容: 我的问题是:是否有我可以使用的参考,也许是一本书或诸如决策树之类的东西,我可以参考这些参考来基于一些输入变量来决定应该走的路,例如: 数据库架构的成熟度 如何查询日志 需要重新创建记录的概率 更重要的是:写入或读取性能 所记录的值的性质(字符串,数字,blob) 可用的存储空间 我知道的方法是: 1.添加创建和修改日期及用户的列 表格示例: id value_1 value_2 val