You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js日志配置:如何将已删消息通过Embed发送到指定日志频道?

实现方案

前置准备

  • 开启Discord开发者模式,复制你预设的专用moderation日志频道的ID
  • 确认你使用的是discord.js v14及以上版本,若为更低版本需调整Embed构造器名称

代码修改

第一步:修改messagedelete.js文件代码

替换原文件内容为以下代码,将代码中你复制的日志频道ID替换为你实际的频道ID即可:

const { EmbedBuilder } = require('discord.js');
const LOG_CHANNEL_ID = '你复制的日志频道ID';

module.exports = async (message) => {
  // 过滤机器人消息、未完全缓存的部分消息,避免运行报错
  if (message.author?.bot || !message.author || message.partial) return;

  // 获取日志频道实例
  const logChannel = await message.guild.channels.cache.get(LOG_CHANNEL_ID);
  if (!logChannel) return;

  // 构造Embed格式的日志
  const deleteLogEmbed = new EmbedBuilder()
    .setColor('#FF0000')
    .setTitle('消息已删除')
    .addFields(
      { name: '发送者', value: `${message.author.tag} (ID: ${message.author.id})`, inline: true },
      { name: '原所属频道', value: `${message.channel} (ID: ${message.channel.id})`, inline: true },
      { name: '消息内容', value: message.content || '无文本内容(可能为纯图片/附件消息)' }
    )
    .setTimestamp()
    .setFooter({ text: 'Moderation 日志' });

  // 发送到指定日志频道
  await logChannel.send({ embeds: [deleteLogEmbed] });
};

第二步:main.js代码无需调整,保持原有监听逻辑即可正常运行

补充说明

  • 若你需要同时记录被删消息的附件,可自行添加字段遍历message.attachments输出附件链接
  • 若运行时报错找不到EmbedBuilder,说明你使用的是discord.js v13及更低版本,将第一行引入的构造器名称改为MessageEmbed即可,其余逻辑无需修改

内容的提问来源于stack exchange,提问作者Blake ツ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 21:54:03