Discord.js выдает ошибку ссылки: сообщение не определено

#javascript #node.js #discord #discord.js

Вопрос:

Я нахожусь в процессе создания бота, у которого есть функции, которые работают только на определенном сервере. Сервер предназначен для обмена картами, и я хочу создать бота, который сможет модерировать сервер и с которым люди смогут весело провести время.

Ошибка выглядит так:

 c:UsersREDACTEDDesktopSkyindex.js:10
  if (message.content === 'sky claim') {
  ^

ReferenceError: message is not defined
    at Client.<anonymous> (c:UserskellyDesktopSkyindex.js:10:3)
    at Client.emit (events.js:327:22)
    at MessageCreateAction.handle (c:UsersREDACTEDDesktopSkynode_modulesdiscord.jssrcclientactionsMessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (c:UsersREDACTEDDesktopSkynode_modulesdiscord.jssrcclientwebsockethandlersMESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (c:UsersREDACTEDDesktopSkynode_modulesdiscord.jssrcclientwebsocketWebSocketManager.js:384:31)
    at WebSocketShard.onPacket (c:UsersREDACTEDDesktopSkynode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:444:22)
    at WebSocketShard.onMessage (c:UsersREDACTEDDesktopSkynode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:301:10)
    at WebSocket.onMessage (c:UsersREDACTEDDesktopSkynode_moduleswslibevent-target.js:132:16)
    at WebSocket.emit (events.js:315:20)
    at Receiver.receiverOnMessage (c:UsersREDACTEDDesktopSkynode_moduleswslibwebsocket.js:845:20)
 

Код для моего бота Discord находится здесь.

 client.on("message", (msg) => {
    if (message.content === "sky claim") {
        message.channel.send("${message.author} claimed 250 SkyBucks. Spend SkyBucks on colored roles.");
        console.log("${message.author} executed command successfully");
    }
});`
 

Я добавил только ту часть кода, которая выдавала ошибку.

Комментарии:

1. В приложении не должно быть более 1 события каждого типа. Пожалуйста, прочитайте об обработке команд в Discord.js .

2. @Jakye Это очевидно, он автоматически отправит все запросы клиенту, что является плохой идеей, но вы можете добавить требование(«события»).эмиттер.setMaxListeners = «значение», чтобы исправить это

3. @MrMythical попробовал это, получил эту ошибку:

Ответ №1:

Если вы прочитаете свою ошибку, вы сможете выяснить, почему она не работает:

 client.on('message', message => {
  if (message.content === 'sky eBay') {
    message.channel.send('Our eBay store is @CollectAmazing, I will drop a link:');
    message.channel.send('https://www.ebay.com/str/collectamazing');
  }
})
 

Измените все client.on('message', msg на client.on('message', message