邀请创建的事件 (discord.js v12)

Invite created event (discord.js v12)

我正在尝试在创建邀请时发送嵌入。

Channel set file

let config = require("../config.json");
const { MessageEmbed } = require("discord.js");
const Discord = require("discord.js");
const client = new Discord.Client();

module.exports = {
  name: "setinvite",
  description: "set invite channel log.",
  async execute(message, args) {
    if (!message.member.hasPermission(`ADMINISTRATOR`)) {
      return message.channel.send(
        `:x: You do not have permission to use this command!`
      );
    } else {
      let channelx =
        message.mentions.channels.first() ||
        message.guild.channels.cache.find((c) => c.id === args[0]);
      if (!channelx)
        return message.channel.send(
          `:x: Please specify a channel to make it as the modlogs!`
        );

      message.channel.send(`${channelx} has been set!`);
    }
  },
};

Index.js Modules(PS:我选了最相关的。)

const Discord = require("discord.js");
const client = new Discord.Client();
const fs = require("fs");
const { MessageEmbed } = require("discord.js");
const guildInvites = new Map();
const { channelx } = require("./commands/setinvite");

Index.js file

client.on("inviteCreate, message", async (invite) => {
  const setc = client.channels.cache.get(`${channelx}`);
  message.guild.fetchInvites().then((invites) => {
    let allInvites = invites.map((i) => ({
      name: "Invite",
      value: `**Inviter:** ${i.inviter}
    **Code:** https://discord.gg/${i.code}
    **Usages:** ${i.uses} of ${i.maxUses === 0 ? "∞" : i.maxUses}
    **Expires on:** ${
      i.maxAge
        ? new Date(i.createdTimestamp + i.maxAge * 1000).toLocaleString()
        : "never"
    }`,
      inline: true,
    }));

    setc.send(new Discord.MessageEmbed().addFields(allInvites));
  });
});


我认为这两个事件 (inviteCreate, message) 不属于我这样做是因为我收到 错误:

ReferenceError: message is not defined

现在,频道集功能按预期工作,但无论何时创建邀请,嵌入都不会发送。

您不能将所有事件合并到一个函数中。

你只需要保留inviteCreate事件。然后,你必须想办法在不使用“消息”变量的情况下获得公会。相反,您可以使用 inviteCreate 事件中的“邀请”参数。

client.on("inviteCreate", async (invite) => {
  const setc = client.channels.cache.get(`${channelx}`);
  invite.guild.fetchInvites().then((invites) => {
    let allInvites = invites.map((i) => ({
      name: "Invite",
      value: `**Inviter:** ${i.inviter}
    **Code:** https://discord.gg/${i.code}
    **Usages:** ${i.uses} of ${i.maxUses === 0 ? "∞" : i.maxUses}
    **Expires on:** ${
      i.maxAge
        ? new Date(i.createdTimestamp + i.maxAge * 1000).toLocaleString()
        : "never"
    }`,
      inline: true,
    }));

    setc.send(new Discord.MessageEmbed().addFields(allInvites));
  });
});