javascript TypeError [ERR_INVALID_ARG_TYPE]:“emitter”参数必须是EventEmitter的示例,接收类型字符串('message ')discord.js

mzaanser  于 2023-05-16  发布在  Java
关注(0)|答案(2)|浏览(153)

我正在执行一个ping pong命令,在第11行收到一个错误,说TypeError [ERR_INVALID_ARG_TYPE]: The "emitter" argument must be an instance of EventEmitter. Received type string ('message')。下面是我的代码:

const { Client, Intents } = require("discord.js");
const settings = require("./settings.json");

const client = new Client({
  intents: [
    Intents.FLAGS.GUILDS, 
    Intents.FLAGS.GUILD_MESSAGES
  ]
});

Client.on("message", (msg) => {
  // Message function
  if (msg.author.bot) return; // Ignore all bots
  if (msg.content.startsWith(settings.prefix)) return; // It always has to starts with the prefix which is '!'

  if (msg.content.startsWith(settings.prefix + "ping")) {
    // When a player does '!ping'
    msg.reply("Pong!"); // The bot will say @Author, Pong!
  }
});

Client.login(token);

这是我得到的错误:

throw new ERR_INVALID_ARG_TYPE('emitter', 'EventEmitter', emitter);
        ^    
TypeError [ERR_INVALID_ARG_TYPE]: The "emitter" argument must be an instance of EventEmitter. Received type string ('message')
    at new NodeError (node:internal/errors:372:5)
    at eventTargetAgnosticAddListener (node:events:1008:11)
    at Function.on (node:events:1095:3)
    at Object.<anonymous> (C:\Users\yybro\discordBot\dex.js:11:8)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
    at node:internal/main/run_main_module:17:47 {
      code: 'ERR_INVALID_ARG_TYPE'

这是我的settings.json文件:

{
    "clientId": "123456789012345678",
    "guildId": "876543210987654321",
    "token": "xxxxxxxxxxxxxxxxxxxxx"
}
svgewumm

svgewumm1#

尝试像这样使用令牌的导入:

const { token } = require('./settings.json')
1wnzp6jl

1wnzp6jl2#

你需要使用client,它是你在第4行创建的Client类的示例,而不是Client,它是类本身。
你的第11行应该是这样的:client.on('message', msg => {和最后一行的client.login(token);相同。

相关问题