我目前正在为discord做一个discord.js机器人,但是我一直都遇到同样的问题:
ReferenceError: guild is not defined
at Client.client.on.message (C:\Users\Valentin\Documents\JsBot_dev\bot.js:27:30)
at emitOne (events.js:101:20)
at Client.emit (events.js:188:7)
at MessageCreateHandler.handle (C:\Users\Valentin\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
at WebSocketPacketManager.handle (C:\Users\Valentin\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:120:65)
at WebSocketManager.eventMessage (C:\Users\Valentin\node_modules\discord.js\src\client\websocket\WebSocketManager.js:273:31)
at WebSocket.onMessage (C:\Users\Valentin\node_modules\ws\lib\WebSocket.js:442:14)
at emitTwo (events.js:106:13)
at WebSocket.emit (events.js:191:7)
at Receiver.ontext (C:\Users\Valentin\node_modules\ws\lib\WebSocket.js:841:10)
我试图更新discord.js并重新安装node.js,但没有任何效果。
谢谢您的帮助 !
机器人代码:
const Discord = require("discord.js");
const client = new Discord.Client();
myid = "your id is :"
const hook = new Discord.WebhookClient('NoIdForYou', 'NoTokenForYou');
client.on('ready', () => {
console.log(`Logged in as ${client.user.username}!`);
});
client.on('message', message => {
if (message.content === '-avatar') {
message.reply(message.author.avatarURL);
}
});
client.on('hook', hook => {
if (message.content === '-test') {
hook.sendMessage('Ok.')
}
});
client.on('message', message => {
if (message.content === '-react') {
const emoji = guild.emojis.first();
client.react(emoji.name.ballot_box_with_check)
}
});
client.login('NoTokenForYou');
最佳答案
const emoji = guild.emojis.first();
首先看一下。guild
基本上是我们称为“服务器”的类。但基本上,您仅只是称为服务器,而没有指定它来自哪个服务器。所以事实上,const emoji = message.guild.emojis.first();
其次:client.react(emoji.name.ballot_box_with_check)
反应被添加到消息中。 client
是机器人本身。message.react(/*emoji*/);
是正确的。
关于javascript - 公会未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42232732/