Хотя я определяю канал, nodejs говорит, что он не определен - PullRequest
0 голосов
/ 20 апреля 2020

У меня проблема с раздором. js. При определении канала:

client.on("guildMemberAdd", member => {
  var role = member.guild.roles.find(role => role.name === "Member");
  member.addRole(role);
  var channel = member.guild.channels.find("name", "welcome")
  channel.send("Welcome to the server, " + member.name + "!")
});

я получаю эту ошибку:

TypeError: Cannot read property 'send' of null
    at Client.<anonymous> (E:\Desktop\yeetbot v2.0.1\index.js:42:9)
    at Client.emit (events.js:215:7)
    at Guild._addMember (E:\Desktop\yeetbot v2.0.1\node_modules\discord.js\src\structures\Guild.js:1298:19)
    at GuildMemberAddHandler.handle (E:\Desktop\yeetbot v2.0.1\node_modules\discord.js\src\client\websocket\packets\handlers\GuildMemberAdd.js:12:13)
    at WebSocketPacketManager.handle (E:\Desktop\yeetbot v2.0.1\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:105:65)
    at WebSocketConnection.onPacket (E:\Desktop\yeetbot v2.0.1\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
    at WebSocketConnection.onMessage (E:\Desktop\yeetbot v2.0.1\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
    at WebSocket.onMessage (E:\Desktop\yeetbot v2.0.1\node_modules\ws\lib\event-target.js:120:16)
    at WebSocket.emit (events.js:210:5)
    at Receiver.receiverOnMessage (E:\Desktop\yeetbot v2.0.1\node_modules\ws\lib\websocket.js:789:20)

Что я могу сделать, чтобы исправить это?

1 Ответ

0 голосов
/ 20 апреля 2020
var channel = member.guild.channels.find("name", "welcome")

Это означает, что функция .find () не смогла найти результат с параметрами, которые вы передаете. Посмотрите, действительно ли канал существует.

Кроме того, это может быть хорошей идеей сделать некоторую обработку ошибок здесь. Например:

try{

channel.send('xx','yy,)

}catch(e){

console.log('Error'+e);

}
...