#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